Files
standardnotes-app-web/dist/javascripts/compiled.min.js
Mo Bitar 010d2793b1 Compiled
2019-12-04 10:15:50 -06:00

1 line
858 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
!function(e){"use strict";var c,t=Object.prototype,u=t.hasOwnProperty,n="function"==typeof Symbol?Symbol:{},i=n.iterator||"@@iterator",r=n.asyncIterator||"@@asyncIterator",a=n.toStringTag||"@@toStringTag",o="object"==typeof module,s=e.regeneratorRuntime;if(s)o&&(module.exports=s);else{(s=e.regeneratorRuntime=o?module.exports:{}).wrap=k;var l="suspendedStart",d="suspendedYield",f="executing",p="completed",h={},m={};m[i]=function(){return this};var v=Object.getPrototypeOf,g=v&&v(v(D([])));g&&g!==t&&u.call(g,i)&&(m=g);var y=S.prototype=w.prototype=Object.create(m);x.prototype=y.constructor=S,S.constructor=x,S[a]=x.displayName="GeneratorFunction",s.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===x||"GeneratorFunction"===(t.displayName||t.name))},s.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,a in e||(e[a]="GeneratorFunction")),e.prototype=Object.create(y),e},s.awrap=function(e){return{__await:e}},$(_.prototype),_.prototype[r]=function(){return this},s.AsyncIterator=_,s.async=function(e,t,n,r){var i=new _(k(e,t,n,r));return s.isGeneratorFunction(t)?i:i.next().then(function(e){return e.done?e.value:i.next()})},$(y),y[a]="Generator",y[i]=function(){return this},y.toString=function(){return"[object Generator]"},s.keys=function(n){var r=[];for(var e in n)r.push(e);return r.reverse(),function e(){for(;r.length;){var t=r.pop();if(t in n)return e.value=t,e.done=!1,e}return e.done=!0,e}},s.values=D,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=c,this.done=!1,this.delegate=null,this.method="next",this.arg=c,this.tryEntries.forEach(C),!e)for(var t in this)"t"===t.charAt(0)&&u.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=c)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(n){if(this.done)throw n;var r=this;function e(e,t){return a.type="throw",a.arg=n,r.next=e,t&&(r.method="next",r.arg=c),!!t}for(var t=this.tryEntries.length-1;0<=t;--t){var i=this.tryEntries[t],a=i.completion;if("root"===i.tryLoc)return e("end");if(i.tryLoc<=this.prev){var o=u.call(i,"catchLoc"),s=u.call(i,"finallyLoc");if(o&&s){if(this.prev<i.catchLoc)return e(i.catchLoc,!0);if(this.prev<i.finallyLoc)return e(i.finallyLoc)}else if(o){if(this.prev<i.catchLoc)return e(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return e(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&u.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,h):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;C(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:D(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=c),h}}}function k(e,t,n,r){var i=t&&t.prototype instanceof w?t:w,a=Object.create(i.prototype),o=new A(r||[]);return a._invoke=function(a,o,s){var c=l;return function(e,t){if(c===f)throw new Error("Generator is already running");if(c===p){if("throw"===e)throw t;return R()}for(s.method=e,s.arg=t;;){var n=s.delegate;if(n){var r=M(n,s);if(r){if(r===h)continue;return r}}if("next"===s.method)s.sent=s._sent=s.arg;else if("throw"===s.method){if(c===l)throw c=p,s.arg;s.dispatchException(s.arg)}else"return"===s.method&&s.abrupt("return",s.arg);c=f;var i=b(a,o,s);if("normal"===i.type){if(c=s.done?p:d,i.arg===h)continue;return{value:i.arg,done:s.done}}"throw"===i.type&&(c=p,s.method="throw",s.arg=i.arg)}}}(e,n,o),a}function b(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function w(){}function x(){}function S(){}function $(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function _(c){var t;this._invoke=function(n,r){function e(){return new Promise(function(e,t){!function t(e,n,r,i){var a=b(c[e],c,n);if("throw"!==a.type){var o=a.arg,s=o.value;return s&&"object"==typeof s&&u.call(s,"__await")?Promise.resolve(s.__await).then(function(e){t("next",e,r,i)},function(e){t("throw",e,r,i)}):Promise.resolve(s).then(function(e){o.value=e,r(o)},i)}i(a.arg)}(n,r,e,t)})}return t=t?t.then(e,e):e()}}function M(e,t){var n=e.iterator[t.method];if(n===c){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=c,M(e,t),"throw"===t.method))return h;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var r=b(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,h;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=c),t.delegate=null,h):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function I(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(I,this),this.reset(!0)}function D(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,r=function e(){for(;++n<t.length;)if(u.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=c,e.done=!0,e};return r.next=r}}return{next:R}}function R(){return{value:c,done:!0}}}(function(){return this}()||Function("return this")()),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).SF=e()}}(function(){return function a(o,s,c){function u(t,e){if(!s[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var i=s[t]={exports:{}};o[t][0].call(i.exports,function(e){return u(o[t][1][e]||e)},i,i.exports,a,o,s,c)}return s[t].exports}for(var l="function"==typeof require&&require,e=0;e<c.length;e++)u(c[e]);return u}({1:[function(e,t,we){(function(e){var t,c,n,r,i,u,a,C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);c=(t=C).lib.WordArray,t.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp(),e=[];for(var i=0;i<n;i+=3)for(var a=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,o=0;o<4&&i+.75*o<n;o++)e.push(r.charAt(a>>>6*(3-o)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,n=this._map;!(r=n.charAt(64))||-1!=(r=e.indexOf(r))&&(t=r);for(var r=[],i=0,a=0;a<t;a++)if(a%4){var o=n.indexOf(e.charAt(a-1))<<a%4*2,s=n.indexOf(e.charAt(a))>>>6-a%4*2;r[i>>>2]|=(o|s)<<24-i%4*8,i++}return c.create(r,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(a){function S(e,t,n,r,i,a,o){return((e=e+(t&n|~t&r)+i+o)<<a|e>>>32-a)+t}function $(e,t,n,r,i,a,o){return((e=e+(t&r|n&~r)+i+o)<<a|e>>>32-a)+t}function _(e,t,n,r,i,a,o){return((e=e+(t^n^r)+i+o)<<a|e>>>32-a)+t}function M(e,t,n,r,i,a,o){return((e=e+(n^(t|~r))+i+o)<<a|e>>>32-a)+t}for(var e=C,t=(r=e.lib).WordArray,n=r.Hasher,r=e.algo,I=[],i=0;i<64;i++)I[i]=4294967296*a.abs(a.sin(i+1))|0;r=r.MD5=n.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=e[o=t+n];e[o]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}n=this._hash.words;var i,a,o=e[t+0],s=(r=e[t+1],e[t+2]),c=e[t+3],u=e[t+4],l=e[t+5],d=e[t+6],f=e[t+7],p=e[t+8],h=e[t+9],m=e[t+10],v=e[t+11],g=e[t+12],y=e[t+13],k=e[t+14],b=e[t+15],w=n[0],x=M(x=M(x=M(x=M(x=_(x=_(x=_(x=_(x=$(x=$(x=$(x=$(x=S(x=S(x=S(x=S(x=n[1],a=S(a=n[2],i=S(i=n[3],w=S(w,x,a,i,o,7,I[0]),x,a,r,12,I[1]),w,x,s,17,I[2]),i,w,c,22,I[3]),a=S(a,i=S(i,w=S(w,x,a,i,u,7,I[4]),x,a,l,12,I[5]),w,x,d,17,I[6]),i,w,f,22,I[7]),a=S(a,i=S(i,w=S(w,x,a,i,p,7,I[8]),x,a,h,12,I[9]),w,x,m,17,I[10]),i,w,v,22,I[11]),a=S(a,i=S(i,w=S(w,x,a,i,g,7,I[12]),x,a,y,12,I[13]),w,x,k,17,I[14]),i,w,b,22,I[15]),a=$(a,i=$(i,w=$(w,x,a,i,r,5,I[16]),x,a,d,9,I[17]),w,x,v,14,I[18]),i,w,o,20,I[19]),a=$(a,i=$(i,w=$(w,x,a,i,l,5,I[20]),x,a,m,9,I[21]),w,x,b,14,I[22]),i,w,u,20,I[23]),a=$(a,i=$(i,w=$(w,x,a,i,h,5,I[24]),x,a,k,9,I[25]),w,x,c,14,I[26]),i,w,p,20,I[27]),a=$(a,i=$(i,w=$(w,x,a,i,y,5,I[28]),x,a,s,9,I[29]),w,x,f,14,I[30]),i,w,g,20,I[31]),a=_(a,i=_(i,w=_(w,x,a,i,l,4,I[32]),x,a,p,11,I[33]),w,x,v,16,I[34]),i,w,k,23,I[35]),a=_(a,i=_(i,w=_(w,x,a,i,r,4,I[36]),x,a,u,11,I[37]),w,x,f,16,I[38]),i,w,m,23,I[39]),a=_(a,i=_(i,w=_(w,x,a,i,y,4,I[40]),x,a,o,11,I[41]),w,x,c,16,I[42]),i,w,d,23,I[43]),a=_(a,i=_(i,w=_(w,x,a,i,h,4,I[44]),x,a,g,11,I[45]),w,x,b,16,I[46]),i,w,s,23,I[47]),a=M(a,i=M(i,w=M(w,x,a,i,o,6,I[48]),x,a,f,10,I[49]),w,x,k,15,I[50]),i,w,l,21,I[51]),a=M(a,i=M(i,w=M(w,x,a,i,g,6,I[52]),x,a,c,10,I[53]),w,x,m,15,I[54]),i,w,r,21,I[55]),a=M(a,i=M(i,w=M(w,x,a,i,p,6,I[56]),x,a,b,10,I[57]),w,x,d,15,I[58]),i,w,y,21,I[59]),a=M(a,i=M(i,w=M(w,x,a,i,u,6,I[60]),x,a,v,10,I[61]),w,x,s,15,I[62]),i,w,h,21,I[63]);n[0]=n[0]+w|0,n[1]=n[1]+x|0,n[2]=n[2]+a|0,n[3]=n[3]+i|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32;var i=a.floor(n/4294967296);for(t[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process(),t=(e=this._hash).words,n=0;n<4;n++)r=t[n],t[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8);return e},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.MD5=n._createHelper(r),e.HmacMD5=n._createHmacHelper(r)}(Math),i=(n=(r=C).lib).Base,u=n.WordArray,a=(n=r.algo).EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:n.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=(o=this.cfg).hasher.create(),r=u.create(),i=r.words,a=o.keySize,o=o.iterations;i.length<a;){s&&n.update(s);var s=n.update(e).finalize(t);n.reset();for(var c=1;c<o;c++)s=n.finalize(s),n.reset();r.concat(s)}return r.sigBytes=4*a,r}}),r.EvpKDF=function(e,t,n){return a.create(n).compute(e,t)},C.lib.Cipher||function(){var e=(f=C).lib,t=e.Base,o=e.WordArray,n=e.BufferedBlockAlgorithm,r=f.enc.Base64,i=f.algo.EvpKDF,a=e.Cipher=n.extend({cfg:t.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(r){return{encrypt:function(e,t,n){return("string"==typeof t?p:d).encrypt(r,e,t,n)},decrypt:function(e,t,n){return("string"==typeof t?p:d).decrypt(r,e,t,n)}}}});e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});function s(e,t,n){var r=this._iv;r?this._iv=void 0:r=this._prevBlock;for(var i=0;i<n;i++)e[t+i]^=r[i]}var c=f.mode={},u=(e.BlockCipherMode=t.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();u.Encryptor=u.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;s.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}),u.Decryptor=u.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);n.decryptBlock(e,t),s.call(this,e,t,r),this._prevBlock=i}}),c=c.CBC=u,u=(f.pad={}).Pkcs7={pad:function(e,t){for(var n,r=(n=(n=4*t)-e.sigBytes%n)<<24|n<<16|n<<8|n,i=[],a=0;a<n;a+=4)i.push(r);n=o.create(i,n),e.concat(n)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:c,padding:u}),reset:function(){a.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var l=e.CipherParams=t.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),d=(c=(f.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?o.create([1398893684,1701076831]).concat(e).concat(t):t).toString(r)},parse:function(e){var t=(e=r.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=o.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return l.create({ciphertext:e,salt:n})}},e.SerializableCipher=t.extend({cfg:t.extend({format:c}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,l.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),f=(f.kdf={}).OpenSSL={execute:function(e,t,n,r){return r=r||o.random(8),e=i.create({keySize:t+n}).compute(e,r),n=o.create(e.words.slice(t),4*n),e.sigBytes=4*t,l.create({key:e,iv:n,salt:r})}},p=e.PasswordBasedCipher=d.extend({cfg:d.cfg.extend({kdf:f}),encrypt:function(e,t,n,r){return n=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,(e=d.encrypt.call(this,e,t,n.key,r)).mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,d.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var e=C,t=e.lib.BlockCipher,n=e.algo,o=[],r=[],i=[],a=[],s=[],c=[],u=[],l=[],d=[],f=[],p=[],h=0;h<256;h++)p[h]=h<128?h<<1:h<<1^283;var m=0,v=0;for(h=0;h<256;h++){var g=(g=v^v<<1^v<<2^v<<3^v<<4)>>>8^255&g^99;o[m]=g;var y=p[r[g]=m],k=p[y],b=p[k],w=257*p[g]^16843008*g;i[m]=w<<24|w>>>8,a[m]=w<<16|w>>>16,s[m]=w<<8|w>>>24,c[m]=w,w=16843009*b^65537*k^257*y^16843008*m,u[g]=w<<24|w>>>8,l[g]=w<<16|w>>>16,d[g]=w<<8|w>>>24,f[g]=w,m?(m=y^p[p[p[b^y]]],v^=p[p[v]]):m=v=1}var x=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],i=0;i<n;i++)if(i<t)r[i]=e[i];else{var a=r[i-1];i%t?6<t&&4==i%t&&(a=o[a>>>24]<<24|o[a>>>16&255]<<16|o[a>>>8&255]<<8|o[255&a]):(a=o[(a=a<<8|a>>>24)>>>24]<<24|o[a>>>16&255]<<16|o[a>>>8&255]<<8|o[255&a],a^=x[i/t|0]<<24),r[i]=r[i-t]^a}for(e=this._invKeySchedule=[],t=0;t<n;t++)i=n-t,a=t%4?r[i]:r[i-4],e[t]=t<4||i<=4?a:u[o[a>>>24]]^l[o[a>>>16&255]]^d[o[a>>>8&255]]^f[o[255&a]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,i,a,s,c,o)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,l,d,f,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var c=this._nRounds,u=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<c;h++){var m=r[u>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],v=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&u]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[u>>>8&255]^o[255&l]^n[p++];f=r[f>>>24]^i[u>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++],u=m,l=v,d=g}m=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],v=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&u])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^n[p++],f=(s[f>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=v,e[t+2]=g,e[t+3]=f},keySize:8});e.AES=t._createHelper(n)}();var o,l;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);!function(i){function e(e){return 4294967296*(e-(0|e))|0}for(var t=C,n=(a=t.lib).WordArray,r=a.Hasher,a=t.algo,o=[],h=[],s=2,c=0;c<64;){var u;e:{u=s;for(var l=i.sqrt(u),d=2;d<=l;d++)if(!(u%d)){u=!1;break e}u=!0}u&&(c<8&&(o[c]=e(i.pow(s,.5))),h[c]=e(i.pow(s,1/3)),c++),s++}var m=[];a=a.SHA256=r.extend({_doReset:function(){this._hash=new n.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],u=n[6],l=n[7],d=0;d<64;d++){if(d<16)m[d]=0|e[t+d];else{var f=m[d-15],p=m[d-2];m[d]=((f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3)+m[d-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+m[d-16]}f=l+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&c^~s&u)+h[d]+m[d],p=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&a^i&a),l=u,u=c,c=s,s=o+f|0,o=a,a=i,i=r,r=f+p|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+u|0,n[7]=n[7]+l|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=i.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(a),t.HmacSHA256=r._createHmacHelper(a)}(Math),l=(o=C).enc.Utf8,o.algo.HMAC=o.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=l.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),o=i.words,s=a.words,c=0;c<n;c++)o[c]^=1549556828,s[c]^=909522486;i.sigBytes=a.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}});var s,d,f,p,h,m;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);d=(s=C).lib,f=d.Base,p=d.WordArray,(s=s.x64={}).Word=f.extend({init:function(e,t){this.high=e,this.low=t}}),s.WordArray=f.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:8*e.length},toX32:function(){for(var e=this.words,t=e.length,n=[],r=0;r<t;r++){var i=e[r];n.push(i.high),n.push(i.low)}return p.create(n,this.sigBytes)},clone:function(){for(var e=f.clone.call(this),t=e.words=this.words.slice(0),n=t.length,r=0;r<n;r++)t[r]=t[r].clone();return e}}),function(){function e(){return r.create.apply(r,arguments)}for(var t=C,n=t.lib.Hasher,r=(a=t.x64).Word,i=a.WordArray,a=t.algo,te=[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)],ne=[],o=0;o<80;o++)ne[o]=e();a=a.SHA512=n.extend({_doReset:function(){this._hash=new i.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=(u=this._hash.words)[0],r=u[1],i=u[2],a=u[3],o=u[4],s=u[5],c=u[6],u=u[7],l=n.high,d=n.low,f=r.high,p=r.low,h=i.high,m=i.low,v=a.high,g=a.low,y=o.high,k=o.low,b=s.high,w=s.low,x=c.high,S=c.low,$=u.high,_=u.low,M=l,I=d,C=f,A=p,D=h,R=m,E=v,P=g,O=y,T=k,F=b,L=w,N=x,B=S,H=$,U=_,j=0;j<80;j++){var z=ne[j];if(j<16)var V=z.high=0|e[t+2*j],K=z.low=0|e[t+2*j+1];else{V=((K=(V=ne[j-15]).high)>>>1|(q=V.low)<<31)^(K>>>8|q<<24)^K>>>7;var q=(q>>>1|K<<31)^(q>>>8|K<<24)^(q>>>7|K<<25),W=((K=(W=ne[j-2]).high)>>>19|(J=W.low)<<13)^(K<<3|J>>>29)^K>>>6,J=(J>>>19|K<<13)^(J<<3|K>>>29)^(J>>>6|K<<26),G=(K=ne[j-7]).high,Y=(X=ne[j-16]).high,X=X.low;V=(V=(V=V+G+((K=q+K.low)>>>0<q>>>0?1:0))+W+((K=K+J)>>>0<J>>>0?1:0))+Y+((K=K+X)>>>0<X>>>0?1:0);z.high=V,z.low=K}G=O&F^~O&N,X=T&L^~T&B,z=M&C^M&D^C&D;var Z=I&A^I&R^A&R,Q=(q=(M>>>28|I<<4)^(M<<30|I>>>2)^(M<<25|I>>>7),W=(I>>>28|M<<4)^(I<<30|M>>>2)^(I<<25|M>>>7),(J=te[j]).high),ee=J.low;Y=H+((O>>>14|T<<18)^(O>>>18|T<<14)^(O<<23|T>>>9))+((J=U+((T>>>14|O<<18)^(T>>>18|O<<14)^(T<<23|O>>>9)))>>>0<U>>>0?1:0),H=N,U=B,N=F,B=L,F=O,L=T,O=E+(Y=(Y=(Y=Y+G+((J=J+X)>>>0<X>>>0?1:0))+Q+((J=J+ee)>>>0<ee>>>0?1:0))+V+((J=J+K)>>>0<K>>>0?1:0))+((T=P+J|0)>>>0<P>>>0?1:0)|0,E=D,P=R,D=C,R=A,C=M,A=I,M=Y+(z=q+z+((K=W+Z)>>>0<W>>>0?1:0))+((I=J+K|0)>>>0<J>>>0?1:0)|0}d=n.low=d+I,n.high=l+M+(d>>>0<I>>>0?1:0),p=r.low=p+A,r.high=f+C+(p>>>0<A>>>0?1:0),m=i.low=m+R,i.high=h+D+(m>>>0<R>>>0?1:0),g=a.low=g+P,a.high=v+E+(g>>>0<P>>>0?1:0),k=o.low=k+T,o.high=y+O+(k>>>0<T>>>0?1:0),w=s.low=w+L,s.high=b+F+(w>>>0<L>>>0?1:0),S=c.low=S+B,c.high=x+N+(S>>>0<B>>>0?1:0),_=u.low=_+U,u.high=$+H+(_>>>0<U>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(128+r>>>10<<5)]=Math.floor(n/4294967296),t[31+(128+r>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),t.SHA512=n._createHelper(a),t.HmacSHA512=n._createHmacHelper(a)}(),m=(h=C).enc.Utf8,h.algo.HMAC=h.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=m.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),o=i.words,s=a.words,c=0;c<n;c++)o[c]^=1549556828,s[c]^=909522486;i.sigBytes=a.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}});var v,g,y,k,b,w,x,S,$,M,I,A,D;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);g=(b=(v=C).lib).WordArray,y=b.Hasher,k=[],b=v.algo.SHA1=y.extend({_doReset:function(){this._hash=new g.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=0;c<80;c++){if(c<16)k[c]=0|e[t+c];else{var u=k[c-3]^k[c-8]^k[c-14]^k[c-16];k[c]=u<<1|u>>>31}u=(r<<5|r>>>27)+s+k[c],u=c<20?u+(1518500249+(i&a|~i&o)):c<40?u+(1859775393+(i^a^o)):c<60?u+((i&a|i&o|a&o)-1894007588):u+((i^a^o)-899497514),s=o,o=a,a=i<<30|i>>>2,i=r,r=u}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=Math.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=y.clone.call(this);return e._hash=this._hash.clone(),e}}),v.SHA1=y._createHelper(b),v.HmacSHA1=y._createHmacHelper(b),x=(w=C).enc.Utf8,w.algo.HMAC=w.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=x.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),o=i.words,s=a.words,c=0;c<n;c++)o[c]^=1549556828,s[c]^=909522486;i.sigBytes=a.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}}),M=(S=($=C).lib).Base,I=S.WordArray,A=(S=$.algo).HMAC,D=S.PBKDF2=M.extend({cfg:M.extend({keySize:4,hasher:S.SHA1,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){var n=this.cfg,r=A.create(n.hasher,e),i=I.create(),a=I.create([1]),o=i.words,s=a.words,c=n.keySize;for(n=n.iterations;o.length<c;){var u=r.update(t).finalize(a);r.reset();for(var l=u.words,d=l.length,f=u,p=1;p<n;p++){f=r.finalize(f),r.reset();for(var h=f.words,m=0;m<d;m++)l[m]^=h[m]}i.concat(u),s[0]++}return i.sigBytes=4*c,i}}),$.PBKDF2=function(e,t,n){return D.create(n).compute(e,t)};var R,E,P,O,T;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);function F(e,t){return!t||"object"!==H(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function L(e){return(L=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function U(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function H(e){return(H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function z(s){return function(){var e=this,o=arguments;return new Promise(function(t,n){var r=s.apply(e,o);function i(e){j(r,t,n,i,a,"next",e)}function a(e){j(r,t,n,i,a,"throw",e)}i(void 0)})}}function V(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function K(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function q(e,t,n){return t&&K(e.prototype,t),n&&K(e,n),e}E=(T=(R=C).lib).WordArray,P=T.Hasher,O=[],T=R.algo.SHA1=P.extend({_doReset:function(){this._hash=new E.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=0;c<80;c++){if(c<16)O[c]=0|e[t+c];else{var u=O[c-3]^O[c-8]^O[c-14]^O[c-16];O[c]=u<<1|u>>>31}u=(r<<5|r>>>27)+s+O[c],u=c<20?u+(1518500249+(i&a|~i&o)):c<40?u+(1859775393+(i^a^o)):c<60?u+((i&a|i&o|a&o)-1894007588):u+((i^a^o)-899497514),s=o,o=a,a=i<<30|i>>>2,i=r,r=u}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=Math.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=P.clone.call(this);return e._hash=this._hash.clone(),e}}),R.SHA1=P._createHelper(T),R.HmacSHA1=P._createHmacHelper(T),Object.defineProperty(we,"__esModule",{value:!0}),we.StandardFile=we.SFItemTransformer=we.SFCryptoWeb=we.SFCryptoJS=we.SFAbstractCrypto=we.SFItemHistoryEntry=we.SFItemHistory=we.SFHistorySession=we.SFPrivileges=we.SFPredicate=we.SFItemParams=we.SFItem=we.SFSyncManager=we.SFStorageManager=we.SFSingletonManager=we.SFSessionHistoryManager=we.SFPrivilegesManager=we.SFModelManager=we.SFMigrationManager=we.SFHttpManager=we.SFAuthManager=we.SFAlertManager=void 0;var W=function(){function e(){V(this,e)}var t,n;return q(e,[{key:"alert",value:(n=z(regeneratorRuntime.mark(function e(n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){window.alert(n.text),e()}));case 1:case"end":return e.stop()}},e)})),function(e){return n.apply(this,arguments)})},{key:"confirm",value:(t=z(regeneratorRuntime.mark(function e(n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){window.confirm(n.text)?e():t()}));case 1:case"end":return e.stop()}},e)})),function(e){return t.apply(this,arguments)})}]),e}();we.SFAlertManager=W;var J=function(){function k(e,t,n,r){V(this,k),k.DidSignOutEvent="DidSignOutEvent",k.WillSignInEvent="WillSignInEvent",k.DidSignInEvent="DidSignInEvent",this.httpManager=t,this.storageManager=e,this.alertManager=n||new W,this.$timeout=r||setTimeout.bind(window),this.eventHandlers=[]}var a,o,s,r,e,t,n,i,c,u;return q(k,[{key:"addEventHandler",value:function(e){return this.eventHandlers.push(e),e}},{key:"removeEventHandler",value:function(e){_.pull(this.eventHandlers,e)}},{key:"notifyEvent",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.eventHandlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){(0,a.value)(e,t||{})}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"saveKeys",value:(u=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this._keys=t,e.next=3,this.storageManager.setItem("mk",t.mk);case 3:return e.next=5,this.storageManager.setItem("ak",t.ak);case 5:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"signout",value:(c=z(regeneratorRuntime.mark(function e(t){var n=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._keys=null,this._authParams=null,t)return e.abrupt("return",this.storageManager.clearAllData().then(function(){n.notifyEvent(k.DidSignOutEvent)}));e.next=6;break;case 6:this.notifyEvent(k.DidSignOutEvent);case 7:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"keys",value:(i=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._keys){e.next=11;break}return e.next=3,this.storageManager.getItem("mk");case 3:if(t=e.sent){e.next=6;break}return e.abrupt("return",null);case 6:return e.t0=t,e.next=9,this.storageManager.getItem("ak");case 9:e.t1=e.sent,this._keys={mk:e.t0,ak:e.t1};case 11:return e.abrupt("return",this._keys);case 12:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"getAuthParams",value:(n=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._authParams){e.next=5;break}return e.next=3,this.storageManager.getItem("auth_params");case 3:t=e.sent,this._authParams=JSON.parse(t);case 5:if(this._authParams&&!this._authParams.version)return e.next=8,this.defaultProtocolVersion();e.next=9;break;case 8:this._authParams.version=e.sent;case 9:return e.abrupt("return",this._authParams);case 10:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"defaultProtocolVersion",value:(t=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.keys();case 2:if((t=e.sent)&&t.ak)return e.abrupt("return","002");e.next=7;break;case 7:return e.abrupt("return","001");case 8:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"protocolVersion",value:(e=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAuthParams();case 2:if((t=e.sent)&&t.version)return e.abrupt("return",t.version);e.next=5;break;case 5:return e.abrupt("return",this.defaultProtocolVersion());case 6:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"getAuthParamsForEmail",value:(r=z(regeneratorRuntime.mark(function e(r,t,n){var i,a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(i=_.merge({email:t},n)).api=Y.getApiVersion(),e.abrupt("return",new Promise(function(t,e){var n=r+"/auth/params";a.httpManager.getAbsolute(n,i,function(e){t(e)},function(e){console.error("Error getting auth params",e),"object"!==H(e)&&(e={error:{message:"A server error occurred while trying to sign in. Please try again."}}),t(e)})}));case 3:case"end":return e.stop()}},e)})),function(e,t,n){return r.apply(this,arguments)})},{key:"lock",value:function(){this.locked=!0}},{key:"unlock",value:function(){this.locked=!1}},{key:"isLocked",value:function(){return 1==this.locked}},{key:"unlockAndResolve",value:function(e,t){this.unlock(),e(t)}},{key:"login",value:(s=z(regeneratorRuntime.mark(function e(p,h,m,v,g){var y=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o,s,c,u,l,d,f;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,y.keys();case 2:if(null!=e.sent)return n({error:{message:"Cannot log in because already signed in."}}),e.abrupt("return");e.next=6;break;case 6:if(y.isLocked())return n({error:{message:"Login already in progress."}}),e.abrupt("return");e.next=9;break;case 9:return y.lock(),y.notifyEvent(k.WillSignInEvent),e.next=13,y.getAuthParamsForEmail(p,h,g);case 13:if((r=e.sent).identifier=h,r.error)return y.unlockAndResolve(n,r),e.abrupt("return");e.next=18;break;case 18:if(r&&r.pw_cost){e.next=21;break}return y.unlockAndResolve(n,{error:{message:"Invalid email or password."}}),e.abrupt("return");case 21:if(SFJS.supportedVersions().includes(r.version)){e.next=25;break}return i=SFJS.isVersionNewerThanLibraryVersion(r.version)?"This version of the application does not support your newer account type. Please upgrade to the latest version of Standard Notes to sign in.":"The protocol version associated with your account is outdated and no longer supported by this application. Please visit standardnotes.org/help/security for more information.",y.unlockAndResolve(n,{error:{message:i}}),e.abrupt("return");case 25:if(SFJS.isProtocolVersionOutdated(r.version))return a="The encryption version for your account, ".concat(r.version,", is outdated and requires upgrade. You may proceed with login, but are advised to perform a security update using the web or desktop application. Please visit standardnotes.org/help/security for more information."),o=!1,e.next=30,y.alertManager.confirm({title:"Update Needed",text:a,confirmButtonText:"Sign In"}).catch(function(){y.unlockAndResolve(n,{error:{}}),o=!0});e.next=32;break;case 30:if(o)return e.abrupt("return");e.next=32;break;case 32:if(SFJS.supportsPasswordDerivationCost(r.pw_cost)){e.next=36;break}return"Your account was created on a platform with higher security capabilities than this browser supports. If we attempted to generate your login keys here, it would take hours. Please use a browser with more up to date security capabilities, like Google Chrome or Firefox, to log in.",y.unlockAndResolve(n,{error:{message:"Your account was created on a platform with higher security capabilities than this browser supports. If we attempted to generate your login keys here, it would take hours. Please use a browser with more up to date security capabilities, like Google Chrome or Firefox, to log in."}}),e.abrupt("return");case 36:if(s=SFJS.costMinimumForVersion(r.version),r.pw_cost<s)return"Unable to login due to insecure password parameters. Please visit standardnotes.org/help/security for more information.",y.unlockAndResolve(n,{error:{message:"Unable to login due to insecure password parameters. Please visit standardnotes.org/help/security for more information."}}),e.abrupt("return");e.next=41;break;case 41:if(!v){e.next=47;break}if(c=SFJS.version(),r.version!==c)return u="Strict sign in refused server sign in parameters. The latest security version is ".concat(c,", but your account is reported to have version ").concat(r.version,". If you'd like to proceed with sign in anyway, please disable strict sign in and try again."),y.unlockAndResolve(n,{error:{message:u}}),e.abrupt("return");e.next=47;break;case 47:return e.next=49,SFJS.crypto.computeEncryptionKeysForUser(m,r);case 49:l=e.sent,d=p+"/auth/sign_in",(f=_.merge({password:l.pw,email:h},g)).api=Y.getApiVersion(),y.httpManager.postAbsolute(d,f,function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,y.handleAuthResponse(t,h,p,r,l);case 2:y.notifyEvent(k.DidSignInEvent),y.$timeout(function(){return y.unlockAndResolve(n,t)});case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){console.error("Error logging in",e),"object"!==H(e)&&(e={error:{message:"A server error occurred while trying to sign in. Please try again."}}),y.$timeout(function(){return y.unlockAndResolve(n,e)})});case 54:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r,i){return s.apply(this,arguments)})},{key:"register",value:function(u,l,d){var f=this;return new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o,s,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(f.isLocked())return n({error:{message:"Register already in progress."}}),e.abrupt("return");e.next=3;break;case 3:if(8,d.length<8)return r="Your password must be at least ".concat(8," characters in length. For your security, please choose a longer password or, ideally, a passphrase, and try again."),n({error:{message:r}}),e.abrupt("return");e.next=8;break;case 8:return f.lock(),e.next=11,SFJS.crypto.generateInitialKeysAndAuthParamsForUser(l,d);case 11:i=e.sent,a=i.keys,o=i.authParams,s=u+"/auth",(c=_.merge({password:a.pw,email:l},o)).api=Y.getApiVersion(),f.httpManager.postAbsolute(s,c,function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,f.handleAuthResponse(t,l,u,o,a);case 2:f.unlockAndResolve(n,t);case 3:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){console.error("Registration error",e),"object"!==H(e)&&(e={error:{message:"A server error occurred while trying to register. Please try again."}}),f.unlockAndResolve(n,e)});case 18:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}())}},{key:"changePassword",value:(o=z(regeneratorRuntime.mark(function e(o,s,c,u,l){var d=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(d.isLocked())return n({error:{message:"Change password already in progress."}}),e.abrupt("return");e.next=3;break;case 3:d.lock(),r=u.pw,i=o+"/auth/change_pw",(a=_.merge({new_password:r,current_password:c},l)).api=Y.getApiVersion(),d.httpManager.postAuthenticatedAbsolute(i,a,function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.handleAuthResponse(t,s,null,l,u);case 2:d.unlockAndResolve(n,t);case 3:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){"object"!==H(e)&&(e={error:{message:"Something went wrong while changing your password. Your password was not changed. Please try again."}}),d.unlockAndResolve(n,e)});case 9:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r,i){return o.apply(this,arguments)})},{key:"handleAuthResponse",value:(a=z(regeneratorRuntime.mark(function e(t,n,r,i,a){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r)return e.next=3,this.storageManager.setItem("server",r);e.next=3;break;case 3:return this._authParams=i,e.next=6,this.storageManager.setItem("auth_params",JSON.stringify(i));case 6:return e.next=8,this.storageManager.setItem("jwt",t.token);case 8:return e.abrupt("return",this.saveKeys(a));case 9:case"end":return e.stop()}},e,this)})),function(e,t,n,r,i){return a.apply(this,arguments)})}]),k}();we.SFAuthManager=J;var G="undefined"!=typeof window?window:void 0!==e?e:null,Y=function(){function n(e,t){V(this,n),this.$timeout=e||setTimeout.bind(G)}var a,i,o,s,c,t;return q(n,null,[{key:"getApiVersion",value:function(){return"20190520"}}]),q(n,[{key:"setJWTRequestHandler",value:function(e){this.jwtRequestHandler=e}},{key:"setAuthHeadersForRequest",value:(t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.jwtRequestHandler();case 2:(n=e.sent)&&t.setRequestHeader("Authorization","Bearer "+n);case 4:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"postAbsolute",value:(c=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("post",t,n,r,i));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return c.apply(this,arguments)})},{key:"postAuthenticatedAbsolute",value:(s=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("post",t,n,r,i,!0));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return s.apply(this,arguments)})},{key:"patchAbsolute",value:(o=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("patch",t,n,r,i));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return o.apply(this,arguments)})},{key:"getAbsolute",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("get",t,n,r,i));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"httpRequest",value:(a=z(regeneratorRuntime.mark(function e(i,a,o,s,c){var u,l=this,t=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return u=5<t.length&&void 0!==t[5]&&t[5],e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(t,n){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=new XMLHttpRequest).onreadystatechange=function(){if(4==r.readyState){var e=r.responseText;if(e)try{e=JSON.parse(e)}catch(e){}200<=r.status&&r.status<=299?l.$timeout(function(){s(e),t(e)}):(console.error("Request error:",e),l.$timeout(function(){c(e,r.status),n(e)}))}},"get"==i&&0<Object.keys(o).length&&(a=l.urlForUrlAndParams(a,o)),r.open(i,a,!0),r.setRequestHeader("Content-type","application/json"),u)return e.next=8,l.setAuthHeadersForRequest(r);e.next=8;break;case 8:"post"==i||"patch"==i?r.send(JSON.stringify(o)):r.send();case 9:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 2:case"end":return e.stop()}},e)})),function(e,t,n,r,i){return a.apply(this,arguments)})},{key:"urlForUrlAndParams",value:function(e,t){var n=Object.keys(t).map(function(e){return e+"="+encodeURIComponent(t[e])}).join("&");return e.includes("?")?e+"&"+n:e+"?"+n}}]),n}();we.SFHttpManager=Y;var X=function(){function r(e,t,n,f){var p=this;V(this,r),this.modelManager=e,this.syncManager=t,this.storageManager=n,this.completionHandlers=[],this.loadMigrations();var h=!1,m=f.addEventHandler(function(e){e==J.DidSignInEvent&&(h=!0)});this.receivedLocalDataEvent=t.initialDataLoaded(),this.syncManager.addEventHandler(function(){var n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(i="sync:completed"==t,!(r="local-data-loaded"==t)&&!i){e.next=40;break}if(r?p.receivedLocalDataEvent=!0:i&&(p.receivedSyncCompletedEvent=!0),!p.receivedLocalDataEvent||!p.receivedSyncCompletedEvent){e.next=40;break}if(h)return h=!1,f.removeEventHandler(m),e.next=10,p.getCompletedMigrations();e.next=39;break;case 10:a=e.sent.slice(),s=!(o=!0),c=void 0,e.prev=14,u=a[Symbol.iterator]();case 16:if(o=(l=u.next()).done){e.next=25;break}return d=l.value,e.next=20,p.migrationForEncodedName(d);case 20:e.sent.runOnlyOnce||_.pull(p._completed,d);case 22:o=!0,e.next=16;break;case 25:e.next=31;break;case 27:e.prev=27,e.t0=e.catch(14),s=!0,c=e.t0;case 31:e.prev=31,e.prev=32,o||null==u.return||u.return();case 34:if(e.prev=34,s)throw c;e.next=37;break;case 37:return e.finish(34);case 38:return e.finish(31);case 39:p.runPendingMigrations();case 40:case"end":return e.stop()}},e,null,[[14,27,31,39],[32,,34,38]])}));return function(e,t){return n.apply(this,arguments)}}())}var n,t,e,i,a,o,s,c;return q(r,[{key:"addCompletionHandler",value:function(e){this.completionHandlers.push(e)}},{key:"removeCompletionHandler",value:function(e){_.pull(this.completionHandlers,e)}},{key:"migrationForEncodedName",value:(c=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.decode(t);case 2:return n=e.sent,e.abrupt("return",this.migrations.find(function(e){return e.name==n}));case 4:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"loadMigrations",value:function(){this.migrations=this.registeredMigrations()}},{key:"registeredMigrations",value:function(){}},{key:"runPendingMigrations",value:(s=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getPendingMigrations();case 2:for(t=e.sent,r=!(n=!0),i=void 0,e.prev=6,a=t[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)(s=o.value).items=[];e.next=14;break;case 10:e.prev=10,e.t0=e.catch(6),r=!0,i=e.t0;case 14:e.prev=14,e.prev=15,n||null==a.return||a.return();case 17:if(e.prev=17,r)throw i;e.next=20;break;case 20:return e.finish(17);case 21:return e.finish(14);case 22:u=!(c=!0),l=void 0,e.prev=25,d=this.modelManager.allNondummyItems[Symbol.iterator]();case 27:if(c=(f=d.next()).done){e.next=51;break}for(p=f.value,m=!(h=!0),v=void 0,e.prev=32,g=t[Symbol.iterator]();!(h=(y=g.next()).done);h=!0)s=y.value,p.content_type==s.content_type&&s.items.push(p);e.next=40;break;case 36:e.prev=36,e.t1=e.catch(32),m=!0,v=e.t1;case 40:e.prev=40,e.prev=41,h||null==g.return||g.return();case 43:if(e.prev=43,m)throw v;e.next=46;break;case 46:return e.finish(43);case 47:return e.finish(40);case 48:c=!0,e.next=27;break;case 51:e.next=57;break;case 53:e.prev=53,e.t2=e.catch(25),u=!0,l=e.t2;case 57:e.prev=57,e.prev=58,c||null==d.return||d.return();case 60:if(e.prev=60,u)throw l;e.next=63;break;case 63:return e.finish(60);case 64:return e.finish(57);case 65:b=!(k=!0),w=void 0,e.prev=68,x=t[Symbol.iterator]();case 70:if(k=(S=x.next()).done){e.next=81;break}if((s=S.value).items&&0<s.items.length||s.customHandler)return e.next=75,this.runMigration(s,s.items);e.next=77;break;case 75:e.next=78;break;case 77:this.markMigrationCompleted(s);case 78:k=!0,e.next=70;break;case 81:e.next=87;break;case 83:e.prev=83,e.t3=e.catch(68),b=!0,w=e.t3;case 87:e.prev=87,e.prev=88,k||null==x.return||x.return();case 90:if(e.prev=90,b)throw w;e.next=93;break;case 93:return e.finish(90);case 94:return e.finish(87);case 95:for(_=!($=!0),M=void 0,e.prev=98,I=this.completionHandlers[Symbol.iterator]();!($=(C=I.next()).done);$=!0)(0,C.value)();e.next=106;break;case 102:e.prev=102,e.t4=e.catch(98),_=!0,M=e.t4;case 106:e.prev=106,e.prev=107,$||null==I.return||I.return();case 109:if(e.prev=109,_)throw M;e.next=112;break;case 112:return e.finish(109);case 113:return e.finish(106);case 114:case"end":return e.stop()}},e,this,[[6,10,14,22],[15,,17,21],[25,53,57,65],[32,36,40,48],[41,,43,47],[58,,60,64],[68,83,87,95],[88,,90,94],[98,102,106,114],[107,,109,113]])})),function(){return s.apply(this,arguments)})},{key:"encode",value:(o=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",window.btoa(t));case 1:case"end":return e.stop()}},e)})),function(e){return o.apply(this,arguments)})},{key:"decode",value:(a=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",window.atob(t));case 1:case"end":return e.stop()}},e)})),function(e){return a.apply(this,arguments)})},{key:"getCompletedMigrations",value:(i=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._completed){e.next=5;break}return e.next=3,this.storageManager.getItem("migrations");case 3:t=e.sent,this._completed=t?JSON.parse(t):[];case 5:return e.abrupt("return",this._completed);case 6:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"getPendingMigrations",value:(e=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getCompletedMigrations();case 2:t=e.sent,n=[],i=!(r=!0),a=void 0,e.prev=7,o=this.migrations[Symbol.iterator]();case 9:if(r=(s=o.next()).done){e.next=22;break}return c=s.value,e.t0=t,e.next=14,this.encode(c.name);case 14:if(e.t1=e.sent,e.t2=e.t0.indexOf.call(e.t0,e.t1),e.t3=-1,e.t2!=e.t3){e.next=19;break}n.push(c);case 19:r=!0,e.next=9;break;case 22:e.next=28;break;case 24:e.prev=24,e.t4=e.catch(7),i=!0,a=e.t4;case 28:e.prev=28,e.prev=29,r||null==o.return||o.return();case 31:if(e.prev=31,i)throw a;e.next=34;break;case 34:return e.finish(31);case 35:return e.finish(28);case 36:return e.abrupt("return",n);case 37:case"end":return e.stop()}},e,this,[[7,24,28,36],[29,,31,35]])})),function(){return e.apply(this,arguments)})},{key:"markMigrationCompleted",value:(t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getCompletedMigrations();case 2:return n=e.sent,e.t0=n,e.next=6,this.encode(t.name);case 6:e.t1=e.sent,e.t0.push.call(e.t0,e.t1),this.storageManager.setItem("migrations",JSON.stringify(n)),t.running=!1;case 10:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"runMigration",value:(n=z(regeneratorRuntime.mark(function e(t,n){var r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.running)return e.abrupt("return");e.next=2;break;case 2:if(console.log("Running migration:",t.name),t.running=!0,t.customHandler)return e.abrupt("return",t.customHandler().then(function(){r.markMigrationCompleted(t)}));e.next=8;break;case 8:return e.abrupt("return",t.handler(n).then(function(){r.markMigrationCompleted(t)}));case 9:case"end":return e.stop()}},e)})),function(e,t){return n.apply(this,arguments)})}]),r}();we.SFMigrationManager=X;var Z=function(){function A(e){V(this,A),A.MappingSourceRemoteRetrieved="MappingSourceRemoteRetrieved",A.MappingSourceRemoteSaved="MappingSourceRemoteSaved",A.MappingSourceLocalSaved="MappingSourceLocalSaved",A.MappingSourceLocalRetrieved="MappingSourceLocalRetrieved",A.MappingSourceLocalDirtied="MappingSourceLocalDirtied",A.MappingSourceComponentRetrieved="MappingSourceComponentRetrieved",A.MappingSourceDesktopInstalled="MappingSourceDesktopInstalled",A.MappingSourceRemoteActionRetrieved="MappingSourceRemoteActionRetrieved",A.MappingSourceFileImport="MappingSourceFileImport",A.isMappingSourceRetrieved=function(e){return[A.MappingSourceRemoteRetrieved,A.MappingSourceComponentRetrieved,A.MappingSourceRemoteActionRetrieved].includes(e)},this.$timeout=e||setTimeout.bind(window),this.itemSyncObservers=[],this.items=[],this.itemsHash={},this.missedReferences={},this.uuidChangeObservers=[]}var e,i,r,t,n,a,o,s,c,u,l,d;return q(A,[{key:"handleSignout",value:function(){this.items.length=0,this.itemsHash={},this.missedReferences={}}},{key:"addModelUuidChangeObserver",value:function(e,t){this.uuidChangeObservers.push({id:e,callback:t})}},{key:"notifyObserversOfUuidChange",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.uuidChangeObservers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;try{s.callback(e,t)}catch(e){console.error("Notify observers of uuid change exception:",e)}}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"alternateUUIDForItem",value:(d=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.createItem(t),e.next=3,SFJS.crypto.generateUUID();case 3:for(n.uuid=e.sent,n.informReferencesOfUUIDChange(t.uuid,n.uuid),this.informModelsOfUUIDChangeForItem(n,t.uuid,n.uuid),i=!(r=!0),a=void 0,e.prev=9,o=t.referencingObjects[Symbol.iterator]();!(r=(s=o.next()).done);r=!0)(c=s.value).setIsNoLongerBeingReferencedBy(t),t.setIsNoLongerBeingReferencedBy(c),c.addItemAsRelationship(n);e.next=17;break;case 13:e.prev=13,e.t0=e.catch(9),i=!0,a=e.t0;case 17:e.prev=17,e.prev=18,r||null==o.return||o.return();case 20:if(e.prev=20,i)throw a;e.next=23;break;case 23:return e.finish(20);case 24:return e.finish(17);case 25:return this.setItemsDirty(t.referencingObjects,!0),this.resolveReferencesForItem(n),this.loggingEnabled&&console.log(t.uuid,"--\x3e",n.uuid),t.deleted=!0,t.content.references=[],this.setItemDirty(t,!1,!1,A.MappingSourceLocalSaved),e.next=33,this.mapResponseItemsToLocalModels([t],A.MappingSourceLocalSaved);case 33:return this.addItem(n),this.setItemDirty(n,!0,!0,A.MappingSourceLocalSaved),this.notifyObserversOfUuidChange(t,n),e.abrupt("return",n);case 37:case"end":return e.stop()}},e,this,[[9,13,17,25],[18,,20,24]])})),function(e){return d.apply(this,arguments)})},{key:"informModelsOfUUIDChangeForItem",value:function(e,t,n){var r=!0,i=!1,a=void 0;try{for(var o,s=this.items[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){o.value.potentialItemOfInterestHasChangedItsUUID(e,t,n)}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}}},{key:"didSyncModelsOffline",value:function(e){this.notifySyncObserversOfModels(e,A.MappingSourceLocalSaved)}},{key:"mapResponseItemsToLocalModels",value:(l=z(regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mapResponseItemsToLocalModelsWithOptions({items:t,source:n,sourceKey:r}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return l.apply(this,arguments)})},{key:"mapResponseItemsToLocalModelsOmittingFields",value:(u=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mapResponseItemsToLocalModelsWithOptions({items:t,omitFields:n,source:r,sourceKey:i}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return u.apply(this,arguments)})},{key:"mapResponseItemsToLocalModelsWithOptions",value:(c=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C,A,D,R,E,P,O,T,F,L,N,B,H;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=t.items,r=t.omitFields,i=t.source,a=t.sourceKey,t.options,o=[],s=[],c=[],l=!(u=!0),d=void 0,e.prev=5,f=n[Symbol.iterator]();case 7:if(u=(p=f.next()).done){e.next=58;break}if(h=p.value){e.next=11;break}return e.abrupt("continue",55);case 11:if(m=!h.content&&!h.errorDecrypting,!(!h.content_type||!h.uuid)&&!m||h.deleted){e.next=16;break}return console.error("Server response item is corrupt:",h),e.abrupt("continue",55);case 16:if(!Array.isArray(r)){e.next=36;break}for(g=!(v=!0),y=void 0,e.prev=20,k=r[Symbol.iterator]();!(v=(b=k.next()).done);v=!0)w=b.value,delete h[w];e.next=28;break;case 24:e.prev=24,e.t0=e.catch(20),g=!0,y=e.t0;case 28:e.prev=28,e.prev=29,v||null==k.return||k.return();case 31:if(e.prev=31,g)throw y;e.next=34;break;case 34:return e.finish(31);case 35:return e.finish(28);case 36:if((x=this.findItem(h.uuid))&&(x.updateFromJSON(h),x.dummy=!1),S=h.content_type||x&&x.content_type,this.acceptableContentTypes&&!this.acceptableContentTypes.includes(S))return e.abrupt("continue",55);e.next=42;break;case 42:if($=!1,1!=h.deleted){e.next=50;break}if(!h.dirty){e.next=48;break}$=!0,e.next=50;break;case 48:return x&&(o.push(x),c.push(x),this.removeItemLocally(x)),e.abrupt("continue",55);case 50:x=x||this.createItem(h),this.addItem(x,$),x.errorDecrypting||c.push(x),o.push(x),s.push(h);case 55:u=!0,e.next=7;break;case 58:e.next=64;break;case 60:e.prev=60,e.t1=e.catch(5),l=!0,d=e.t1;case 64:e.prev=64,e.prev=65,u||null==f.return||f.return();case 67:if(e.prev=67,l)throw d;e.next=70;break;case 70:return e.finish(67);case 71:return e.finish(64);case 72:for(M=!(_=!0),I=void 0,e.prev=75,C=s.entries()[Symbol.iterator]();!(_=(A=C.next()).done);_=!0)D=U(A.value,2),R=D[0],E=D[1],P=o[R],E.content&&this.resolveReferencesForItem(P),P.didFinishSyncing();e.next=83;break;case 79:e.prev=79,e.t2=e.catch(75),M=!0,I=e.t2;case 83:e.prev=83,e.prev=84,_||null==C.return||C.return();case 86:if(e.prev=86,M)throw I;e.next=89;break;case 89:return e.finish(86);case 90:return e.finish(83);case 91:for(O=this.popMissedReferenceStructsForObjects(s),F=!(T=!0),L=void 0,e.prev=95,N=function(){var t=H.value,e=o.find(function(e){return e.uuid==t.reference_uuid});e&&t.for_item.addItemAsRelationship(e)},B=O[Symbol.iterator]();!(T=(H=B.next()).done);T=!0)N();e.next=104;break;case 100:e.prev=100,e.t3=e.catch(95),F=!0,L=e.t3;case 104:e.prev=104,e.prev=105,T||null==B.return||B.return();case 107:if(e.prev=107,F)throw L;e.next=110;break;case 110:return e.finish(107);case 111:return e.finish(104);case 112:return e.next=114,this.notifySyncObserversOfModels(c,i,a);case 114:return e.abrupt("return",o);case 115:case"end":return e.stop()}},e,this,[[5,60,64,72],[20,24,28,36],[29,,31,35],[65,,67,71],[75,79,83,91],[84,,86,90],[95,100,104,112],[105,,107,111]])})),function(e){return c.apply(this,arguments)})},{key:"missedReferenceBuildKey",value:function(e,t){return"".concat(e,":").concat(t)}},{key:"popMissedReferenceStructsForObjects",value:function(e){if(!e||0==e.length)return[];for(var t=[],n=[],r=e.map(function(e){return e.uuid}),i=r[0].length,a=0,o=Object.keys(this.missedReferences);a<o.length;a++){var s=o[a];r.includes(s.substring(0,i))&&(t.push(this.missedReferences[s]),n.push(s))}for(var c=0,u=n;c<u.length;c++){var l=u[c];delete this.missedReferences[l]}return t}},{key:"resolveReferencesForItem",value:function(e,t){var n=1<arguments.length&&void 0!==t&&t;if(!e.errorDecrypting){var r=e.contentObject;if(e.updateLocalRelationships(),r.references){var i=r.references.slice().map(function(e){return e.uuid}),a=this.findItems(i,!0),o=!0,s=!1,c=void 0;try{for(var u,l=a.entries()[Symbol.iterator]();!(o=(u=l.next()).done);o=!0){var d=U(u.value,2),f=d[0],p=d[1];if(p)e.addItemAsRelationship(p),n&&this.setItemDirty(p,!0);else{var h=i[f],m=this.missedReferenceBuildKey(h,e.uuid);if(!this.missedReferences[m]){var v={reference_uuid:h,for_item:e};this.missedReferences[m]=v}}}}catch(e){s=!0,c=e}finally{try{o||null==l.return||l.return()}finally{if(s)throw c}}}}}},{key:"notifySyncObserversOfModels",value:(s=z(regeneratorRuntime.mark(function e(d,f,p){var t,n,r,i,a,o,h,m=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=this.itemSyncObservers.sort(function(e,t){return e.priority<t.priority?-1:1}),r=!(n=!0),i=void 0,e.prev=4,a=regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(t=h.value,n=t.types.includes("*")?d:d.filter(function(e){return t.types.includes(e.content_type)}),r=[],i=[],o=!(a=!0),s=void 0,e.prev=6,c=n[Symbol.iterator]();!(a=(u=c.next()).done);a=!0)(l=u.value).deleted?i.push(l):r.push(l);e.next=14;break;case 10:e.prev=10,e.t0=e.catch(6),o=!0,s=e.t0;case 14:e.prev=14,e.prev=15,a||null==c.return||c.return();case 17:if(e.prev=17,o)throw s;e.next=20;break;case 20:return e.finish(17);case 21:return e.finish(14);case 22:if(0<n.length)return e.next=25,m._callSyncObserverCallbackWithTimeout(t,n,r,i,f,p);e.next=25;break;case 25:case"end":return e.stop()}},e,null,[[6,10,14,22],[15,,17,21]])}),o=t[Symbol.iterator]();case 7:if(n=(h=o.next()).done){e.next=12;break}return e.delegateYield(a(),"t0",9);case 9:n=!0,e.next=7;break;case 12:e.next=18;break;case 14:e.prev=14,e.t1=e.catch(4),r=!0,i=e.t1;case 18:e.prev=18,e.prev=19,n||null==o.return||o.return();case 21:if(e.prev=21,r)throw i;e.next=24;break;case 24:return e.finish(21);case 25:return e.finish(18);case 26:case"end":return e.stop()}},e,this,[[4,14,18,26],[19,,21,25]])})),function(e,t,n){return s.apply(this,arguments)})},{key:"_callSyncObserverCallbackWithTimeout",value:(o=z(regeneratorRuntime.mark(function e(n,r,i,a,o,s){var c=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){c.$timeout(function(){try{n.callback(r,i,a,o,s)}catch(e){console.error("Sync observer exception",e)}finally{e()}})}));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r,i,a){return o.apply(this,arguments)})},{key:"setItemDirty",value:function(e,t,n,r,i){var a=!(1<arguments.length&&void 0!==t)||t,o=2<arguments.length?n:void 0,s=3<arguments.length?r:void 0,c=4<arguments.length?i:void 0;this.setItemsDirty([e],a,o,s,c)}},{key:"setItemsDirty",value:function(e,t,n,r,i){var a=!(1<arguments.length&&void 0!==t)||t,o=2<arguments.length?n:void 0,s=3<arguments.length?r:void 0,c=4<arguments.length?i:void 0,u=!0,l=!1,d=void 0;try{for(var f,p=e[Symbol.iterator]();!(u=(f=p.next()).done);u=!0){f.value.setDirty(a,o)}}catch(e){l=!0,d=e}finally{try{u||null==p.return||p.return()}finally{if(l)throw d}}this.notifySyncObserversOfModels(e,s||A.MappingSourceLocalDirtied,c)}},{key:"createItem",value:function(e){var t=A.ContentTypeClassMapping&&A.ContentTypeClassMapping[e.content_type];return new(t=t||ce)(e)}},{key:"createDuplicateItemFromResponseItem",value:(a=z(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("function"==typeof t.setDirty)return console.error("Attempting to create conflicted copy of non-response item."),e.abrupt("return",null);e.next=3;break;case 3:return n=JSON.parse(JSON.stringify(t)),e.next=6,SFJS.crypto.generateUUID();case 6:return n.uuid=e.sent,r=this.createItem(n),e.abrupt("return",r);case 9:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"duplicateItemAndAddAsConflict",value:function(e){return this.duplicateItemWithCustomContentAndAddAsConflict({content:e.content,duplicateOf:e})}},{key:"duplicateItemWithCustomContentAndAddAsConflict",value:function(e){var t=e.content,n=e.duplicateOf,r=this.duplicateItemWithCustomContent({content:t,duplicateOf:n});return this.addDuplicatedItemAsConflict({duplicate:r,duplicateOf:n}),r}},{key:"addDuplicatedItemAsConflict",value:function(e){var t=e.duplicate,n=e.duplicateOf;this.addDuplicatedItem(t,n),t.content.conflict_of=n.uuid}},{key:"duplicateItemWithCustomContent",value:function(e){var t=e.content,n=e.duplicateOf,r=new n.constructor({content:t});return r.created_at=n.created_at,r.content_type||(r.content_type=n.content_type),r}},{key:"duplicateItemAndAdd",value:function(e){var t=this.duplicateItemWithoutAdding(e);return this.addDuplicatedItem(t,e),t}},{key:"duplicateItemWithoutAdding",value:function(e){var t=new e.constructor({content:e.content});return t.created_at=e.created_at,t.content_type||(t.content_type=e.content_type),t}},{key:"addDuplicatedItem",value:function(e,t){this.addItem(e);var n=!0,r=!1,i=void 0;try{for(var a,o=t.referencingObjects[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;s.addItemAsRelationship(e),this.setItemDirty(s,!0)}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}this.resolveReferencesForItem(e),this.setItemDirty(e,!0)}},{key:"addItem",value:function(e,t){var n=1<arguments.length&&void 0!==t&&t;this.addItems([e],n)}},{key:"addItems",value:function(e,t){var n=this;e.forEach(function(e){n.itemsHash[e.uuid]||(n.itemsHash[e.uuid]=e,n.items.push(e))})}},{key:"addItemSyncObserver",value:function(e,t,n){this.addItemSyncObserverWithPriority({id:e,types:t,callback:n,priority:1})}},{key:"addItemSyncObserverWithPriority",value:function(e){var t=e.id,n=e.priority,r=e.types,i=e.callback;Array.isArray(r)||(r=[r]),this.itemSyncObservers.push({id:t,types:r,priority:n,callback:i})}},{key:"removeItemSyncObserver",value:function(e){_.remove(this.itemSyncObservers,_.find(this.itemSyncObservers,{id:e}))}},{key:"getDirtyItems",value:function(){return this.items.filter(function(e){return 1==e.dirty&&!e.dummy&&(!e.errorDecrypting||e.deleted)})}},{key:"clearDirtyItems",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){i.value.setDirty(!1)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}},{key:"removeAndDirtyAllRelationshipsForItem",value:function(e){if(!e.errorDecrypting){var t=!0,n=!1,r=void 0;try{for(var i,a=e.content.references[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=this.findItem(o.uuid);s&&(e.removeItemAsRelationship(s),s.hasRelationshipWithItem(e)&&(s.removeItemAsRelationship(e),this.setItemDirty(s,!0)))}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}var c=!0,u=!1,l=void 0;try{for(var d,f=e.referencingObjects[Symbol.iterator]();!(c=(d=f.next()).done);c=!0){var p=d.value;p.removeItemAsRelationship(e),this.setItemDirty(p,!0)}}catch(e){u=!0,l=e}finally{try{c||null==f.return||f.return()}finally{if(u)throw l}}e.referencingObjects=[]}},{key:"setAllItemsDirty",value:function(){var e=this.allItems;this.setItemsDirty(e,!0)}},{key:"setItemToBeDeleted",value:function(e){e.deleted=!0,e.dummy||this.setItemDirty(e,!0),this.removeAndDirtyAllRelationshipsForItem(e)}},{key:"removeItemLocally",value:(n=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:_.remove(this.items,{uuid:t.uuid}),delete this.itemsHash[t.uuid],t.isBeingRemovedLocally();case 3:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"allItemsMatchingTypes",value:function(t){return this.allItems.filter(function(e){return(_.includes(t,e.content_type)||_.includes(t,"*"))&&!e.dummy})}},{key:"invalidItems",value:function(){return this.allItems.filter(function(e){return e.errorDecrypting})}},{key:"validItemsForContentType",value:function(t){return this.allItems.filter(function(e){return e.content_type==t&&!e.errorDecrypting})}},{key:"findItem",value:function(e){return this.itemsHash[e]}},{key:"findItems",value:function(e,t){var n=1<arguments.length&&void 0!==t&&t,r=[],i=!0,a=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(i=(s=c.next()).done);i=!0){var u=s.value,l=this.itemsHash[u];(l||n)&&r.push(l)}}catch(e){a=!0,o=e}finally{try{i||null==c.return||c.return()}finally{if(a)throw o}}return r}},{key:"itemsMatchingPredicate",value:function(e){return this.itemsMatchingPredicates([e])}},{key:"itemsMatchingPredicates",value:function(e){return this.filterItemsWithPredicates(this.allItems,e)}},{key:"filterItemsWithPredicates",value:function(e,s){return e.filter(function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=s[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;if(!e.satisfiesPredicate(o))return!1}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return!0})}},{key:"importItems",value:(t=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=[],r={},a=!(i=!0),o=void 0,e.prev=5,s=t[Symbol.iterator]();case 7:if(i=(c=s.next()).done){e.next=18;break}if(u=c.value,l=this.findItem(u.uuid)){e.next=13;break}return r[u.uuid]={},e.abrupt("continue",15);case 13:d=this.duplicateItemWithoutAdding(l),r[u.uuid]={frozenValue:d,itemRef:l};case 15:i=!0,e.next=7;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(5),a=!0,o=e.t0;case 24:e.prev=24,e.prev=25,i||null==s.return||s.return();case 27:if(e.prev=27,a)throw o;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:p=!(f=!0),h=void 0,e.prev=35,m=t[Symbol.iterator]();case 37:if(f=(v=m.next()).done){e.next=52;break}if(g=v.value,y=r[g.uuid],k=y.frozenValue,b=y.itemRef,k&&!b.errorDecrypting)return e.next=43,this.createDuplicateItemFromResponseItem(g);e.next=47;break;case 43:w=e.sent,g.deleted||k.isItemContentEqualWith(w)||(this.addDuplicatedItemAsConflict({duplicate:w,duplicateOf:b}),n.push(w)),e.next=49;break;case 47:n.push(g),b&&b.errorDecrypting&&(b.errorDecrypting=!1);case 49:f=!0,e.next=37;break;case 52:e.next=58;break;case 54:e.prev=54,e.t1=e.catch(35),p=!0,h=e.t1;case 58:e.prev=58,e.prev=59,f||null==m.return||m.return();case 61:if(e.prev=61,p)throw h;e.next=64;break;case 64:return e.finish(61);case 65:return e.finish(58);case 66:return e.next=68,this.mapResponseItemsToLocalModels(n,A.MappingSourceFileImport);case 68:for(x=e.sent,$=!(S=!0),_=void 0,e.prev=72,M=x[Symbol.iterator]();!(S=(I=M.next()).done);S=!0)C=I.value,this.setItemDirty(C,!0,!1),C.deleted=!1;e.next=80;break;case 76:e.prev=76,e.t2=e.catch(72),$=!0,_=e.t2;case 80:e.prev=80,e.prev=81,S||null==M.return||M.return();case 83:if(e.prev=83,$)throw _;e.next=86;break;case 86:return e.finish(83);case 87:return e.finish(80);case 88:return e.abrupt("return",x);case 89:case"end":return e.stop()}},e,this,[[5,20,24,32],[25,,27,31],[35,54,58,66],[59,,61,65],[72,76,80,88],[81,,83,87]])})),function(e){return t.apply(this,arguments)})},{key:"getAllItemsJSONData",value:(r=z(regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getJSONDataForItems(this.allItems,t,n,r));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})},{key:"getJSONDataForItems",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t.map(function(e){return new ue(e,n,r).paramsForExportFile()})).then(function(e){if(i&&0==e.length)return null;var t={items:e};return n&&(t.auth_params=r),JSON.stringify(t,null,2)}));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"computeDataIntegrityHash",value:(e=z(regeneratorRuntime.mark(function e(){var t,n,r,i;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=this.allNondummyItems.sort(function(e,t){return t.updated_at-e.updated_at}),n=t.map(function(e){return e.updatedAtTimestamp()}),r=n.join(","),e.next=6,SFJS.crypto.sha256(r);case 6:return i=e.sent,e.abrupt("return",i);case 10:return e.prev=10,e.t0=e.catch(0),console.error("Error computing data integrity hash",e.t0),e.abrupt("return",null);case 14:case"end":return e.stop()}},e,this,[[0,10]])})),function(){return e.apply(this,arguments)})},{key:"allItems",get:function(){return this.items.slice()}},{key:"allNondummyItems",get:function(){return this.items.filter(function(e){return!e.dummy})}}]),A}();we.SFModelManager=Z;var Q=function(){function l(e,t,n){V(this,l),this.modelManager=e,this.syncManager=t,this.singletonManager=n,this.loadPrivileges(),l.CredentialAccountPassword="CredentialAccountPassword",l.CredentialLocalPasscode="CredentialLocalPasscode",l.ActionManageExtensions="ActionManageExtensions",l.ActionManageBackups="ActionManageBackups",l.ActionViewProtectedNotes="ActionViewProtectedNotes",l.ActionManagePrivileges="ActionManagePrivileges",l.ActionManagePasscode="ActionManagePasscode",l.ActionDeleteNote="ActionDeleteNote",l.SessionExpiresAtKey="SessionExpiresAtKey",l.SessionLengthKey="SessionLengthKey",l.SessionLengthNone=0,l.SessionLengthFiveMinutes=300,l.SessionLengthOneHour=3600,l.SessionLengthOneWeek=604800,this.availableActions=[l.ActionViewProtectedNotes,l.ActionDeleteNote,l.ActionManagePasscode,l.ActionManageBackups,l.ActionManageExtensions,l.ActionManagePrivileges],this.availableCredentials=[l.CredentialAccountPassword,l.CredentialLocalPasscode],this.sessionLengths=[l.SessionLengthNone,l.SessionLengthFiveMinutes,l.SessionLengthOneHour,l.SessionLengthOneWeek,l.SessionLengthIndefinite]}var n,r,e,t,i,a,o,s,c,u,d,f;return q(l,[{key:"setDelegate",value:function(e){this.delegate=e}},{key:"getAvailableActions",value:function(){return this.availableActions}},{key:"getAvailableCredentials",value:function(){return this.availableCredentials}},{key:"netCredentialsForAction",value:(f=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getPrivileges();case 2:e.t0=t,n=e.sent.getCredentialsForAction(e.t0),r=[],a=!(i=!0),o=void 0,e.prev=8,s=n[Symbol.iterator]();case 10:if(i=(c=s.next()).done){e.next=27;break}if((u=c.value)==l.CredentialAccountPassword)return e.next=15,this.delegate.isOffline();e.next=19;break;case 15:e.sent||r.push(u),e.next=24;break;case 19:if(u==l.CredentialLocalPasscode)return e.next=22,this.delegate.hasLocalPasscode();e.next=24;break;case 22:e.sent&&r.push(u);case 24:i=!0,e.next=10;break;case 27:e.next=33;break;case 29:e.prev=29,e.t1=e.catch(8),a=!0,o=e.t1;case 33:e.prev=33,e.prev=34,i||null==s.return||s.return();case 36:if(e.prev=36,a)throw o;e.next=39;break;case 39:return e.finish(36);case 40:return e.finish(33);case 41:return e.abrupt("return",r);case 42:case"end":return e.stop()}},e,this,[[8,29,33,41],[34,,36,40]])})),function(e){return f.apply(this,arguments)})},{key:"loadPrivileges",value:(d=z(regeneratorRuntime.mark(function e(){var a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.loadPromise)return e.abrupt("return",this.loadPromise);e.next=2;break;case 2:return this.loadPromise=new Promise(function(r,e){var i=de.contentType(),t=new le("content_type","=",i);a.singletonManager.registerSingleton([t],function(e){a.privileges=e,r(e)},function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new de({content_type:i}),SFJS.crypto.generateUUIDSync){e.next=4;break}return e.next=4,n.initUUID();case 4:a.modelManager.addItem(n),a.modelManager.setItemDirty(n,!0),a.syncManager.sync(),t(n),r(n);case 9:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}())}),e.abrupt("return",this.loadPromise);case 4:case"end":return e.stop()}},e,this)})),function(){return d.apply(this,arguments)})},{key:"getPrivileges",value:(u=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.privileges)return e.abrupt("return",this.privileges);e.next=4;break;case 4:return e.abrupt("return",this.loadPrivileges());case 5:case"end":return e.stop()}},e,this)})),function(){return u.apply(this,arguments)})},{key:"displayInfoForCredential",value:function(e){var t={};return t[l.CredentialAccountPassword]={label:"Account Password",prompt:"Please enter your account password."},t[l.CredentialLocalPasscode]={label:"Local Passcode",prompt:"Please enter your local passcode."},t[e]}},{key:"displayInfoForAction",value:function(e){var t={};return t[l.ActionManageExtensions]={label:"Manage Extensions"},t[l.ActionManageBackups]={label:"Download/Import Backups"},t[l.ActionViewProtectedNotes]={label:"View Protected Notes"},t[l.ActionManagePrivileges]={label:"Manage Privileges"},t[l.ActionManagePasscode]={label:"Manage Passcode"},t[l.ActionDeleteNote]={label:"Delete Notes"},t[e]}},{key:"getSessionLengthOptions",value:function(){return[{value:l.SessionLengthNone,label:"Don't Remember"},{value:l.SessionLengthFiveMinutes,label:"5 Minutes"},{value:l.SessionLengthOneHour,label:"1 Hour"},{value:l.SessionLengthOneWeek,label:"1 Week"}]}},{key:"setSessionLength",value:(c=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(e){var t=new Date;return t.setSeconds(t.getSeconds()+e),t}(t),e.abrupt("return",Promise.all([this.delegate.saveToStorage(l.SessionExpiresAtKey,JSON.stringify(n)),this.delegate.saveToStorage(l.SessionLengthKey,JSON.stringify(t))]));case 3:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"clearSession",value:(s=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.setSessionLength(l.SessionLengthNone));case 1:case"end":return e.stop()}},e,this)})),function(){return s.apply(this,arguments)})},{key:"getSelectedSessionLength",value:(o=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.delegate.getFromStorage(l.SessionLengthKey);case 2:if(t=e.sent)return e.abrupt("return",JSON.parse(t));e.next=7;break;case 7:return e.abrupt("return",l.SessionLengthNone);case 8:case"end":return e.stop()}},e,this)})),function(){return o.apply(this,arguments)})},{key:"getSessionExpirey",value:(a=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.delegate.getFromStorage(l.SessionExpiresAtKey);case 2:if(t=e.sent)return e.abrupt("return",new Date(JSON.parse(t)));e.next=7;break;case 7:return e.abrupt("return",new Date);case 8:case"end":return e.stop()}},e,this)})),function(){return a.apply(this,arguments)})},{key:"actionHasPrivilegesConfigured",value:(i=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.netCredentialsForAction(t);case 2:return e.t0=e.sent.length,e.abrupt("return",0<e.t0);case 4:case"end":return e.stop()}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"actionRequiresPrivilege",value:(t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSessionExpirey();case 2:if(e.sent>new Date)return e.abrupt("return",!1);e.next=5;break;case 5:return e.next=7,this.netCredentialsForAction(t);case 7:return n=e.sent,e.abrupt("return",0<n.length);case 9:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"savePrivileges",value:(e=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getPrivileges();case 2:t=e.sent,this.modelManager.setItemDirty(t,!0),this.syncManager.sync();case 5:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"authenticateAction",value:(r=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.netCredentialsForAction(t);case 2:r=e.sent,i=[],a=[],s=!(o=!0),c=void 0,e.prev=7,u=r[Symbol.iterator]();case 9:if(o=(l=u.next()).done){e.next=18;break}return d=l.value,e.next=13,this._verifyAuthenticationParameters(d,n[d]);case 13:e.sent?i.push(d):a.push(d);case 15:o=!0,e.next=9;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(7),s=!0,c=e.t0;case 24:e.prev=24,e.prev=25,o||null==u.return||u.return();case 27:if(e.prev=27,s)throw c;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:return e.abrupt("return",{success:0==a.length,successfulCredentials:i,failedCredentials:a});case 33:case"end":return e.stop()}},e,this,[[7,20,24,32],[25,,27,31]])})),function(e,t){return r.apply(this,arguments)})},{key:"_verifyAuthenticationParameters",value:(n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.delegate.verifyAccountPassword(t));case 1:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),i=function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.delegate.verifyLocalPasscode(t));case 1:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),t==l.CredentialAccountPassword)return e.abrupt("return",r(n));e.next=6;break;case 6:if(t==l.CredentialLocalPasscode)return e.abrupt("return",i(n));e.next=8;break;case 8:case"end":return e.stop()}},e)})),function(e,t){return n.apply(this,arguments)})}]),l}();we.SFPrivilegesManager=Q;var ee="sessionHistory_persist",te="sessionHistory_revisions",ne="sessionHistory_autoOptimize",re=function(){function a(e,t,n,r,i){var d=this;V(this,a),this.modelManager=e,this.storageManager=t,this.$timeout=i||setTimeout.bind(window),this.keyRequestHandler=n,this.loadFromDisk().then(function(){d.modelManager.addItemSyncObserver("session-history",r,function(e,t,n,r,i){if(r!==Z.MappingSourceLocalDirtied){var a=!0,o=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(a=(c=u.next()).done);a=!0){var l=c.value;try{d.addHistoryEntryForItem(l)}catch(e){console.log("Caught exception while trying to add item history entry",e)}}}catch(e){o=!0,s=e}finally{try{a||null==u.return||u.return()}finally{if(o)throw s}}}})})}var e,t,n,r,i,o,s;return q(a,[{key:"encryptionParams",value:(s=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.keyRequestHandler());case 1:case"end":return e.stop()}},e,this)})),function(){return s.apply(this,arguments)})},{key:"addHistoryEntryForItem",value:function(e){var t=this,n={uuid:e.uuid,content_type:e.content_type,updated_at:e.updated_at,content:e.getContentCopy()},r=this.historySession.addEntryForItem(n);this.autoOptimize&&this.historySession.optimizeHistoryForItem(e),r&&this.diskEnabled&&(this.diskTimeout&&(this.$timeout.hasOwnProperty("cancel")?this.$timeout.cancel(this.diskTimeout):clearTimeout(this.diskTimeout)),this.diskTimeout=this.$timeout(function(){t.saveToDisk()},2e3))}},{key:"historyForItem",value:function(e){return this.historySession.historyForItem(e)}},{key:"clearHistoryForItem",value:(o=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.historySession.clearItemHistory(t),e.abrupt("return",this.saveToDisk());case 2:case"end":return e.stop()}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"clearAllHistory",value:(i=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.historySession.clearAllHistory(),e.abrupt("return",this.storageManager.removeItem(te));case 2:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"toggleDiskSaving",value:(r=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.diskEnabled=!this.diskEnabled,!this.diskEnabled){e.next=6;break}this.storageManager.setItem(ee,JSON.stringify(!0)),this.saveToDisk(),e.next=8;break;case 6:return this.storageManager.setItem(ee,JSON.stringify(!1)),e.abrupt("return",this.storageManager.removeItem(te));case 8:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"saveToDisk",value:(n=z(regeneratorRuntime.mark(function e(){var t,n=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.diskEnabled){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,this.encryptionParams();case 4:t=e.sent,new ue(this.historySession,t.keys,t.auth_params).paramsForSync().then(function(e){n.storageManager.setItem(te,JSON.stringify(e))});case 7:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"loadFromDisk",value:(t=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.storageManager.getItem(ee);case 2:return(t=e.sent)&&(this.diskEnabled=JSON.parse(t)),e.next=6,this.storageManager.getItem(te);case 6:if(n=e.sent)return n=JSON.parse(n),e.next=11,this.encryptionParams();e.next=18;break;case 11:return r=e.sent,e.next=14,SFJS.itemTransformer.decryptItem(n,r.keys);case 14:i=new fe(n),this.historySession=i,e.next=19;break;case 18:this.historySession=new fe;case 19:return e.next=21,this.storageManager.getItem(ne);case 21:a=e.sent,this.autoOptimize=!a||JSON.parse(a);case 23:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"toggleAutoOptimize",value:(e=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.autoOptimize=!this.autoOptimize,this.autoOptimize?this.storageManager.setItem(ne,JSON.stringify(!0)):this.storageManager.setItem(ne,JSON.stringify(!1));case 2:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]),a}();we.SFSessionHistoryManager=re;var ie=function(){function t(i,e){var c=this;V(this,t),this.syncManager=e,this.modelManager=i,this.singletonHandlers=[],i.addItemSyncObserverWithPriority({id:"sf-singleton-manager",types:"*",priority:-1,callback:function(e,t,n,r){r!==Z.MappingSourceLocalDirtied&&c.resolveSingletons(i.allNondummyItems,null,!0)}}),e.addEventHandler(function(e,t){if("local-data-loaded"==e)c.resolveSingletons(i.allNondummyItems,null,!0),c.initialDataLoaded=!0;else if("sync:completed"==e){if(!c.initialDataLoaded)return;c.resolveSingletons(t.retrievedItems,t.savedItems)}}),i.addModelUuidChangeObserver("singleton-manager",function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=c.singletonHandlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;s.singleton&&le.ItemSatisfiesPredicates(t,s.predicates)&&(s.singleton=null,c.resolveSingletons([t]))}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}})}return q(t,[{key:"registerSingleton",value:function(e,t,n){this.singletonHandlers.push({predicates:e,resolutionCallback:t,createBlock:n})}},{key:"resolveSingletons",value:function(v,g,y){var k=this;v=v||[],g=g||[];var e=!0,t=!1,n=void 0;try{function r(){function e(){t.createBlock&&(t.pendingCreateBlockCallback=!0,t.createBlock(function(e){t.singleton=e,t.pendingCreateBlockCallback=!1,t.resolutionCallback&&t.resolutionCallback(e)}))}var t=b.value,n=t.predicates.slice(),r=k.modelManager.filterItemsWithPredicates(v,n),i=k.modelManager.filterItemsWithPredicates(g,n).length;if(0<r.length||0<i){var a=k.modelManager.itemsMatchingPredicates(n);if(2<=a.length){var o=a.sort(function(e,t){return e.errorDecrypting?1:t.errorDecrypting?-1:e.created_at<t.created_at?-1:1}),s=o[0],c=o.slice(1,o.length),u=!0,l=!1,d=void 0;try{for(var f,p=c[Symbol.iterator]();!(u=(f=p.next()).done);u=!0){var h=f.value;k.modelManager.setItemToBeDeleted(h)}}catch(e){l=!0,d=e}finally{try{u||null==p.return||p.return()}finally{if(l)throw d}}k.syncManager.sync(),t.singleton=s,t.resolutionCallback&&t.resolutionCallback(s)}else if(1==a.length){var m=a[0];m.errorDecrypting?(k.modelManager.setItemToBeDeleted(m),e()):t.singleton&&t.singleton===m||(t.singleton=m,t.resolutionCallback&&t.resolutionCallback(m))}}else t.singleton||y||t.pendingCreateBlockCallback||e()}for(var b,i=this.singletonHandlers[Symbol.iterator]();!(e=(b=i.next()).done);e=!0)r()}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}}}]),t}();we.SFSingletonManager=ie;var ae=function(){function e(){V(this,e)}var t,n,r,i,a,o,s,c,u,l;return q(e,[{key:"setItem",value:(l=z(regeneratorRuntime.mark(function e(t,n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e,t){return l.apply(this,arguments)})},{key:"getItem",value:(u=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})},{key:"removeItem",value:(c=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return c.apply(this,arguments)})},{key:"clear",value:(s=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(){return s.apply(this,arguments)})},{key:"getAllModels",value:(o=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(){return o.apply(this,arguments)})},{key:"saveModel",value:(a=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.saveModels([t]));case 1:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"saveModels",value:(i=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"deleteModel",value:(r=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return r.apply(this,arguments)})},{key:"clearAllModels",value:(n=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(){return n.apply(this,arguments)})},{key:"clearAllData",value:(t=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all([this.clear(),this.clearAllModels()]));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})}]),e}();we.SFStorageManager=ae;var oe,se=function(){function O(e,t,n,r,i){V(this,O),O.KeyRequestLoadLocal="KeyRequestLoadLocal",O.KeyRequestSaveLocal="KeyRequestSaveLocal",O.KeyRequestLoadSaveAccount="KeyRequestLoadSaveAccount",this.httpManager=n,this.modelManager=e,this.storageManager=t,this.$interval=i||setInterval.bind(window),this.$timeout=r||setTimeout.bind(window),this.syncStatus={},this.syncStatusObservers=[],this.eventHandlers=[],this.PerSyncItemUploadLimit=150,this.ServerItemDownloadLimit=150,this.MajorDataChangeThreshold=15,this.MaxDiscordanceBeforeOutOfSync=5,this.syncDiscordance=0,this.outOfSync=!1}var e,t,n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x;return q(O,[{key:"handleServerIntegrityHash",value:(x=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&0!=t.length){e.next=2;break}return e.abrupt("return",!0);case 2:return e.next=4,this.modelManager.computeDataIntegrityHash();case 4:if(n=e.sent){e.next=7;break}return e.abrupt("return",!0);case 7:if(n!==t)return this.syncDiscordance++,this.syncDiscordance>=this.MaxDiscordanceBeforeOutOfSync&&(this.outOfSync||(this.outOfSync=!0,this.notifyEvent("enter-out-of-sync"))),e.abrupt("return",!1);e.next=13;break;case 13:return this.outOfSync&&(this.outOfSync=!1,this.notifyEvent("exit-out-of-sync")),this.syncDiscordance=0,e.abrupt("return",!0);case 16:case"end":return e.stop()}},e,this)})),function(e){return x.apply(this,arguments)})},{key:"isOutOfSync",value:function(){return this.outOfSync}},{key:"getServerURL",value:(w=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.storageManager.getItem("server");case 2:if(e.t0=e.sent,e.t0){e.next=5;break}e.t0=window._default_sf_server;case 5:return e.abrupt("return",e.t0);case 6:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"getSyncURL",value:(b=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getServerURL();case 2:return e.t0=e.sent,e.abrupt("return",e.t0+"/items/sync");case 4:case"end":return e.stop()}},e,this)})),function(){return b.apply(this,arguments)})},{key:"registerSyncStatusObserver",value:function(e){var t={key:new Date,callback:e};return this.syncStatusObservers.push(t),t}},{key:"removeSyncStatusObserver",value:function(e){_.pull(this.syncStatusObservers,e)}},{key:"syncStatusDidChange",value:function(){var t=this;this.syncStatusObservers.forEach(function(e){e.callback(t.syncStatus)})}},{key:"addEventHandler",value:function(e){return this.eventHandlers.push(e),e}},{key:"removeEventHandler",value:function(e){_.pull(this.eventHandlers,e)}},{key:"notifyEvent",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.eventHandlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){(0,a.value)(e,t||{})}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"setKeyRequestHandler",value:function(e){this.keyRequestHandler=e}},{key:"getActiveKeyInfo",value:(k=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.keyRequestHandler(t));case 1:case"end":return e.stop()}},e,this)})),function(e){return k.apply(this,arguments)})},{key:"initialDataLoaded",value:function(){return!0===this._initialDataLoaded}},{key:"_sortLocalItems",value:function(e){var o=this;return e.sort(function(e,t){var n=new Date(t.updated_at)-new Date(e.updated_at),r=o.contentTypeLoadPriority,i=0,a=0;return r&&(i=r.indexOf(e.content_type),a=r.indexOf(t.content_type),-1==i&&(i=r.length),-1==a&&(a=r.length)),i==a?n:i<a?-1:1})}},{key:"loadLocalItems",value:(y=z(regeneratorRuntime.mark(function e(){var t,c,u,n,r,l=this,i=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(c=(t=0<i.length&&void 0!==i[0]?i[0]:{}).incrementalCallback,u=t.batchSize,(n=t.options)&&n.simulateHighLatency)return r=n.simulatedLatency||1e3,e.next=5,this._awaitSleep(r);e.next=5;break;case 5:if(this.loadLocalDataPromise)return e.abrupt("return",this.loadLocalDataPromise);e.next=7;break;case 7:return u=u||100,this.loadLocalDataPromise=this.storageManager.getAllModels().then(function(r){var i=(r=(r=l._sortLocalItems(r)).filter(function(e){var t=l.modelManager.findItem(e.uuid);return!t||new Date(e.dirtiedDate)>t.dirtiedDate})).length,a=0,o=[],s=function(){var e=z(regeneratorRuntime.mark(function e(){var t,n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.slice(a,a+u),e.next=3,l.handleItemsResponse(t,null,Z.MappingSourceLocalRetrieved,O.KeyRequestLoadLocal);case 3:if(n=e.sent,o.push(n),(a+=t.length)<i)return e.abrupt("return",new Promise(function(e,t){l.$timeout(function(){l.notifyEvent("local-data-incremental-load"),c&&c(a,i),s().then(e)})}));e.next=10;break;case 10:l._initialDataLoaded=!0,l.notifyEvent("local-data-loaded");case 12:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}();return s()}),e.abrupt("return",this.loadLocalDataPromise);case 10:case"end":return e.stop()}},e,this)})),function(){return y.apply(this,arguments)})},{key:"writeItemsToLocalStorage",value:(g=z(regeneratorRuntime.mark(function e(p,h){var m=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0==p.length)return e.abrupt("return");e.next=2;break;case 2:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l,d,f;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(r=[],i=[],o=!(a=!0),s=void 0,e.prev=4,c=p[Symbol.iterator]();!(a=(u=c.next()).done);a=!0)!0!==(l=u.value).deleted||l.dirty?r.push(l):i.push(l);e.next=12;break;case 8:e.prev=8,e.t0=e.catch(4),o=!0,s=e.t0;case 12:e.prev=12,e.prev=13,a||null==c.return||c.return();case 15:if(e.prev=15,o)throw s;e.next=18;break;case 18:return e.finish(15);case 19:return e.finish(12);case 20:if(0<i.length)return e.next=23,Promise.all(i.map(function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",m.storageManager.deleteModel(t));case 1:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()));e.next=23;break;case 23:return e.next=25,m.getActiveKeyInfo(O.KeyRequestSaveLocal);case 25:if(d=e.sent,0<r.length)return e.next=29,Promise.all(r.map(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new ue(t,d.keys,d.auth_params),e.next=3,n.paramsForLocalStorage();case 3:return n=e.sent,h&&delete n.dirty,e.abrupt("return",n);case 6:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}())).catch(function(e){return n(e)});e.next=33;break;case 29:return f=e.sent,e.next=32,m.storageManager.saveModels(f).catch(function(e){console.error("Error writing items",e),m.syncStatus.localError=e,m.syncStatusDidChange(),n()});case 32:m.syncStatus.localError&&(m.syncStatus.localError=null,m.syncStatusDidChange());case 33:t();case 34:case"end":return e.stop()}},e,null,[[4,8,12,20],[13,,15,19]])}));return function(e,t){return n.apply(this,arguments)}}()));case 3:case"end":return e.stop()}},e)})),function(e,t){return g.apply(this,arguments)})},{key:"syncOffline",value:(v=z(regeneratorRuntime.mark(function e(s){var t,n,r,i,a,c=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(n=!(t=!0),r=void 0,e.prev=3,i=s[Symbol.iterator]();!(t=(a=i.next()).done);t=!0)a.value.updated_at=new Date;e.next=11;break;case 7:e.prev=7,e.t0=e.catch(3),n=!0,r=e.t0;case 11:e.prev=11,e.prev=12,t||null==i.return||i.return();case 14:if(e.prev=14,n)throw r;e.next=17;break;case 17:return e.finish(14);case 18:return e.finish(11);case 19:return e.abrupt("return",this.writeItemsToLocalStorage(s,!0).then(function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=s[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;o.deleted&&c.modelManager.removeItemLocally(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return c.modelManager.clearDirtyItems(s),c.modelManager.didSyncModelsOffline(s),c.notifyEvent("sync:completed",{savedItems:s}),{saved_items:s}}));case 20:case"end":return e.stop()}},e,this,[[3,7,11,19],[12,,14,18]])})),function(e){return v.apply(this,arguments)})},{key:"markAllItemsDirtyAndSaveOffline",value:(m=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=28;break}n=this.modelManager.allNondummyItems.filter(function(e){return!e.errorDecrypting}).slice(),i=!(r=!0),a=void 0,e.prev=5,o=n[Symbol.iterator]();case 7:if(r=(s=o.next()).done){e.next=14;break}return c=s.value,e.next=11,this.modelManager.alternateUUIDForItem(c);case 11:r=!0,e.next=7;break;case 14:e.next=20;break;case 16:e.prev=16,e.t0=e.catch(5),i=!0,a=e.t0;case 20:e.prev=20,e.prev=21,r||null==o.return||o.return();case 23:if(e.prev=23,i)throw a;e.next=26;break;case 26:return e.finish(23);case 27:return e.finish(20);case 28:for(u=this.modelManager.allNondummyItems,d=!(l=!0),f=void 0,e.prev=32,p=u[Symbol.iterator]();!(l=(h=p.next()).done);l=!0)h.value.setDirty(!0);e.next=40;break;case 36:e.prev=36,e.t1=e.catch(32),d=!0,f=e.t1;case 40:e.prev=40,e.prev=41,l||null==p.return||p.return();case 43:if(e.prev=43,d)throw f;e.next=46;break;case 46:return e.finish(43);case 47:return e.finish(40);case 48:return e.abrupt("return",this.writeItemsToLocalStorage(u,!1));case 49:case"end":return e.stop()}},e,this,[[5,16,20,28],[21,,23,27],[32,36,40,48],[41,,43,47]])})),function(e){return m.apply(this,arguments)})},{key:"setSyncToken",value:(h=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this._syncToken=t,e.next=3,this.storageManager.setItem("syncToken",t);case 3:case"end":return e.stop()}},e,this)})),function(e){return h.apply(this,arguments)})},{key:"getSyncToken",value:(p=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._syncToken){e.next=4;break}return e.next=3,this.storageManager.getItem("syncToken");case 3:this._syncToken=e.sent;case 4:return e.abrupt("return",this._syncToken);case 5:case"end":return e.stop()}},e,this)})),function(){return p.apply(this,arguments)})},{key:"setCursorToken",value:(f=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._cursorToken=t)return e.next=4,this.storageManager.setItem("cursorToken",t);e.next=6;break;case 4:e.next=8;break;case 6:return e.next=8,this.storageManager.removeItem("cursorToken");case 8:case"end":return e.stop()}},e,this)})),function(e){return f.apply(this,arguments)})},{key:"getCursorToken",value:(d=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._cursorToken){e.next=4;break}return e.next=3,this.storageManager.getItem("cursorToken");case 3:this._cursorToken=e.sent;case 4:return e.abrupt("return",this._cursorToken);case 5:case"end":return e.stop()}},e,this)})),function(){return d.apply(this,arguments)})},{key:"clearQueuedCallbacks",value:function(){this._queuedCallbacks=[]}},{key:"callQueuedCallbacks",value:function(e){var t=this.queuedCallbacks;if(t.length){var n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){(0,a.value)(e)}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}this.clearQueuedCallbacks()}}},{key:"beginCheckingIfSyncIsTakingTooLong",value:function(){this.syncStatus.checker&&this.stopCheckingIfSyncIsTakingTooLong(),this.syncStatus.checker=this.$interval(function(){5<(new Date-this.syncStatus.syncStart)/1e3&&(this.notifyEvent("sync:taking-too-long"),this.stopCheckingIfSyncIsTakingTooLong())}.bind(this),500)}},{key:"stopCheckingIfSyncIsTakingTooLong",value:function(){this.$interval.hasOwnProperty("cancel")?this.$interval.cancel(this.syncStatus.checker):clearInterval(this.syncStatus.checker),this.syncStatus.checker=null}},{key:"lockSyncing",value:function(){this.syncLocked=!0}},{key:"unlockSyncing",value:function(){this.syncLocked=!1}},{key:"sync",value:(l=z(regeneratorRuntime.mark(function e(){var g,y=this,t=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(g=0<t.length&&void 0!==t[0]?t[0]:{},this.syncLocked)return console.log("Sync Locked, Returning;"),e.abrupt("return");e.next=4;break;case 4:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o,s,c,u,l,d,f,p,h,m,v;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return g=g||{},r=y.modelManager.getDirtyItems(),i=r.filter(function(e){return!y.lastDirtyItemsSave||e.dirtiedDate>y.lastDirtyItemsSave}),e.next=5,y.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 5:if(a=e.sent,o=y.syncStatus.syncOpInProgress,s=y.initialDataLoaded(),o||!s)return y.performSyncAgainOnCompletion=!0,y.lastDirtyItemsSave=new Date,e.next=13,y.writeItemsToLocalStorage(i,!1);e.next=16;break;case 13:return o&&(y.queuedCallbacks.push(n),y.loggingEnabled&&console.warn("Attempting to sync while existing sync is in progress.")),s||(y.loggingEnabled&&console.warn("(1) Attempting to perform online sync before local data has loaded"),n()),e.abrupt("return");case 16:if(y.syncStatus.syncOpInProgress=!0,a.offline)return e.abrupt("return",y.syncOffline(r).then(function(e){y.syncStatus.syncOpInProgress=!1,n(e)}).catch(function(e){y.notifyEvent("sync-exception",e)}));e.next=19;break;case 19:if(y.initialDataLoaded()){e.next=22;break}return console.error("Attempting to perform online sync before local data has loaded"),e.abrupt("return");case 22:return y.loggingEnabled&&console.log("Syncing online user."),c=y.syncStatus.needsMoreSync,y.syncStatus.syncStart=new Date,y.beginCheckingIfSyncIsTakingTooLong(),u=y.PerSyncItemUploadLimit,(l=r.slice(0,u)).length<r.length?y.syncStatus.needsMoreSync=!0:y.syncStatus.needsMoreSync=!1,c||(y.syncStatus.total=r.length,y.syncStatus.current=0),y.syncStatus.current>y.syncStatus.total&&(y.syncStatus.total=y.syncStatus.current),y.syncStatusDidChange(),e.next=34,y.writeItemsToLocalStorage(i,!1);case 34:return y.lastDirtyItemsSave=new Date,g.onPreSyncSave&&g.onPreSyncSave(),y.allRetreivedItems||(y.allRetreivedItems=[]),y.allSavedItems||(y.allSavedItems=[]),(d={}).limit=y.ServerItemDownloadLimit,g.performIntegrityCheck&&(d.compute_integrity=!0),e.prev=41,e.next=44,Promise.all(l.map(function(e){var t=new ue(e,a.keys,a.auth_params);return t.additionalFields=g.additionalFields,t.paramsForSync()})).then(function(e){d.items=e});case 44:e.next=49;break;case 46:e.prev=46,e.t0=e.catch(41),y.notifyEvent("sync-exception",e.t0);case 49:for(p=!(f=!0),h=void 0,e.prev=52,m=l[Symbol.iterator]();!(f=(v=m.next()).done);f=!0)v.value.dirtyCount=0;e.next=60;break;case 56:e.prev=56,e.t1=e.catch(52),p=!0,h=e.t1;case 60:e.prev=60,e.prev=61,f||null==m.return||m.return();case 63:if(e.prev=63,p)throw h;e.next=66;break;case 66:return e.finish(63);case 67:return e.finish(60);case 68:return e.next=70,y.getSyncToken();case 70:return d.sync_token=e.sent,e.next=73,y.getCursorToken();case 73:return d.cursor_token=e.sent,d.api=Y.getApiVersion(),y.loggingEnabled&&console.log("Syncing with params",d),e.prev=76,e.t2=y.httpManager,e.next=80,y.getSyncURL();case 80:e.t3=e.sent,e.t4=d,e.t5=function(e){y.handleSyncSuccess(l,e,g).then(function(){n(e)}).catch(function(t){console.log("Caught sync success exception:",t),y.handleSyncError(t,null,r).then(function(e){y.notifyEvent("sync-exception",t),n(e)})})},e.t6=function(e,t){y.handleSyncError(e,t,r).then(function(e){n(e)})},e.t2.postAuthenticatedAbsolute.call(e.t2,e.t3,e.t4,e.t5,e.t6),e.next=90;break;case 87:e.prev=87,e.t7=e.catch(76),console.log("Sync exception caught:",e.t7);case 90:case"end":return e.stop()}},e,null,[[41,46],[52,56,60,68],[61,,63,67],[76,87]])}));return function(e,t){return n.apply(this,arguments)}}()));case 5:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"_awaitSleep",value:(u=z(regeneratorRuntime.mark(function e(n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return console.warn("Simulating high latency sync request",n),e.abrupt("return",new Promise(function(e,t){setTimeout(function(){e()},n)}));case 2:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})},{key:"handleSyncSuccess",value:(c=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r.simulateHighLatency)return i=r.simulatedLatency||1e3,e.next=4,this._awaitSleep(i);e.next=4;break;case 4:for(this.syncStatus.error=null,this.loggingEnabled&&console.log("Sync response",n),a=this.allSavedItems.map(function(e){return e.uuid}),o=n.saved_items.map(function(e){return e.uuid}),n.retrieved_items=n.retrieved_items.filter(function(e){var t=a.includes(e.uuid),n=o.includes(e.uuid);if(t||n)return!1;var r=b.modelManager.findItem(e.uuid);return!r||!r.dirty}),s=[],u=!(c=!0),l=void 0,e.prev=13,d=t[Symbol.iterator]();!(c=(f=d.next()).done);c=!0)0==(p=f.value).dirtyCount&&s.push(p);e.next=21;break;case 17:e.prev=17,e.t0=e.catch(13),u=!0,l=e.t0;case 21:e.prev=21,e.prev=22,c||null==d.return||d.return();case 24:if(e.prev=24,u)throw l;e.next=27;break;case 27:return e.finish(24);case 28:return e.finish(21);case 29:return this.modelManager.clearDirtyItems(s),e.next=32,this.handleItemsResponse(n.retrieved_items,null,Z.MappingSourceRemoteRetrieved,O.KeyRequestLoadSaveAccount);case 32:return h=e.sent,this.allRetreivedItems=this.allRetreivedItems.concat(h),this.syncStatus.retrievedCount=this.allRetreivedItems.length,m=["content","auth_hash"],e.next=38,this.handleItemsResponse(n.saved_items,m,Z.MappingSourceRemoteSaved,O.KeyRequestLoadSaveAccount);case 38:return v=e.sent,this.allSavedItems=this.allSavedItems.concat(v),g=n.unsaved,e.next=43,this.deprecated_handleUnsavedItemsResponse(g);case 43:return e.next=45,this.handleConflictsResponse(n.conflicts);case 45:if(y=e.sent,k=y&&0<y.length,y)return e.next=50,this.writeItemsToLocalStorage(y,!1);e.next=50;break;case 50:return e.next=52,this.writeItemsToLocalStorage(v,!1);case 52:return e.next=54,this.writeItemsToLocalStorage(h,!1);case 54:if(n.integrity_hash&&!n.cursor_token)return e.next=57,this.handleServerIntegrityHash(n.integrity_hash);e.next=59;break;case 57:e.sent||this.syncDiscordance<this.MaxDiscordanceBeforeOutOfSync&&(this.performSyncAgainOnCompletion=!0);case 59:return this.syncStatus.syncOpInProgress=!1,this.syncStatus.current+=t.length,this.syncStatusDidChange(),this.setSyncToken(n.sync_token),this.setCursorToken(n.cursor_token),this.stopCheckingIfSyncIsTakingTooLong(),e.next=67,this.getCursorToken();case 67:if(e.sent||this.syncStatus.needsMoreSync)return e.abrupt("return",new Promise(function(e,t){setTimeout(function(){this.sync(r).then(e)}.bind(b),10)}));e.next=72;break;case 72:if(k)return this.performSyncAgainOnCompletion=!1,e.abrupt("return",new Promise(function(e,t){setTimeout(function(){b.sync(r).then(e)},10)}));e.next=77;break;case 77:return this.syncStatus.retrievedCount=0,this.syncStatus.current=0,this.syncStatus.total=0,this.syncStatusDidChange(),(this.allRetreivedItems.length>=this.majorDataChangeThreshold||v.length>=this.majorDataChangeThreshold||g&&g.length>=this.majorDataChangeThreshold||y&&y.length>=this.majorDataChangeThreshold)&&this.notifyEvent("major-data-change"),this.callQueuedCallbacks(n),this.notifyEvent("sync:completed",{retrievedItems:this.allRetreivedItems,savedItems:this.allSavedItems}),this.allRetreivedItems=[],this.allSavedItems=[],this.performSyncAgainOnCompletion&&(this.performSyncAgainOnCompletion=!1,setTimeout(function(){b.sync(r)},10)),e.abrupt("return",n);case 88:case"end":return e.stop()}},e,this,[[13,17,21,29],[22,,24,28]])})),function(e,t,n){return c.apply(this,arguments)})},{key:"handleSyncError",value:(s=z(regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return console.log("Sync error: ",t),401==n&&this.notifyEvent("sync-session-invalid"),t?"string"==typeof t&&(t={error:{message:t}}):t={error:{message:"Could not connect to server."}},this.syncStatus.syncOpInProgress=!1,this.syncStatus.error=t.error,this.syncStatusDidChange(),this.writeItemsToLocalStorage(r,!1),this.modelManager.didSyncModelsOffline(r),this.stopCheckingIfSyncIsTakingTooLong(),this.notifyEvent("sync:error",t.error),this.callQueuedCallbacks({error:"Sync error"}),e.abrupt("return",t);case 12:case"end":return e.stop()}},e,this)})),function(e,t,n){return s.apply(this,arguments)})},{key:"handleItemsResponse",value:(o=z(regeneratorRuntime.mark(function e(t,n,r,i){var a,o,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getActiveKeyInfo(i);case 2:return a=e.sent.keys,e.next=5,SFJS.itemTransformer.decryptMultipleItems(t,a);case 5:return e.next=7,this.modelManager.mapResponseItemsToLocalModelsOmittingFields(t,n,r);case 7:return o=e.sent,0<(s=o.filter(function(e){var t=e.errorDecryptingValueChanged;return e.errorDecryptingValueChanged=!1,t})).length&&this.writeItemsToLocalStorage(s,!1),e.abrupt("return",o);case 11:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return o.apply(this,arguments)})},{key:"refreshErroredItems",value:(a=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0<(t=this.modelManager.allNondummyItems.filter(function(e){return 1==e.errorDecrypting})).length)return e.abrupt("return",this.handleItemsResponse(t,null,Z.MappingSourceLocalRetrieved,O.KeyRequestLoadSaveAccount));e.next=3;break;case 3:case"end":return e.stop()}},e,this)})),function(){return a.apply(this,arguments)})},{key:"handleConflictsResponse",value:(i=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C,A,D,R,E,P;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&0!=t.length){e.next=2;break}return e.abrupt("return");case 2:this.loggingEnabled&&console.log("Handle Conflicted Items:",t),n={},i=!(r=!0),a=void 0,e.prev=7,o=t[Symbol.iterator]();case 9:if(r=(s=o.next()).done){e.next=21;break}if(c=s.value,u=c.server_item||c.unsaved_item,l=this.modelManager.findItem(u.uuid)){e.next=16;break}return n[u.uuid]={},e.abrupt("continue",18);case 16:d=l.getContentCopy(),n[u.uuid]={frozenContent:d,itemRef:l};case 18:r=!0,e.next=9;break;case 21:e.next=27;break;case 23:e.prev=23,e.t0=e.catch(7),i=!0,a=e.t0;case 27:e.prev=27,e.prev=28,r||null==o.return||o.return();case 30:if(e.prev=30,i)throw a;e.next=33;break;case 33:return e.finish(30);case 34:return e.finish(27);case 35:f=[],h=!(p=!0),m=void 0,e.prev=39,v=t[Symbol.iterator]();case 41:if(p=(g=v.next()).done){e.next=91;break}return y=g.value,k=y.server_item||y.unsaved_item,e.t1=SFJS.itemTransformer,e.t2=[k],e.next=48,this.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 48:return e.t3=e.sent.keys,e.next=51,e.t1.decryptMultipleItems.call(e.t1,e.t2,e.t3);case 51:if(b=n[k.uuid],w=b.frozenContent,x=b.itemRef){e.next=54;break}return e.abrupt("continue",88);case 54:if(f.push(x),"uuid_conflict"===y.type)return e.next=58,this.modelManager.alternateUUIDForItem(x);e.next=62;break;case 58:S=e.sent,f.push(S),e.next=88;break;case 62:if("sync_conflict"===y.type)return e.next=65,this.modelManager.createDuplicateItemFromResponseItem(k);e.next=86;break;case 65:if($=e.sent,_=this.modelManager.duplicateItemWithCustomContent({content:w,duplicateOf:x}),M=!_.isItemContentEqualWith($),I=!x.isItemContentEqualWith($),R=D=A=C=!1,k.deleted||x.deleted?R=!0:M?(20,(new Date-x.client_updated_at)/1e3<20?A=D=!0:R=C=!0):I?(E=!ce.AreItemContentsEqual({leftContent:x.content,rightContent:$.content,keysToIgnore:x.keysToIgnoreWhenCheckingContentEquality().concat(["references"]),appDataKeysToIgnore:x.appDataKeysToIgnoreWhenCheckingContentEquality()}),!E?D=!0:R=C=!0):R=!0,C)return e.next=77,this.modelManager.duplicateItemWithCustomContentAndAddAsConflict({content:w,duplicateOf:x});e.next=79;break;case 77:P=e.sent,f.push(P);case 79:if(A&&(this.modelManager.addDuplicatedItemAsConflict({duplicate:$,duplicateOf:x}),f.push($)),R)return e.next=83,this.modelManager.mapResponseItemsToLocalModelsOmittingFields([k],null,Z.MappingSourceRemoteRetrieved);e.next=83;break;case 83:D&&(x.updated_at=$.updated_at,x.setDirty(!0)),e.next=88;break;case 86:return console.error("Unsupported conflict type",y.type),e.abrupt("continue",88);case 88:p=!0,e.next=41;break;case 91:e.next=97;break;case 93:e.prev=93,e.t4=e.catch(39),h=!0,m=e.t4;case 97:e.prev=97,e.prev=98,p||null==v.return||v.return();case 100:if(e.prev=100,h)throw m;e.next=103;break;case 103:return e.finish(100);case 104:return e.finish(97);case 105:return e.abrupt("return",f);case 106:case"end":return e.stop()}},e,this,[[7,23,27,35],[28,,30,34],[39,93,97,105],[98,,100,104]])})),function(e){return i.apply(this,arguments)})},{key:"deprecated_handleUnsavedItemsResponse",value:(r=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&0!=t.length){e.next=2;break}return e.abrupt("return");case 2:this.loggingEnabled&&console.log("Handle Unsaved Items:",t),r=!(n=!0),i=void 0,e.prev=6,a=t[Symbol.iterator]();case 8:if(n=(o=a.next()).done){e.next=35;break}return s=o.value,c=s.item,e.t0=SFJS.itemTransformer,e.t1=[c],e.next=15,this.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 15:return e.t2=e.sent.keys,e.next=18,e.t0.decryptMultipleItems.call(e.t0,e.t1,e.t2);case 18:if(u=this.modelManager.findItem(c.uuid)){e.next=21;break}return e.abrupt("continue",32);case 21:if("uuid_conflict"===(l=s.error).tag)return e.next=25,this.modelManager.alternateUUIDForItem(u);e.next=27;break;case 25:e.next=32;break;case 27:if("sync_conflict"===l.tag)return e.next=30,this.modelManager.createDuplicateItemFromResponseItem(c);e.next=32;break;case 30:d=e.sent,c.deleted||u.isItemContentEqualWith(d)||this.modelManager.addDuplicatedItemAsConflict({duplicate:d,duplicateOf:u});case 32:n=!0,e.next=8;break;case 35:e.next=41;break;case 37:e.prev=37,e.t3=e.catch(6),r=!0,i=e.t3;case 41:e.prev=41,e.prev=42,n||null==a.return||a.return();case 44:if(e.prev=44,r)throw i;e.next=47;break;case 47:return e.finish(44);case 48:return e.finish(41);case 49:case"end":return e.stop()}},e,this,[[6,37,41,49],[42,,44,48]])})),function(e){return r.apply(this,arguments)})},{key:"stateless_downloadAllItems",value:function(e){var a=this,o=0<arguments.length&&void 0!==e?e:{};return new Promise(function(){var n=z(regeneratorRuntime.mark(function e(i,n){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={limit:o.limit||500,sync_token:o.syncToken,cursor_token:o.cursorToken,content_type:o.contentType,event:o.event,api:Y.getApiVersion()},e.prev=1,e.t0=a.httpManager,e.next=5,a.getSyncURL();case 5:e.t1=e.sent,e.t2=t,e.t3=function(){var t=z(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o.retrievedItems||(o.retrievedItems=[]),n=t.retrieved_items,e.next=4,a.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 4:return r=e.sent.keys,e.next=7,SFJS.itemTransformer.decryptMultipleItems(n,r);case 7:o.retrievedItems=o.retrievedItems.concat(n.map(function(e){return a.modelManager.createItem(e)})),o.syncToken=t.sync_token,o.cursorToken=t.cursor_token,o.cursorToken?a.stateless_downloadAllItems(o).then(i):i(o.retrievedItems);case 11:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),e.t4=function(e,t){n(e)},e.t0.postAuthenticatedAbsolute.call(e.t0,e.t1,e.t2,e.t3,e.t4),e.next=16;break;case 12:e.prev=12,e.t5=e.catch(1),console.log("Download all items exception caught:",e.t5),n(e.t5);case 16:case"end":return e.stop()}},e,null,[[1,12]])}));return function(e,t){return n.apply(this,arguments)}}())}},{key:"resolveOutOfSync",value:(n=z(regeneratorRuntime.mark(function e(){var l=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.stateless_downloadAllItems({event:"resolve-out-of-sync"}).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=[],i=!(r=!0),a=void 0,e.prev=4,o=t[Symbol.iterator]();case 6:if(r=(s=o.next()).done){e.next=18;break}if(c=s.value,!(u=l.modelManager.findItem(c.uuid))){e.next=14;break}if(!c.isItemContentEqualWith(u))return e.next=14,l.modelManager.duplicateItemAndAddAsConflict(u);e.next=14;break;case 14:n.push(c);case 15:r=!0,e.next=6;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(4),i=!0,a=e.t0;case 24:e.prev=24,e.prev=25,r||null==o.return||o.return();case 27:if(e.prev=27,i)throw a;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:return e.next=34,l.modelManager.mapResponseItemsToLocalModelsWithOptions({items:n,source:Z.MappingSourceRemoteRetrieved});case 34:return e.next=36,l.writeItemsToLocalStorage(l.modelManager.allNondummyItems);case 36:return e.abrupt("return",l.sync({performIntegrityCheck:!0}));case 37:case"end":return e.stop()}},e,null,[[4,20,24,32],[25,,27,31]])}));return function(e){return t.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"handleSignout",value:(t=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.outOfSync=!1,this.loadLocalDataPromise=null,this.performSyncAgainOnCompletion=!1,this.syncStatus.syncOpInProgress=!1,this._queuedCallbacks=[],this.syncStatus={},e.abrupt("return",this.clearSyncToken());case 7:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"clearSyncToken",value:(e=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this._syncToken=null,this._cursorToken=null,e.abrupt("return",this.storageManager.removeItem("syncToken"));case 3:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"__setLocalDataNotLoaded",value:function(){this.loadLocalDataPromise=null,this._initialDataLoaded=!1}},{key:"queuedCallbacks",get:function(){return this._queuedCallbacks||(this._queuedCallbacks=[]),this._queuedCallbacks}}]),O}();we.SFSyncManager=se;var ce=function(){function o(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};V(this,o),this.content={},this.referencingObjects=[],this.updateFromJSON(e),this.uuid||"undefined"!=typeof SFJS&&SFJS.crypto.generateUUIDSync&&(this.uuid=SFJS.crypto.generateUUIDSync()),"object"!==H(this.content)||this.content.references||(this.content.references=[])}var e;return q(o,[{key:"initUUID",value:(e=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.uuid){e.next=4;break}return e.next=3,SFJS.crypto.generateUUID();case 3:this.uuid=e.sent;case 4:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"updateFromJSON",value:function(e){if(e){this.deleted=e.deleted,this.uuid=e.uuid,this.enc_item_key=e.enc_item_key,this.auth_hash=e.auth_hash,this.auth_params=e.auth_params;for(var t=0,n=["errorDecrypting","dirty","dirtyCount","dirtiedDate","dummy"];t<n.length;t++){var r=n[t];void 0!==e[r]&&(this[r]=e[r])}if(this.dirtiedDate&&"string"==typeof this.dirtiedDate&&(this.dirtiedDate=new Date(this.dirtiedDate)),this.content_type||(this.content_type=e.content_type),e.errorDecrypting)this.content=e.content;else try{var i="string"==typeof e.content?JSON.parse(e.content):e.content;o.deepMerge(this.contentObject,i)}catch(e){console.log("Error while updating item from json",e)}e.created_at&&(this.created_at=e.created_at),e.updated_at&&(this.updated_at=e.updated_at),this.created_at?this.created_at=new Date(this.created_at):this.created_at=new Date,this.updated_at?this.updated_at=new Date(this.updated_at):this.updated_at=new Date(0),this._client_updated_at=null,e.content?this.mapContentToLocalProperties(this.contentObject):1==e.deleted&&this.handleDeletedContent()}}},{key:"mapContentToLocalProperties",value:function(){}},{key:"createContentJSONFromProperties",value:function(){var e=this.structureParams();return o.deepMerge(this.contentObject,e),e}},{key:"structureParams",value:function(){return this.getContentCopy()}},{key:"handleDeletedContent",value:function(){}},{key:"setDirty",value:function(e,t){this.dirty=e,this.dirtyCount||(this.dirtyCount=0),e?this.dirtyCount++:this.dirtyCount=0,this.dirtiedDate=new Date,e&&t?this.client_updated_at=new Date:this.hasRawClientUpdatedAtValue()||(this.client_updated_at=new Date(this.updated_at))}},{key:"updateLocalRelationships",value:function(){}},{key:"addItemAsRelationship",value:function(e){if(e.setIsBeingReferencedBy(this),!this.hasRelationshipWithItem(e)){var t=this.content.references||[];t.push({uuid:e.uuid,content_type:e.content_type}),this.content.references=t}}},{key:"removeItemAsRelationship",value:function(e){e.setIsNoLongerBeingReferencedBy(this),this.removeReferenceWithUuid(e.uuid)}},{key:"setIsBeingReferencedBy",value:function(e){_.find(this.referencingObjects,{uuid:e.uuid})||this.referencingObjects.push(e)}},{key:"setIsNoLongerBeingReferencedBy",value:function(e){_.remove(this.referencingObjects,{uuid:e.uuid}),this.hasRelationshipWithItem(e)&&(this.removeReferenceWithUuid(e.uuid),this.setDirty(!0))}},{key:"removeReferenceWithUuid",value:function(t){var e=this.content.references||[];e=e.filter(function(e){return e.uuid!=t}),this.content.references=e}},{key:"hasRelationshipWithItem",value:function(t){return null!=this.content.references.find(function(e){return e.uuid==t.uuid})}},{key:"isBeingRemovedLocally",value:function(){}},{key:"didFinishSyncing",value:function(){}},{key:"informReferencesOfUUIDChange",value:function(){}},{key:"potentialItemOfInterestHasChangedItsUUID",value:function(e,t,n){if(!this.errorDecrypting){var r=!0,i=!1,a=void 0;try{for(var o,s=this.content.references[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){var c=o.value;c.uuid==t&&(c.uuid=n,this.setDirty(!0))}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}}}},{key:"doNotEncrypt",value:function(){return!1}},{key:"setDomainDataItem",value:function(e,t,n){if(n){if(!this.errorDecrypting){this.content.appData||(this.content.appData={});var r=this.content.appData[n];(r=r||{})[e]=t,this.content.appData[n]=r}}else console.error("SFItem.AppDomain needs to be set.")}},{key:"getDomainDataItem",value:function(e,t){if(t){if(!this.errorDecrypting){this.content.appData||(this.content.appData={});var n=this.content.appData[t];return n?n[e]:null}}else console.error("SFItem.AppDomain needs to be set.")}},{key:"setAppDataItem",value:function(e,t){this.setDomainDataItem(e,t,o.AppDomain)}},{key:"getAppDataItem",value:function(e){return this.getDomainDataItem(e,o.AppDomain)}},{key:"hasRawClientUpdatedAtValue",value:function(){return null!=this.getAppDataItem("client_updated_at")}},{key:"keysToIgnoreWhenCheckingContentEquality",value:function(){return[]}},{key:"appDataKeysToIgnoreWhenCheckingContentEquality",value:function(){return["client_updated_at"]}},{key:"getContentCopy",value:function(){return JSON.parse(JSON.stringify(this.content))}},{key:"isItemContentEqualWith",value:function(e){return o.AreItemContentsEqual({leftContent:this.content,rightContent:e.content,keysToIgnore:this.keysToIgnoreWhenCheckingContentEquality(),appDataKeysToIgnore:this.appDataKeysToIgnoreWhenCheckingContentEquality()})}},{key:"satisfiesPredicate",value:function(e){return le.ItemSatisfiesPredicate(this,e)}},{key:"createdAtString",value:function(){return this.dateToLocalizedString(this.created_at)}},{key:"updatedAtString",value:function(){return this.dateToLocalizedString(this.client_updated_at)}},{key:"updatedAtTimestamp",value:function(){return this.updated_at.getTime()}},{key:"dateToLocalizedString",value:function(e){if("undefined"!=typeof Intl&&Intl.DateTimeFormat){if(!oe){var t=navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language;oe=new Intl.DateTimeFormat(t,{year:"numeric",month:"short",day:"2-digit",weekday:"long",hour:"2-digit",minute:"2-digit"})}return oe.format(e)}return e.toDateString()+" "+e.toLocaleTimeString()}},{key:"contentObject",get:function(){if(this.errorDecrypting)return this.content;if(!this.content)return this.content={},this.content;if(null!==this.content&&"object"===H(this.content))return this.content;try{var e=JSON.parse(this.content);return this.content=e,this.content}catch(e){return console.log("Error parsing json",e,this),this.content={},this.content}}},{key:"pinned",get:function(){return this.getAppDataItem("pinned")}},{key:"archived",get:function(){return this.getAppDataItem("archived")}},{key:"locked",get:function(){return this.getAppDataItem("locked")}},{key:"displayName",get:function(){return"Item"}},{key:"client_updated_at",get:function(){if(!this._client_updated_at){var e=this.getAppDataItem("client_updated_at");this._client_updated_at=e?new Date(e):new Date(this.updated_at)}return this._client_updated_at},set:function(e){this._client_updated_at=e,this.setAppDataItem("client_updated_at",e)}}],[{key:"deepMerge",value:function(e,t){return _.mergeWith(e,t,function(e,t){if(_.isArray(e))return t}),e}},{key:"AreItemContentsEqual",value:function(e){function t(e,t){if(!e)return e;var n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){delete e[a.value]}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}return e}var n=e.leftContent,r=e.rightContent,i=e.keysToIgnore,a=e.appDataKeysToIgnore;return(n=JSON.parse(JSON.stringify(n))).appData&&t(n.appData[o.AppDomain],a),n=t(n,i),(r=JSON.parse(JSON.stringify(r))).appData&&t(r.appData[o.AppDomain],a),r=t(r,i),JSON.stringify(n)===JSON.stringify(r)}}]),o}();we.SFItem=ce;var ue=function(){function r(e,t,n){if(V(this,r),this.item=e,this.keys=t,this.auth_params=n,this.keys&&!this.auth_params)throw"SFItemParams.auth_params must be supplied if supplying keys.";if(this.auth_params&&!this.auth_params.version)throw"SFItemParams.auth_params is missing version"}var e,t,n,i,a;return q(r,[{key:"paramsForExportFile",value:(a=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.forExportFile=!0,t)return e.abrupt("return",this.__params());e.next=5;break;case 5:return e.next=7,this.__params();case 7:return n=e.sent,e.abrupt("return",_.omit(n,["deleted"]));case 9:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"paramsForExtension",value:(i=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.paramsForExportFile());case 1:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"paramsForLocalStorage",value:(n=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.additionalFields=["dirty","dirtiedDate","errorDecrypting"],this.forExportFile=!0,e.abrupt("return",this.__params());case 3:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"paramsForSync",value:(t=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__params());case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"__params",value:(e=z(regeneratorRuntime.mark(function e(){var t,n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t={uuid:this.item.uuid,content_type:this.item.content_type,deleted:this.item.deleted,created_at:this.item.created_at,updated_at:this.item.updated_at},this.item.errorDecrypting){e.next=23;break}if(n=this.item.doNotEncrypt()&&!this.forExportFile,this.keys&&!n)return e.next=6,SFJS.itemTransformer.encryptItem(this.item,this.keys,this.auth_params);e.next=11;break;case 6:r=e.sent,_.merge(t,r),"001"!==this.auth_params.version&&(t.auth_hash=null),e.next=21;break;case 11:if(!this.forExportFile){e.next=15;break}e.t0=this.item.createContentJSONFromProperties(),e.next=19;break;case 15:return e.next=17,SFJS.crypto.base64(JSON.stringify(this.item.createContentJSONFromProperties()));case 17:e.t1=e.sent,e.t0="000"+e.t1;case 19:t.content=e.t0,this.forExportFile||(t.enc_item_key=null,t.auth_hash=null);case 21:e.next=26;break;case 23:t.content=this.item.content,t.enc_item_key=this.item.enc_item_key,t.auth_hash=this.item.auth_hash;case 26:return this.additionalFields&&_.merge(t,_.pick(this.item,this.additionalFields)),e.abrupt("return",t);case 28:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]),r}();we.SFItemParams=ue;var le=function(){function v(e,t,n){V(this,v),this.keypath=e,this.operator=t,this.value=n,v.IsRecursiveOperator(this.operator)&&(this.value=this.value.map(v.fromArray))}return q(v,null,[{key:"fromArray",value:function(e){return new v(e[0],e[1],e[2])}},{key:"ObjectSatisfiesPredicate",value:function(e,t){if(Array.isArray(t)&&(t=this.fromArray(t)),v.IsRecursiveOperator(t.operator)){if("and"===t.operator){var n=!0,r=!1,i=void 0;try{for(var a,o=t.value[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(!this.ObjectSatisfiesPredicate(e,s))return!1}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}return!0}if("or"===t.operator){var c=!0,u=!1,l=void 0;try{for(var d,f=t.value[Symbol.iterator]();!(c=(d=f.next()).done);c=!0){s=d.value;if(this.ObjectSatisfiesPredicate(e,s))return!0}}catch(e){u=!0,l=e}finally{try{c||null==f.return||f.return()}finally{if(u)throw l}}return!1}}var p=t.value;"string"==typeof p&&p.includes(".ago")&&(p=this.DateFromString(p));var h=t.keypath.split(".").reduce(function(e,t){return e&&e[t]},e),m=[!1,"",null,void 0,NaN];return null==h?"!="==t.operator?!m.includes(t.value):m.includes(t.value):"="==t.operator?Array.isArray(h)?JSON.stringify(h)==JSON.stringify(p):h==p:"!="==t.operator?Array.isArray(h)?JSON.stringify(h)!=JSON.stringify(p):h!==p:"<"==t.operator?h<p:">"==t.operator?p<h:"<="==t.operator?h<=p:">="==t.operator?p<=h:"startsWith"==t.operator?h.startsWith(p):"in"==t.operator?-1!=p.indexOf(h):"includes"==t.operator?this.resolveIncludesPredicate(h,p):"matches"==t.operator&&new RegExp(p).test(h)}},{key:"resolveIncludesPredicate",value:function(e,t){if("string"==typeof t)return e.includes(t);var n;n=Array.isArray(t)?v.fromArray(t):t;var r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){var c=o.value;if(this.ObjectSatisfiesPredicate(c,n))return!0}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return!1}},{key:"ItemSatisfiesPredicate",value:function(e,t){return Array.isArray(t)&&(t=v.fromArray(t)),this.ObjectSatisfiesPredicate(e,t)}},{key:"ItemSatisfiesPredicates",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(!this.ItemSatisfiesPredicate(e,s))return!1}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}return!0}},{key:"DateFromString",value:function(e){var t=e.split("."),n=t[1],r=new Date,i=parseInt(t[0]);return"days"==n?r.setDate(r.getDate()-i):"hours"==n&&r.setHours(r.getHours()-i),r}},{key:"IsRecursiveOperator",value:function(e){return["and","or"].includes(e)}}]),v}();we.SFPredicate=le;var de=function(){function n(e){var t;return V(this,n),(t=F(this,L(n).call(this,e))).content.desktopPrivileges||(t.content.desktopPrivileges={}),t}return N(n,ce),q(n,null,[{key:"contentType",value:function(){return"SN|Privileges"}}]),q(n,[{key:"setCredentialsForAction",value:function(e,t){this.content.desktopPrivileges[e]=t}},{key:"getCredentialsForAction",value:function(e){return this.content.desktopPrivileges[e]||[]}},{key:"toggleCredentialForAction",value:function(e,t){this.isCredentialRequiredForAction(e,t)?this.removeCredentialForAction(e,t):this.addCredentialForAction(e,t)}},{key:"removeCredentialForAction",value:function(e,t){_.pull(this.content.desktopPrivileges[e],t)}},{key:"addCredentialForAction",value:function(e,t){var n=this.getCredentialsForAction(e);n.push(t),this.setCredentialsForAction(e,n)}},{key:"isCredentialRequiredForAction",value:function(e,t){return this.getCredentialsForAction(e).includes(t)}}]),n}();we.SFPrivileges=de;var fe=function(){function r(e){var n;return V(this,r),(n=F(this,L(r).call(this,e))).content.itemUUIDToItemHistoryMapping||(n.content.itemUUIDToItemHistoryMapping={}),Object.keys(n.content.itemUUIDToItemHistoryMapping).forEach(function(e){var t=n.content.itemUUIDToItemHistoryMapping[e];n.content.itemUUIDToItemHistoryMapping[e]=new pe(t)}),n}return N(r,ce),q(r,[{key:"addEntryForItem",value:function(e){return this.historyForItem(e).addHistoryEntryForItem(e)}},{key:"historyForItem",value:function(e){var t=this.content.itemUUIDToItemHistoryMapping[e.uuid];return t=t||(this.content.itemUUIDToItemHistoryMapping[e.uuid]=new pe)}},{key:"clearItemHistory",value:function(e){this.historyForItem(e).clear()}},{key:"clearAllHistory",value:function(){this.content.itemUUIDToItemHistoryMapping={}}},{key:"optimizeHistoryForItem",value:function(e){var t=this.historyForItem(e);t.entries.length>r.LargeItemEntryAmountThreshold&&t.optimize()}}]),r}();(we.SFHistorySession=fe).LargeItemEntryAmountThreshold=60;var pe=function(){function c(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(V(this,c),this.entries||(this.entries=[]),e.entries){var t=!0,n=!1,r=void 0;try{for(var i,a=e.entries[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=this.createEntryForItem(o.item);s.setPreviousEntry(this.getLastEntry()),this.entries.push(s)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}}return q(c,[{key:"createEntryForItem",value:function(e){var t=c.HistoryEntryClassMapping&&c.HistoryEntryClassMapping[e.content_type];return new(t=t||he)(e)}},{key:"getLastEntry",value:function(){return this.entries[this.entries.length-1]}},{key:"addHistoryEntryForItem",value:function(e){var t=this.createEntryForItem(e),n=this.getLastEntry();if(t.setPreviousEntry(n),!t.isSameAsEntry(n))return this.entries.push(t),t}},{key:"clear",value:function(){this.entries.length=0}},{key:"optimize",value:function(){function i(e){return e.deltaSize()>c.LargeEntryDeltaThreshold}function r(e,t,n){if(n?o.push(e):-1!==(t=o.indexOf(e))&&o.splice(t,1),n&&i(e)&&-1==e.operationVector()){var r=a.entries[t-1];r&&o.push(r)}}var a=this,o=[];this.entries.forEach(function(e,t){if(0==t||t==a.entries.length-1)r(e,t,!0);else{var n=i(e);r(e,t,n)}}),this.entries=this.entries.filter(function(e,t){return-1!==o.indexOf(e)})}}]),c}();(we.SFItemHistory=pe).LargeEntryDeltaThreshold=15;var he=function(){function t(e){V(this,t),this.item=ce.deepMerge({},e),this.defaultContentKeyToDiffOn="text",this.textCharDiffLength=0,"string"==typeof this.item.updated_at&&(this.item.updated_at=new Date(this.item.updated_at))}return q(t,[{key:"setPreviousEntry",value:function(e){this.hasPreviousEntry=null!=e,this.item.content[this.defaultContentKeyToDiffOn]&&(this.textCharDiffLength=e?this.item.content[this.defaultContentKeyToDiffOn].length-e.item.content[this.defaultContentKeyToDiffOn].length:this.item.content[this.defaultContentKeyToDiffOn].length)}},{key:"operationVector",value:function(){return null!=this.textCharDiffLength?this.hasPreviousEntry&&0!=this.textCharDiffLength?this.textCharDiffLength<0?-1:1:0:1}},{key:"deltaSize",value:function(){return null!=this.textCharDiffLength?Math.abs(this.textCharDiffLength):1}},{key:"isSameAsEntry",value:function(e){if(!e)return!1;var t=new ce(this.item),n=new ce(e.item);return t.isItemContentEqualWith(n)}}]),t}();we.SFItemHistoryEntry=he;G="undefined"!=typeof window?window:void 0!==e?e:null;var me=function(){function e(){V(this,e),this.DefaultPBKDF2Length=768}var n,r,t,i,a,o,s,c,u,l,d,f,p,h,m;return q(e,[{key:"generateUUIDSync",value:function(){var e=G.crypto||G.msCrypto;if(e){var n=new Uint32Array(4);e.getRandomValues(n);var r=-1;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=n[++r>>3]>>r%8*4&15;return("x"==e?t:3&t|8).toString(16)})}var i=(new Date).getTime();return G.performance&&"function"==typeof G.performance.now&&(i+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=(i+16*Math.random())%16|0;return i=Math.floor(i/16),("x"==e?t:3&t|8).toString(16)})}},{key:"generateUUID",value:(m=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.generateUUIDSync());case 1:case"end":return e.stop()}},e,this)})),function(){return m.apply(this,arguments)})},{key:"timingSafeEqual",value:function(e,t){var n=String(e),r=String(t),i=n.length,a=0;i!==r.length&&(r=n,a=1);for(var o=0;o<i;o++)a|=n.charCodeAt(o)^r.charCodeAt(o);return 0===a}},{key:"decryptText",value:(h=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=(t=0<f.length&&void 0!==f[0]?f[0]:{}).ciphertextToAuth,r=t.contentCiphertext,i=t.encryptionKey,a=t.iv,o=t.authHash,s=t.authKey,(1<f.length?f[1]:void 0)&&!o)return console.error("Auth hash is required."),e.abrupt("return");e.next=5;break;case 5:if(o)return e.next=8,this.hmac256(n,s);e.next=12;break;case 8:if(c=e.sent,!1===this.timingSafeEqual(o,c))return console.error("Auth hash does not match, returning null."),e.abrupt("return",null);e.next=12;break;case 12:return u=C.enc.Hex.parse(i),l=C.enc.Hex.parse(a||""),d=C.AES.decrypt(r,u,{iv:l,mode:C.mode.CBC,padding:C.pad.Pkcs7}),e.abrupt("return",d.toString(C.enc.Utf8));case 16:case"end":return e.stop()}},e,this)})),function(){return h.apply(this,arguments)})},{key:"encryptText",value:(p=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=C.enc.Hex.parse(n),a=C.enc.Hex.parse(r||""),o=C.AES.encrypt(t,i,{iv:a,mode:C.mode.CBC,padding:C.pad.Pkcs7}),e.abrupt("return",o.toString());case 4:case"end":return e.stop()}},e)})),function(e,t,n){return p.apply(this,arguments)})},{key:"generateRandomKey",value:(f=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C.lib.WordArray.random(t/8).toString());case 1:case"end":return e.stop()}},e)})),function(e){return f.apply(this,arguments)})},{key:"generateItemEncryptionKey",value:(d=z(regeneratorRuntime.mark(function e(){var t,n,r,i;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=512,n=1,e.next=4,this.generateRandomKey(t);case 4:return r=e.sent,e.next=7,this.generateRandomKey(t);case 7:return i=e.sent,e.abrupt("return",this.pbkdf2(i,r,n,t));case 9:case"end":return e.stop()}},e,this)})),function(){return d.apply(this,arguments)})},{key:"firstHalfOfKey",value:(l=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.substring(0,t.length/2));case 1:case"end":return e.stop()}},e)})),function(e){return l.apply(this,arguments)})},{key:"secondHalfOfKey",value:(u=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.substring(t.length/2,t.length));case 1:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})},{key:"base64",value:(c=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",G.btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode("0x"+t)})));case 1:case"end":return e.stop()}},e)})),function(e){return c.apply(this,arguments)})},{key:"base64Decode",value:(s=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",G.atob(t));case 1:case"end":return e.stop()}},e)})),function(e){return s.apply(this,arguments)})},{key:"sha256",value:(o=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C.SHA256(t).toString());case 1:case"end":return e.stop()}},e)})),function(e){return o.apply(this,arguments)})},{key:"hmac256",value:(a=z(regeneratorRuntime.mark(function e(t,n){var r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=C.enc.Hex.parse(n),i=C.enc.Utf8.parse(t),a=C.HmacSHA256(i,r).toString(),e.abrupt("return",a);case 4:case"end":return e.stop()}},e)})),function(e,t){return a.apply(this,arguments)})},{key:"generateSalt",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sha256([t,"SF",n,r,i].join(":"));case 2:return a=e.sent,e.abrupt("return",a);case 4:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"generateSymmetricKeyPair",value:(t=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=(t=0<d.length&&void 0!==d[0]?d[0]:{}).password,r=t.pw_salt,i=t.pw_cost,e.next=3,this.pbkdf2(n,r,i,this.DefaultPBKDF2Length);case 3:return a=e.sent,o=a.length,s=o/3,c=a.slice(0,s),u=a.slice(s,2*s),l=a.slice(2*s,3*s),e.abrupt("return",[c,u,l]);case 10:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"computeEncryptionKeysForUser",value:(r=z(regeneratorRuntime.mark(function e(t,n){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("003"!=n.version){e.next=9;break}if(n.identifier){e.next=4;break}return console.error("authParams is missing identifier."),e.abrupt("return");case 4:return e.next=6,this.generateSalt(n.identifier,n.version,n.pw_cost,n.pw_nonce);case 6:r=e.sent,e.next=10;break;case 9:r=n.pw_salt;case 10:return e.abrupt("return",this.generateSymmetricKeyPair({password:t,pw_salt:r,pw_cost:n.pw_cost}).then(function(e){return{pw:e[0],mk:e[1],ak:e[2]}}));case 11:case"end":return e.stop()}},e,this)})),function(e,t){return r.apply(this,arguments)})},{key:"generateInitialKeysAndAuthParamsForUser",value:(n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.SFJS.version,i=this.SFJS.defaultPasswordGenerationCost,e.next=4,this.generateRandomKey(256);case 4:return a=e.sent,e.next=7,this.generateSalt(n,r,i,a);case 7:return o=e.sent,e.abrupt("return",this.generateSymmetricKeyPair({password:t,pw_salt:o,pw_cost:i}).then(function(e){var t={pw_nonce:a,pw_cost:i,identifier:n,version:r};return{keys:{pw:e[0],mk:e[1],ak:e[2]},authParams:t}}));case 9:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})}]),e}();we.SFAbstractCrypto=me;var ve=function(){function e(){return V(this,e),F(this,L(e).apply(this,arguments))}var i;return N(e,me),q(e,[{key:"pbkdf2",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a={keySize:i/32,hasher:C.algo.SHA512,iterations:r},e.abrupt("return",C.PBKDF2(t,n,a).toString());case 2:case"end":return e.stop()}},e)})),function(e,t,n,r){return i.apply(this,arguments)})}]),e}();we.SFCryptoJS=ve;var ge=(G="undefined"!=typeof window?window:void 0!==e?e:null).crypto?G.crypto.subtle:null,ye=function(){function e(){return V(this,e),F(this,L(e).apply(this,arguments))}var t,n,r,i,a,o,s,c,u,l,d,f,p,h;return N(e,me),q(e,[{key:"pbkdf2",value:(h=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.webCryptoImportKey(t,"PBKDF2",["deriveBits"]);case 2:if(a=e.sent){e.next=6;break}return console.log("Key is null, unable to continue"),e.abrupt("return",null);case 6:return e.abrupt("return",this.webCryptoDeriveBits(a,n,r,i));case 7:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return h.apply(this,arguments)})},{key:"generateRandomKey",value:(p=z(regeneratorRuntime.mark(function e(t){var r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return!0,e.abrupt("return",ge.generateKey({name:"AES-CBC",length:t},!0,["encrypt","decrypt"]).then(function(e){return ge.exportKey("raw",e).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.arrayBufferToHexString(new Uint8Array(t));case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){console.error("Error exporting key",e)})}).catch(function(e){console.error("Error generating key",e)}));case 2:case"end":return e.stop()}},e)})),function(e){return p.apply(this,arguments)})},{key:"generateItemEncryptionKey",value:(f=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return 256,e.abrupt("return",Promise.all([this.generateRandomKey(256),this.generateRandomKey(256)]).then(function(e){return e.join("")}));case 2:case"end":return e.stop()}},e,this)})),function(){return f.apply(this,arguments)})},{key:"encryptText",value:(d=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o,s,c,u=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r)return e.next=3,this.hexStringToArrayBuffer(r);e.next=6;break;case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=new ArrayBuffer(16);case 7:return i=e.t0,a={name:"AES-CBC",iv:i},e.next=11,this.hexStringToArrayBuffer(n);case 11:return o=e.sent,e.next=14,this.webCryptoImportKey(o,a.name,["encrypt"]);case 14:return s=e.sent,e.next=17,this.stringToArrayBuffer(t);case 17:return c=e.sent,e.abrupt("return",crypto.subtle.encrypt(a,s,c).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.arrayBufferToBase64(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()));case 19:case"end":return e.stop()}},e,this)})),function(e,t,n){return d.apply(this,arguments)})},{key:"decryptText",value:(l=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f,p,h=this,m=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=(t=0<m.length&&void 0!==m[0]?m[0]:{}).ciphertextToAuth,r=t.contentCiphertext,i=t.encryptionKey,a=t.iv,o=t.authHash,s=t.authKey,(1<m.length?m[1]:void 0)&&!o)return console.error("Auth hash is required."),e.abrupt("return");e.next=5;break;case 5:if(o)return e.next=8,this.hmac256(n,s);e.next=12;break;case 8:if(c=e.sent,!1===this.timingSafeEqual(o,c))return console.error("Auth hash does not match, returning null. ".concat(o," != ").concat(c)),e.abrupt("return",null);e.next=12;break;case 12:if(a)return e.next=15,this.hexStringToArrayBuffer(a);e.next=18;break;case 15:e.t0=e.sent,e.next=19;break;case 18:e.t0=new ArrayBuffer(16);case 19:return u=e.t0,l={name:"AES-CBC",iv:u},e.next=23,this.hexStringToArrayBuffer(i);case 23:return d=e.sent,e.next=26,this.webCryptoImportKey(d,l.name,["decrypt"]);case 26:return f=e.sent,e.next=29,this.base64ToArrayBuffer(r);case 29:return p=e.sent,e.abrupt("return",crypto.subtle.decrypt(l,f,p).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,h.arrayBufferToString(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){console.error("Error decrypting:",e)}));case 31:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"hmac256",value:(u=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.hexStringToArrayBuffer(n);case 2:return r=e.sent,e.next=5,this.webCryptoImportKey(r,"HMAC",["sign"],{name:"SHA-256"});case 5:return i=e.sent,e.next=8,this.stringToArrayBuffer(t);case 8:return a=e.sent,e.abrupt("return",crypto.subtle.sign({name:"HMAC"},i,a).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.arrayBufferToHexString(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){console.error("Error computing hmac",e)}));case 10:case"end":return e.stop()}},e,this)})),function(e,t){return u.apply(this,arguments)})},{key:"webCryptoImportKey",value:(c=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof t)return e.next=3,this.stringToArrayBuffer(t);e.next=6;break;case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=t;case 7:return a=e.t0,e.abrupt("return",ge.importKey("raw",a,{name:n,hash:i},!1,r).then(function(e){return e}).catch(function(e){return console.error(e),null}));case 9:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return c.apply(this,arguments)})},{key:"webCryptoDeriveBits",value:(s=z(regeneratorRuntime.mark(function e(t,n,r,i){var a,o=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.stringToArrayBuffer(n);case 2:return e.t0=e.sent,e.t1=r,e.t2={name:"SHA-512"},a={name:"PBKDF2",salt:e.t0,iterations:e.t1,hash:e.t2},e.abrupt("return",ge.deriveBits(a,t,i).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.arrayBufferToHexString(new Uint8Array(t));case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){return console.error(e),null}));case 7:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return s.apply(this,arguments)})},{key:"stringToArrayBuffer",value:(o=z(regeneratorRuntime.mark(function e(i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(t,e){var n=new Blob([i]),r=new FileReader;r.onload=function(e){t(e.target.result)},r.readAsArrayBuffer(n)}));case 1:case"end":return e.stop()}},e)})),function(e){return o.apply(this,arguments)})},{key:"arrayBufferToString",value:(a=z(regeneratorRuntime.mark(function e(i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(t,e){var n=new Blob([i]),r=new FileReader;r.onload=function(e){t(e.target.result)},r.readAsText(n)}));case 1:case"end":return e.stop()}},e)})),function(e){return a.apply(this,arguments)})},{key:"arrayBufferToHexString",value:(i=z(regeneratorRuntime.mark(function e(t){var n,r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(n=new Uint8Array(t),r="",a=0;a<n.byteLength;a++)(i=n[a].toString(16)).length<2&&(i="0"+i),r+=i;return e.abrupt("return",r);case 4:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"hexStringToArrayBuffer",value:(r=z(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(n=[],r=0;r<t.length;r+=2)n.push(parseInt(t.substr(r,2),16));return e.abrupt("return",new Uint8Array(n));case 2:case"end":return e.stop()}},e)})),function(e){return r.apply(this,arguments)})},{key:"base64ToArrayBuffer",value:(n=z(regeneratorRuntime.mark(function e(t){var n,r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.base64Decode(t);case 2:for(n=e.sent,r=n.length,i=new Uint8Array(r),a=0;a<r;a++)i[a]=n.charCodeAt(a);return e.abrupt("return",i.buffer);case 7:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"arrayBufferToBase64",value:(t=z(regeneratorRuntime.mark(function e(i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(n,e){var t=new Blob([i],{type:"application/octet-binary"}),r=new FileReader;r.onload=function(e){var t=e.target.result;n(t.substr(t.indexOf(",")+1))},r.readAsDataURL(t)}));case 1:case"end":return e.stop()}},e)})),function(e){return t.apply(this,arguments)})}]),e}();we.SFCryptoWeb=ye;var ke=function(){function t(e){V(this,t),this.crypto=e}var r,n,i,a;return q(t,[{key:"_private_encryptString",value:(a=z(regeneratorRuntime.mark(function e(t,n,r,i,a){var o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("001"===a.version)return e.next=3,this.crypto.encryptText(t,n,null);e.next=7;break;case 3:s=e.sent,o=a.version+s,e.next=21;break;case 7:return e.next=9,this.crypto.generateRandomKey(128);case 9:return c=e.sent,e.next=12,this.crypto.encryptText(t,n,c);case 12:return s=e.sent,u=[a.version,i,c,s].join(":"),e.next=16,this.crypto.hmac256(u,r);case 16:return l=e.sent,e.next=19,this.crypto.base64(JSON.stringify(a));case 19:d=e.sent,o=[a.version,l,i,c,s,d].join(":");case 21:return e.abrupt("return",o);case 22:case"end":return e.stop()}},e,this)})),function(e,t,n,r,i){return a.apply(this,arguments)})},{key:"encryptItem",value:(i=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o,s,c,u;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i={},e.next=3,this.crypto.generateItemEncryptionKey();case 3:if(a=e.sent,"001"===r.version)return e.next=7,this.crypto.encryptText(a,n.mk,null);e.next=10;break;case 7:i.enc_item_key=e.sent,e.next=13;break;case 10:return e.next=12,this._private_encryptString(a,n.mk,n.ak,t.uuid,r);case 12:i.enc_item_key=e.sent;case 13:return e.next=15,this.crypto.firstHalfOfKey(a);case 15:return o=e.sent,e.next=18,this.crypto.secondHalfOfKey(a);case 18:return s=e.sent,e.next=21,this._private_encryptString(JSON.stringify(t.createContentJSONFromProperties()),o,s,t.uuid,r);case 21:if(c=e.sent,"001"===r.version)return e.next=25,this.crypto.hmac256(c,s);e.next=27;break;case 25:u=e.sent,i.auth_hash=u;case 27:return i.content=c,e.abrupt("return",i);case 29:case"end":return e.stop()}},e,this)})),function(e,t,n){return i.apply(this,arguments)})},{key:"encryptionComponentsFromString",value:function(e,t,n){var r=e.substring(0,3);if("001"===r)return{contentCiphertext:e.substring(3,e.length),encryptionVersion:r,ciphertextToAuth:e,iv:null,authHash:null,encryptionKey:t,authKey:n};var i=e.split(":");return{encryptionVersion:i[0],authHash:i[1],uuid:i[2],iv:i[3],contentCiphertext:i[4],authParams:i[5],ciphertextToAuth:[i[0],i[2],i[3],i[4]].join(":"),encryptionKey:t,authKey:n}}},{key:"decryptItem",value:(n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof t.content)return e.abrupt("return");e.next=2;break;case 2:if(t.content.startsWith("000"))return e.prev=3,e.t0=JSON,e.next=7,this.crypto.base64Decode(t.content.substring(3,t.content.length));e.next=14;break;case 7:e.t1=e.sent,t.content=e.t0.parse.call(e.t0,e.t1),e.next=13;break;case 11:e.prev=11,e.t2=e.catch(3);case 13:return e.abrupt("return");case 14:if(t.enc_item_key){e.next=17;break}return console.log("Missing item encryption key, skipping decryption."),e.abrupt("return");case 17:if(r=t.enc_item_key,i=!0,r.startsWith("002")||r.startsWith("003")||(r="001"+r,i=!1),(a=this.encryptionComponentsFromString(r,n.mk,n.ak)).uuid&&a.uuid!==t.uuid)return console.error("Item key params UUID does not match item UUID"),t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,e.abrupt("return");e.next=26;break;case 26:return e.next=28,this.crypto.decryptText(a,i);case 28:if(o=e.sent){e.next=34;break}return console.log("Error decrypting item",t),t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,e.abrupt("return");case 34:return e.next=36,this.crypto.firstHalfOfKey(o);case 36:return s=e.sent,e.next=39,this.crypto.secondHalfOfKey(o);case 39:return c=e.sent,u=this.encryptionComponentsFromString(t.content,s,c),e.prev=41,e.t3=JSON,e.next=45,this.crypto.base64Decode(u.authParams);case 45:e.t4=e.sent,t.auth_params=e.t3.parse.call(e.t3,e.t4),e.next=51;break;case 49:e.prev=49,e.t5=e.catch(41);case 51:if(u.uuid&&u.uuid!==t.uuid)return t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,e.abrupt("return");e.next=55;break;case 55:return u.authHash||(u.authHash=t.auth_hash),e.next=58,this.crypto.decryptText(u,!0);case 58:(l=e.sent)?(1==t.errorDecrypting&&(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!1,t.content=l):(t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0);case 60:case"end":return e.stop()}},e,this,[[3,11],[41,49]])})),function(e,t){return n.apply(this,arguments)})},{key:"decryptMultipleItems",value:(r=z(regeneratorRuntime.mark(function e(t,n,r){var i,a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:if(1==t.deleted&&null==t.content)return e.abrupt("return");e.next=4;break;case 4:if("string"==typeof t.content||t.content instanceof String)return e.prev=6,e.next=9,a.decryptItem(t,n);e.next=19;break;case 9:e.next=19;break;case 11:if(e.prev=11,e.t0=e.catch(6),t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,r)throw e.t0;e.next=17;break;case 17:return console.error("Error decrypting item",t,e.t0),e.abrupt("return");case 19:case"end":return e.stop()}},e,null,[[6,11]])}));return function(e){return t.apply(this,arguments)}}(),e.abrupt("return",Promise.all(t.map(function(e){return i(e)})));case 2:case"end":return e.stop()}},e)})),function(e,t,n){return r.apply(this,arguments)})}]),t}();we.SFItemTransformer=ke;G="undefined"!=typeof window?window:void 0!==e?e:null;var be=function(){function t(e){V(this,t),G&&(!("undefined"!=typeof document&&document.documentMode||/Edge/.test(navigator.userAgent))&&G.crypto&&G.crypto.subtle?this.crypto=new ye:this.crypto=new ve);e&&(this.crypto=e),this.itemTransformer=new ke(this.crypto),this.crypto.SFJS={version:this.version(),defaultPasswordGenerationCost:this.defaultPasswordGenerationCost()}}return q(t,[{key:"version",value:function(){return"003"}},{key:"supportsPasswordDerivationCost",value:function(e){return!(5e3<e)||this.crypto instanceof ye}},{key:"supportedVersions",value:function(){return["001","002","003"]}},{key:"isVersionNewerThanLibraryVersion",value:function(e){var t=this.version();return parseInt(e)>parseInt(t)}},{key:"isProtocolVersionOutdated",value:function(e){var t={"001":Date.parse("2018-01-01"),"002":Date.parse("2020-01-01")}[e];return!!t&&new Date>t}},{key:"costMinimumForVersion",value:function(e){return{"001":3e3,"002":3e3,"003":11e4}[e]}},{key:"defaultPasswordGenerationCost",value:function(){return this.costMinimumForVersion(this.version())}}]),t}();if(we.StandardFile=be,G)try{G.StandardFile=be,G.SFJS=new be,G.SFCryptoWeb=ye,G.SFCryptoJS=ve,G.SFItemTransformer=ke,G.SFModelManager=Z,G.SFItem=ce,G.SFItemParams=ue,G.SFHttpManager=Y,G.SFStorageManager=ae,G.SFSyncManager=se,G.SFAuthManager=J,G.SFMigrationManager=X,G.SFAlertManager=W,G.SFPredicate=le,G.SFHistorySession=fe,G.SFSessionHistoryManager=re,G.SFItemHistory=pe,G.SFItemHistoryEntry=he,G.SFPrivilegesManager=Q,G.SFPrivileges=de,G.SFSingletonManager=ie}catch(e){console.log("Exception while exporting window variables",e)}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)});var Stylekit=function(n){var r={};function i(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.l=!0,t.exports}return i.m=n,i.c=r,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)i.d(n,r,function(e){return t[e]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=0)}([function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.r(t);var i=function(){function a(e){var n=this,t=e.title,r=e.text,i=e.buttons;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(this,"keyupListener",function(e){if("Enter"===e.key){var t=n.primaryButton();t.action&&t.action(),n.dismiss()}}),this.title=t,this.text=r,this.buttons=i}return function(e,t,n){t&&r(e.prototype,t),n&&r(e,n)}(a,[{key:"buttonsString",value:function(){var e=this.buttons.map(function(e,t){return function(e,t){return"\n <div id='button-".concat(t,"' class='sk-button ").concat(e.style,"'>\n <div class='sk-label'>").concat(e.text,"</div>\n </div>\n ")}(e,t)}).join("");return"\n <div class='sk-button-group'>\n ".concat(e,"\n </div>\n ")}},{key:"templateString",value:function(){var e=this.buttonsString(),t=this.title?"<div class='sk-h3 sk-panel-section-title'>".concat(this.title,"</div>"):"",n=this.text?"<p class='sk-p'>".concat(this.text,"</p>"):"";return'\n <div class="sk-modal">\n <div class="sk-modal-background"></div>\n <div class="sk-modal-content">\n <div class="sn-component">\n <div class="sk-panel" style=\'max-width: 500px;\'>\n <div class="sk-panel-content">\n <div class="sk-panel-section">\n '.concat(t,'\n\n <div class="sk-panel-row">\n ').concat(n,"\n </div>\n\n <div class=\"sk-panel-row\" style='margin-top: 8px;'>\n ").concat(e,"\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n ")}},{key:"dismiss",value:function(){this.onElement.removeChild(this.element),document.removeEventListener("keyup",this.keyupListener)}},{key:"primaryButton",value:function(){var e=this.buttons.find(function(e){return!0===e.primary});return e=e||this.buttons[this.buttons.length-1]}},{key:"present",value:function(e){var n=this,t=(0<arguments.length&&void 0!==e?e:{}).onElement;t=t||document.body,this.onElement=t,this.element=document.createElement("div"),this.element.className="sn-component",this.element.innerHTML=this.templateString().trim(),document.addEventListener("keyup",this.keyupListener),this.buttons.forEach(function(e,t){n.element.querySelector("#button-".concat(t)).onclick=function(){e.action&&e.action(),n.dismiss()}}),t.appendChild(this.element)}}]),a}();n.d(t,"SKAlert",function(){return i})}]);!function(le){"use strict";var l={objectMaxDepth:5,urlErrorParamsEnabled:!0};function e(e){if(!xe(e))return l;E(e.objectMaxDepth)&&(l.objectMaxDepth=r(e.objectMaxDepth)?e.objectMaxDepth:NaN),E(e.urlErrorParamsEnabled)&&Ce(e.urlErrorParamsEnabled)&&(l.urlErrorParamsEnabled=e.urlErrorParamsEnabled)}function r(e){return x(e)&&0<e}function C(o,s){s=s||Error;var c="https://errors.angularjs.org/1.7.9/",e=c.replace(".","\\.")+"[\\s\\S]*",u=new RegExp(e,"g");return function(){var e,t,n=arguments[0],r=arguments[1],i="["+(o?o+":":"")+n+"] ",a=Oe(arguments,2).map(function(e){return We(e,l.objectMaxDepth)});if(i+=r.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1);return t<a.length?a[t].replace(u,""):e}),i+="\n"+c+(o?o+"/":"")+n,l.urlErrorParamsEnabled)for(t=0,e="?";t<a.length;t++,e="&")i+=e+"p"+t+"="+encodeURIComponent(a[t]);return new s(i)}}var de,fe,t,g,a=/^\/(.+)\/([a-z]*)$/,d="validity",pe=Object.prototype.hasOwnProperty,he=function(e){return Se(e)?e.toLowerCase():e},f=function(e){return Se(e)?e.toUpperCase():e},o=[].slice,i=[].splice,n=[].push,me=Object.prototype.toString,u=Object.getPrototypeOf,p=C("ng"),k=le.angular||(le.angular={}),s=0;function T(e){if(null==e||_(e))return!1;if($e(e)||Se(e)||fe&&e instanceof fe)return!0;var t="length"in Object(e)&&e.length;return x(t)&&(0<=t&&t-1 in e||"function"==typeof e.item)}function ve(e,t,n){var r,i;if(e)if(Me(e))for(r in e)"prototype"!==r&&"length"!==r&&"name"!==r&&e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else if($e(e)||T(e)){var a="object"!=typeof e;for(r=0,i=e.length;r<i;r++)(a||r in e)&&t.call(n,e[r],r,e)}else if(e.forEach&&e.forEach!==ve)e.forEach(t,n,e);else if(w(e))for(r in e)t.call(n,e[r],r,e);else if("function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else for(r in e)pe.call(e,r)&&t.call(n,e[r],r,e);return e}function c(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function M(n){return function(e,t){n(t,e)}}function A(){return++s}function h(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function m(e,t,n){for(var r=e.$$hashKey,i=0,a=t.length;i<a;++i){var o=t[i];if(xe(o)||Me(o))for(var s=Object.keys(o),c=0,u=s.length;c<u;c++){var l=s[c],d=o[l];n&&xe(d)?S(d)?e[l]=new Date(d.valueOf()):$(d)?e[l]=new RegExp(d):d.nodeName?e[l]=d.cloneNode(!0):F(d)?e[l]=d.clone():"__proto__"!==l&&(xe(e[l])||(e[l]=$e(d)?[]:{}),m(e[l],[d],!0)):e[l]=d}}return h(e,r),e}function ge(e){return m(e,o.call(arguments,1),!1)}function v(e){return m(e,o.call(arguments,1),!0)}function y(e){return parseInt(e,10)}de=le.document.documentMode;var D=Number.isNaN||function(e){return e!=e};function ye(e,t){return ge(Object.create(e),t)}function ke(){}function be(e){return e}function R(e){return function(){return e}}function b(e){return Me(e.toString)&&e.toString!==me}function we(e){return void 0===e}function E(e){return void 0!==e}function xe(e){return null!==e&&"object"==typeof e}function w(e){return null!==e&&"object"==typeof e&&!u(e)}function Se(e){return"string"==typeof e}function x(e){return"number"==typeof e}function S(e){return"[object Date]"===me.call(e)}function $e(e){return Array.isArray(e)||e instanceof Array}function _e(e){switch(me.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:return e instanceof Error}}function Me(e){return"function"==typeof e}function $(e){return"[object RegExp]"===me.call(e)}function _(e){return e&&e.window===e}function Ie(e){return e&&e.$evalAsync&&e.$watch}function Ce(e){return"boolean"==typeof e}function I(e){return e&&Me(e.then)}ke.$inject=[],be.$inject=[];var P=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/;var Ae=function(e){return Se(e)?e.trim():e},O=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")};function F(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function De(e){return he(e.nodeName||e[0]&&e[0].nodeName)}function L(e,t){return-1!==Array.prototype.indexOf.call(e,t)}function Re(e,t){var n=e.indexOf(t);return 0<=n&&e.splice(n,1),n}function N(e,n,t){var a=[],o=[];if(t=r(t)?t:NaN,n){if(function(e){return e&&x(e.length)&&P.test(me.call(e))}(n)||function(e){return"[object ArrayBuffer]"===me.call(e)}(n))throw p("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===n)throw p("cpi","Can't copy! Source and destination are identical.");return $e(n)?n.length=0:ve(n,function(e,t){"$$hashKey"!==t&&delete n[t]}),a.push(e),o.push(n),s(e,n,t)}return c(e,t);function s(e,t,n){if(--n<0)return"...";var r,i=t.$$hashKey;if($e(e))for(var a=0,o=e.length;a<o;a++)t.push(c(e[a],n));else if(w(e))for(r in e)t[r]=c(e[r],n);else if(e&&"function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&(t[r]=c(e[r],n));else for(r in e)pe.call(e,r)&&(t[r]=c(e[r],n));return h(t,i),t}function c(e,t){if(!xe(e))return e;var n=a.indexOf(e);if(-1!==n)return o[n];if(_(e)||Ie(e))throw p("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var r=!1,i=function(e){switch(me.call(e)){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 e.constructor(c(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(e.slice)return e.slice(0);var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t;case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(Me(e.cloneNode))return e.cloneNode(!0)}(e);return void 0===i&&(i=$e(e)?[]:Object.create(u(e)),r=!0),a.push(e),o.push(i),r?s(e,i,t):i}}function Ee(e,t){return e===t||e!=e&&t!=t}function Pe(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!=e&&t!=t)return!0;var n,r,i,a=typeof e;if(a==typeof t&&"object"==a){if(!$e(e)){if(S(e))return!!S(t)&&Ee(e.getTime(),t.getTime());if($(e))return!!$(t)&&e.toString()===t.toString();if(Ie(e)||Ie(t)||_(e)||_(t)||$e(t)||S(t)||$(t))return!1;for(r in i=Be(),e)if("$"!==r.charAt(0)&&!Me(e[r])){if(!Pe(e[r],t[r]))return!1;i[r]=!0}for(r in t)if(!(r in i)&&"$"!==r.charAt(0)&&E(t[r])&&!Me(t[r]))return!1;return!0}if(!$e(t))return!1;if((n=e.length)===t.length){for(r=0;r<n;r++)if(!Pe(e[r],t[r]))return!1;return!0}}return!1}var B=function(){if(!E(B.rules)){var e=le.document.querySelector("[ng-csp]")||le.document.querySelector("[data-ng-csp]");if(e){var t=e.getAttribute("ng-csp")||e.getAttribute("data-ng-csp");B.rules={noUnsafeEval:!t||-1!==t.indexOf("no-unsafe-eval"),noInlineStyle:!t||-1!==t.indexOf("no-inline-style")}}else B.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return B.rules},H=function(){if(E(H.name_))return H.name_;var e,t,n,r,i=Q.length;for(t=0;t<i;++t)if(n=Q[t],e=le.document.querySelector("["+n.replace(":","\\:")+"jq]")){r=e.getAttribute(n+"jq");break}return H.name_=r};function U(e,t,n){return e.concat(o.call(t,n))}function Oe(e,t){return o.call(e,t||0)}function Te(e,t){var n=2<arguments.length?Oe(arguments,2):[];return!Me(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,U(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function j(e,t){var n=t;return"string"==typeof e&&"$"===e.charAt(0)&&"$"===e.charAt(1)?n=void 0:_(t)?n="$WINDOW":t&&le.document===t?n="$DOCUMENT":Ie(t)&&(n="$SCOPE"),n}function z(e,t){if(!we(e))return x(t)||(t=t?2:null),JSON.stringify(e,j,t)}function V(e){return Se(e)?JSON.parse(e):e}var K=/:/g;function q(e,t){e=e.replace(K,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return D(n)?t:n}function W(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}function J(e,t,n){n=n?-1:1;var r=e.getTimezoneOffset();return W(e,n*(q(t,r)-r))}function Fe(e){e=fe(e).clone().empty();var t=fe("<div></div>").append(e).html();try{return e[0].nodeType===je?he(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(e,t){return"<"+he(t)})}catch(e){return he(t)}}function G(e){try{return decodeURIComponent(e)}catch(e){}}function Y(e){var i={};return ve((e||"").split("&"),function(e){var t,n,r;e&&(n=e=e.replace(/\+/g,"%20"),-1!==(t=e.indexOf("="))&&(n=e.substring(0,t),r=e.substring(t+1)),E(n=G(n))&&(r=!E(r)||G(r),pe.call(i,n)?$e(i[n])?i[n].push(r):i[n]=[i[n],r]:i[n]=r))}),i}function X(e){return Z(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Z(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}var Q=["ng-","data-ng-","ng:","x-ng-"];var ee=function(n){var e=n.currentScript;if(!e)return!0;if(!(e instanceof le.HTMLScriptElement||e instanceof le.SVGScriptElement))return!1;var t=e.attributes;return[t.getNamedItem("src"),t.getNamedItem("href"),t.getNamedItem("xlink:href")].every(function(e){if(!e)return!0;if(!e.value)return!1;var t=n.createElement("a");if(t.href=e.value,n.location.origin===t.origin)return!0;switch(t.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}})}(le.document);function te(r,e){var i,a,t={};if(ve(Q,function(e){var t=e+"app";!i&&r.hasAttribute&&r.hasAttribute(t)&&(a=(i=r).getAttribute(t))}),ve(Q,function(e){var t,n=e+"app";!i&&(t=r.querySelector("["+n.replace(":","\\:")+"]"))&&(a=(i=t).getAttribute(n))}),i){if(!ee)return void le.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");t.strictDi=null!==function(e,t){var n,r,i=Q.length;for(r=0;r<i;++r)if(n=Q[r]+t,Se(n=e.getAttribute(n)))return n;return null}(i,"strict-di"),e(i,a?[a]:[],t)}}function ne(n,r,i){xe(i)||(i={});i=ge({strictDi:!1},i);function t(){if((n=fe(n)).injector()){var e=n[0]===le.document?"document":Fe(n);throw p("btstrpd","App already bootstrapped with this element '{0}'",e.replace(/</,"&lt;").replace(/>/,"&gt;"))}(r=r||[]).unshift(["$provide",function(e){e.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),r.unshift("ng");var t=Qt(r,i.strictDi);return t.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply(function(){t.data("$injector",r),n(t)(e)})}]),t}var e=/^NG_ENABLE_DEBUG_INFO!/,a=/^NG_DEFER_BOOTSTRAP!/;if(le&&e.test(le.name)&&(i.debugInfoEnabled=!0,le.name=le.name.replace(e,"")),le&&!a.test(le.name))return t();le.name=le.name.replace(a,""),k.resumeBootstrap=function(e){return ve(e,function(e){r.push(e)}),t()},Me(k.resumeDeferredBootstrap)&&k.resumeDeferredBootstrap()}function re(){le.name="NG_ENABLE_DEBUG_INFO!"+le.name,le.location.reload()}function ie(e){var t=k.element(e).injector();if(!t)throw p("test","no injector found for element argument to getTestability");return t.get("$$testability")}var ae=/[A-Z]/g;function Le(e,n){return n=n||"_",e.replace(ae,function(e,t){return(t?n:"")+e.toLowerCase()})}var oe=!1;function Ne(e,t,n){if(!e)throw p("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function se(e,t,n){return n&&$e(e)&&(e=e[e.length-1]),Ne(Me(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ce(e,t){if("hasOwnProperty"===e)throw p("badname","hasOwnProperty is not a valid {0} name",t)}function ue(e){for(var t,n=e[0],r=e[e.length-1],i=1;n!==r&&(n=n.nextSibling);i++)!t&&e[i]===n||(t=t||fe(o.call(e,0,i))).push(n);return t||e}function Be(){return Object.create(null)}function He(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=!b(e)||$e(e)||S(e)?z(e):e.toString()}return e}var Ue=1,je=3,ze=8,Ve=9,Ke=11;function qe(e,t){if($e(e)){t=t||[];for(var n=0,r=e.length;n<r;n++)t[n]=e[n]}else if(xe(e))for(var i in t=t||{},e)"$"===i.charAt(0)&&"$"===i.charAt(1)||(t[i]=e[i]);return t||e}function We(e,t){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):we(e)?"undefined":"string"!=typeof e?function(e,t){var n=[];return r(t)&&(e=k.copy(e,null,t)),JSON.stringify(e,function(e,t){if(xe(t=j(e,t))){if(0<=n.indexOf(t))return"...";n.push(t)}return t})}(e,t):e}var Je={full:"1.7.9",major:1,minor:7,dot:9,codeName:"pollution-eradication"};ft.expando="ng339";var Ge=ft.cache={},Ye=1;ft._data=function(e){return this.cache[e[this.expando]]||{}};var Xe=/-([a-z])/g,Ze=/^-ms-/,Qe={mouseleave:"mouseout",mouseenter:"mouseover"},et=C("jqLite");function tt(e,t){return t.toUpperCase()}function nt(e){return e.replace(Xe,tt)}var rt=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,it=/<|&#?\w+;/,at=/<([\w:-]+)/,ot=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,st={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ct(e){return!it.test(e)}function ut(e){var t=e.nodeType;return t===Ue||!t||t===Ve}function lt(e,t){var n,r,i,a,o=t.createDocumentFragment(),s=[];if(ct(e))s.push(t.createTextNode(e));else{for(n=o.appendChild(t.createElement("div")),r=(at.exec(e)||["",""])[1].toLowerCase(),i=st[r]||st._default,n.innerHTML=i[1]+e.replace(ot,"<$1></$2>")+i[2],a=i[0];a--;)n=n.lastChild;s=U(s,n.childNodes),(n=o.firstChild).textContent=""}return o.textContent="",o.innerHTML="",ve(s,function(e){o.appendChild(e)}),o}st.optgroup=st.option,st.tbody=st.tfoot=st.colgroup=st.caption=st.thead,st.th=st.td;var dt=le.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))};function ft(e){if(e instanceof ft)return e;var t;if(Se(e)&&(e=Ae(e),t=!0),!(this instanceof ft)){if(t&&"<"!==e.charAt(0))throw et("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new ft(e)}t?$t(this,function(e,t){var n;return t=t||le.document,(n=rt.exec(e))?[t.createElement(n[1])]:(n=lt(e,t))?n.childNodes:[]}(e)):Me(e)?At(e):$t(this,e)}function pt(e){return e.cloneNode(!0)}function ht(e,t){!t&&ut(e)&&fe.cleanData([e]),e.querySelectorAll&&fe.cleanData(e.querySelectorAll("*"))}function mt(e){var t;for(t in e)return!1;return!0}function vt(e){var t=e.ng339,n=t&&Ge[t],r=n&&n.events,i=n&&n.data;i&&!mt(i)||r&&!mt(r)||(delete Ge[t],e.ng339=void 0)}function gt(n,e,r,t){if(E(t))throw et("offargs","jqLite#off() does not support the `selector` argument");var i=kt(n),a=i&&i.events,o=i&&i.handle;if(o){if(e){var s=function(e){var t=a[e];E(r)&&Re(t||[],r),E(r)&&t&&0<t.length||(n.removeEventListener(e,o),delete a[e])};ve(e.split(" "),function(e){s(e),Qe[e]&&s(Qe[e])})}else for(e in a)"$destroy"!==e&&n.removeEventListener(e,o),delete a[e];vt(n)}}function yt(e,t){var n=e.ng339,r=n&&Ge[n];r&&(t?delete r.data[t]:r.data={},vt(e))}function kt(e,t){var n=e.ng339,r=n&&Ge[n];return t&&!r&&(e.ng339=n=++Ye,r=Ge[n]={events:{},data:{},handle:void 0}),r}function bt(e,t,n){if(ut(e)){var r,i=E(n),a=!i&&t&&!xe(t),o=!t,s=kt(e,!a),c=s&&s.data;if(i)c[nt(t)]=n;else{if(o)return c;if(a)return c&&c[nt(t)];for(r in t)c[nt(r)]=t[r]}}}function wt(e,t){return!!e.getAttribute&&-1<(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")}function xt(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),r=n;ve(t.split(" "),function(e){e=Ae(e),r=r.replace(" "+e+" "," ")}),r!==n&&e.setAttribute("class",Ae(r))}}function St(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),r=n;ve(t.split(" "),function(e){e=Ae(e),-1===r.indexOf(" "+e+" ")&&(r+=e+" ")}),r!==n&&e.setAttribute("class",Ae(r))}}function $t(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var r=0;r<n;r++)e[e.length++]=t[r]}else e[e.length++]=t}}function _t(e,t){return Mt(e,"$"+(t||"ngController")+"Controller")}function Mt(e,t,n){e.nodeType===Ve&&(e=e.documentElement);for(var r=$e(t)?t:[t];e;){for(var i=0,a=r.length;i<a;i++)if(E(n=fe.data(e,r[i])))return n;e=e.parentNode||e.nodeType===Ke&&e.host}}function It(e){for(ht(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function Ct(e,t){t||ht(e);var n=e.parentNode;n&&n.removeChild(e)}function At(e){function t(){le.document.removeEventListener("DOMContentLoaded",t),le.removeEventListener("load",t),e()}"complete"===le.document.readyState?le.setTimeout(e):(le.document.addEventListener("DOMContentLoaded",t),le.addEventListener("load",t))}var Dt=ft.prototype={ready:At,toString:function(){var t=[];return ve(this,function(e){t.push(""+e)}),"["+t.join(", ")+"]"},eq:function(e){return fe(0<=e?this[e]:this[this.length+e])},length:0,push:n,sort:[].sort,splice:[].splice},Rt={};ve("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){Rt[he(e)]=e});var Et={};ve("input,select,option,textarea,button,form,details".split(","),function(e){Et[e]=!0});var Pt={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};function Ot(e,t){var n=Rt[t.toLowerCase()];return n&&Et[De(e)]&&n}function Tt(e,t){if(we(t)){var n=e.nodeType;return n===Ue||n===je?e.textContent:""}e.textContent=t}function Ft(s,c){function e(e,t){e.isDefaultPrevented=function(){return e.defaultPrevented};var n=c[t||e.type],r=n?n.length:0;if(r){if(we(e.immediatePropagationStopped)){var i=e.stopImmediatePropagation;e.stopImmediatePropagation=function(){e.immediatePropagationStopped=!0,e.stopPropagation&&e.stopPropagation(),i&&i.call(e)}}e.isImmediatePropagationStopped=function(){return!0===e.immediatePropagationStopped};var a=n.specialHandlerWrapper||Lt;1<r&&(n=qe(n));for(var o=0;o<r;o++)e.isImmediatePropagationStopped()||a(s,e,n[o])}}return e.elem=s,e}function Lt(e,t,n){n.call(e,t)}function Nt(e,t,n){var r=t.relatedTarget;r&&(r===e||dt.call(e,r))||n.call(e,t)}function Bt(){this.$get=function(){return ge(ft,{hasClass:function(e,t){return e.attr&&(e=e[0]),wt(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),St(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),xt(e,t)}})}}function Ht(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var r=typeof e;return n="function"==r||"object"==r&&null!==e?e.$$hashKey=r+":"+(t||A)():r+":"+e}ve({data:bt,removeData:yt,hasData:function(e){for(var t in Ge[e.ng339])return!0;return!1},cleanData:function(e){for(var t=0,n=e.length;t<n;t++)yt(e[t]),gt(e[t])}},function(e,t){ft[t]=e}),ve({data:bt,inheritedData:Mt,scope:function(e){return fe.data(e,"$scope")||Mt(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return fe.data(e,"$isolateScope")||fe.data(e,"$isolateScopeNoTemplate")},controller:_t,injector:function(e){return Mt(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:wt,css:function(e,t,n){if(t=function(e){return nt(e.replace(Ze,"ms-"))}(t),!E(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var r,i=e.nodeType;if(i!==je&&2!==i&&i!==ze&&e.getAttribute){var a=he(t),o=Rt[a];if(!E(n))return r=e.getAttribute(t),o&&null!==r&&(r=a),null===r?void 0:r;null===n||!1===n&&o?e.removeAttribute(t):e.setAttribute(t,o?a:n)}},prop:function(e,t,n){if(!E(n))return e[t];e[t]=n},text:(Tt.$dv="",Tt),val:function(e,t){if(we(t)){if(e.multiple&&"select"===De(e)){var n=[];return ve(e.options,function(e){e.selected&&n.push(e.value||e.text)}),n}return e.value}e.value=t},html:function(e,t){if(we(t))return e.innerHTML;ht(e,!0),e.innerHTML=t},empty:It},function(u,e){ft.prototype[e]=function(e,t){var n,r,i=this.length;if(u!==It&&we(2===u.length&&u!==wt&&u!==_t?e:t)){if(xe(e)){for(n=0;n<i;n++)if(u===bt)u(this[n],e);else for(r in e)u(this[n],r,e[r]);return this}for(var a=u.$dv,o=we(a)?Math.min(i,1):i,s=0;s<o;s++){var c=u(this[s],e,t);a=a?a+c:c}return a}for(n=0;n<i;n++)u(this[n],e,t);return this}}),ve({removeData:yt,on:function(i,e,a,t){if(E(t))throw et("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(ut(i)){var n=kt(i,!0),o=n.events,s=n.handle;s=s||(n.handle=Ft(i,o));for(var r=0<=e.indexOf(" ")?e.split(" "):[e],c=r.length,u=function(e,t,n){var r=o[e];r||((r=o[e]=[]).specialHandlerWrapper=t,"$destroy"===e||n||i.addEventListener(e,s)),r.push(a)};c--;)e=r[c],Qe[e]?(u(Qe[e],Nt),u(e,void 0,!0)):u(e)}},off:gt,one:function(t,n,r){(t=fe(t)).on(n,function e(){t.off(n,r),t.off(n,e)}),t.on(n,r)},replaceWith:function(t,e){var n,r=t.parentNode;ht(t),ve(new ft(e),function(e){n?r.insertBefore(e,n.nextSibling):r.replaceChild(e,t),n=e})},children:function(e){var t=[];return ve(e.childNodes,function(e){e.nodeType===Ue&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Ue||n===Ke)for(var r=0,i=(t=new ft(t)).length;r<i;r++){var a=t[r];e.appendChild(a)}},prepend:function(t,e){if(t.nodeType===Ue){var n=t.firstChild;ve(new ft(e),function(e){t.insertBefore(e,n)})}},wrap:function(e,t){!function(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}(e,fe(t).eq(0).clone()[0])},remove:Ct,detach:function(e){Ct(e,!0)},after:function(e,t){var n=e,r=e.parentNode;if(r)for(var i=0,a=(t=new ft(t)).length;i<a;i++){var o=t[i];r.insertBefore(o,n.nextSibling),n=o}},addClass:St,removeClass:xt,toggleClass:function(n,e,r){e&&ve(e.split(" "),function(e){var t=r;we(t)&&(t=!wt(n,e)),(t?St:xt)(n,e)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==Ke?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:pt,triggerHandler:function(t,e,n){var r,i,a,o=e.type||e,s=kt(t),c=s&&s.events,u=c&&c[o];u&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:ke,type:o,target:t},e.type&&(r=ge(r,e)),i=qe(u),a=n?[r].concat(n):[r],ve(i,function(e){r.isImmediatePropagationStopped()||e.apply(t,a)}))}},function(o,e){ft.prototype[e]=function(e,t,n){for(var r,i=0,a=this.length;i<a;i++)we(r)?E(r=o(this[i],e,t,n))&&(r=fe(r)):$t(r,o(this[i],e,t,n));return E(r)?r:this}}),ft.prototype.bind=ft.prototype.on,ft.prototype.unbind=ft.prototype.off;var Ut=Object.create(null);function jt(){this._keys=[],this._values=[],this._lastKey=NaN,this._lastIndex=-1}jt.prototype={_idx:function(e){return e!==this._lastKey&&(this._lastKey=e,this._lastIndex=this._keys.indexOf(e)),this._lastIndex},_transformKey:function(e){return D(e)?Ut:e},get:function(e){e=this._transformKey(e);var t=this._idx(e);if(-1!==t)return this._values[t]},has:function(e){return e=this._transformKey(e),-1!==this._idx(e)},set:function(e,t){e=this._transformKey(e);var n=this._idx(e);-1===n&&(n=this._lastIndex=this._keys.length),this._keys[n]=e,this._values[n]=t},delete:function(e){e=this._transformKey(e);var t=this._idx(e);return-1!==t&&(this._keys.splice(t,1),this._values.splice(t,1),this._lastKey=NaN,this._lastIndex=-1,!0)}};var zt=jt,Vt=[function(){this.$get=[function(){return zt}]}],Kt=/^([^(]+?)=>/,qt=/^[^(]*\(\s*([^)]*)\)/m,Wt=/,/,Jt=/^\s*(_?)(\S+?)\1\s*$/,Gt=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Yt=C("$injector");function Xt(e){return Function.prototype.toString.call(e)}function Zt(e){var t=Xt(e).replace(Gt,"");return t.match(Kt)||t.match(qt)}function Qt(e,u){u=!0===u;var i={},o="Provider",s=[],a=new zt,l={$provide:{provider:f(p),factory:f(h),service:f(function(e,t){return h(e,["$injector",function(e){return e.instantiate(t)}])}),value:f(function(e,t){return h(e,R(t),!1)}),constant:f(function(e,t){ce(e,"constant"),l[e]=t,n[e]=t}),decorator:function(e,t){var n=c.get(e+o),r=n.$get;n.$get=function(){var e=d.invoke(r,n);return d.invoke(t,null,{$delegate:e})}}}},c=l.$injector=v(l,function(e,t){throw k.isString(t)&&s.push(t),Yt("unpr","Unknown provider: {0}",s.join(" <- "))}),n={},t=v(n,function(e,t){var n=c.get(e+o,t);return d.invoke(n.$get,n,void 0,e)}),d=t;l["$injector"+o]={$get:R(t)},d.modules=c.modules=Be();var r=m(e);return(d=t.get("$injector")).strictDi=u,ve(r,function(e){e&&d.invoke(e)}),d.loadNewModules=function(e){ve(m(e),function(e){e&&d.invoke(e)})},d;function f(n){return function(e,t){if(!xe(e))return n(e,t);ve(e,M(n))}}function p(e,t){if(ce(e,"service"),(Me(t)||$e(t))&&(t=c.instantiate(t)),!t.$get)throw Yt("pget","Provider '{0}' must define $get factory method.",e);return l[e+o]=t}function h(e,t,n){return p(e,{$get:!1!==n?function(t,n){return function(){var e=d.invoke(n,this);if(we(e))throw Yt("undef","Provider '{0}' must return a value from $get factory method.",t);return e}}(e,t):t})}function m(e){Ne(we(e)||$e(e),"modulesToLoad","not an array");var n,r=[];return ve(e,function(t){if(!a.get(t)){a.set(t,!0);try{Se(t)?(n=g(t),d.modules[t]=n,r=r.concat(m(n.requires)).concat(n._runBlocks),e(n._invokeQueue),e(n._configBlocks)):Me(t)?r.push(c.invoke(t)):$e(t)?r.push(c.invoke(t)):se(t,"module")}catch(e){throw $e(t)&&(t=t[t.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Yt("modulerr","Failed to instantiate module {0} due to:\n{1}",t,e.stack||e.message||e)}}function e(e){var t,n;for(t=0,n=e.length;t<n;t++){var r=e[t],i=c.get(r[0]);i[r[1]].apply(i,r[2])}}}),r}function v(n,r){function c(t,e){if(n.hasOwnProperty(t)){if(n[t]===i)throw Yt("cdep","Circular dependency found: {0}",t+" <- "+s.join(" <- "));return n[t]}try{return s.unshift(t),n[t]=i,n[t]=r(t,e),n[t]}catch(e){throw n[t]===i&&delete n[t],e}finally{s.shift()}}function a(e,t,n){for(var r=[],i=Qt.$$annotate(e,u,n),a=0,o=i.length;a<o;a++){var s=i[a];if("string"!=typeof s)throw Yt("itkn","Incorrect injection token! Expected service name as string, got {0}",s);r.push(t&&t.hasOwnProperty(s)?t[s]:c(s,n))}return r}return{invoke:function(e,t,n,r){"string"==typeof n&&(r=n,n=null);var i=a(e,n,r);return $e(e)&&(e=e[e.length-1]),function(e){if(de||"function"!=typeof e)return!1;var t=e.$$ngIsClass;return Ce(t)||(t=e.$$ngIsClass=/^class\b/.test(Xt(e))),t}(e)?(i.unshift(null),new(Function.prototype.bind.apply(e,i))):e.apply(t,i)},instantiate:function(e,t,n){var r=$e(e)?e[e.length-1]:e,i=a(e,t,n);return i.unshift(null),new(Function.prototype.bind.apply(r,i))},get:c,annotate:Qt.$$annotate,has:function(e){return l.hasOwnProperty(e+o)||n.hasOwnProperty(e)}}}}function en(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(r,n,i){var a=r.document;function o(e){if(e){e.scrollIntoView();var t=function(){var e=s.yOffset;if(Me(e))e=e();else if(F(e)){var t=e[0];e="fixed"!==r.getComputedStyle(t).position?0:t.getBoundingClientRect().bottom}else x(e)||(e=0);return e}();if(t){var n=e.getBoundingClientRect().top;r.scrollBy(0,n-t)}}else r.scrollTo(0,0)}function s(e){var t;(e=Se(e)?e:x(e)?e.toString():n.hash())?(t=a.getElementById(e))?o(t):(t=function(e){var t=null;return Array.prototype.some.call(e,function(e){if("a"===De(e))return t=e,!0}),t}(a.getElementsByName(e)))?o(t):"top"===e&&o(null):o(null)}return e&&i.$watch(function(){return n.hash()},function(e,t){e===t&&""===e||function(e,t){"complete"===(t=t||le).document.readyState?t.setTimeout(e):fe(t).on("load",e)}(function(){i.$evalAsync(s)})}),s}]}Qt.$$annotate=function(e,t,n){var r,i;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw Se(n)&&n||(n=e.name||function(e){var t=Zt(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}(e)),Yt("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);ve(Zt(e)[1].split(Wt),function(e){e.replace(Jt,function(e,t,n){r.push(n)})})}e.$inject=r}}else $e(e)?(se(e[i=e.length-1],"fn"),r=e.slice(0,i)):se(e,"fn",!0);return r};var tn=C("$animate"),nn=1,rn="ng-animate";function an(e,t){return e||t?e?t?($e(e)&&(e=e.join(" ")),$e(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function on(e){return xe(e)?e:{}}function sn(){this.$get=ke}function cn(){var u=new zt,l=[];this.$get=["$$AnimateRunner","$rootScope",function(a,o){return{enabled:ke,on:ke,off:ke,pin:ke,push:function(e,t,n,r){r&&r(),(n=n||{}).from&&e.css(n.from),n.to&&e.css(n.to),(n.addClass||n.removeClass)&&function(e,t,n){var r=u.get(e)||{},i=s(r,t,!0),a=s(r,n,!1);(i||a)&&(u.set(e,r),l.push(e),1===l.length&&o.$$postDigest(c))}(e,n.addClass,n.removeClass);var i=new a;return i.complete(),i}};function s(t,e,n){var r=!1;return e&&ve(e=Se(e)?e.split(" "):$e(e)?e:[],function(e){e&&(r=!0,t[e]=n)}),r}function c(){ve(l,function(e){var t=u.get(e);if(t){var n=function(e){Se(e)&&(e=e.split(" "));var t=Be();return ve(e,function(e){e.length&&(t[e]=!0)}),t}(e.attr("class")),r="",i="";ve(t,function(e,t){e!==!!n[t]&&(e?r+=(r.length?" ":"")+t:i+=(i.length?" ":"")+t)}),ve(e,function(e){r&&St(e,r),i&&xt(e,i)}),u.delete(e)}}),l.length=0}}]}function un(){this.$get=["$$rAF",function(t){var n=[];function r(e){n.push(e),1<n.length||t(function(){for(var e=0;e<n.length;e++)n[e]();n=[]})}return function(){var t=!1;return r(function(){t=!0}),function(e){t?e():r(e)}}}]}function ln(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(t,e,n,r,i){function a(e){this.setHost(e);var t=n();this._doneCallbacks=[],this._tick=function(e){r()?function(e){i(e,0,!1)}(e):t(e)},this._state=0}return a.chain=function(e,n){var r=0;!function t(){if(r===e.length)return void n(!0);e[r](function(e){!1!==e?(r++,t()):n(!1)})}()},a.all=function(t,n){var r=0,i=!0;function a(e){i=i&&e,++r===t.length&&n(i)}ve(t,function(e){e.done(a)})},a.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:ke,getPromise:function(){if(!this.promise){var e=this;this.promise=t(function(t,n){e.done(function(e){!1===e?n():t()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick(function(){t._resolve(e)}))},_resolve:function(t){2!==this._state&&(ve(this._doneCallbacks,function(e){e(t)}),this._doneCallbacks.length=0,this._state=2)}},a}]}function dn(){this.$get=["$$rAF","$q","$$AnimateRunner",function(o,e,s){return function(e,t){var n=t||{};n.$$prepared||(n=N(n)),n.cleanupStyles&&(n.from=n.to=null),n.from&&(e.css(n.from),n.from=null);var r,i=new s;return{start:a,end:a};function a(){return o(function(){!function(){n.addClass&&(e.addClass(n.addClass),n.addClass=null);n.removeClass&&(e.removeClass(n.removeClass),n.removeClass=null);n.to&&(e.css(n.to),n.to=null)}(),r||i.complete(),r=!0}),i}}}]}var fn=["$provide",function(r){var i=this,t=null,n=null;this.$$registeredAnimations=Object.create(null),this.register=function(e,t){if(e&&"."!==e.charAt(0))throw tn("notcsel","Expecting class selector starting with '.' got '{0}'.",e);var n=e+"-animation";i.$$registeredAnimations[e.substr(1)]=n,r.factory(n,t)},this.customFilter=function(e){return 1===arguments.length&&(n=Me(e)?e:null),n},this.classNameFilter=function(e){if(1===arguments.length&&((t=e instanceof RegExp?e:null)&&new RegExp("[(\\s|\\/)]"+rn+"[(\\s|\\/)]").test(t.toString())))throw t=null,tn("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',rn);return t},this.$get=["$$animateQueue",function(a){function i(e,t,n){if(n){var r=function(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===nn)return n}}(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(e){e.cancel&&e.cancel()},enter:function(e,t,n,r){return t=t&&fe(t),n=n&&fe(n),i(e,t=t||n.parent(),n),a.push(e,"enter",on(r))},move:function(e,t,n,r){return t=t&&fe(t),n=n&&fe(n),i(e,t=t||n.parent(),n),a.push(e,"move",on(r))},leave:function(e,t){return a.push(e,"leave",on(t),function(){e.remove()})},addClass:function(e,t,n){return(n=on(n)).addClass=an(n.addclass,t),a.push(e,"addClass",n)},removeClass:function(e,t,n){return(n=on(n)).removeClass=an(n.removeClass,t),a.push(e,"removeClass",n)},setClass:function(e,t,n,r){return(r=on(r)).addClass=an(r.addClass,t),r.removeClass=an(r.removeClass,n),a.push(e,"setClass",r)},animate:function(e,t,n,r,i){return(i=on(i)).from=i.from?ge(i.from,t):t,i.to=i.to?ge(i.to,n):n,r=r||"ng-inline-animate",i.tempClasses=an(i.tempClasses,r),a.push(e,"animate",i)}}}]}];function pn(a,e,t,o,n){var s=this,c=a.location,u=a.history,i=a.setTimeout,r=a.clearTimeout,l={},d=n(t);s.isMock=!1,s.$$completeOutstandingRequest=d.completeTask,s.$$incOutstandingRequestCount=d.incTaskCount,s.notifyWhenNoOutstandingRequests=d.notifyWhenNoPendingTasks;var f,p,h=c.href,m=e.find("base"),v=null,g=o.history?function(){try{return u.state}catch(e){}}:ke;x(),s.url=function(e,t,n){if(we(n)&&(n=null),c!==a.location&&(c=a.location),u!==a.history&&(u=a.history),e){var r=p===n;if(e=hi(e).href,h===e&&(!o.history||r))return s;var i=h&&dr(h)===dr(e);return h=e,p=n,!o.history||i&&r?(i||(v=e),t?c.replace(e):i?c.hash=function(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}(e):c.href=e,c.href!==e&&(v=e)):(u[t?"replaceState":"pushState"](n,"",e),x()),v=v&&e,s}return function(e){return e.replace(/#$/,"")}(v||c.href)},s.state=function(){return f};var y=[],k=!1;function b(){v=null,S()}var w=null;function x(){Pe(f=we(f=g())?null:f,w)&&(f=w),p=w=f}function S(){var e=p;x(),h===s.url()&&e===f||(h=s.url(),p=f,ve(y,function(e){e(s.url(),f)}))}s.onUrlChange=function(e){return k||(o.history&&fe(a).on("popstate",b),fe(a).on("hashchange",b),k=!0),y.push(e),e},s.$$applicationDestroyed=function(){fe(a).off("hashchange popstate",b)},s.$$checkUrlChange=S,s.baseHref=function(){var e=m.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},s.defer=function(e,t,n){var r;return t=t||0,n=n||d.DEFAULT_TASK_TYPE,d.incTaskCount(n),r=i(function(){delete l[r],d.completeTask(e,n)},t),l[r]=n,r},s.defer.cancel=function(e){if(l.hasOwnProperty(e)){var t=l[e];return delete l[e],r(e),d.completeTask(ke,t),!0}return!1}}function hn(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(e,t,n,r,i){return new pn(e,r,t,n,i)}]}function mn(){this.$get=function(){var d={};function e(e,t){if(e in d)throw C("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var n=0,r=ge({},t,{id:e}),i=Be(),a=t&&t.capacity||Number.MAX_VALUE,o=Be(),s=null,c=null;return d[e]={put:function(e,t){if(!we(t)){if(a<Number.MAX_VALUE)u(o[e]||(o[e]={key:e}));return e in i||n++,i[e]=t,a<n&&this.remove(c.key),t}},get:function(e){if(a<Number.MAX_VALUE){var t=o[e];if(!t)return;u(t)}return i[e]},remove:function(e){if(a<Number.MAX_VALUE){var t=o[e];if(!t)return;t===s&&(s=t.p),t===c&&(c=t.n),l(t.n,t.p),delete o[e]}e in i&&(delete i[e],n--)},removeAll:function(){i=Be(),n=0,o=Be(),s=c=null},destroy:function(){o=r=i=null,delete d[e]},info:function(){return ge({},r,{size:n})}};function u(e){e!==s&&(c?c===e&&(c=e.n):c=e,l(e.n,e.p),l(e,s),(s=e).n=null)}function l(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}}return e.info=function(){var n={};return ve(d,function(e,t){n[t]=e.info()}),n},e.get=function(e){return d[e]},e}}function vn(){this.$get=["$cacheFactory",function(e){return e("templates")}]}var gn=C("$compile");var yn=new function(){};function kn(n,t){var h={},m="Directive",j=/^\s*directive:\s*([\w-]+)\s+(.*)$/,z=/(([\w-]+)(?::([^;]+))?;?)/,f=function(e){var t,n={},r=e.split(",");for(t=0;t<r.length;t++)n[r[t]]=!0;return n}("ngSrc,ngSrcset,src,srcset"),v=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,y=/^(on[a-z]+|formaction)$/,s=Be();function r(e,r,i){var a=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,o=Be();return ve(e,function(e,t){if((e=e.trim())in s)o[t]=s[e];else{var n=e.match(a);if(!n)throw gn("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",r,t,e,i?"controller bindings definition":"isolate scope definition");o[t]={mode:n[1][0],collection:"*"===n[2],optional:"?"===n[3],attrName:n[4]||t},n[4]&&(s[e]=o[t])}}),o}function b(e,t){var n={isolateScope:null,bindToController:null};if(xe(e.scope)&&(!0===e.bindToController?(n.bindToController=r(e.scope,t,!0),n.isolateScope={}):n.isolateScope=r(e.scope,t,!1)),xe(e.bindToController)&&(n.bindToController=r(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw gn("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}this.directive=function e(o,t){return Ne(o,"name"),ce(o,"directive"),Se(o)?(function(e){var t=e.charAt(0);if(!t||t!==he(t))throw gn("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw gn("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}(o),Ne(t,"directiveFactory"),h.hasOwnProperty(o)||(h[o]=[],n.factory(o+m,["$injector","$exceptionHandler",function(r,i){var a=[];return ve(h[o],function(e,t){try{var n=r.invoke(e);Me(n)?n={compile:R(n)}:!n.compile&&n.link&&(n.compile=R(n.link)),n.priority=n.priority||0,n.index=t,n.name=n.name||o,n.require=function(e){var r=e.require||e.controller&&e.name;return!$e(r)&&xe(r)&&ve(r,function(e,t){var n=e.match(v);e.substring(n[0].length)||(r[t]=n[0]+t)}),r}(n),n.restrict=function(e,t){if(e&&(!Se(e)||!/[EACM]/.test(e)))throw gn("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}(n.restrict,o),n.$$moduleName=e.$$moduleName,a.push(n)}catch(e){i(e)}}),a}])),h[o].push(t)):ve(o,M(e)),this},this.component=function e(t,i){if(!Se(t))return ve(t,M(Te(this,e))),this;var a=i.controller||function(){};function n(r){function e(n){return Me(n)||$e(n)?function(e,t){return r.invoke(n,this,{$element:e,$attrs:t})}:n}var t=i.template||i.templateUrl?i.template:"",n={controller:a,controllerAs:function(e,t){if(t&&Se(t))return t;if(Se(e)){var n=In.exec(e);if(n)return n[3]}}(i.controller)||i.controllerAs||"$ctrl",template:e(t),templateUrl:e(i.templateUrl),transclude:i.transclude,scope:{},bindToController:i.bindings||{},restrict:"E",require:i.require};return ve(i,function(e,t){"$"===t.charAt(0)&&(n[t]=e)}),n}return ve(i,function(e,t){"$"===t.charAt(0)&&(n[t]=e,Me(a)&&(a[t]=e))}),n.$inject=["$injector"],this.directive(t,n)},this.aHrefSanitizationWhitelist=function(e){return E(e)?(t.aHrefSanitizationWhitelist(e),this):t.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return E(e)?(t.imgSrcSanitizationWhitelist(e),this):t.imgSrcSanitizationWhitelist()};var w=!0,x=!(this.debugInfoEnabled=function(e){return E(e)?(w=e,this):w});this.strictComponentBindingsEnabled=function(e){return E(e)?(x=e,this):x};var S=10;this.onChangesTtl=function(e){return arguments.length?(S=e,this):S};var $=!0;this.commentDirectivesEnabled=function(e){return arguments.length?($=e,this):$};var _=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(_=e,this):_};var V=Be();function e(t,e){ve(e,function(e){V[e.toLowerCase()]=t})}this.addPropertySecurityContext=function(e,t,n){var r=e.toLowerCase()+"|"+t.toLowerCase();if(r in V&&V[r]!==n)throw gn("ctxoverride","Property context '{0}.{1}' already set to '{2}', cannot override to '{3}'.",e,t,V[r],n);return V[r]=n,this},e(Yr.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),e(Yr.CSS,["*|style"]),e(Yr.URL,["area|href","area|ping","a|href","a|ping","blockquote|cite","body|background","del|cite","input|src","ins|cite","q|cite"]),e(Yr.MEDIA_URL,["audio|src","img|src","img|srcset","source|src","source|srcset","track|src","video|src","video|poster"]),e(Yr.RESOURCE_URL,["*|formAction","applet|code","applet|codebase","base|href","embed|src","frame|src","form|action","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"]),this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(p,M,K,e,I,q,C,l,i){var a,c=/^\w/,u=le.document.createElement("div"),A=$,D=_,t=S;function o(){try{if(!--t)throw a=void 0,gn("infchng","{0} $onChanges() iterations reached. Aborting!\n",S);C.$apply(function(){for(var e=0,t=a.length;e<t;++e)try{a[e]()}catch(e){K(e)}a=void 0})}finally{t++}}function d(e,t){if(!e)return e;if(!Se(e))throw gn("srcset",'Can\'t pass trusted values to `{0}`: "{1}"',t,e.toString());for(var n="",r=Ae(e),i=/\s/.test(r)?/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/:/(,)/,a=r.split(i),o=Math.floor(a.length/2),s=0;s<o;s++){var c=2*s;n+=l.getTrustedMediaUrl(Ae(a[c])),n+=" "+Ae(a[1+c])}var u=Ae(a[2*s]).split(/\s/);return n+=l.getTrustedMediaUrl(Ae(u[0])),2===u.length&&(n+=" "+Ae(u[1])),n}function W(e,t){if(t){var n,r,i,a=Object.keys(t);for(n=0,r=a.length;n<r;n++)this[i=a[n]]=t[i]}else this.$attr={};this.$$element=e}function R(e,t){try{e.addClass(t)}catch(e){}}W.prototype={$normalize:Sn,$addClass:function(e){e&&0<e.length&&i.addClass(this.$$element,e)},$removeClass:function(e){e&&0<e.length&&i.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=$n(e,t);n&&n.length&&i.addClass(this.$$element,n);var r=$n(t,e);r&&r.length&&i.removeClass(this.$$element,r)},$set:function(e,t,n,r){var i=Ot(this.$$element[0],e),a=function(e){return Pt[e]}(e),o=e;i?(this.$$element.prop(e,t),r=i):a&&(this[a]=t,o=a),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e])||(this.$attr[e]=r=Le(e,"-")),"img"===De(this.$$element)&&"srcset"===e&&(this[e]=t=d(t,"$set('srcset', value)")),!1!==n&&(null===t||we(t)?this.$$element.removeAttr(r):c.test(r)?i&&!1===t?this.$$element.removeAttr(r):this.$$element.attr(r,t):function(e,t,n){u.innerHTML="<span "+t+">";var r=u.firstChild.attributes,i=r[0];r.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}(this.$$element[0],r,t));var s=this.$$observers;s&&ve(s[o],function(e){try{e(t)}catch(e){K(e)}})},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers=Be()),i=r[e]||(r[e]=[]);return i.push(t),C.$evalAsync(function(){i.$$inter||!n.hasOwnProperty(e)||we(n[e])||t(n[e])}),function(){Re(i,t)}}};var n=M.startSymbol(),r=M.endSymbol(),J="{{"===n&&"}}"===r?be:function(e){return e.replace(/\{\{/g,n).replace(/}}/g,r)},E=/^ng(Attr|Prop|On)([A-Z].*)$/,P=/^(.+)Start$/;return G.$$addBindingInfo=w?function(e,t){var n=e.data("$binding")||[];$e(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:ke,G.$$addBindingClass=w?function(e){R(e,"ng-binding")}:ke,G.$$addScopeInfo=w?function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:ke,G.$$addScopeClass=w?function(e,t){R(e,t?"ng-isolate-scope":"ng-scope")}:ke,G.$$createComment=function(e,t){var n="";return w&&(n=" "+(e||"")+": ",t&&(n+=t+" ")),le.document.createComment(n)},G;function G(c,e,t,n,u){c instanceof fe||(c=fe(c));var l=O(c,e,c,t,n,u);G.$$addScopeClass(c);var d=null;return function(e,t,n){if(!c)throw gn("multilink","This element has already been linked.");Ne(e,"scope"),u&&u.needsNewScope&&(e=e.$parent.$new());var r,i=(n=n||{}).parentBoundTranscludeFn,a=n.transcludeControllers,o=n.futureParentElement;if(i&&i.$$boundTransclude&&(i=i.$$boundTransclude),r="html"!==(d=d||function(e){var t=e&&e[0];return t&&"foreignobject"!==De(t)&&me.call(t).match(/SVG/)?"svg":"html"}(o))?fe(ae(d,fe("<div></div>").append(c).html())):t?Dt.clone.call(c):c,a)for(var s in a)r.data("$"+s+"Controller",a[s].instance);return G.$$addScopeInfo(r,e),t&&t(r,e),l&&l(e,r,r,i),t||(c=l=null),r}}function O(e,h,t,n,r,i){for(var a,o,s,c,u,l,m,v=[],d=$e(e)||e instanceof fe,f=0;f<e.length;f++)a=new W,11===de&&g(e,f,d),(s=(o=Y(e[f],[],a,0===f?n:void 0,r)).length?F(o,e[f],a,h,t,null,[],[],i):null)&&s.scope&&G.$$addScopeClass(a.$$element),u=s&&s.terminal||!(c=e[f].childNodes)||!c.length?null:O(c,s?(s.transcludeOnThisElement||!s.templateOnThisElement)&&s.transclude:h),(s||u)&&(v.push(f,s,u),l=!0,m=m||s),i=null;return l?function(e,t,n,r){var i,a,o,s,c,u,l,d,f;if(m){var p=t.length;for(f=new Array(p),c=0;c<v.length;c+=3)l=v[c],f[l]=t[l]}else f=t;for(c=0,u=v.length;c<u;)o=f[v[c++]],i=v[c++],a=v[c++],i?(i.scope?(s=e.$new(),G.$$addScopeInfo(fe(o),s)):s=e,d=i.transcludeOnThisElement?T(e,i.transclude,r):!i.templateOnThisElement&&r?r:!r&&h?T(e,h):null,i(a,s,o,n,d)):a&&a(e,o.childNodes,void 0,r)}:null}function g(e,t,n){var r,i=e[t],a=i.parentNode;if(i.nodeType===je)for(;(r=a?i.nextSibling:e[t+1])&&r.nodeType===je;)i.nodeValue=i.nodeValue+r.nodeValue,r.parentNode&&r.parentNode.removeChild(r),n&&r===e[t+1]&&e.splice(t+1,1)}function T(a,o,s){function e(e,t,n,r,i){return e||((e=a.$new(!1,i)).$$transcluded=!0),o(e,t,{parentBoundTranscludeFn:s,transcludeControllers:n,futureParentElement:r})}var t=e.$$slots=Be();for(var n in o.$$slots)o.$$slots[n]?t[n]=T(a,o.$$slots[n],s):t[n]=null;return e}function Y(e,t,n,r,i){var a,o,s,c,u,l=e.nodeType,d=n.$attr;switch(l){case Ue:L(t,Sn(o=De(e)),"E",r,i);for(var f,p,h,m,v,g=e.attributes,y=0,k=g&&g.length;y<k;y++){var b,w=!1,x=!1,S=!1,$=!1,_=!1;p=(f=g[y]).name,m=f.value,(v=(h=Sn(p.toLowerCase())).match(E))?(S="Attr"===v[1],$="Prop"===v[1],_="On"===v[1],p=p.replace(wn,"").toLowerCase().substr(4+v[1].length).replace(/_(.)/g,function(e,t){return t.toUpperCase()})):(b=h.match(P))&&N(b[1])&&(x=(w=p).substr(0,p.length-5)+"end",p=p.substr(0,p.length-6)),$||_?(n[h]=m,d[h]=f.name,$?H(e,t,h,p):(c=h,u=p,t.push(za(I,C,K,c,u,!1)))):(d[h=Sn(p.toLowerCase())]=p,!S&&n.hasOwnProperty(h)||(n[h]=m,Ot(e,h)&&(n[h]=!0)),U(e,t,m,h,S),L(t,h,"A",r,i,w,x))}if("input"===o&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!D)break;if(xe(s=e.className)&&(s=s.animVal),Se(s)&&""!==s)for(;a=z.exec(s);)L(t,h=Sn(a[2]),"C",r,i)&&(n[h]=Ae(a[3])),s=s.substr(a.index+a[0].length);break;case je:!function(e,t){var i=M(t,!0);i&&e.push({priority:0,compile:function(e){var t=e.parent(),r=!!t.length;return r&&G.$$addBindingClass(t),function(e,t){var n=t.parent();r||G.$$addBindingClass(n),G.$$addBindingInfo(n,i.expressions),e.$watch(i,function(e){t[0].nodeValue=e})}}})}(t,e.nodeValue);break;case ze:if(!A)break;!function(e,t,n,r,i){try{var a=j.exec(e.nodeValue);if(a){var o=Sn(a[1]);L(t,o,"M",r,i)&&(n[o]=Ae(a[2]))}}catch(e){}}(e,t,n,r,i)}return t.sort(B),t}function X(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw gn("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType===Ue&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(0<i);else r.push(e);return fe(r)}function Z(a,o,s){return function(e,t,n,r,i){return t=X(t[0],o,s),a(e,t,n,r,i)}}function Q(e,t,n,r,i,a){var o;return e?G(t,n,r,i,a):function(){return o||(o=G(t,n,r,i,a),t=n=a=null),o.apply(this,arguments)}}function F(e,b,w,t,n,r,x,S,i){i=i||{};for(var a,o,s,c,u,l=-Number.MAX_VALUE,$=i.newScopeDirective,_=i.controllerDirectives,M=i.newIsolateScopeDirective,I=i.templateDirective,d=i.nonTlbTranscludeDirective,f=!1,p=!1,C=i.hasElementTranscludeDirective,h=w.$$element=fe(b),m=r,v=t,g=!1,y=!1,k=0,A=e.length;k<A;k++){var D=(a=e[k]).$$start,R=a.$$end;if(D&&(h=X(b,D,R)),s=void 0,l>a.priority)break;if((u=a.scope)&&(a.templateUrl||(xe(u)?(ie("new/isolated scope",M||$,a,h),M=a):ie("new/isolated scope",M,a,h)),$=$||a),o=a.name,!g&&(a.replace&&(a.templateUrl||a.template)||a.transclude&&!a.$$tlb)){for(var E,P=k+1;E=e[P++];)if(E.transclude&&!E.$$tlb||E.replace&&(E.templateUrl||E.template)){y=!0;break}g=!0}if(!a.templateUrl&&a.controller&&(_=_||Be(),ie("'"+o+"' controller",_[o],a,h),_[o]=a),u=a.transclude)if(f=!0,a.$$tlb||(ie("transclusion",d,a,h),d=a),"element"===u)C=!0,l=a.priority,s=h,h=w.$$element=fe(G.$$createComment(o,w[o])),b=h[0],oe(n,Oe(s),b),v=Q(y,s,t,l,m&&m.name,{nonTlbTranscludeDirective:d});else{var O=Be();if(xe(u)){s=le.document.createDocumentFragment();var T=Be(),F=Be();for(var L in ve(u,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,T[e]=t,O[t]=null,F[t]=n}),ve(h.contents(),function(e){var t=T[Sn(De(e))];t?(F[t]=!0,O[t]=O[t]||le.document.createDocumentFragment(),O[t].appendChild(e)):s.appendChild(e)}),ve(F,function(e,t){if(!e)throw gn("reqslot","Required transclusion slot `{0}` was not filled.",t)}),O)if(O[L]){var N=fe(O[L].childNodes);O[L]=Q(y,N,t)}s=fe(s.childNodes)}else s=fe(pt(b)).contents();h.empty(),(v=Q(y,s,t,void 0,void 0,{needsNewScope:a.$$isolateScope||a.$$newScope})).$$slots=O}if(a.template)if(p=!0,ie("template",I,a,h),u=Me((I=a).template)?a.template(h,w):a.template,u=J(u),a.replace){if(m=a,s=ct(u)?[]:_n(ae(a.templateNamespace,Ae(u))),b=s[0],1!==s.length||b.nodeType!==Ue)throw gn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",o,"");oe(n,h,b);var B={$attr:{}},H=Y(b,[],B),U=e.splice(k+1,e.length-(k+1));(M||$)&&te(H,M,$),e=e.concat(H).concat(U),ne(w,B),A=e.length}else h.html(u);if(a.templateUrl)p=!0,ie("template",I,a,h),(I=a).replace&&(m=a),V=re(e.splice(k,e.length-k),h,w,n,f&&v,x,S,{controllerDirectives:_,newScopeDirective:$!==a&&$,newIsolateScopeDirective:M,templateDirective:I,nonTlbTranscludeDirective:d}),A=e.length;else if(a.compile)try{c=a.compile(h,w,v);var j=a.$$originalDirective||a;Me(c)?z(null,Te(j,c),D,R):c&&z(Te(j,c.pre),Te(j,c.post),D,R)}catch(e){K(e,Fe(h))}a.terminal&&(V.terminal=!0,l=Math.max(l,a.priority))}return V.scope=$&&!0===$.scope,V.transcludeOnThisElement=f,V.templateOnThisElement=p,V.transclude=v,i.hasElementTranscludeDirective=C,V;function z(e,t,n,r){e&&(n&&(e=Z(e,n,r)),e.require=a.require,e.directiveName=o,M!==a&&!a.$$isolateScope||(e=se(e,{isolateScope:!0})),x.push(e)),t&&(n&&(t=Z(t,n,r)),t.require=a.require,t.directiveName=o,M!==a&&!a.$$isolateScope||(t=se(t,{isolateScope:!0})),S.push(t))}function V(e,t,n,r,o){var i,a,s,c,u,l,d,f,p,h;for(var m in b===n?f=(p=w).$$element:p=new W(f=fe(n),w),u=t,M?c=t.$new(!0):$&&(u=t.$parent),o&&((d=function(e,t,n,r){var i;Ie(e)||(r=n,n=t,t=e,e=void 0);C&&(i=l);n=n||(C?f.parent():f);{if(!r)return o(e,t,i,n,k);var a=o.$$slots[r];if(a)return a(e,t,i,n,k);if(we(a))throw gn("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',r,Fe(f))}}).$$boundTransclude=o,d.isSlotFilled=function(e){return!!o.$$slots[e]}),_&&(l=function(e,t,n,r,i,a,o){var s=Be();for(var c in r){var u=r[c],l={$scope:u===o||u.$$isolateScope?i:a,$element:e,$attrs:t,$transclude:n},d=u.controller;"@"===d&&(d=t[u.name]);var f=q(d,l,!0,u.controllerAs);s[u.name]=f,e.data("$"+u.name+"Controller",f.instance)}return s}(f,p,d,_,c,t,M)),M&&(G.$$addScopeInfo(f,c,!0,!(I&&(I===M||I===M.$$originalDirective))),G.$$addScopeClass(f,!0),c.$$isolateBindings=M.$$isolateBindings,(h=ue(t,p,c,c.$$isolateBindings,M)).removeWatches&&c.$on("$destroy",h.removeWatches)),l){var v=_[m],g=l[m],y=v.$$bindings.bindToController;g.instance=g(),f.data("$"+v.name+"Controller",g.instance),g.bindingInfo=ue(u,p,g.instance,y,v)}for(ve(_,function(e,t){var n=e.require;e.bindToController&&!$e(n)&&xe(n)&&ge(l[t].instance,ee(t,n,f,l))}),ve(l,function(e){var t=e.instance;if(Me(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){K(e)}if(Me(t.$onInit))try{t.$onInit()}catch(e){K(e)}Me(t.$doCheck)&&(u.$watch(function(){t.$doCheck()}),t.$doCheck()),Me(t.$onDestroy)&&u.$on("$destroy",function(){t.$onDestroy()})}),i=0,a=x.length;i<a;i++)ce(s=x[i],s.isolateScope?c:t,f,p,s.require&&ee(s.directiveName,s.require,f,l),d);var k=t;for(M&&(M.template||null===M.templateUrl)&&(k=c),e&&e(k,n.childNodes,void 0,o),i=S.length-1;0<=i;i--)ce(s=S[i],s.isolateScope?c:t,f,p,s.require&&ee(s.directiveName,s.require,f,l),d);ve(l,function(e){var t=e.instance;Me(t.$postLink)&&t.$postLink()})}}function ee(n,e,r,i){var a;if(Se(e)){var t=e.match(v),o=e.substring(t[0].length),s=t[1]||t[3],c="?"===t[2];if("^^"===s?r=r.parent():a=(a=i&&i[o])&&a.instance,!a){var u="$"+o+"Controller";a="^^"===s&&r[0]&&r[0].nodeType===Ve?null:s?r.inheritedData(u):r.data(u)}if(!a&&!c)throw gn("ctreq","Controller '{0}', required by directive '{1}', can't be found!",o,n)}else if($e(e)){a=[];for(var l=0,d=e.length;l<d;l++)a[l]=ee(n,e[l],r,i)}else xe(e)&&(a={},ve(e,function(e,t){a[t]=ee(n,e,r,i)}));return a||null}function te(e,t,n){for(var r=0,i=e.length;r<i;r++)e[r]=ye(e[r],{$$isolateScope:t,$$newScope:n})}function L(e,t,n,r,i,a,o){if(t===i)return null;var s=null;if(h.hasOwnProperty(t))for(var c,u=p.get(t+m),l=0,d=u.length;l<d;l++)if(c=u[l],(we(r)||r>c.priority)&&-1!==c.restrict.indexOf(n)){if(a&&(c=ye(c,{$$start:a,$$end:o})),!c.$$bindings){var f=c.$$bindings=b(c,c.name);xe(f.isolateScope)&&(c.$$isolateBindings=f.isolateScope)}e.push(c),s=c}return s}function N(e){if(h.hasOwnProperty(e))for(var t=p.get(e+m),n=0,r=t.length;n<r;n++)if(t[n].multiElement)return!0;return!1}function ne(n,r){var i=r.$attr,a=n.$attr;ve(n,function(e,t){"$"!==t.charAt(0)&&(r[t]&&r[t]!==e&&(e.length?e+=("style"===t?";":" ")+r[t]:e=r[t]),n.$set(t,e,!0,i[t]))}),ve(r,function(e,t){n.hasOwnProperty(t)||"$"===t.charAt(0)||(n[t]=e,"class"!==t&&"style"!==t&&(a[t]=i[t]))})}function re(f,p,h,m,v,g,y,k){var b,w,x=[],S=p[0],$=f.shift(),_=ye($,{templateUrl:null,transclude:null,replace:null,$$originalDirective:$}),M=Me($.templateUrl)?$.templateUrl(p,h):$.templateUrl,I=$.templateNamespace;return p.empty(),e(M).then(function(e){var n,t,r,i;if(e=J(e),$.replace){if(r=ct(e)?[]:_n(ae(I,Ae(e))),n=r[0],1!==r.length||n.nodeType!==Ue)throw gn("tplrt","Template for directive '{0}' must have exactly one root element. {1}",$.name,M);t={$attr:{}},oe(m,p,n);var a=Y(n,[],t);xe($.scope)&&te(a,!0),f=a.concat(f),ne(h,t)}else n=S,p.html(e);for(f.unshift(_),b=F(f,n,h,v,p,$,g,y,k),ve(m,function(e,t){e===n&&(m[t]=p[0])}),w=O(p[0].childNodes,v);x.length;){var o=x.shift(),s=x.shift(),c=x.shift(),u=x.shift(),l=p[0];if(!o.$$destroyed){if(s!==S){var d=s.className;k.hasElementTranscludeDirective&&$.replace||(l=pt(n)),oe(c,fe(s),l),R(fe(l),d)}i=b.transcludeOnThisElement?T(o,b.transclude,u):u,b(w,o,l,m,i)}}x=null}).catch(function(e){_e(e)&&K(e)}),function(e,t,n,r,i){var a=i;t.$$destroyed||(x?x.push(t,n,r,a):(b.transcludeOnThisElement&&(a=T(t,b.transclude,i)),b(w,t,n,r,a)))}}function B(e,t){var n=t.priority-e.priority;return 0!=n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function ie(e,t,n,r){function i(e){return e?" (module: "+e+")":""}if(t)throw gn("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,Fe(r))}function ae(e,t){switch(e=he(e||"html")){case"svg":case"math":var n=le.document.createElement("div");return n.innerHTML="<"+e+">"+t+"</"+e+">",n.childNodes[0].childNodes;default:return t}}function s(e){return d(l.valueOf(e),"ng-prop-srcset")}function H(e,t,n,a){if(y.test(a))throw gn("nodomevents","Property bindings for HTML DOM event properties are disallowed");var r=De(e),i=function(e,t){var n=t.toLowerCase();return V[e+"|"+n]||V["*|"+n]}(r,a),o=be;"srcset"!==a||"img"!==r&&"source"!==r?i&&(o=l.getTrusted.bind(l,i)):o=s,t.push({priority:100,compile:function(e,t){var r=I(t[n]),i=I(t[n],function(e){return l.valueOf(e)});return{pre:function(t,n){function e(){var e=r(t);n[0][a]=o(e)}e(),t.$watch(i,e)}}}})}function U(e,t,a,o,n){var r=De(e),s=function(e,t){return"srcdoc"===t?l.HTML:"src"===t||"ngSrc"===t?-1===["img","video","audio","source","track"].indexOf(e)?l.RESOURCE_URL:l.MEDIA_URL:"xlinkHref"===t?"image"===e?l.MEDIA_URL:"a"===e?l.URL:l.RESOURCE_URL:"form"===e&&"action"===t||"base"===e&&"href"===t||"link"===e&&"href"===t?l.RESOURCE_URL:"a"!==e||"href"!==t&&"ngHref"!==t?void 0:l.URL}(r,o),i=!n,c=f[o]||n,u=M(a,i,s,c);if(u){if("multiple"===o&&"select"===r)throw gn("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",Fe(e));if(y.test(o))throw gn("nodomevents","Interpolations for HTML DOM event attributes are disallowed");t.push({priority:100,compile:function(){return{pre:function(e,t,n){var r=n.$$observers||(n.$$observers=Be()),i=n[o];i!==a&&(u=i&&M(i,!0,s,c),a=i),u&&(n[o]=u(e),(r[o]||(r[o]=[])).$$inter=!0,(n.$$observers&&n.$$observers[o].$$scope||e).$watch(u,function(e,t){"class"===o&&e!==t?n.$updateClass(e,t):n.$set(o,e)}))}}}})}}function oe(e,t,n){var r,i,a=t[0],o=t.length,s=a.parentNode;if(e)for(r=0,i=e.length;r<i;r++)if(e[r]===a){e[r++]=n;for(var c=r,u=c+o-1,l=e.length;c<l;c++,u++)u<l?e[c]=e[u]:delete e[c];e.length-=o-1,e.context===a&&(e.context=n);break}s&&s.replaceChild(n,a);var d=le.document.createDocumentFragment();for(r=0;r<o;r++)d.appendChild(t[r]);for(fe.hasData(a)&&(fe.data(n,fe.data(a)),fe(a).off("$destroy")),fe.cleanData(d.querySelectorAll("*")),r=1;r<o;r++)delete t[r];t[0]=n,t.length=1}function se(e,t){return ge(function(){return e.apply(null,arguments)},e,t)}function ce(e,t,n,r,i,a){try{e(t,n,r,i,a)}catch(e){K(e,Fe(n))}}function k(e,t){if(x)throw gn("missingattr","Attribute '{0}' of '{1}' is non-optional and must be set!",e,t)}function ue(f,p,h,e,m){var r,v=[],g={};function y(e,t,n){Me(h.$onChanges)&&!Ee(t,n)&&(a||(f.$$postDigest(o),a=[]),r||(r={},a.push(i)),r[e]&&(n=r[e].previousValue),r[e]=new bn(n,t))}function i(){h.$onChanges(r),r=void 0}return ve(e,function(e,n){var t,r,i,a,o,s=e.attrName,c=e.optional;switch(e.mode){case"@":c||pe.call(p,s)||(k(s,m.name),h[n]=p[s]=void 0),o=p.$observe(s,function(e){if(Se(e)||Ce(e)){var t=h[n];y(n,e,t),h[n]=e}}),p.$$observers[s].$$scope=f,Se(t=p[s])?h[n]=M(t)(f):Ce(t)&&(h[n]=t),g[n]=new bn(yn,h[n]),v.push(o);break;case"=":if(!pe.call(p,s)){if(c)break;k(s,m.name),p[s]=void 0}if(c&&!p[s])break;r=I(p[s]),a=r.literal?Pe:Ee,i=r.assign||function(){throw t=h[n]=r(f),gn("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",p[s],s,m.name)},t=h[n]=r(f);var u=function(e){return a(e,h[n])||(a(e,t)?i(f,e=h[n]):h[n]=e),t=e};u.$stateful=!0,o=e.collection?f.$watchCollection(p[s],u):f.$watch(I(p[s],u),null,r.literal),v.push(o);break;case"<":if(!pe.call(p,s)){if(c)break;k(s,m.name),p[s]=void 0}if(c&&!p[s])break;var l=(r=I(p[s])).literal,d=h[n]=r(f);g[n]=new bn(yn,h[n]),o=f[e.collection?"$watchCollection":"$watch"](r,function(e,t){if(t===e){if(t===d||l&&Pe(t,d))return;t=d}y(n,e,t),h[n]=e}),v.push(o);break;case"&":if(c||pe.call(p,s)||k(s,m.name),(r=p.hasOwnProperty(s)?I(p[s]):ke)===ke&&c)break;h[n]=function(e){return r(f,e)}}}),{initialChanges:g,removeWatches:v.length&&function(){for(var e=0,t=v.length;e<t;++e)v[e]()}}}}]}function bn(e,t){this.previousValue=e,this.currentValue=t}kn.$inject=["$provide","$$sanitizeUriProvider"],bn.prototype.isFirstChange=function(){return this.previousValue===yn};var wn=/^((?:x|data)[:\-_])/i,xn=/[:\-_]+(.)/g;function Sn(e){return e.replace(wn,"").replace(xn,function(e,t,n){return n?t.toUpperCase():t})}function $n(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var a=0;a<r.length;a++){for(var o=r[a],s=0;s<i.length;s++)if(o===i[s])continue e;n+=(0<n.length?" ":"")+o}return n}function _n(e){var t=(e=fe(e)).length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===ze||n.nodeType===je&&""===n.nodeValue.trim())&&i.call(e,t,1)}return e}var Mn=C("$controller"),In=/^(\S+)(\s+as\s+([\w$]+))?$/;function Cn(){var d={};this.has=function(e){return d.hasOwnProperty(e)},this.register=function(e,t){ce(e,"controller"),xe(e)?ge(d,e):d[e]=t},this.$get=["$injector",function(u){return function(t,n,e,r){var i,a,o,s;if(e=!0===e,r&&Se(r)&&(s=r),Se(t)){if(!(a=t.match(In)))throw Mn("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);if(o=a[1],s=s||a[3],!(t=d.hasOwnProperty(o)?d[o]:function(e,t,n){if(!t)return e;for(var r,i=t.split("."),a=e,o=i.length,s=0;s<o;s++)r=i[s],e=e&&(a=e)[r];return!n&&Me(e)?Te(a,e):e}(n.$scope,o,!0)))throw Mn("ctrlreg","The controller with the name '{0}' is not registered.",o);se(t,o,!0)}if(e){var c=($e(t)?t[t.length-1]:t).prototype;return i=Object.create(c||null),s&&l(n,s,i,o||t.name),ge(function(){var e=u.invoke(t,i,n,o);return e!==i&&(xe(e)||Me(e))&&(i=e,s&&l(n,s,i,o||t.name)),i},{instance:i,identifier:s})}return i=u.instantiate(t,n,o),s&&l(n,s,i,o||t.name),i};function l(e,t,n,r){if(!e||!xe(e.$scope))throw C("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,t);e.$scope[t]=n}}]}function An(){this.$get=["$window",function(e){return fe(e.document)}]}function Dn(){this.$get=["$document","$rootScope",function(e,t){var n=e[0],r=n&&n.hidden;function i(){r=n.hidden}return e.on("visibilitychange",i),t.$on("$destroy",function(){e.off("visibilitychange",i)}),function(){return r}}]}function Rn(){this.$get=["$log",function(n){return function(e,t){n.error.apply(n,arguments)}}]}function En(){this.$get=["$document",function(t){return function(e){return e?!e.nodeType&&e instanceof fe&&(e=e[0]):e=t[0].body,e.offsetWidth+1}}]}var Pn="application/json",On={"Content-Type":Pn+";charset=utf-8"},Tn=/^\[|^\{(?!\{)/,Fn={"[":/]$/,"{":/}$/},Ln=/^\)]\}',?\n/,Nn=C("$http");function Bn(e){return xe(e)?S(e)?e.toISOString():z(e):e}function Hn(){this.$get=function(){return function(e){if(!e)return"";var n=[];return c(e,function(e,t){null===e||we(e)||Me(e)||($e(e)?ve(e,function(e){n.push(Z(t)+"="+Z(Bn(e)))}):n.push(Z(t)+"="+Z(Bn(e))))}),n.join("&")}}}function Un(){this.$get=function(){return function(e){if(!e)return"";var t=[];return function n(e,r,i){$e(e)?ve(e,function(e,t){n(e,r+"["+(xe(e)?t:"")+"]")}):xe(e)&&!S(e)?c(e,function(e,t){n(e,r+(i?"":"[")+t+(i?"":"]"))}):(Me(e)&&(e=e()),t.push(Z(r)+"="+(null==e?"":Z(Bn(e)))))}(e,"",!0),t.join("&")}}}function jn(t,e){if(Se(t)){var n=t.replace(Ln,"").trim();if(n){var r=e("Content-Type"),i=r&&0===r.indexOf(Pn);if(i||function(e){var t=e.match(Tn);return t&&Fn[t[0]].test(e)}(n))try{t=V(n)}catch(e){if(!i)return t;throw Nn("baddata",'Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"',t,e)}}}return t}function zn(e){var t,n=Be();function r(e,t){e&&(n[e]=n[e]?n[e]+", "+t:t)}return Se(e)?ve(e.split("\n"),function(e){t=e.indexOf(":"),r(he(Ae(e.substr(0,t))),Ae(e.substr(t+1)))}):xe(e)&&ve(e,function(e,t){r(he(t),Ae(e))}),n}function Vn(n){var r;return function(e){if(r=r||zn(n),e){var t=r[he(e)];return void 0===t&&(t=null),t}return r}}function Kn(t,n,r,e){return Me(e)?e(t,n,r):(ve(e,function(e){t=e(t,n,r)}),t)}function qn(e){return 200<=e&&e<300}function Wn(){var x=this.defaults={transformResponse:[jn],transformRequest:[function(e){return!xe(e)||function(e){return"[object File]"===me.call(e)}(e)||function(e){return"[object Blob]"===me.call(e)}(e)||function(e){return"[object FormData]"===me.call(e)}(e)?e:z(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:qe(On),put:qe(On),patch:qe(On)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},S=!1;this.useApplyAsync=function(e){return E(e)?(S=!!e,this):S};var t=this.interceptors=[],n=this.xsrfWhitelistedOrigins=[];this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(s,h,m,e,v,g,c,y){var k=e("$http");x.paramSerializer=Se(x.paramSerializer)?c.get(x.paramSerializer):x.paramSerializer;var u=[];ve(t,function(e){u.unshift(Se(e)?c.get(e):c.invoke(e))});var b=function(e){var n=[fi].concat(e.map(hi));return function(e){var t=hi(e);return n.some(mi.bind(null,t))}}(n);function w(e){if(!xe(e))throw C("$http")("badreq","Http request configuration must be an object. Received: {0}",e);if(!Se(y.valueOf(e.url)))throw C("$http")("badreq","Http request configuration url must be a string or a $sce trusted object. Received: {0}",e.url);var n=ge({method:"get",transformRequest:x.transformRequest,transformResponse:x.transformResponse,paramSerializer:x.paramSerializer,jsonpCallbackParam:x.jsonpCallbackParam},e);n.headers=function(e){var t,n,r,i=x.headers,a=ge({},e.headers);i=ge({},i.common,i[he(e.method)]);e:for(t in i){for(r in n=he(t),a)if(he(r)===n)continue e;a[t]=i[t]}return function(e,n){var r,i={};return ve(e,function(e,t){Me(e)?null!=(r=e(n))&&(i[t]=r):i[t]=e}),i}(a,qe(e))}(e),n.method=f(n.method),n.paramSerializer=Se(n.paramSerializer)?c.get(n.paramSerializer):n.paramSerializer,s.$$incOutstandingRequestCount("$http");var t=[],r=[],i=g.resolve(n);return ve(u,function(e){(e.request||e.requestError)&&t.unshift(e.request,e.requestError),(e.response||e.responseError)&&r.push(e.response,e.responseError)}),i=(i=a(i=(i=a(i,t)).then(function(e){var n=e.headers,t=Kn(e.data,Vn(n),void 0,e.transformRequest);we(t)&&ve(n,function(e,t){"content-type"===he(t)&&delete n[t]});we(e.withCredentials)&&!we(x.withCredentials)&&(e.withCredentials=x.withCredentials);return function(a,e){var o,t,s=g.defer(),n=s.promise,r=a.headers,i="jsonp"===he(a.method),c=a.url;i?c=y.getTrustedResourceUrl(c):Se(c)||(c=y.valueOf(c));c=function(e,t){0<t.length&&(e+=(-1===e.indexOf("?")?"?":"&")+t);return e}(c,a.paramSerializer(a.params)),i&&(c=function(n,r){var e=n.split("?");if(2<e.length)throw Nn("badjsonp",'Illegal use more than one "?", in url, "{1}"',n);return ve(Y(e[1]),function(e,t){if("JSON_CALLBACK"===e)throw Nn("badjsonp",'Illegal use of JSON_CALLBACK in url, "{0}"',n);if(t===r)throw Nn("badjsonp",'Illegal use of callback param, "{0}", in url, "{1}"',r,n)}),n+=(-1===n.indexOf("?")?"?":"&")+r+"=JSON_CALLBACK"}(c,a.jsonpCallbackParam));w.pendingRequests.push(a),n.then(p,p),!a.cache&&!x.cache||!1===a.cache||"GET"!==a.method&&"JSONP"!==a.method||(o=xe(a.cache)?a.cache:xe(x.cache)?x.cache:k);o&&(E(t=o.get(c))?I(t)?t.then(f,f):$e(t)?d(t[1],t[0],qe(t[2]),t[3],t[4]):d(t,200,{},"OK","complete"):o.put(c,n));if(we(t)){var u=b(a.url)?m()[a.xsrfCookieName||x.xsrfCookieName]:void 0;u&&(r[a.xsrfHeaderName||x.xsrfHeaderName]=u),h(a.method,c,e,function(e,t,n,r,i){o&&(qn(e)?o.put(c,[e,t,zn(n),r,i]):o.remove(c));function a(){d(t,e,n,r,i)}S?v.$applyAsync(a):(a(),v.$$phase||v.$apply())},r,a.timeout,a.withCredentials,a.responseType,l(a.eventHandlers),l(a.uploadEventHandlers))}return n;function l(e){if(e){var t={};return ve(e,function(n,e){t[e]=function(e){function t(){n(e)}S?v.$applyAsync(t):v.$$phase?t():v.$apply(t)}}),t}}function d(e,t,n,r,i){(qn(t=-1<=t?t:0)?s.resolve:s.reject)({data:e,status:t,headers:Vn(n),config:a,statusText:r,xhrStatus:i})}function f(e){d(e.data,e.status,qe(e.headers()),e.statusText,e.xhrStatus)}function p(){var e=w.pendingRequests.indexOf(a);-1!==e&&w.pendingRequests.splice(e,1)}}(e,t).then(o,o)}),r)).finally(function(){s.$$completeOutstandingRequest(ke,"$http")});function a(e,t){for(var n=0,r=t.length;n<r;){var i=t[n++],a=t[n++];e=e.then(i,a)}return t.length=0,e}function o(e){var t=ge({},e);return t.data=Kn(e.data,e.headers,e.status,n.transformResponse),qn(e.status)?t:g.reject(t)}}return w.pendingRequests=[],function(e){ve(arguments,function(n){w[n]=function(e,t){return w(ge({},t||{},{method:n,url:e}))}})}("get","delete","head","jsonp"),function(e){ve(arguments,function(r){w[r]=function(e,t,n){return w(ge({},n||{},{method:r,url:e,data:t}))}})}("post","put","patch"),w.defaults=x,w}]}function Jn(){this.$get=function(){return function(){return new le.XMLHttpRequest}}}function Gn(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,r){return function(g,y,k,b,w){return function(e,r,t,i,n,a,o,s,c,u){if(r=r||g.url(),"jsonp"===he(e))var l=b.createCallback(r),d=function(e,r,i){e=e.replace("JSON_CALLBACK",r);var a=w.createElement("script"),o=null;return a.type="text/javascript",a.src=e,a.async=!0,o=function(e){a.removeEventListener("load",o),a.removeEventListener("error",o),w.body.removeChild(a),a=null;var t=-1,n="unknown";e&&("load"!==e.type||b.wasCalled(r)||(e={type:"error"}),n=e.type,t="error"===e.type?404:200),i&&i(t,n)},a.addEventListener("load",o),a.addEventListener("error",o),w.body.appendChild(a),o}(r,l,function(e,t){var n=200===e&&b.getResponse(l);v(i,e,n,"",t,"complete"),b.removeCallback(l)});else{var f=y(e,r),p=!1;f.open(e,r,!0),ve(n,function(e,t){E(e)&&f.setRequestHeader(t,e)}),f.onload=function(){var e=f.statusText||"",t="response"in f?f.response:f.responseText,n=1223===f.status?204:f.status;0===n&&(n=t?200:"file"===hi(r).protocol?404:0),v(i,n,t,f.getAllResponseHeaders(),e,"complete")};if(f.onerror=function(){v(i,-1,null,null,"","error")},f.ontimeout=function(){v(i,-1,null,null,"","timeout")},f.onabort=function(){v(i,-1,null,null,"",p?"timeout":"abort")},ve(c,function(e,t){f.addEventListener(t,e)}),ve(u,function(e,t){f.upload.addEventListener(t,e)}),o&&(f.withCredentials=!0),s)try{f.responseType=s}catch(e){if("json"!==s)throw e}f.send(we(t)?null:t)}if(0<a)var h=k(function(){m("timeout")},a);else I(a)&&a.then(function(){m(E(a.$$timeoutId)?"timeout":"abort")});function m(e){p="timeout"===e,d&&d(),f&&f.abort()}function v(e,t,n,r,i,a){E(h)&&k.cancel(h),d=f=null,e(t,n,r,i,a)}}}(e,r,e.defer,t,n[0])}]}var Yn=k.$interpolateMinErr=C("$interpolate");function Xn(){var M="{{",I="}}";this.startSymbol=function(e){return e?(M=e,this):M},this.endSymbol=function(e){return e?(I=e,this):I},this.$get=["$parse","$exceptionHandler","$sce",function(k,b,w){var x=M.length,S=I.length,t=new RegExp(M.replace(/./g,e),"g"),n=new RegExp(I.replace(/./g,e),"g");function e(e){return"\\\\\\"+e}function $(e){return e.replace(t,M).replace(n,I)}function _(e,t,n,r){var i=e.$watch(function(e){return i(),r(e)},t,n);return i}function r(i,e,r,a){var o=r===w.URL||r===w.MEDIA_URL;if(!i.length||-1===i.indexOf(M)){if(e)return;var t=$(i);o&&(t=w.getTrusted(r,t));var n=R(t);return n.exp=i,n.expressions=[],n.$$watchDelegate=_,n}a=!!a;for(var s,c,u,l,d,f=0,p=[],h=i.length,m=[],v=[];f<h;){if(-1===(s=i.indexOf(M,f))||-1===(c=i.indexOf(I,s+x))){f!==h&&m.push($(i.substring(f)));break}f!==s&&m.push($(i.substring(f,s))),l=i.substring(s+x,c),p.push(l),f=c+S,v.push(m.length),m.push("")}d=1===m.length&&1===v.length;var g=o&&d?void 0:function(e){try{return e=r&&!o?w.getTrusted(r,e):w.valueOf(e),a&&!E(e)?e:He(e)}catch(e){b(Yn.interr(i,e))}};if(u=p.map(function(e){return k(e,g)}),!e||p.length){var y=function(e){for(var t=0,n=p.length;t<n;t++){if(a&&we(e[t]))return;m[v[t]]=e[t]}return o?w.getTrusted(r,d?m[0]:m.join("")):(r&&1<m.length&&Yn.throwNoconcat(i),m.join(""))};return ge(function(e){var t=0,n=p.length,r=new Array(n);try{for(;t<n;t++)r[t]=u[t](e);return y(r)}catch(e){b(Yn.interr(i,e))}},{exp:i,expressions:p,$$watchDelegate:function(r,i){var a;return r.$watchGroup(u,function(e,t){var n=y(e);i.call(this,n,e!==t?a:n,r),a=n})}})}}return r.startSymbol=function(){return M},r.endSymbol=function(){return I},r}]}Yn.throwNoconcat=function(e){throw Yn("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},Yn.interr=function(e,t){return Yn("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var Zn=C("$interval");function Qn(){this.$get=["$$intervalFactory","$window",function(e,i){function r(e){i.clearInterval(e),delete a[e]}var a={},t=e(function(e,t,n){var r=i.setInterval(e,t);return a[r]=n,r},r);return t.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$intervalId"))throw Zn("badprom","`$interval.cancel()` called with a promise that was not generated by `$interval()`.");if(!a.hasOwnProperty(e.$$intervalId))return!1;var t=e.$$intervalId,n=a[t];return Kr(n.promise),n.reject("canceled"),r(t),!0},t}]}function er(){this.$get=["$browser","$q","$$q","$rootScope",function(p,h,m,v){return function(d,f){return function(e,t,n,r){var i=4<arguments.length,a=i?Oe(arguments,4):[],o=0,s=E(r)&&!r,c=(s?m:h).defer(),u=c.promise;function l(){i?e.apply(null,a):e(o)}return n=E(n)?n:0,u.$$intervalId=d(function(){s?p.defer(l):v.$evalAsync(l),c.notify(o++),0<n&&n<=o&&(c.resolve(o),f(u.$$intervalId)),s||v.$apply()},t,c,s),u}}}]}function tr(){this.$get=function(){var i=k.callbacks,a={};return{createCallback:function(e){var t="_"+(i.$$counter++).toString(36),n="angular.callbacks."+t,r=function(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}(t);return a[n]=i[t]=r,n},wasCalled:function(e){return a[e].called},getResponse:function(e){return a[e].data},removeCallback:function(e){var t=a[e];delete i[t.id],delete a[e]}}}}var nr=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,rr={http:80,https:443,ftp:21},ir=C("$location");function ar(e,t,n){var r=function(e){var n=[];return ve(e,function(e,t){$e(e)?ve(e,function(e){n.push(Z(t,!0)+(!0===e?"":"="+Z(e,!0)))}):n.push(Z(t,!0)+(!0===e?"":"="+Z(e,!0)))}),n.length?n.join("&"):""}(t),i=n?"#"+X(n):"";return function(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=X(t[n].replace(/%2F/g,"/"));return t.join("/")}(e)+(r?"?"+r:"")+i}function or(e,t){var n=hi(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=y(n.port)||rr[n.protocol]||null}var sr=/^\s*[\\/]{2,}/;function cr(e,t,n){if(sr.test(e))throw ir("badpath",'Invalid url "{0}".',e);var r="/"!==e.charAt(0);r&&(e="/"+e);var i=hi(e),a=r&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname;t.$$path=function(e,t){for(var n=e.split("/"),r=n.length;r--;)n[r]=decodeURIComponent(n[r]),t&&(n[r]=n[r].replace(/\//g,"%2F"));return n.join("/")}(a,n),t.$$search=Y(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function ur(e,t){return e.slice(0,t.length)===t}function lr(e,t){if(ur(t,e))return t.substr(e.length)}function dr(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function fr(a,o,s){this.$$html5=!0,s=s||"",or(a,this),this.$$parse=function(e){var t=lr(o,e);if(!Se(t))throw ir("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,o);cr(t,this,!0),this.$$path||(this.$$path="/"),this.$$compose()},this.$$normalizeUrl=function(e){return o+e.substr(1)},this.$$parseLinkUrl=function(e,t){return t&&"#"===t[0]?(this.hash(t.slice(1)),!0):(E(n=lr(a,e))?(r=n,i=s&&E(n=lr(s,n))?o+(lr("/",n)||n):a+r):E(n=lr(o,e))?i=o+n:o===e+"/"&&(i=o),i&&this.$$parse(i),!!i);var n,r,i}}function pr(r,i,a){or(r,this),this.$$parse=function(e){var t,n=lr(r,e)||lr(i,e);we(n)||"#"!==n.charAt(0)?this.$$html5?t=n:(t="",we(n)&&(r=e,this.replace())):we(t=lr(a,n))&&(t=n),cr(t,this,!1),this.$$path=function(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;ur(t,n)&&(t=t.replace(n,""));if(i.exec(t))return e;return(r=i.exec(e))?r[1]:e}(this.$$path,t,r),this.$$compose()},this.$$normalizeUrl=function(e){return r+(e?a+e:"")},this.$$parseLinkUrl=function(e,t){return dr(r)===dr(e)&&(this.$$parse(e),!0)}}function hr(i,a,o){this.$$html5=!0,pr.apply(this,arguments),this.$$parseLinkUrl=function(e,t){return t&&"#"===t[0]?(this.hash(t.slice(1)),!0):(i===dr(e)?n=e:(r=lr(a,e))?n=i+o+r:a===e+"/"&&(n=a),n&&this.$$parse(n),!!n);var n,r},this.$$normalizeUrl=function(e){return i+o+e}}var mr={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){this.$$url=ar(this.$$path,this.$$search,this.$$hash),this.$$absUrl=this.$$normalizeUrl(this.$$url),this.$$urlUpdatedByLocation=!0},absUrl:vr("$$absUrl"),url:function(e){if(we(e))return this.$$url;var t=nr.exec(e);return!t[1]&&""!==e||this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:vr("$$protocol"),host:vr("$$host"),port:vr("$$port"),path:gr("$$path",function(e){return"/"===(e=null!==e?e.toString():"").charAt(0)?e:"/"+e}),search:function(n,e){switch(arguments.length){case 0:return this.$$search;case 1:if(Se(n)||x(n))n=n.toString(),this.$$search=Y(n);else{if(!xe(n))throw ir("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");ve(n=N(n,{}),function(e,t){null==e&&delete n[t]}),this.$$search=n}break;default:we(e)||null===e?delete this.$$search[n]:this.$$search[n]=e}return this.$$compose(),this},hash:gr("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};function vr(e){return function(){return this[e]}}function gr(t,n){return function(e){return we(e)?this[t]:(this[t]=n(e),this.$$compose(),this)}}function yr(){var m="!",v={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return E(e)?(m=e,this):m},this.html5Mode=function(e){return Ce(e)?(v.enabled=e,this):xe(e)?(Ce(e.enabled)&&(v.enabled=e.enabled),Ce(e.requireBase)&&(v.requireBase=e.requireBase),(Ce(e.rewriteLinks)||Se(e.rewriteLinks))&&(v.rewriteLinks=e.rewriteLinks),this):v},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(o,s,t,a,e){var c,n,r,i=s.baseHref(),u=s.url();if(v.enabled){if(!i&&v.requireBase)throw ir("nobase","$location in HTML5 mode requires a <base> tag to be present!");r=function(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}(u)+(i||"/"),n=t.history?fr:hr}else r=dr(u),n=pr;var l=function(e){return e.substr(0,dr(e).lastIndexOf("/")+1)}(r);(c=new n(r,l,"#"+m)).$$parseLinkUrl(u,u),c.$$state=s.state();var d=/^\s*(javascript|mailto):/i;function f(e,t,n){var r=c.url(),i=c.$$state;try{s.url(e,t,n),c.$$state=s.state()}catch(e){throw c.url(r),c.$$state=i,e}}a.on("click",function(e){var t=v.rewriteLinks;if(t&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var n=fe(e.target);"a"!==De(n[0]);)if(n[0]===a[0]||!(n=n.parent())[0])return;if(!Se(t)||!we(n.attr(t))){var r=n.prop("href"),i=n.attr("href")||n.attr("xlink:href");xe(r)&&"[object SVGAnimatedString]"===r.toString()&&(r=hi(r.animVal).href),d.test(r)||!r||n.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(r,i)&&(e.preventDefault(),c.absUrl()!==s.url()&&o.$apply())}}}),c.absUrl()!==u&&s.url(c.absUrl(),!0);var p=!0;return s.onUrlChange(function(r,i){ur(r,l)?(o.$evalAsync(function(){var e,t=c.absUrl(),n=c.$$state;c.$$parse(r),c.$$state=i,e=o.$broadcast("$locationChangeStart",r,t,i,n).defaultPrevented,c.absUrl()===r&&(e?(c.$$parse(t),f(t,!1,c.$$state=n)):(p=!1,h(t,n)))}),o.$$phase||o.$digest()):e.location.href=r}),o.$watch(function(){if(p||c.$$urlUpdatedByLocation){c.$$urlUpdatedByLocation=!1;var n=s.url(),e=c.absUrl(),r=s.state(),i=c.$$replace,a=!function(e,t){return e===t||hi(e).href===hi(t).href}(n,e)||c.$$html5&&t.history&&r!==c.$$state;(p||a)&&(p=!1,o.$evalAsync(function(){var e=c.absUrl(),t=o.$broadcast("$locationChangeStart",e,n,c.$$state,r).defaultPrevented;c.absUrl()===e&&(t?(c.$$parse(n),c.$$state=r):(a&&f(e,i,r===c.$$state?null:c.$$state),h(n,r)))}))}c.$$replace=!1}),c;function h(e,t){o.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}}]}function kr(){var r=!0,a=this;this.debugEnabled=function(e){return E(e)?(r=e,this):r},this.$get=["$window",function(t){var e,i=de||/\bEdge\//.test(t.navigator&&t.navigator.userAgent);return{log:n("log"),info:n("info"),warn:n("warn"),error:n("error"),debug:(e=n("debug"),function(){r&&e.apply(a,arguments)})};function n(e){var n=t.console||{},r=n[e]||n.log||ke;return function(){var t=[];return ve(arguments,function(e){t.push(function(e){return _e(e)&&(e.stack&&i?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}(e))}),Function.prototype.apply.call(r,n,t)}}}]}ve([hr,pr,fr],function(t){t.prototype=Object.create(mr),t.prototype.state=function(e){if(!arguments.length)return this.$$state;if(t!==fr||!this.$$html5)throw ir("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=we(e)?null:e,this.$$urlUpdatedByLocation=!0,this}});var br=C("$parse"),wr={}.constructor.prototype.valueOf;function xr(e){return e+""}var Sr=Be();ve("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){Sr[e]=!0});var $r={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},_r=function(e){this.options=e};_r.prototype={constructor:_r,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=Sr[t],a=Sr[n],o=Sr[r];if(i||a||o){var s=o?r:a?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),r=t.charCodeAt(0);return 55296<=n&&n<=56319&&56320<=r&&r<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=E(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw br("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=he(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"===n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var a=this.text.charAt(this.index);if(r+=a,i){if("u"===a){var o=this.text.substring(this.index+1,this.index+5);o.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+o+"]"),this.index+=4,n+=String.fromCharCode(parseInt(o,16))}else{n+=$r[a]||a}i=!1}else if("\\"===a)i=!0;else{if(a===e)return this.index++,void this.tokens.push({index:t,text:r,constant:!0,value:n});n+=a}this.index++}this.throwError("Unterminated quote",t)}};var Mr=function(e,t){this.lexer=e,this.options=t};function Ir(e,t){return void 0!==e?e:t}function Cr(e,t){return void 0===e?t:void 0===t?e:e+t}Mr.Program="Program",Mr.ExpressionStatement="ExpressionStatement",Mr.AssignmentExpression="AssignmentExpression",Mr.ConditionalExpression="ConditionalExpression",Mr.LogicalExpression="LogicalExpression",Mr.BinaryExpression="BinaryExpression",Mr.UnaryExpression="UnaryExpression",Mr.CallExpression="CallExpression",Mr.MemberExpression="MemberExpression",Mr.Identifier="Identifier",Mr.Literal="Literal",Mr.ArrayExpression="ArrayExpression",Mr.Property="Property",Mr.ObjectExpression="ObjectExpression",Mr.ThisExpression="ThisExpression",Mr.LocalsExpression="LocalsExpression",Mr.NGValueParameter="NGValueParameter",Mr.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:Mr.Program,body:e}},expressionStatement:function(){return{type:Mr.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!Pr(e))throw br("lval","Trying to assign a value to a non l-value");e={type:Mr.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:Mr.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:Mr.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:Mr.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:Mr.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:Mr.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:Mr.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:Mr.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:Mr.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e,t;for(this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=N(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:Mr.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());t=this.expect("(","[",".");)"("===t.text?(e={type:Mr.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:Mr.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:Mr.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:Mr.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)for(;e.push(this.filterChain()),this.expect(","););return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:Mr.Identifier,name:e.text}},constant:function(){return{type:Mr.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Mr.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:Mr.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:Mr.ObjectExpression,properties:t}},throwError:function(e,t){throw br("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw br("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw br("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var a=this.tokens[e],o=a.text;if(o===t||o===n||o===r||o===i||!t&&!n&&!r&&!i)return a}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return!!i&&(this.tokens.shift(),i)},selfReferential:{this:{type:Mr.ThisExpression},$locals:{type:Mr.LocalsExpression}}};var Ar=1,Dr=2;function Rr(e,t,n){var r,i,a,o=e.isPure=function(e,t){switch(e.type){case Mr.MemberExpression:if(e.computed)return!1;break;case Mr.UnaryExpression:return Ar;case Mr.BinaryExpression:return"+"!==e.operator&&Ar;case Mr.CallExpression:return!1}return void 0===t?Dr:t}(e,n);switch(e.type){case Mr.Program:r=!0,ve(e.body,function(e){Rr(e.expression,t,o),r=r&&e.expression.constant}),e.constant=r;break;case Mr.Literal:e.constant=!0,e.toWatch=[];break;case Mr.UnaryExpression:Rr(e.argument,t,o),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case Mr.BinaryExpression:Rr(e.left,t,o),Rr(e.right,t,o),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case Mr.LogicalExpression:Rr(e.left,t,o),Rr(e.right,t,o),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case Mr.ConditionalExpression:Rr(e.test,t,o),Rr(e.alternate,t,o),Rr(e.consequent,t,o),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case Mr.Identifier:e.constant=!1,e.toWatch=[e];break;case Mr.MemberExpression:Rr(e.object,t,o),e.computed&&Rr(e.property,t,o),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=e.constant?[]:[e];break;case Mr.CallExpression:a=!!e.filter&&function(e,t){return!e(t).$stateful}(t,e.callee.name),r=a,i=[],ve(e.arguments,function(e){Rr(e,t,o),r=r&&e.constant,i.push.apply(i,e.toWatch)}),e.constant=r,e.toWatch=a?i:[e];break;case Mr.AssignmentExpression:Rr(e.left,t,o),Rr(e.right,t,o),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case Mr.ArrayExpression:r=!0,i=[],ve(e.elements,function(e){Rr(e,t,o),r=r&&e.constant,i.push.apply(i,e.toWatch)}),e.constant=r,e.toWatch=i;break;case Mr.ObjectExpression:r=!0,i=[],ve(e.properties,function(e){Rr(e.value,t,o),r=r&&e.value.constant,i.push.apply(i,e.value.toWatch),e.computed&&(Rr(e.key,t,!1),r=r&&e.key.constant,i.push.apply(i,e.key.toWatch))}),e.constant=r,e.toWatch=i;break;case Mr.ThisExpression:case Mr.LocalsExpression:e.constant=!1,e.toWatch=[]}}function Er(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function Pr(e){return e.type===Mr.Identifier||e.type===Mr.MemberExpression}function Or(e){if(1===e.body.length&&Pr(e.body[0].expression))return{type:Mr.AssignmentExpression,left:e.body[0].expression,right:{type:Mr.NGValueParameter},operator:"="}}function Tr(e){this.$filter=e}function Fr(e){this.$filter=e}function Lr(e,t,n){this.ast=new Mr(e,n),this.astCompiler=n.csp?new Fr(t):new Tr(t)}function Nr(e){return Me(e.valueOf)?e.valueOf():wr.call(e)}function Br(){var s,c,u=Be(),l={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){l[e]=t},this.setIdentifierFns=function(e,t){return s=e,c=t,this},this.$get=["$filter",function(i){var a={csp:B().noUnsafeEval,literals:N(l),isIdentifierStart:Me(s)&&s,isIdentifierContinue:Me(c)&&c};return e.$$getAst=function(e){return new Lr(new _r(a),i,a).getAst(e).ast},e;function e(e,t){var n,r;switch(typeof e){case"string":if(e=e.trim(),!(n=u[r=e]))n=new Lr(new _r(a),i,a).parse(e),u[r]=h(n);return o(n,t);case"function":return o(e,t);default:return o(ke,t)}}function f(e,t,n){return null==e||null==t?e===t:!("object"==typeof e&&"object"==typeof(e=Nr(e))&&!n)&&(e===t||e!=e&&t!=t)}function t(e,t,n,a,r){var o,s=a.inputs;if(1===s.length){var i=f;return s=s[0],e.$watch(function(e){var t=s(e);return f(t,i,s.isPure)||(o=a(e,void 0,void 0,[t]),i=t&&Nr(t)),o},t,n,r)}for(var c=[],u=[],l=0,d=s.length;l<d;l++)c[l]=f,u[l]=null;return e.$watch(function(e){for(var t=!1,n=0,r=s.length;n<r;n++){var i=s[n](e);(t=t||!f(i,c[n],s[n].isPure))&&(u[n]=i,c[n]=i&&Nr(i))}return t&&(o=a(e,void 0,void 0,u)),o},t,n,r)}function n(e,t,n,r,i){var a,o,s=r.literal?p:E,c=r.$$intercepted||r,u=r.$$interceptor||be,l=r.inputs&&!c.inputs;return f.literal=r.literal,f.constant=r.constant,f.inputs=r.inputs,h(f),a=e.$watch(f,t,n,i);function d(){s(o)&&a()}function f(e,t,n,r){return o=l&&r?r[0]:c(e,t,n,r),s(o)&&e.$$postDigest(d),u(o)}}function p(e){var t=!0;return ve(e,function(e){E(e)||(t=!1)}),t}function r(e,t,n,r){var i=e.$watch(function(e){return i(),r(e)},t,n);return i}function h(e){return e.constant?e.$$watchDelegate=r:e.oneTime?e.$$watchDelegate=n:e.inputs&&(e.$$watchDelegate=t),e}function o(a,o){if(!o)return a;a.$$interceptor&&(o=function(t,n){function e(e){return n(t(e))}return e.$stateful=t.$stateful||n.$stateful,e.$$pure=t.$$pure&&n.$$pure,e}(a.$$interceptor,o),a=a.$$intercepted);function e(e,t,n,r){var i=s&&r?r[0]:a(e,t,n,r);return o(i)}var s=!1;return e.$$intercepted=a,e.$$interceptor=o,e.literal=a.literal,e.oneTime=a.oneTime,e.constant=a.constant,o.$stateful||(s=!a.inputs,e.inputs=a.inputs?a.inputs:[a],o.$$pure||(e.inputs=e.inputs.map(function(t){return t.isPure===Dr?function(e){return t(e)}:t}))),h(e)}}]}function Hr(){var n=!0;this.$get=["$rootScope","$exceptionHandler",function(t,e){return jr(function(e){t.$evalAsync(e)},e,n)}],this.errorOnUnhandledRejections=function(e){return E(e)?(n=e,this):n}}function Ur(){var n=!0;this.$get=["$browser","$exceptionHandler",function(t,e){return jr(function(e){t.defer(e)},e,n)}],this.errorOnUnhandledRejections=function(e){return E(e)?(n=e,this):n}}function jr(o,s,c){var n=C("$q",TypeError),u=0,r=[];function i(){return new e}function e(){var t=this.promise=new a;this.resolve=function(e){f(t,e)},this.reject=function(e){p(t,e)},this.notify=function(e){m(t,e)}}function a(){this.$$state={status:0}}function l(){for(;!u&&r.length;){var e=r.shift();if(!zr(e)){Vr(e);var t="Possibly unhandled rejection: "+We(e.value);_e(e.value)?s(e.value,t):s(t)}}}function d(e){!c||e.pending||2!==e.status||zr(e)||(0===u&&0===r.length&&o(l),r.push(e)),!e.processScheduled&&e.pending&&(e.processScheduled=!0,++u,o(function(){!function(e){var t,n,r;r=e.pending,e.processScheduled=!1,e.pending=void 0;try{for(var i=0,a=r.length;i<a;++i){Vr(e),n=r[i][0],t=r[i][e.status];try{Me(t)?f(n,t(e.value)):1===e.status?f(n,e.value):p(n,e.value)}catch(e){p(n,e),e&&!0===e.$$passToExceptionHandler&&s(e)}}}finally{--u,c&&0===u&&o(l)}}(e)}))}function f(e,t){e.$$state.status||(t===e?h(e,n("qcycle","Expected promise to be resolved with value other than itself '{0}'",t)):function t(n,e){var r;var i=!1;try{(xe(e)||Me(e))&&(r=e.then),Me(r)?(n.$$state.status=-1,r.call(e,a,o,s)):(n.$$state.value=e,n.$$state.status=1,d(n.$$state))}catch(e){o(e)}function a(e){i||(i=!0,t(n,e))}function o(e){i||(i=!0,h(n,e))}function s(e){m(n,e)}}(e,t))}function p(e,t){e.$$state.status||h(e,t)}function h(e,t){e.$$state.value=t,e.$$state.status=2,d(e.$$state)}function m(e,i){var a=e.$$state.pending;e.$$state.status<=0&&a&&a.length&&o(function(){for(var e,t,n=0,r=a.length;n<r;n++){t=a[n][0],e=a[n][3];try{m(t,Me(e)?e(i):i)}catch(e){s(e)}}})}function v(e){var t=new a;return p(t,e),t}function g(e,t,n){var r=null;try{Me(n)&&(r=n())}catch(e){return v(e)}return I(r)?r.then(function(){return t(e)},v):t(e)}function y(e,t,n,r){var i=new a;return f(i,e),i.then(t,n,r)}ge(a.prototype,{then:function(e,t,n){if(we(e)&&we(t)&&we(n))return this;var r=new a;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),0<this.$$state.status&&d(this.$$state),r},catch:function(e){return this.then(null,e)},finally:function(t,e){return this.then(function(e){return g(e,k,t)},function(e){return g(e,v,t)},e)}});var k=y;function t(e){if(!Me(e))throw n("norslvr","Expected resolverFn, got '{0}'",e);var t=new a;return e(function(e){f(t,e)},function(e){p(t,e)}),t}return t.prototype=a.prototype,t.defer=i,t.reject=v,t.when=y,t.resolve=k,t.all=function(e){var n=new a,r=0,i=$e(e)?[]:{};return ve(e,function(e,t){r++,y(e).then(function(e){i[t]=e,--r||f(n,i)},function(e){p(n,e)})}),0===r&&f(n,i),n},t.race=function(e){var t=i();return ve(e,function(e){y(e).then(t.resolve,t.reject)}),t.promise},t}function zr(e){return!!e.pur}function Vr(e){e.pur=!0}function Kr(e){e.$$state&&Vr(e.$$state)}function qr(){this.$get=["$window","$timeout",function(e,n){var r=e.requestAnimationFrame||e.webkitRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,t=!!r,a=t?function(e){var t=r(e);return function(){i(t)}}:function(e){var t=n(e,16.66,!1);return function(){n.cancel(t)}};return a.supported=t,a}]}function Wr(){var $=10,_=C("$rootScope"),M=null,I=null;this.digestTtl=function(e){return arguments.length&&($=e),$},this.$get=["$exceptionHandler","$parse","$browser",function(p,h,m){function r(e){e.currentScope.$$destroyed=!0}function i(){this.$id=A(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,(this.$root=this).$$destroyed=!1,this.$$suspended=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}i.prototype={constructor:i,$new:function(e,t){var n;return t=t||this,e?(n=new i).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=function(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=A(),this.$$ChildScope=null,this.$$suspended=!1}return t.prototype=e,t}(this)),n=new this.$$ChildScope),n.$parent=t,n.$$prevSibling=t.$$childTail,t.$$childHead?(t.$$childTail.$$nextSibling=n,t.$$childTail=n):t.$$childHead=t.$$childTail=n,!e&&t===this||n.$on("$destroy",r),n},$watch:function(e,t,n,r){var i=h(e),a=Me(t)?t:ke;if(i.$$watchDelegate)return i.$$watchDelegate(this,a,n,i,e);var o=this,s=o.$$watchers,c={fn:a,last:x,get:i,exp:r||e,eq:!!n};return M=null,s||((s=o.$$watchers=[]).$$digestWatchIndex=-1),s.unshift(c),s.$$digestWatchIndex++,u(this,1),function(){var e=Re(s,c);0<=e&&(u(o,-1),e<s.$$digestWatchIndex&&s.$$digestWatchIndex--),M=null}},$watchGroup:function(t,r){var i=new Array(t.length),a=new Array(t.length),o=[],s=this,c=!1,n=!0;if(!t.length){var e=!0;return s.$evalAsync(function(){e&&r(a,a,s)}),function(){e=!1}}if(1===t.length)return this.$watch(t[0],function(e,t,n){a[0]=e,i[0]=t,r(a,e===t?a:i,n)});function u(){c=!1;try{n?(n=!1,r(a,a,s)):r(a,i,s)}finally{for(var e=0;e<t.length;e++)i[e]=a[e]}}return ve(t,function(e,t){var n=s.$watch(e,function(e){a[t]=e,c||(c=!0,s.$evalAsync(u))});o.push(n)}),function(){for(;o.length;)o.shift()()}},$watchCollection:function(e,n){p.$$pure=h(e).literal,p.$stateful=!p.$$pure;var o,s,r,i=this,a=1<n.length,c=0,t=h(e,p),u=[],l={},d=!0,f=0;function p(e){var t,n,r,i;if(!we(o=e)){if(xe(o))if(T(o)){s!==u&&(f=(s=u).length=0,c++),t=o.length,f!==t&&(c++,s.length=f=t);for(var a=0;a<t;a++)i=s[a],r=o[a],i!=i&&r!=r||i===r||(c++,s[a]=r)}else{for(n in s!==l&&(s=l={},f=0,c++),t=0,o)pe.call(o,n)&&(t++,r=o[n],i=s[n],n in s?i!=i&&r!=r||i===r||(c++,s[n]=r):(f++,s[n]=r,c++));if(t<f)for(n in c++,s)pe.call(o,n)||(f--,delete s[n])}else s!==o&&(s=o,c++);return c}}return this.$watch(t,function(){if(d?(d=!1,n(o,o,i)):n(o,r,i),a)if(xe(o))if(T(o)){r=new Array(o.length);for(var e=0;e<o.length;e++)r[e]=o[e]}else for(var t in r={},o)pe.call(o,t)&&(r[t]=o[t]);else r=o})},$digest:function(){var e,t,n,r,i,a,o,s,c,u=$,l=g.length?v:this,d=[];b("$digest"),m.$$checkUrlChange(),this===v&&null!==I&&(m.defer.cancel(I),S()),M=null;do{i=!1,o=l;for(var f=0;f<g.length;f++){try{(0,(c=g[f]).fn)(c.scope,c.locals)}catch(e){p(e)}M=null}g.length=0;e:do{if(r=!o.$$suspended&&o.$$watchers)for(r.$$digestWatchIndex=r.length;r.$$digestWatchIndex--;)try{if(e=r[r.$$digestWatchIndex])if((t=(0,e.get)(o))===(n=e.last)||(e.eq?Pe(t,n):D(t)&&D(n))){if(e===M){i=!1;break e}}else i=!0,(M=e).last=e.eq?N(t,null):t,(0,e.fn)(t,n===x?t:n,o),u<5&&(d[s=4-u]||(d[s]=[]),d[s].push({msg:Me(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:t,oldVal:n}))}catch(e){p(e)}if(!(a=!o.$$suspended&&o.$$watchersCount&&o.$$childHead||o!==l&&o.$$nextSibling))for(;o!==l&&!(a=o.$$nextSibling);)o=o.$parent}while(o=a);if((i||g.length)&&!u--)throw w(),_("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",$,d)}while(i||g.length);for(w();k<y.length;)try{y[k++]()}catch(e){p(e)}y.length=k=0,m.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;for(var t in this.$broadcast("$destroy"),this.$$destroyed=!0,this===v&&m.$$applicationDestroyed(),u(this,-this.$$watchersCount),this.$$listenerCount)a(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=ke,this.$on=this.$watch=this.$watchGroup=function(){return ke},this.$$listeners={},this.$$nextSibling=null,function e(t){9===de&&(t.$$childHead&&e(t.$$childHead),t.$$nextSibling&&e(t.$$nextSibling)),t.$parent=t.$$nextSibling=t.$$prevSibling=t.$$childHead=t.$$childTail=t.$root=t.$$watchers=null}(this)}},$eval:function(e,t){return h(e)(this,t)},$evalAsync:function(e,t){v.$$phase||g.length||m.defer(function(){g.length&&v.$digest()},null,"$evalAsync"),g.push({scope:this,fn:h(e),locals:t})},$$postDigest:function(e){y.push(e)},$apply:function(e){try{b("$apply");try{return this.$eval(e)}finally{w()}}catch(e){p(e)}finally{try{v.$digest()}catch(e){throw p(e),e}}},$applyAsync:function(e){var t=this;e&&n.push(function(){t.$eval(e)}),e=h(e),null===I&&(I=m.defer(function(){v.$apply(S)},null,"$applyAsync"))},$on:function(t,n){var r=this.$$listeners[t];r||(this.$$listeners[t]=r=[]),r.push(n);for(var e=this;e.$$listenerCount[t]||(e.$$listenerCount[t]=0),e.$$listenerCount[t]++,e=e.$parent;);var i=this;return function(){var e=r.indexOf(n);-1!==e&&(delete r[e],a(i,1,t))}},$emit:function(e,t){var n,r,i,a=[],o=this,s=!1,c={name:e,targetScope:o,stopPropagation:function(){s=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},u=U([c],arguments,1);do{for(n=o.$$listeners[e]||a,c.currentScope=o,r=0,i=n.length;r<i;r++)if(n[r])try{n[r].apply(null,u)}catch(e){p(e)}else n.splice(r,1),r--,i--;if(s)break;o=o.$parent}while(o);return c.currentScope=null,c},$broadcast:function(e,t){var n=this,r=this,i={name:e,targetScope:this,preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[e])return i;for(var a,o,s,c=U([i],arguments,1);n=r;){for(o=0,s=(a=(i.currentScope=n).$$listeners[e]||[]).length;o<s;o++)if(a[o])try{a[o].apply(null,c)}catch(e){p(e)}else a.splice(o,1),o--,s--;if(!(r=n.$$listenerCount[e]&&n.$$childHead||n!==this&&n.$$nextSibling))for(;n!==this&&!(r=n.$$nextSibling);)n=n.$parent}return i.currentScope=null,i}};var v=new i,g=v.$$asyncQueue=[],y=v.$$postDigestQueue=[],n=v.$$applyAsyncQueue=[],k=0;return v;function b(e){if(v.$$phase)throw _("inprog","{0} already in progress",v.$$phase);v.$$phase=e}function w(){v.$$phase=null}function u(e,t){for(;e.$$watchersCount+=t,e=e.$parent;);}function a(e,t,n){for(;e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n],e=e.$parent;);}function x(){}function S(){for(;n.length;)try{n.shift()()}catch(e){p(e)}I=null}}]}function Jr(){var i=/^\s*(https?|s?ftp|mailto|tel|file):/,a=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(e){return E(e)?(i=e,this):i},this.imgSrcSanitizationWhitelist=function(e){return E(e)?(a=e,this):a},this.$get=function(){return function(e,t){var n=t?a:i,r=hi(e&&e.trim()).href;return""===r||r.match(n)?e:"unsafe:"+r}}}Tr.prototype={compile:function(e){var i=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},Rr(e,i.$filter);var t,n="";if(this.stage="assign",t=Or(e)){this.state.computing="assign";var r=this.nextId();this.recurse(t,r),this.return_(r),n="fn.assign="+this.generateFunction("assign","s,v,l")}var a=Er(e.body);i.stage="inputs",ve(a,function(e,t){var n="fn"+t;i.state[n]={vars:[],body:[],own:{}},i.state.computing=n;var r=i.nextId();i.recurse(e,r),i.return_(r),i.state.inputs.push({name:n,isPure:e.isPure}),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(e);var o='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+n+this.watchFns()+"return fn;",s=new Function("$filter","getStringValue","ifDefined","plus",o)(this.$filter,xr,Ir,Cr);return this.state=this.stage=void 0,s},USE:"use",STRICT:"strict",watchFns:function(){var t=[],e=this.state.inputs,n=this;return ve(e,function(e){t.push("var "+e.name+"="+n.generateFunction(e.name,"s")),e.isPure&&t.push(e.name,".isPure="+JSON.stringify(e.isPure)+";")}),e.length&&t.push("fn.inputs=["+e.map(function(e){return e.name}).join(",")+"];"),t.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var n=[],r=this;return ve(this.state.filters,function(e,t){n.push(e+"=$filter("+r.escape(t)+")")}),n.length?"var "+n.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(n,t,e,r,i,a){var o,s,c,u,l,d=this;if(r=r||ke,!a&&E(n.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",n.watchId)),this.lazyRecurse(n,t,e,r,i,!0));switch(n.type){case Mr.Program:ve(n.body,function(e,t){d.recurse(e.expression,void 0,void 0,function(e){s=e}),t!==n.body.length-1?d.current().body.push(s,";"):d.return_(s)});break;case Mr.Literal:u=this.escape(n.value),this.assign(t,u),r(t||u);break;case Mr.UnaryExpression:this.recurse(n.argument,void 0,void 0,function(e){s=e}),u=n.operator+"("+this.ifDefined(s,0)+")",this.assign(t,u),r(u);break;case Mr.BinaryExpression:this.recurse(n.left,void 0,void 0,function(e){o=e}),this.recurse(n.right,void 0,void 0,function(e){s=e}),u="+"===n.operator?this.plus(o,s):"-"===n.operator?this.ifDefined(o,0)+n.operator+this.ifDefined(s,0):"("+o+")"+n.operator+"("+s+")",this.assign(t,u),r(u);break;case Mr.LogicalExpression:t=t||this.nextId(),d.recurse(n.left,t),d.if_("&&"===n.operator?t:d.not(t),d.lazyRecurse(n.right,t)),r(t);break;case Mr.ConditionalExpression:t=t||this.nextId(),d.recurse(n.test,t),d.if_(t,d.lazyRecurse(n.alternate,t),d.lazyRecurse(n.consequent,t)),r(t);break;case Mr.Identifier:t=t||this.nextId(),e&&(e.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",n.name)+"?l:s"),e.computed=!1,e.name=n.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",n.name)),function(){d.if_("inputs"===d.stage||"s",function(){i&&1!==i&&d.if_(d.isNull(d.nonComputedMember("s",n.name)),d.lazyAssign(d.nonComputedMember("s",n.name),"{}")),d.assign(t,d.nonComputedMember("s",n.name))})},t&&d.lazyAssign(t,d.nonComputedMember("l",n.name))),r(t);break;case Mr.MemberExpression:o=e&&(e.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(n.object,o,void 0,function(){d.if_(d.notNull(o),function(){n.computed?(s=d.nextId(),d.recurse(n.property,s),d.getStringValue(s),i&&1!==i&&d.if_(d.not(d.computedMember(o,s)),d.lazyAssign(d.computedMember(o,s),"{}")),u=d.computedMember(o,s),d.assign(t,u),e&&(e.computed=!0,e.name=s)):(i&&1!==i&&d.if_(d.isNull(d.nonComputedMember(o,n.property.name)),d.lazyAssign(d.nonComputedMember(o,n.property.name),"{}")),u=d.nonComputedMember(o,n.property.name),d.assign(t,u),e&&(e.computed=!1,e.name=n.property.name))},function(){d.assign(t,"undefined")}),r(t)},!!i);break;case Mr.CallExpression:t=t||this.nextId(),n.filter?(s=d.filter(n.callee.name),c=[],ve(n.arguments,function(e){var t=d.nextId();d.recurse(e,t),c.push(t)}),u=s+"("+c.join(",")+")",d.assign(t,u),r(t)):(s=d.nextId(),o={},c=[],d.recurse(n.callee,s,o,function(){d.if_(d.notNull(s),function(){ve(n.arguments,function(e){d.recurse(e,n.constant?void 0:d.nextId(),void 0,function(e){c.push(e)})}),u=o.name?d.member(o.context,o.name,o.computed)+"("+c.join(",")+")":s+"("+c.join(",")+")",d.assign(t,u)},function(){d.assign(t,"undefined")}),r(t)}));break;case Mr.AssignmentExpression:s=this.nextId(),o={},this.recurse(n.left,void 0,o,function(){d.if_(d.notNull(o.context),function(){d.recurse(n.right,s),u=d.member(o.context,o.name,o.computed)+n.operator+s,d.assign(t,u),r(t||u)})},1);break;case Mr.ArrayExpression:c=[],ve(n.elements,function(e){d.recurse(e,n.constant?void 0:d.nextId(),void 0,function(e){c.push(e)})}),u="["+c.join(",")+"]",this.assign(t,u),r(t||u);break;case Mr.ObjectExpression:l=!(c=[]),ve(n.properties,function(e){e.computed&&(l=!0)}),l?(t=t||this.nextId(),this.assign(t,"{}"),ve(n.properties,function(e){e.computed?(o=d.nextId(),d.recurse(e.key,o)):o=e.key.type===Mr.Identifier?e.key.name:""+e.key.value,s=d.nextId(),d.recurse(e.value,s),d.assign(d.member(t,o,e.computed),s)})):(ve(n.properties,function(t){d.recurse(t.value,n.constant?void 0:d.nextId(),void 0,function(e){c.push(d.escape(t.key.type===Mr.Identifier?t.key.name:""+t.key.value)+":"+e)})}),u="{"+c.join(",")+"}",this.assign(t,u)),r(t||u);break;case Mr.ThisExpression:this.assign(t,"s"),r(t||"s");break;case Mr.LocalsExpression:this.assign(t,"l"),r(t||"l");break;case Mr.NGValueParameter:this.assign(t,"v"),r(t||"v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),r[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var r=this.current().body;r.push("if(",e,"){"),t(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(e){return"!("+e+")"},isNull:function(e){return e+"==null"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(/[^$_a-zA-Z0-9]/g,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},lazyRecurse:function(e,t,n,r,i,a){var o=this;return function(){o.recurse(e,t,n,r,i,a)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(Se(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(x(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw br("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},Fr.prototype={compile:function(e){var t,r,i=this;Rr(e,i.$filter),(t=Or(e))&&(r=this.recurse(t));var a,n=Er(e.body);n&&(a=[],ve(n,function(e,t){var n=i.recurse(e);n.isPure=e.isPure,e.input=n,a.push(n),e.watchId=t}));var o=[];ve(e.body,function(e){o.push(i.recurse(e.expression))});var s=0===e.body.length?ke:1===e.body.length?o[0]:function(t,n){var r;return ve(o,function(e){r=e(t,n)}),r};return r&&(s.assign=function(e,t,n){return r(e,n,t)}),a&&(s.inputs=a),s},recurse:function(e,c,t){var o,u,l,n=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case Mr.Literal:return this.value(e.value,c);case Mr.UnaryExpression:return u=this.recurse(e.argument),this["unary"+e.operator](u,c);case Mr.BinaryExpression:case Mr.LogicalExpression:return o=this.recurse(e.left),u=this.recurse(e.right),this["binary"+e.operator](o,u,c);case Mr.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),c);case Mr.Identifier:return n.identifier(e.name,c,t);case Mr.MemberExpression:return o=this.recurse(e.object,!1,!!t),e.computed||(u=e.property.name),e.computed&&(u=this.recurse(e.property)),e.computed?this.computedMember(o,u,c,t):this.nonComputedMember(o,u,c,t);case Mr.CallExpression:return l=[],ve(e.arguments,function(e){l.push(n.recurse(e))}),e.filter&&(u=this.$filter(e.callee.name)),e.filter||(u=this.recurse(e.callee,!0)),e.filter?function(e,t,n,r){for(var i=[],a=0;a<l.length;++a)i.push(l[a](e,t,n,r));var o=u.apply(void 0,i,r);return c?{context:void 0,name:void 0,value:o}:o}:function(e,t,n,r){var i,a=u(e,t,n,r);if(null!=a.value){for(var o=[],s=0;s<l.length;++s)o.push(l[s](e,t,n,r));i=a.value.apply(a.context,o)}return c?{value:i}:i};case Mr.AssignmentExpression:return o=this.recurse(e.left,!0,1),u=this.recurse(e.right),function(e,t,n,r){var i=o(e,t,n,r),a=u(e,t,n,r);return i.context[i.name]=a,c?{value:a}:a};case Mr.ArrayExpression:return l=[],ve(e.elements,function(e){l.push(n.recurse(e))}),function(e,t,n,r){for(var i=[],a=0;a<l.length;++a)i.push(l[a](e,t,n,r));return c?{value:i}:i};case Mr.ObjectExpression:return l=[],ve(e.properties,function(e){e.computed?l.push({key:n.recurse(e.key),computed:!0,value:n.recurse(e.value)}):l.push({key:e.key.type===Mr.Identifier?e.key.name:""+e.key.value,computed:!1,value:n.recurse(e.value)})}),function(e,t,n,r){for(var i={},a=0;a<l.length;++a)l[a].computed?i[l[a].key(e,t,n,r)]=l[a].value(e,t,n,r):i[l[a].key]=l[a].value(e,t,n,r);return c?{value:i}:i};case Mr.ThisExpression:return function(e){return c?{value:e}:e};case Mr.LocalsExpression:return function(e,t){return c?{value:t}:t};case Mr.NGValueParameter:return function(e,t,n){return c?{value:n}:n}}},"unary+":function(a,o){return function(e,t,n,r){var i=a(e,t,n,r);return i=E(i)?+i:0,o?{value:i}:i}},"unary-":function(a,o){return function(e,t,n,r){var i=a(e,t,n,r);return i=E(i)?-i:-0,o?{value:i}:i}},"unary!":function(a,o){return function(e,t,n,r){var i=!a(e,t,n,r);return o?{value:i}:i}},"binary+":function(a,o,s){return function(e,t,n,r){var i=Cr(a(e,t,n,r),o(e,t,n,r));return s?{value:i}:i}},"binary-":function(s,c,u){return function(e,t,n,r){var i=s(e,t,n,r),a=c(e,t,n,r),o=(E(i)?i:0)-(E(a)?a:0);return u?{value:o}:o}},"binary*":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)*o(e,t,n,r);return s?{value:i}:i}},"binary/":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)/o(e,t,n,r);return s?{value:i}:i}},"binary%":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)%o(e,t,n,r);return s?{value:i}:i}},"binary===":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)===o(e,t,n,r);return s?{value:i}:i}},"binary!==":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)!==o(e,t,n,r);return s?{value:i}:i}},"binary==":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)==o(e,t,n,r);return s?{value:i}:i}},"binary!=":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)!=o(e,t,n,r);return s?{value:i}:i}},"binary<":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)<o(e,t,n,r);return s?{value:i}:i}},"binary>":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)>o(e,t,n,r);return s?{value:i}:i}},"binary<=":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)<=o(e,t,n,r);return s?{value:i}:i}},"binary>=":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)>=o(e,t,n,r);return s?{value:i}:i}},"binary&&":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)&&o(e,t,n,r);return s?{value:i}:i}},"binary||":function(a,o,s){return function(e,t,n,r){var i=a(e,t,n,r)||o(e,t,n,r);return s?{value:i}:i}},"ternary?:":function(a,o,s,c){return function(e,t,n,r){var i=a(e,t,n,r)?o(e,t,n,r):s(e,t,n,r);return c?{value:i}:i}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(o,s,c){return function(e,t,n,r){var i=t&&o in t?t:e;c&&1!==c&&i&&null==i[o]&&(i[o]={});var a=i?i[o]:void 0;return s?{context:i,name:o,value:a}:a}},computedMember:function(s,c,u,l){return function(e,t,n,r){var i,a,o=s(e,t,n,r);return null!=o&&(i=xr(i=c(e,t,n,r)),l&&1!==l&&o&&!o[i]&&(o[i]={}),a=o[i]),u?{context:o,name:i,value:a}:a}},nonComputedMember:function(o,s,c,u){return function(e,t,n,r){var i=o(e,t,n,r);u&&1!==u&&i&&null==i[s]&&(i[s]={});var a=null!=i?i[s]:void 0;return c?{context:i,name:s,value:a}:a}},inputs:function(i,a){return function(e,t,n,r){return r?r[a]:i(e,t,n)}}},Lr.prototype={constructor:Lr,parse:function(e){var t=this.getAst(e),n=this.astCompiler.compile(t.ast);return n.literal=function(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===Mr.Literal||e.body[0].expression.type===Mr.ArrayExpression||e.body[0].expression.type===Mr.ObjectExpression)}(t.ast),n.constant=function(e){return e.constant}(t.ast),n.oneTime=t.oneTime,n},getAst:function(e){var t=!1;return":"===(e=e.trim()).charAt(0)&&":"===e.charAt(1)&&(t=!0,e=e.substring(2)),{ast:this.ast.ast(e),oneTime:t}}};var Gr=C("$sce"),Yr={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Xr=/_([a-z])/g;function Zr(e){return e.replace(Xr,tt)}function Qr(e){var t=[];return E(e)&&ve(e,function(e){t.push(function(e){if("self"===e)return e;if(Se(e)){if(-1<e.indexOf("***"))throw Gr("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=O(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if($(e))return new RegExp("^"+e.source+"$");throw Gr("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}(e))}),t}function ei(){this.SCE_CONTEXTS=Yr;var s=["self"],c=[];this.resourceUrlWhitelist=function(e){return arguments.length&&(s=Qr(e)),s},this.resourceUrlBlacklist=function(e){return arguments.length&&(c=Qr(e)),c},this.$get=["$injector","$$sanitizeUri",function(e,r){var i=function(){throw Gr("unsafe","Attempting to use an unsafe value in a safe context.")};function a(e,t){return"self"===e?function(e){return mi(e,fi)}(t)||function(e){return mi(e,function(){if(le.document.baseURI)return le.document.baseURI;li||((li=le.document.createElement("a")).href=".",li=li.cloneNode(!1));return li.href}())}(t):!!e.exec(t.href)}function t(e){function t(e){this.$$unwrapTrustedValue=function(){return e}}return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}e.has("$sanitize")&&(i=e.get("$sanitize"));var n=t(),o={};return o[Yr.HTML]=t(n),o[Yr.CSS]=t(n),o[Yr.MEDIA_URL]=t(n),o[Yr.URL]=t(o[Yr.MEDIA_URL]),o[Yr.JS]=t(n),o[Yr.RESOURCE_URL]=t(o[Yr.URL]),{trustAs:function(e,t){var n=o.hasOwnProperty(e)?o[e]:null;if(!n)throw Gr("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||we(t)||""===t)return t;if("string"!=typeof t)throw Gr("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)},getTrusted:function(e,t){if(null===t||we(t)||""===t)return t;var n=o.hasOwnProperty(e)?o[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(Me(t.$$unwrapTrustedValue)&&(t=t.$$unwrapTrustedValue()),e===Yr.MEDIA_URL||e===Yr.URL)return r(t.toString(),e===Yr.MEDIA_URL);if(e===Yr.RESOURCE_URL){if(function(e){var t,n,r=hi(e.toString()),i=!1;for(t=0,n=s.length;t<n;t++)if(a(s[t],r)){i=!0;break}if(i)for(t=0,n=c.length;t<n;t++)if(a(c[t],r)){i=!1;break}return i}(t))return t;throw Gr("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===Yr.HTML)return i(t);throw Gr("unsafe","Attempting to use an unsafe value in a safe context.")},valueOf:function(e){return e instanceof n?e.$$unwrapTrustedValue():e}}}]}function ti(){var t=!0;this.enabled=function(e){return arguments.length&&(t=!!e),t},this.$get=["$parse","$sceDelegate",function(r,e){if(t&&de<8)throw Gr("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var i=qe(Yr);i.isEnabled=function(){return t},i.trustAs=e.trustAs,i.getTrusted=e.getTrusted,i.valueOf=e.valueOf,t||(i.trustAs=i.getTrusted=function(e,t){return t},i.valueOf=be),i.parseAs=function(t,e){var n=r(e);return n.literal&&n.constant?n:r(e,function(e){return i.getTrusted(t,e)})};var a=i.parseAs,o=i.getTrusted,s=i.trustAs;return ve(Yr,function(t,e){var n=he(e);i[Zr("parse_as_"+n)]=function(e){return a(t,e)},i[Zr("get_trusted_"+n)]=function(e){return o(t,e)},i[Zr("trust_as_"+n)]=function(e){return s(t,e)}}),i}]}function ni(){this.$get=["$window","$document",function(e,t){var n={},r=!(!(e.nw&&e.nw.process)&&e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,i=y((/android (\d+)/.exec(he((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),o=t[0]||{},s=o.body&&o.body.style,c=!1,u=!1;return s&&(c=!!("transition"in s||"webkitTransition"in s),u=!!("animation"in s||"webkitAnimation"in s)),{history:!(!r||i<4||a),hasEvent:function(e){if("input"===e&&de)return!1;if(we(n[e])){var t=o.createElement("div");n[e]="on"+e in t}return n[e]},csp:B(),transitions:c,animations:u,android:i}}]}function ri(){this.$get=R(function(e){return new ii(e)})}function ii(o){var s={},r=[],c=this.ALL_TASKS_TYPE="$$all$$",u=this.DEFAULT_TASK_TYPE="$$default$$";function l(){var e=r.pop();return e&&e.cb}function d(e){for(var t=r.length-1;0<=t;--t){var n=r[t];if(n.type===e)return r.splice(t,1),n.cb}}this.completeTask=function(e,t){t=t||u;try{e()}finally{!function(e){s[e=e||u]&&(s[e]--,s[c]--)}(t);var n=s[t],r=s[c];if(!r||!n)for(var i,a=r?d:l;i=a(t);)try{i()}catch(e){o.error(e)}}},this.incTaskCount=function(e){s[e=e||u]=(s[e]||0)+1,s[c]=(s[c]||0)+1},this.notifyWhenNoPendingTasks=function(e,t){s[t=t||c]?r.push({type:t,cb:e}):e()}}var ai=C("$templateRequest");function oi(){var u;this.httpOptions=function(e){return e?(u=e,this):u},this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(r,i,a,o,s){function c(t,n){c.totalPendingRequests++,Se(t)&&!we(i.get(t))||(t=s.getTrustedResourceUrl(t));var e=a.defaults&&a.defaults.transformResponse;return $e(e)?e=e.filter(function(e){return e!==jn}):e===jn&&(e=null),a.get(t,ge({cache:i,transformResponse:e},u)).finally(function(){c.totalPendingRequests--}).then(function(e){return i.put(t,e.data)},function(e){n||(e=ai("tpload","Failed to load template: {0} (HTTP status: {1} {2})",t,e.status,e.statusText),r(e));return o.reject(e)})}return c.totalPendingRequests=0,c}]}function si(){this.$get=["$rootScope","$browser","$location",function(t,n,r){var e={findBindings:function(e,n,r){var t=e.getElementsByClassName("ng-binding"),i=[];return ve(t,function(t){var e=k.element(t).data("$binding");e&&ve(e,function(e){r?new RegExp("(^|\\s)"+O(n)+"(\\s|\\||$)").test(e)&&i.push(t):-1!==e.indexOf(n)&&i.push(t)})}),i},findModels:function(e,t,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var a="["+r[i]+"model"+(n?"=":"*=")+'"'+t+'"]',o=e.querySelectorAll(a);if(o.length)return o}},getLocation:function(){return r.url()},setLocation:function(e){e!==r.url()&&(r.url(e),t.$digest())},whenStable:function(e){n.notifyWhenNoOutstandingRequests(e)}};return e}]}var ci=C("$timeout");function ui(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(c,u,l,d,f){var p={};function e(e,t,n){Me(e)||(n=t,t=e,e=ke);var r,i=Oe(arguments,3),a=E(n)&&!n,o=(a?d:l).defer(),s=o.promise;return r=u.defer(function(){try{o.resolve(e.apply(null,i))}catch(e){o.reject(e),f(e)}finally{delete p[s.$$timeoutId]}a||c.$apply()},t,"$timeout"),s.$$timeoutId=r,p[r]=o,s}return e.cancel=function(e){if(!e)return!1;if(!e.hasOwnProperty("$$timeoutId"))throw ci("badprom","`$timeout.cancel()` called with a promise that was not generated by `$timeout()`.");if(!p.hasOwnProperty(e.$$timeoutId))return!1;var t=e.$$timeoutId,n=p[t];return Kr(n.promise),n.reject("canceled"),delete p[t],u.defer.cancel(t)},e}]}var li,di=le.document.createElement("a"),fi=hi(le.location.href);di.href="http://[::1]";var pi="[::1]"===di.hostname;function hi(e){if(!Se(e))return e;var t=e;de&&(di.setAttribute("href",t),t=di.href),di.setAttribute("href",t);var n=di.hostname;return!pi&&-1<n.indexOf(":")&&(n="["+n+"]"),{href:di.href,protocol:di.protocol?di.protocol.replace(/:$/,""):"",host:di.host,search:di.search?di.search.replace(/^\?/,""):"",hash:di.hash?di.hash.replace(/^#/,""):"",hostname:n,port:di.port,pathname:"/"===di.pathname.charAt(0)?di.pathname:"/"+di.pathname}}function mi(e,t){return e=hi(e),t=hi(t),e.protocol===t.protocol&&e.host===t.host}function vi(){this.$get=R(le)}function gi(e){var o=e[0]||{},s={},c="";function u(t){try{return decodeURIComponent(t)}catch(e){return t}}return function(){var e,t,n,r,i,a=function(e){try{return e.cookie||""}catch(e){return""}}(o);if(a!==c)for(e=(c=a).split("; "),s={},n=0;n<e.length;n++)0<(r=(t=e[n]).indexOf("="))&&(i=u(t.substring(0,r)),we(s[i])&&(s[i]=u(t.substring(r+1))));return s}}function yi(){this.$get=gi}function ki(r){var i="Filter";function a(e,t){if(xe(e)){var n={};return ve(e,function(e,t){n[t]=a(t,e)}),n}return r.factory(e+i,t)}this.register=a,this.$get=["$injector",function(t){return function(e){return t.get(e+i)}}],a("currency",Mi),a("date",Ni),a("filter",bi),a("json",Bi),a("limitTo",ji),a("lowercase",Hi),a("number",Ii),a("orderBy",Vi),a("uppercase",Ui)}function bi(){return function(e,t,n,r){if(!T(e)){if(null==e)return e;throw C("filter")("notarray","Expected array but received: {0}",e)}var i,a;switch(r=r||"$",xi(t)){case"function":i=t;break;case"boolean":case"null":case"number":case"string":a=!0;case"object":i=function(t,n,r,i){var a=xe(t)&&r in t;!0===n?n=Pe:Me(n)||(n=function(e,t){return!we(e)&&(null===e||null===t?e===t:!(xe(t)||xe(e)&&!b(e))&&(e=he(""+e),t=he(""+t),-1!==e.indexOf(t)))});return function(e){return a&&!xe(e)?wi(e,t[r],n,r,!1):wi(e,t,n,r,i)}}(t,n,r,a);break;default:return e}return Array.prototype.filter.call(e,i)}}function wi(e,t,n,r,i,a){var o=xi(e),s=xi(t);if("string"===s&&"!"===t.charAt(0))return!wi(e,t.substring(1),n,r,i);if($e(e))return e.some(function(e){return wi(e,t,n,r,i)});switch(o){case"object":var c;if(i){for(c in e)if(c.charAt&&"$"!==c.charAt(0)&&wi(e[c],t,n,r,!0))return!0;return!a&&wi(e,t,n,r,!1)}if("object"!==s)return n(e,t);for(c in t){var u=t[c];if(!Me(u)&&!we(u)){var l=c===r;if(!wi(l?e:e[c],u,n,r,l,l))return!1}}return!0;case"function":return!1;default:return n(e,t)}}function xi(e){return null===e?"null":typeof e}gi.$inject=["$document"],ki.$inject=["$provide"];var Si=22,$i=".",_i="0";function Mi(e){var i=e.NUMBER_FORMATS;return function(e,t,n){we(t)&&(t=i.CURRENCY_SYM),we(n)&&(n=i.PATTERNS[1].maxFrac);var r=t?/\u00A4/g:/\s*\u00A4\s*/g;return null==e?e:Ci(e,i.PATTERNS[1],i.GROUP_SEP,i.DECIMAL_SEP,n).replace(r,t)}}function Ii(e){var n=e.NUMBER_FORMATS;return function(e,t){return null==e?e:Ci(e,n.PATTERNS[0],n.GROUP_SEP,n.DECIMAL_SEP,t)}}function Ci(e,t,n,r,i){if(!Se(e)&&!x(e)||isNaN(e))return"";var a,o=!isFinite(e),s=!1,c=Math.abs(e)+"",u="";if(o)u="∞";else{(function(e,t,n,r){var i=e.d,a=i.length-e.i,o=(t=we(t)?Math.min(Math.max(n,a),r):+t)+e.i,s=i[o];if(0<o){i.splice(Math.max(e.i,o));for(var c=o;c<i.length;c++)i[c]=0}else{a=Math.max(0,a),e.i=1,i.length=Math.max(1,o=t+1),i[0]=0;for(var u=1;u<o;u++)i[u]=0}if(5<=s)if(o-1<0){for(var l=0;o<l;l--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[o-1]++;for(;a<Math.max(0,t);a++)i.push(0);var d=i.reduceRight(function(e,t,n,r){return t+=e,r[n]=t%10,Math.floor(t/10)},0);d&&(i.unshift(d),e.i++)})(a=function(e){var t,n,r,i,a,o=0;for(-1<(n=e.indexOf($i))&&(e=e.replace($i,"")),0<(r=e.search(/e/i))?(n<0&&(n=r),n+=+e.slice(r+1),e=e.substring(0,r)):n<0&&(n=e.length),r=0;e.charAt(r)===_i;r++);if(r===(a=e.length))t=[0],n=1;else{for(a--;e.charAt(a)===_i;)a--;for(n-=r,t=[],i=0;r<=a;r++,i++)t[i]=+e.charAt(r)}return Si<n&&(t=t.splice(0,Si-1),o=n-1,n=1),{d:t,e:o,i:n}}(c),i,t.minFrac,t.maxFrac);var l=a.d,d=a.i,f=a.e,p=[];for(s=l.reduce(function(e,t){return e&&!t},!0);d<0;)l.unshift(0),d++;0<d?p=l.splice(d,l.length):(p=l,l=[0]);var h=[];for(l.length>=t.lgSize&&h.unshift(l.splice(-t.lgSize,l.length).join(""));l.length>t.gSize;)h.unshift(l.splice(-t.gSize,l.length).join(""));l.length&&h.unshift(l.join("")),u=h.join(n),p.length&&(u+=r+p.join("")),f&&(u+="e+"+f)}return e<0&&!s?t.negPre+u+t.negSuf:t.posPre+u+t.posSuf}function Ai(e,t,n,r){var i="";for((e<0||r&&e<=0)&&(r?e=1-e:(e=-e,i="-")),e=""+e;e.length<t;)e=_i+e;return n&&(e=e.substr(e.length-t)),i+e}function Di(n,r,i,a,o){return i=i||0,function(e){var t=e["get"+n]();return(0<i||-i<t)&&(t+=i),0===t&&-12===i&&(t=12),Ai(t,r,a,o)}}function Ri(r,i,a){return function(e,t){var n=e["get"+r]();return t[f((a?"STANDALONE":"")+(i?"SHORT":"")+r)][n]}}function Ei(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Pi(r){return function(e){var t=Ei(e.getFullYear()),n=+function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}(e)-+t;return Ai(1+Math.round(n/6048e5),r)}}function Oi(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}Mi.$inject=["$locale"];var Ti={yyyy:Di("FullYear",4,0,!(Ii.$inject=["$locale"]),!0),yy:Di("FullYear",2,0,!0,!0),y:Di("FullYear",1,0,!1,!0),MMMM:Ri("Month"),MMM:Ri("Month",!0),MM:Di("Month",2,1),M:Di("Month",1,1),LLLL:Ri("Month",!1,!0),dd:Di("Date",2),d:Di("Date",1),HH:Di("Hours",2),H:Di("Hours",1),hh:Di("Hours",2,-12),h:Di("Hours",1,-12),mm:Di("Minutes",2),m:Di("Minutes",1),ss:Di("Seconds",2),s:Di("Seconds",1),sss:Di("Milliseconds",3),EEEE:Ri("Day"),EEE:Ri("Day",!0),a:function(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]},Z:function(e,t,n){var r=-1*n,i=0<=r?"+":"";return i+=Ai(Math[0<r?"floor":"ceil"](r/60),2)+Ai(Math.abs(r%60),2)},ww:Pi(2),w:Pi(1),G:Oi,GG:Oi,GGG:Oi,GGGG:function(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}},Fi=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,Li=/^-?\d+$/;function Ni(c){var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(t,e,n){var r,i,a="",o=[];if(e=e||"mediumDate",e=c.DATETIME_FORMATS[e]||e,Se(t)&&(t=Li.test(t)?y(t):function(e){var t;if(t=e.match(d)){var n=new Date(0),r=0,i=0,a=t[8]?n.setUTCFullYear:n.setFullYear,o=t[8]?n.setUTCHours:n.setHours;t[9]&&(r=y(t[9]+t[10]),i=y(t[9]+t[11])),a.call(n,y(t[1]),y(t[2])-1,y(t[3]));var s=y(t[4]||0)-r,c=y(t[5]||0)-i,u=y(t[6]||0),l=Math.round(1e3*parseFloat("0."+(t[7]||0)));return o.call(n,s,c,u,l),n}return e}(t)),x(t)&&(t=new Date(t)),!S(t)||!isFinite(t.getTime()))return t;for(;e;)e=(i=Fi.exec(e))?(o=U(o,i,1)).pop():(o.push(e),null);var s=t.getTimezoneOffset();return n&&(s=q(n,s),t=J(t,n,!0)),ve(o,function(e){r=Ti[e],a+=r?r(t,c.DATETIME_FORMATS,s):"''"===e?"'":e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),a}}function Bi(){return function(e,t){return we(t)&&(t=2),z(e,t)}}Ni.$inject=["$locale"];var Hi=R(he),Ui=R(f);function ji(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):y(t),D(t)?e:(x(e)&&(e=e.toString()),T(e)?(n=(n=!n||isNaN(n)?0:y(n))<0?Math.max(0,e.length+n):n,0<=t?zi(e,n,n+t):0===n?zi(e,t,e.length):zi(e,Math.max(0,n+t),n)):e)}}function zi(e,t,n){return Se(e)?e.slice(t,n):o.call(e,t,n)}function Vi(c){return function(e,t,n,r){if(null==e)return e;if(!T(e))throw C("orderBy")("notarray","Expected array but received: {0}",e);$e(t)||(t=[t]),0===t.length&&(t=["+"]);var a=function(e){return e.map(function(e){var t=1,n=be;if(Me(e))n=e;else if(Se(e)&&("+"!==e.charAt(0)&&"-"!==e.charAt(0)||(t="-"===e.charAt(0)?-1:1,e=e.substring(1)),""!==e&&(n=c(e)).constant)){var r=n();n=function(e){return e[r]}}return{get:n,descending:t}})}(t),o=n?-1:1,s=Me(r)?r:l,i=Array.prototype.map.call(e,function(t,n){return{value:t,tieBreaker:{value:n,type:"number",index:n},predicateValues:a.map(function(e){return function(e,t){var n=typeof e;null===e?n="null":"object"===n&&(e=function(e){if(Me(e.valueOf)&&u(e=e.valueOf()))return e;if(b(e)&&u(e=e.toString()))return e;return e}(e));return{value:e,type:n,index:t}}(e.get(t),n)})}});return i.sort(function(e,t){for(var n=0,r=a.length;n<r;n++){var i=s(e.predicateValues[n],t.predicateValues[n]);if(i)return i*a[n].descending*o}return(s(e.tieBreaker,t.tieBreaker)||l(e.tieBreaker,t.tieBreaker))*o}),e=i.map(function(e){return e.value})};function u(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function l(e,t){var n=0,r=e.type,i=t.type;if(r===i){var a=e.value,o=t.value;"string"===r?(a=a.toLowerCase(),o=o.toLowerCase()):"object"===r&&(xe(a)&&(a=e.index),xe(o)&&(o=t.index)),a!==o&&(n=a<o?-1:1)}else n="undefined"===r?1:"undefined"===i?-1:"null"===r?1:"null"===i?-1:r<i?-1:1;return n}}function Ki(e){return Me(e)&&(e={link:e}),e.restrict=e.restrict||"AC",R(e)}Vi.$inject=["$parse"];var qi=R({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===me.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),Wi={};ve(Rt,function(e,r){if("multiple"!==e){var i=Sn("ng-"+r),t=a;"checked"===e&&(t=function(e,t,n){n.ngModel!==n[i]&&a(e,0,n)}),Wi[i]=function(){return{restrict:"A",priority:100,link:t}}}function a(e,t,n){e.$watch(n[i],function(e){n.$set(r,!!e)})}}),ve(Pt,function(e,i){Wi[i]=function(){return{priority:100,link:function(e,t,n){if("ngPattern"===i&&"/"===n.ngPattern.charAt(0)){var r=n.ngPattern.match(a);if(r)return void n.$set("ngPattern",new RegExp(r[1],r[2]))}e.$watch(n[i],function(e){n.$set(i,e)})}}}}),ve(["src","srcset","href"],function(o){var s=Sn("ng-"+o);Wi[s]=["$sce",function(a){return{priority:99,link:function(e,t,n){var r=o,i=o;"href"===o&&"[object SVGAnimatedString]"===me.call(t.prop("href"))&&(i="xlinkHref",n.$attr[i]="xlink:href",r=null),n.$set(s,a.getTrustedMediaUrl(n[s])),n.$observe(s,function(e){e?(n.$set(i,e),de&&r&&t.prop(r,n[i])):"href"===o&&n.$set(i,null)})}}}]});var Ji={$addControl:ke,$getControls:R([]),$$renameControl:function(e,t){e.$name=t},$removeControl:ke,$setValidity:ke,$setDirty:ke,$setPristine:ke,$setSubmitted:ke,$$setSubmitted:ke},Gi="ng-pending",Yi="ng-submitted";function Xi(e,t,n,r,i){this.$$controls=[],this.$error={},this.$$success={},this.$pending=void 0,this.$name=i(t.name||t.ngForm||"")(n),this.$dirty=!1,this.$pristine=!0,this.$valid=!0,this.$invalid=!1,this.$submitted=!1,this.$$parentForm=Ji,this.$$element=e,this.$$animate=r,ta(this)}Xi.$inject=["$element","$attrs","$scope","$animate","$interpolate"],Xi.prototype={$rollbackViewValue:function(){ve(this.$$controls,function(e){e.$rollbackViewValue()})},$commitViewValue:function(){ve(this.$$controls,function(e){e.$commitViewValue()})},$addControl:function(e){ce(e.$name,"input"),this.$$controls.push(e),e.$name&&(this[e.$name]=e),e.$$parentForm=this},$getControls:function(){return qe(this.$$controls)},$$renameControl:function(e,t){var n=e.$name;this[n]===e&&delete this[n],(this[t]=e).$name=t},$removeControl:function(n){n.$name&&this[n.$name]===n&&delete this[n.$name],ve(this.$pending,function(e,t){this.$setValidity(t,null,n)},this),ve(this.$error,function(e,t){this.$setValidity(t,null,n)},this),ve(this.$$success,function(e,t){this.$setValidity(t,null,n)},this),Re(this.$$controls,n),n.$$parentForm=Ji},$setDirty:function(){this.$$animate.removeClass(this.$$element,Xa),this.$$animate.addClass(this.$$element,Za),this.$dirty=!0,this.$pristine=!1,this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Xa,Za+" "+Yi),this.$dirty=!1,this.$pristine=!0,this.$submitted=!1,ve(this.$$controls,function(e){e.$setPristine()})},$setUntouched:function(){ve(this.$$controls,function(e){e.$setUntouched()})},$setSubmitted:function(){for(var e=this;e.$$parentForm&&e.$$parentForm!==Ji;)e=e.$$parentForm;e.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,Yi),this.$submitted=!0,ve(this.$$controls,function(e){e.$$setSubmitted&&e.$$setSubmitted()})}},na({clazz:Xi,set:function(e,t,n){var r=e[t];r?-1===r.indexOf(n)&&r.push(n):e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(Re(r,n),0===r.length&&delete e[t])}});function Zi(n){return["$timeout","$parse",function(c,t){return{name:"form",restrict:n?"EAC":"E",require:["form","^^?form"],controller:Xi,compile:function(e,t){e.addClass(Xa).addClass(Ga);var s=t.name?"name":!(!n||!t.ngForm)&&"ngForm";return{pre:function(t,e,n,r){var i=r[0];if(!("action"in n)){var a=function(e){t.$apply(function(){i.$commitViewValue(),i.$setSubmitted()}),e.preventDefault()};e[0].addEventListener("submit",a),e.on("$destroy",function(){c(function(){e[0].removeEventListener("submit",a)},0,!1)})}(r[1]||i.$$parentForm).$addControl(i);var o=s?u(i.$name):ke;s&&(o(t,i),n.$observe(s,function(e){i.$name!==e&&(o(t,void 0),i.$$parentForm.$$renameControl(i,e),(o=u(i.$name))(t,i))})),e.on("$destroy",function(){i.$$parentForm.$removeControl(i),o(t,void 0),ge(i,Ji)})}}}};function u(e){return""===e?t('this[""]').assign:t(e).assign||ke}}]}var Qi=Zi(),ea=Zi(!0);function ta(e){e.$$classCache={},e.$$classCache[Ya]=!(e.$$classCache[Ga]=e.$$element.hasClass(Ga))}function na(e){var t=e.clazz,i=e.set,a=e.unset;function o(e,t,n){n&&!e.$$classCache[t]?(e.$$animate.addClass(e.$$element,t),e.$$classCache[t]=!0):!n&&e.$$classCache[t]&&(e.$$animate.removeClass(e.$$element,t),e.$$classCache[t]=!1)}function s(e,t,n){t=t?"-"+Le(t,"-"):"",o(e,Ga+t,!0===n),o(e,Ya+t,!1===n)}t.prototype.$setValidity=function(e,t,n){var r;we(t)?function(e,t,n,r){e[t]||(e[t]={});i(e[t],n,r)}(this,"$pending",e,n):function(e,t,n,r){e[t]&&a(e[t],n,r);ra(e[t])&&(e[t]=void 0)}(this,"$pending",e,n),Ce(t)?t?(a(this.$error,e,n),i(this.$$success,e,n)):(i(this.$error,e,n),a(this.$$success,e,n)):(a(this.$error,e,n),a(this.$$success,e,n)),this.$pending?(o(this,Gi,!0),this.$valid=this.$invalid=void 0,s(this,"",null)):(o(this,Gi,!1),this.$valid=ra(this.$error),this.$invalid=!this.$valid,s(this,"",this.$valid)),s(this,e,r=this.$pending&&this.$pending[e]?void 0:!this.$error[e]&&(!!this.$$success[e]||null)),this.$$parentForm.$setValidity(e,r,this)}}function ra(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var ia=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,aa=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,oa=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,sa=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,ca=/^(\d{4,})-(\d{2})-(\d{2})$/,ua=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,la=/^(\d{4,})-W(\d\d)$/,da=/^(\d{4,})-(\d\d)$/,fa=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,pa="keydown wheel mousedown",ha=Be();ve("date,datetime-local,month,time,week".split(","),function(e){ha[e]=!0});var ma={text:function(e,t,n,r,i,a){ga(e,t,n,r,i,a),va(r)},date:ka("date",ca,ya(ca,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ka("datetimelocal",ua,ya(ua,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ka("time",fa,ya(fa,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ka("week",la,function(e,t){if(S(e))return e;if(Se(e)){la.lastIndex=0;var n=la.exec(e);if(n){var r=+n[1],i=+n[2],a=0,o=0,s=0,c=0,u=Ei(r),l=7*(i-1);return t&&(a=t.getHours(),o=t.getMinutes(),s=t.getSeconds(),c=t.getMilliseconds()),new Date(r,0,u.getDate()+l,a,o,s,c)}}return NaN},"yyyy-Www"),month:ka("month",da,ya(da,["yyyy","MM"]),"yyyy-MM"),number:function(e,t,n,r,i,a,o,s){var c;if(ba(e,t,n,r,"number"),wa(r),ga(e,t,n,r,i,a),E(n.min)||n.ngMin){var u=n.min||s(n.ngMin)(e);c=xa(u),r.$validators.min=function(e,t){return r.$isEmpty(t)||we(c)||c<=t},n.$observe("min",function(e){e!==u&&(c=xa(e),u=e,r.$validate())})}if(E(n.max)||n.ngMax){var l=n.max||s(n.ngMax)(e),d=xa(l);r.$validators.max=function(e,t){return r.$isEmpty(t)||we(d)||t<=d},n.$observe("max",function(e){e!==l&&(d=xa(e),l=e,r.$validate())})}if(E(n.step)||n.ngStep){var f=n.step||s(n.ngStep)(e),p=xa(f);r.$validators.step=function(e,t){return r.$isEmpty(t)||we(p)||_a(t,c||0,p)},n.$observe("step",function(e){e!==f&&(p=xa(e),f=e,r.$validate())})}},url:function(e,t,n,r,i,a){ga(e,t,n,r,i,a),va(r),r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||aa.test(n)}},email:function(e,t,n,r,i,a){ga(e,t,n,r,i,a),va(r),r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||oa.test(n)}},radio:function(e,n,r,i){var a=!r.ngTrim||"false"!==Ae(r.ngTrim);we(r.name)&&n.attr("name",A());n.on("change",function(e){var t;n[0].checked&&(t=r.value,a&&(t=Ae(t)),i.$setViewValue(t,e&&e.type))}),i.$render=function(){var e=r.value;a&&(e=Ae(e)),n[0].checked=e===i.$viewValue},r.$observe("value",i.$render)},range:function(e,r,i,n,t,a){ba(e,r,i,n,"range"),wa(n),ga(e,r,i,n,t,a);var o=n.$$hasNativeValidators&&"range"===r[0].type,s=o?0:void 0,c=o?100:void 0,u=o?1:void 0,l=r[0].validity,d=E(i.min),f=E(i.max),p=E(i.step),h=n.$render;n.$render=o&&E(l.rangeUnderflow)&&E(l.rangeOverflow)?function(){h(),n.$setViewValue(r.val())}:h,d&&(s=xa(i.min),n.$validators.min=o?function(){return!0}:function(e,t){return n.$isEmpty(t)||we(s)||s<=t},m("min",function(e){if(s=xa(e),D(n.$modelValue))return;if(o){var t=r.val();t<s&&(t=s,r.val(t)),n.$setViewValue(t)}else n.$validate()}));f&&(c=xa(i.max),n.$validators.max=o?function(){return!0}:function(e,t){return n.$isEmpty(t)||we(c)||t<=c},m("max",function(e){if(c=xa(e),D(n.$modelValue))return;if(o){var t=r.val();c<t&&(r.val(c),t=c<s?s:c),n.$setViewValue(t)}else n.$validate()}));p&&(u=xa(i.step),n.$validators.step=o?function(){return!l.stepMismatch}:function(e,t){return n.$isEmpty(t)||we(u)||_a(t,s||0,u)},m("step",function(e){if(u=xa(e),D(n.$modelValue))return;o?n.$viewValue!==r.val()&&n.$setViewValue(r.val()):n.$validate()}));function m(e,t){r.attr(e,i[e]);var n=i[e];i.$observe(e,function(e){e!==n&&t(n=e)})}},checkbox:function(e,t,n,r,i,a,o,s){var c=Ma(s,e,"ngTrueValue",n.ngTrueValue,!0),u=Ma(s,e,"ngFalseValue",n.ngFalseValue,!1);t.on("change",function(e){r.$setViewValue(t[0].checked,e&&e.type)}),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return!1===e},r.$formatters.push(function(e){return Pe(e,c)}),r.$parsers.push(function(e){return e?c:u})},hidden:ke,button:ke,submit:ke,reset:ke,file:ke};function va(t){t.$formatters.push(function(e){return t.$isEmpty(e)?e:e.toString()})}function ga(e,r,i,a,t,o){var s,c=he(r[0].type);if(!t.android){var u=!1;r.on("compositionstart",function(){u=!0}),r.on("compositionupdate",function(e){!we(e.data)&&""!==e.data||(u=!1)}),r.on("compositionend",function(){u=!1,l()})}var l=function(e){if(s&&(o.defer.cancel(s),s=null),!u){var t=r.val(),n=e&&e.type;"password"===c||i.ngTrim&&"false"===i.ngTrim||(t=Ae(t)),(a.$viewValue!==t||""===t&&a.$$hasNativeValidators)&&a.$setViewValue(t,n)}};if(t.hasEvent("input"))r.on("input",l);else{var n=function(e,t,n){s=s||o.defer(function(){s=null,t&&t.value===n||l(e)})};r.on("keydown",function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||n(e,this,this.value)}),t.hasEvent("paste")&&r.on("paste cut drop",n)}r.on("change",l),ha[c]&&a.$$hasNativeValidators&&c===i.type&&r.on(pa,function(e){if(!s){var t=this[d],n=t.badInput,r=t.typeMismatch;s=o.defer(function(){s=null,t.badInput===n&&t.typeMismatch===r||l(e)})}}),a.$render=function(){var e=a.$isEmpty(a.$viewValue)?"":a.$viewValue;r.val()!==e&&r.val(e)}}function ya(a,o){return function(e,t){var n,r;if(S(e))return e;if(Se(e)){if('"'===e.charAt(0)&&'"'===e.charAt(e.length-1)&&(e=e.substring(1,e.length-1)),ia.test(e))return new Date(e);if(a.lastIndex=0,n=a.exec(e)){n.shift(),r=t?{yyyy:t.getFullYear(),MM:t.getMonth()+1,dd:t.getDate(),HH:t.getHours(),mm:t.getMinutes(),ss:t.getSeconds(),sss:t.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},ve(n,function(e,t){t<o.length&&(r[o[t]]=+e)});var i=new Date(r.yyyy,r.MM-1,r.dd,r.HH,r.mm,r.ss||0,1e3*r.sss||0);return r.yyyy<100&&i.setFullYear(r.yyyy),i}}return NaN}}function ka(y,k,b,w){return function(e,t,n,i,r,a,o,s){ba(e,t,n,i,y),ga(0,t,n,i,r,a);var c,u,l="time"===y||"datetimelocal"===y;if(i.$parsers.push(function(e){return i.$isEmpty(e)?null:k.test(e)?g(e,c):void(i.$$parserName=y)}),i.$formatters.push(function(e){if(e&&!S(e))throw no("datefmt","Expected `{0}` to be a date",e);if(m(e)){c=e;var t=i.$options.getOption("timezone");return t&&(c=J(c,u=t,!0)),function(e,t){var n=w;l&&Se(i.$options.getOption("timeSecondsFormat"))&&(n=w.replace("ss.sss",i.$options.getOption("timeSecondsFormat")).replace(/:$/,""));var r=o("date")(e,n,t);l&&i.$options.getOption("timeStripZeroSeconds")&&(r=r.replace(/(?::00)?(?:\.000)?$/,""));return r}(e,t)}return u=c=null,""}),E(n.min)||n.ngMin){var d=n.min||s(n.ngMin)(e),f=v(d);i.$validators.min=function(e){return!m(e)||we(f)||b(e)>=f},n.$observe("min",function(e){e!==d&&(f=v(e),d=e,i.$validate())})}if(E(n.max)||n.ngMax){var p=n.max||s(n.ngMax)(e),h=v(p);i.$validators.max=function(e){return!m(e)||we(h)||b(e)<=h},n.$observe("max",function(e){e!==p&&(h=v(e),p=e,i.$validate())})}function m(e){return e&&!(e.getTime&&e.getTime()!=e.getTime())}function v(e){return E(e)&&!S(e)?g(e)||void 0:e}function g(e,t){var n=i.$options.getOption("timezone");u&&u!==n&&(t=W(t,q(u)));var r=b(e,t);return!isNaN(r)&&n&&(r=J(r,n)),r}}}function ba(e,n,t,r,i){var a=n[0];(r.$$hasNativeValidators=xe(a.validity))&&r.$parsers.push(function(e){var t=n.prop(d)||{};if(!t.badInput&&!t.typeMismatch)return e;r.$$parserName=i})}function wa(t){t.$parsers.push(function(e){return t.$isEmpty(e)?null:sa.test(e)?parseFloat(e):void(t.$$parserName="number")}),t.$formatters.push(function(e){if(!t.$isEmpty(e)){if(!x(e))throw no("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e})}function xa(e){return E(e)&&!x(e)&&(e=parseFloat(e)),D(e)?void 0:e}function Sa(e){return(0|e)===e}function $a(e){var t=e.toString(),n=t.indexOf(".");if(-1!==n)return t.length-n-1;if(-1<e&&e<1){var r=/e-(\d+)$/.exec(t);if(r)return Number(r[1])}return 0}function _a(e,t,n){var r=Number(e),i=!Sa(r),a=!Sa(t),o=!Sa(n);if(i||a||o){var s=i?$a(r):0,c=a?$a(t):0,u=o?$a(n):0,l=Math.max(s,c,u),d=Math.pow(10,l);r*=d,t*=d,n*=d,i&&(r=Math.round(r)),a&&(t=Math.round(t)),o&&(n=Math.round(n))}return(r-t)%n==0}function Ma(e,t,n,r,i){var a;if(E(r)){if(!(a=e(r)).constant)throw no("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return a(t)}return i}function Ia(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(e){this.setAttribute("value",e)}};return{restrict:"E",priority:200,compile:function(e,t){if("hidden"===he(t.type))return{pre:function(e,t,n,r){var i=t[0];i.parentNode&&i.parentNode.insertBefore(i,i.nextSibling),Object.defineProperty&&Object.defineProperty(i,"value",a)}}}}}function Ca(){function r(e,t,n){var r=E(n)?n:9===de?"":null;e.prop("value",r),t.$set("value",n)}return{restrict:"A",priority:100,compile:function(e,t){return Da.test(t.ngValue)?function(e,t,n){r(t,n,e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){r(t,n,e)})}}}}var Aa=["$browser","$sniffer","$filter","$parse",function(i,a,o,s){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,t,n,r){r[0]&&(ma[he(n.type)]||ma.text)(e,t,n,r[0],a,i,o,s)}}}}],Da=/^(true|false|\d+)$/,Ra=["$compile",function(r){return{restrict:"AC",compile:function(e){return r.$$addBindingClass(e),function(e,t,n){r.$$addBindingInfo(t,n.ngBind),t=t[0],e.$watch(n.ngBind,function(e){t.textContent=He(e)})}}}}],Ea=["$interpolate","$compile",function(i,a){return{compile:function(e){return a.$$addBindingClass(e),function(e,t,n){var r=i(t.attr(n.$attr.ngBindTemplate));a.$$addBindingInfo(t,r.expressions),t=t[0],n.$observe("ngBindTemplate",function(e){t.textContent=we(e)?"":e})}}}}],Pa=["$sce","$parse","$compile",function(a,n,o){return{restrict:"A",compile:function(e,t){var r=n(t.ngBindHtml),i=n(t.ngBindHtml,function(e){return a.valueOf(e)});return o.$$addBindingClass(e),function(t,n,e){o.$$addBindingInfo(n,e.ngBindHtml),t.$watch(i,function(){var e=r(t);n.html(a.getTrustedHtml(e)||"")})}}}}],Oa=R({restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}});function Ta(o,s){var l;return o="ngClass"+o,["$parse",function(a){return{restrict:"AC",link:function(e,t,c){var n,r=t.data("$classCounts"),i=!0;function u(e,t){var n=[];return ve(e,function(e){(0<t||r[e])&&(r[e]=(r[e]||0)+t,r[e]===+(0<t)&&n.push(e))}),n.join(" ")}r||(r=Be(),t.data("$classCounts",r)),"ngClass"!==o&&(l=l||a("$index",function(e){return 1&e}),e.$watch(l,function(e){e===s?function(e){e=u(f(e),1),c.$addClass(e)}(n):function(e){e=u(f(e),-1),c.$removeClass(e)}(n);i=e})),e.$watch(a(c[o],p),function(e){i===s&&function(e,t){var n=f(e),r=f(t),i=d(n,r),a=d(r,n),o=u(i,-1),s=u(a,1);c.$addClass(s),c.$removeClass(o)}(n,e);n=e})}}}];function d(e,t){if(!e||!e.length)return[];if(!t||!t.length)return e;var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],a=0;a<t.length;a++)if(i===t[a])continue e;n.push(i)}return n}function f(e){return e&&e.split(" ")}function p(t){if(!t)return t;var e=t;return $e(t)?e=t.map(p).join(" "):xe(t)?e=Object.keys(t).filter(function(e){return t[e]}).join(" "):Se(t)||(e=t+""),e}}var Fa=Ta("",!0),La=Ta("Odd",0),Na=Ta("Even",1),Ba=Ki({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Ha=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ua={},ja={blur:!0,focus:!0};function za(n,i,a,o,s,c){return{restrict:"A",compile:function(e,t){var r=n(t[o]);return function(n,e){e.on(s,function(e){function t(){r(n,{$event:e})}if(i.$$phase)if(c)n.$evalAsync(t);else try{t()}catch(e){a(e)}else n.$apply(t)})}}}}ve("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(r){var i=Sn("ng-"+r);Ua[i]=["$parse","$rootScope","$exceptionHandler",function(e,t,n){return za(e,t,n,i,r,ja[r])}]});function Va(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,r){var i=n.ngList||", ",a="false"!==n.ngTrim,o=a?Ae(i):i;r.$parsers.push(function(e){if(!we(e)){var t=[];return e&&ve(e.split(o),function(e){e&&t.push(a?Ae(e):e)}),t}}),r.$formatters.push(function(e){if($e(e))return e.join(i)}),r.$isEmpty=function(e){return!e||!e.length}}}}var Ka=["$animate","$compile",function(c,u){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(e,n,r,t,i){var a,o,s;e.$watch(r.ngIf,function(e){e?o||i(function(e,t){o=t,e[e.length++]=u.$$createComment("end ngIf",r.ngIf),a={clone:e},c.enter(e,n.parent(),n)}):(s&&(s.remove(),s=null),o&&(o.$destroy(),o=null),a&&(s=ue(a.clone),c.leave(s).done(function(e){!1!==e&&(s=null)}),a=null))})}}}],qa=["$templateRequest","$anchorScroll","$animate",function(v,g,y){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:k.noop,compile:function(e,t){var n=t.ngInclude||t.src,h=t.onload||"",m=t.autoscroll;return function(o,s,e,c,u){function l(){t&&(t.remove(),t=null),d&&(d.$destroy(),d=null),f&&(y.leave(f).done(function(e){!1!==e&&(t=null)}),t=f,f=null)}var d,t,f,p=0;o.$watch(n,function(r){function i(e){!1===e||!E(m)||m&&!o.$eval(m)||g()}var a=++p;r?(v(r,!0).then(function(e){if(!o.$$destroyed&&a===p){var t=o.$new();c.template=e;var n=u(t,function(e){l(),y.enter(e,null,s).done(i)});f=n,(d=t).$emit("$includeContentLoaded",r),o.$eval(h)}},function(){o.$$destroyed||a===p&&(l(),o.$emit("$includeContentError",r))}),o.$emit("$includeContentRequested",r)):(l(),c.template=null)})}}}}],Wa=["$compile",function(i){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(e,t,n,r){if(me.call(t[0]).match(/SVG/))return t.empty(),void i(lt(r.template,le.document).childNodes)(e,function(e){t.append(e)},{futureParentElement:t});t.html(r.template),i(t.contents())(e)}}}],Ja=Ki({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Ga="ng-valid",Ya="ng-invalid",Xa="ng-pristine",Za="ng-dirty",Qa="ng-untouched",eo="ng-touched",to="ng-not-empty",no=C("ngModel");function ro(e,t,n,r,i,a,o,s,c){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=c(n.name||"",!1)(e),this.$$parentForm=Ji,this.$options=io,this.$$updateEvents="",this.$$updateEventHandler=this.$$updateEventHandler.bind(this),this.$$parsedNgModel=i(n.ngModel),this.$$parsedNgModelAssign=this.$$parsedNgModel.assign,this.$$ngModelGet=this.$$parsedNgModel,this.$$ngModelSet=this.$$parsedNgModelAssign,this.$$pendingDebounce=null,this.$$parserValid=void 0,this.$$parserName="parse",this.$$currentValidationRunId=0,this.$$scope=e,this.$$rootScope=e.$root,this.$$attr=n,this.$$element=r,this.$$animate=a,this.$$timeout=o,this.$$parse=i,this.$$q=s,this.$$exceptionHandler=t,ta(this),function(n){n.$$scope.$watch(function(e){var t=n.$$ngModelGet(e);return t===n.$modelValue||n.$modelValue!=n.$modelValue&&t!=t||n.$$setModelValue(t),t})}(this)}ro.$inject=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$q","$interpolate"],ro.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var n=this.$$parse(this.$$attr.ngModel+"()"),r=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(e){var t=this.$$parsedNgModel(e);return Me(t)&&(t=n(e)),t},this.$$ngModelSet=function(e,t){Me(this.$$parsedNgModel(e))?r(e,{$$$p:t}):this.$$parsedNgModelAssign(e,t)}}else if(!this.$$parsedNgModel.assign)throw no("nonassign","Expression '{0}' is non-assignable. Element: {1}",this.$$attr.ngModel,Fe(this.$$element))},$render:ke,$isEmpty:function(e){return we(e)||""===e||null===e||e!=e},$$updateEmptyClasses:function(e){this.$isEmpty(e)?(this.$$animate.removeClass(this.$$element,to),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,to))},$setPristine:function(){this.$dirty=!1,this.$pristine=!0,this.$$animate.removeClass(this.$$element,Za),this.$$animate.addClass(this.$$element,Xa)},$setDirty:function(){this.$dirty=!0,this.$pristine=!1,this.$$animate.removeClass(this.$$element,Xa),this.$$animate.addClass(this.$$element,Za),this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1,this.$untouched=!0,this.$$animate.setClass(this.$$element,Qa,eo)},$setTouched:function(){this.$touched=!0,this.$untouched=!1,this.$$animate.setClass(this.$$element,eo,Qa)},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce),this.$viewValue=this.$$lastCommittedViewValue,this.$render()},$validate:function(){if(!D(this.$modelValue)){var e=this.$$lastCommittedViewValue,t=this.$$rawModelValue,n=this.$valid,r=this.$modelValue,i=this.$options.getOption("allowInvalid"),a=this;this.$$runValidators(t,e,function(e){i||n===e||(a.$modelValue=e?t:void 0,a.$modelValue!==r&&a.$$writeModelToScope())})}},$$runValidators:function(r,i,t){this.$$currentValidationRunId++;var a,o,s,n=this.$$currentValidationRunId,c=this;(function(){var e=c.$$parserName;{if(!we(c.$$parserValid))return c.$$parserValid||(ve(c.$validators,function(e,t){u(t,null)}),ve(c.$asyncValidators,function(e,t){u(t,null)})),u(e,c.$$parserValid),c.$$parserValid;u(e,null)}return!0})()?(a=!0,ve(c.$validators,function(e,t){var n=Boolean(e(r,i));a=a&&n,u(t,n)}),a||(ve(c.$asyncValidators,function(e,t){u(t,null)}),0)?(o=[],s=!0,ve(c.$asyncValidators,function(e,t){var n=e(r,i);if(!I(n))throw no("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",n);u(t,void 0),o.push(n.then(function(){u(t,!0)},function(){u(t,s=!1)}))}),o.length?c.$$q.all(o).then(function(){e(s)},ke):e(!0)):e(!1)):e(!1);function u(e,t){n===c.$$currentValidationRunId&&c.$setValidity(e,t)}function e(e){n===c.$$currentValidationRunId&&t(e)}},$commitViewValue:function(){var e=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce),(this.$$lastCommittedViewValue!==e||""===e&&this.$$hasNativeValidators)&&(this.$$updateEmptyClasses(e),this.$$lastCommittedViewValue=e,this.$pristine&&this.$setDirty(),this.$$parseAndValidate())},$$parseAndValidate:function(){var t=this.$$lastCommittedViewValue,n=this;if(this.$$parserValid=!we(t)||void 0,this.$setValidity(this.$$parserName,null),this.$$parserName="parse",this.$$parserValid)for(var e=0;e<this.$parsers.length;e++)if(we(t=this.$parsers[e](t))){this.$$parserValid=!1;break}D(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));var r=this.$modelValue,i=this.$options.getOption("allowInvalid");function a(){n.$modelValue!==r&&n.$$writeModelToScope()}this.$$rawModelValue=t,i&&(this.$modelValue=t,a()),this.$$runValidators(t,this.$$lastCommittedViewValue,function(e){i||(n.$modelValue=e?t:void 0,a())})},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue),ve(this.$viewChangeListeners,function(e){try{e()}catch(e){this.$$exceptionHandler(e)}},this)},$setViewValue:function(e,t){this.$viewValue=e,this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(t)},$$debounceViewValueCommit:function(e){var t=this.$options.getOption("debounce");x(t[e])?t=t[e]:x(t.default)&&-1===this.$options.getOption("updateOn").indexOf(e)?t=t.default:x(t["*"])&&(t=t["*"]),this.$$timeout.cancel(this.$$pendingDebounce);var n=this;0<t?this.$$pendingDebounce=this.$$timeout(function(){n.$commitViewValue()},t):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){n.$commitViewValue()})},$overrideModelOptions:function(e){this.$options=this.$options.createChild(e),this.$$setUpdateOnEvents()},$processModelValue:function(){var e=this.$$format();this.$viewValue!==e&&(this.$$updateEmptyClasses(e),this.$viewValue=this.$$lastCommittedViewValue=e,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,ke))},$$format:function(){for(var e=this.$formatters,t=e.length,n=this.$modelValue;t--;)n=e[t](n);return n},$$setModelValue:function(e){this.$modelValue=this.$$rawModelValue=e,this.$$parserValid=void 0,this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler),this.$$updateEvents=this.$options.getOption("updateOn"),this.$$updateEvents&&this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(e){this.$$debounceViewValueCommit(e&&e.type)}},na({clazz:ro,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]}});var io,ao=["$rootScope",function(o){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:ro,priority:1,compile:function(e){return e.addClass(Xa).addClass(Qa).addClass(Ga),{pre:function(e,t,n,r){var i=r[0],a=r[1]||i.$$parentForm,o=r[2];o&&(i.$options=o.$options),i.$$initGetterSetters(),a.$addControl(i),n.$observe("name",function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)}),e.$on("$destroy",function(){i.$$parentForm.$removeControl(i)})},post:function(e,t,n,r){var i=r[0];function a(){i.$setTouched()}i.$$setUpdateOnEvents(),t.on("blur",function(){i.$touched||(o.$$phase?e.$evalAsync(a):e.$apply(a))})}}}}}],oo=/(\s+|^)default(\s+|$)/;function so(e){this.$$options=e}so.prototype={getOption:function(e){return this.$$options[e]},createChild:function(n){var r=!1;return ve(n=ge({},n),function(e,t){"$inherit"===e?"*"===t?r=!0:(n[t]=this.$$options[t],"updateOn"===t&&(n.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===t&&(n.updateOnDefault=!1,n[t]=Ae(e.replace(oo,function(){return n.updateOnDefault=!0," "})))},this),r&&(delete n["*"],uo(n,this.$$options)),uo(n,io.$$options),new so(n)}},io=new so({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});function co(){function e(e,t){this.$$attrs=e,this.$$scope=t}return e.$inject=["$attrs","$scope"],e.prototype={$onInit:function(){var e=this.parentCtrl?this.parentCtrl.$options:io,t=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=e.createChild(t)}},{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:e}}function uo(n,e){ve(e,function(e,t){E(n[t])||(n[t]=e)})}var lo=Ki({terminal:!0,priority:1e3}),fo=C("ngOptions"),po=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,ho=["$compile","$document","$parse",function(v,g,c){function y(e,t,d){var f=e.match(po);if(!f)throw fo("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,Fe(t));function p(e,t){return v(e,w(e,t))}var n=f[5]||f[7],r=f[6],i=/ as /.test(f[0])&&f[1],h=f[9],a=c(f[2]?f[1]:n),m=i&&c(i)||a,o=h&&c(h),v=h?function(e,t){return o(d,t)}:function(e){return Ht(e)},g=c(f[2]||f[1]),y=c(f[3]||""),k=c(f[4]||""),b=c(f[8]),s={},w=r?function(e,t){return s[r]=t,s[n]=e,s}:function(e){return s[n]=e,s};function x(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function S(e){var t;if(!r&&T(e))t=e;else for(var n in t=[],e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n);return t}return{trackBy:h,getTrackByValue:p,getWatchables:c(b,function(e){for(var t=[],n=S(e=e||[]),r=n.length,i=0;i<r;i++){var a=e===n?i:n[i],o=e[a],s=w(o,a),c=v(o,s);if(t.push(c),f[2]||f[1]){var u=g(d,s);t.push(u)}if(f[4]){var l=k(d,s);t.push(l)}}return t}),getOptions:function(){for(var e=[],t={},n=b(d)||[],r=S(n),i=r.length,a=0;a<i;a++){var o=n===r?a:r[a],s=w(n[o],o),c=m(d,s),u=v(c,s),l=new x(u,c,g(d,s),y(d,s),k(d,s));e.push(l),t[u]=l}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[p(e)]},getViewValueFromOption:function(e){return h?N(e.viewValue):e.viewValue}}}}}var k=le.document.createElement("option"),b=le.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,r){r[0].registerOption=ke},post:function(e,a,t,n){for(var o=n[0],s=n[1],c=t.multiple,r=0,i=a.children(),u=i.length;r<u;r++)if(""===i[r].value){o.hasEmptyOption=!0,o.emptyOption=i.eq(r);break}a.empty();var l,d=!!o.emptyOption;fe(k.cloneNode(!1)).val("?");var f=y(t.ngOptions,a,e),p=g[0].createDocumentFragment();function h(e,t){var n=k.cloneNode(!1);t.appendChild(n),function(e,t){(e.element=t).disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label);t.value=e.selectValue}(e,n)}function m(e){var t=l.getOptionFromViewValue(e),n=t&&t.element;return n&&!n.selected&&(n.selected=!0),t}o.generateUnknownOptionValue=function(e){return"?"},c?(o.writeValue=function(e){if(l){var t=e&&e.map(m)||[];l.items.forEach(function(e){e.element.selected&&!L(t,e)&&(e.element.selected=!1)})}},o.readValue=function(){var e=a.val()||[],n=[];return ve(e,function(e){var t=l.selectValueMap[e];t&&!t.disabled&&n.push(l.getViewValueFromOption(t))}),n},f.trackBy&&e.$watchCollection(function(){if($e(s.$viewValue))return s.$viewValue.map(function(e){return f.getTrackByValue(e)})},function(){s.$render()})):(o.writeValue=function(e){if(l){var t=a[0].options[a[0].selectedIndex],n=l.getOptionFromViewValue(e);t&&t.removeAttribute("selected"),n?(a[0].value!==n.selectValue&&(o.removeUnknownOption(),a[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):o.selectUnknownOrEmptyOption(e)}},o.readValue=function(){var e=l.selectValueMap[a.val()];return e&&!e.disabled?(o.unselectEmptyOption(),o.removeUnknownOption(),l.getViewValueFromOption(e)):null},f.trackBy&&e.$watch(function(){return f.getTrackByValue(s.$viewValue)},function(){s.$render()})),d&&(v(o.emptyOption)(e),a.prepend(o.emptyOption),o.emptyOption[0].nodeType===ze?(o.hasEmptyOption=!1,o.registerOption=function(e,t){""===t.val()&&(o.hasEmptyOption=!0,o.emptyOption=t,o.emptyOption.removeClass("ng-scope"),s.$render(),t.on("$destroy",function(){var e=o.$isEmptyOptionSelected();o.hasEmptyOption=!1,o.emptyOption=void 0,e&&s.$render()}))}):o.emptyOption.removeClass("ng-scope")),e.$watchCollection(f.getWatchables,function(){var e=l&&o.readValue();if(l)for(var t=l.items.length-1;0<=t;t--){var n=l.items[t];E(n.group)?Ct(n.element.parentNode):Ct(n.element)}l=f.getOptions();var r={};if(l.items.forEach(function(e){var t;E(e.group)?((t=r[e.group])||(t=b.cloneNode(!1),p.appendChild(t),t.label=null===e.group?"null":e.group,r[e.group]=t),h(e,t)):h(e,p)}),a[0].appendChild(p),s.$render(),!s.$isEmpty(e)){var i=o.readValue();(f.trackBy||c?Pe(e,i):e===i)||(s.$setViewValue(i),s.$render())}})}}}}],mo=["$locale","$interpolate","$log",function(h,m,v){var g=/{}/g,y=/^when(Minus)?(.+)$/;return{link:function(i,a,o){var s,e=o.count,c=o.$attr.when&&a.attr(o.$attr.when),u=o.offset||0,l=i.$eval(c)||{},d={},t=m.startSymbol(),n=m.endSymbol(),r=t+e+"-"+u+n,f=k.noop;function p(e){a.text(e||"")}ve(o,function(e,t){var n=y.exec(t);if(n){var r=(n[1]?"-":"")+he(n[2]);l[r]=a.attr(o.$attr[t])}}),ve(l,function(e,t){d[t]=m(e.replace(g,r))}),i.$watch(e,function(e){var t=parseFloat(e),n=D(t);if(n||t in l||(t=h.pluralCat(t-u)),!(t===s||n&&D(s))){f();var r=d[t];we(r)?(null!=e&&v.debug("ngPluralize: no rule defined for '"+t+"' in "+c),f=ke,p()):f=i.$watch(r,p),s=t}})}}}],vo=C("ngRef"),go=["$parse",function(t){return{priority:-1,restrict:"A",compile:function(e,i){var a=Sn(De(e)),o=t(i.ngRef),s=o.assign||function(){throw vo("nonassign",'Expression in ngRef="{0}" is non-assignable!',i.ngRef)};return function(e,t,n){var r;if(n.hasOwnProperty("ngRefRead")){if("$element"===n.ngRefRead)r=t;else if(!(r=t.data("$"+n.ngRefRead+"Controller")))throw vo("noctrl",'The controller for ngRefRead="{0}" could not be found on ngRef="{1}"',n.ngRefRead,i.ngRef)}else r=t.data("$"+a+"Controller");s(e,r=r||t),t.on("$destroy",function(){o(e)===r&&s(e,null)})}}}}],yo=["$parse","$animate","$compile",function(s,A,c){function D(e,t,n,r,i,a,o){e[n]=r,i&&(e[i]=a),e.$index=t,e.$first=0===t,e.$last=t===o-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))}function R(e,t,n){return Ht(n)}function E(e,t){return t}var P="$$NG_REMOVED",O=C("ngRepeat");return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(e,t){var x=t.ngRepeat,S=c.$$createComment("end ngRepeat",x),n=x.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!n)throw O("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",x);var r=n[1],i=n[2],$=n[3],a=n[4];if(!(n=r.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw O("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",r);var _,M=n[3]||n[1],I=n[2];if($&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test($)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test($)))throw O("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",$);if(a){var C={$id:Ht},o=s(a);_=function(e,t,n,r){return I&&(C[I]=t),C[M]=n,C.$index=r,o(e,C)}}return function(y,k,e,t,b){var w=Be();y.$watchCollection(i,function(e){var r,t,n,i,a,o,s,c,u,l,d,f,p,h=k[0],m=Be();if($&&(y[$]=e),T(e))u=e,c=_||R;else for(var v in c=_||E,u=[],e)pe.call(e,v)&&"$"!==v.charAt(0)&&u.push(v);for(i=u.length,d=new Array(i),r=0;r<i;r++)if(a=e===u?r:u[r],o=e[a],s=c(y,a,o,r),w[s])l=w[s],delete w[s],m[s]=l,d[r]=l;else{if(m[s])throw ve(d,function(e){e&&e.scope&&(w[e.id]=e)}),O("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",x,s,o);d[r]={id:s,scope:void 0,clone:void 0},m[s]=!0}for(var g in C&&(C[M]=void 0),w){if(f=ue((l=w[g]).clone),A.leave(f),f[0].parentNode)for(r=0,t=f.length;r<t;r++)f[r][P]=!0;l.scope.$destroy()}for(r=0;r<i;r++)if(a=e===u?r:u[r],o=e[a],(l=d[r]).scope){for(n=h;(n=n.nextSibling)&&n[P];);l.clone[0]!==n&&A.move(ue(l.clone),null,h),h=(p=l).clone[p.clone.length-1],D(l.scope,r,M,o,I,a,i)}else b(function(e,t){l.scope=t;var n=S.cloneNode(!1);e[e.length++]=n,A.enter(e,null,h),h=n,l.clone=e,m[l.id]=l,D(l.scope,r,M,o,I,a,i)});w=m})}}}}],ko="ng-hide-animate",bo=["$animate",function(r){return{restrict:"A",multiElement:!0,link:function(e,t,n){e.$watch(n.ngShow,function(e){r[e?"removeClass":"addClass"](t,"ng-hide",{tempClasses:ko})})}}}],wo=["$animate",function(r){return{restrict:"A",multiElement:!0,link:function(e,t,n){e.$watch(n.ngHide,function(e){r[e?"addClass":"removeClass"](t,"ng-hide",{tempClasses:ko})})}}}],xo=Ki(function(e,n,t){e.$watchCollection(t.ngStyle,function(e,t){t&&e!==t&&ve(t,function(e,t){n.css(t,"")}),e&&n.css(e)})}),So=["$animate","$compile",function(l,d){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(e,t,n,i){function a(t,n){return function(e){!1!==e&&t.splice(n,1)}}var r=n.ngSwitch||n.on,o=[],s=[],c=[],u=[];e.$watch(r,function(e){for(var t,n;c.length;)l.cancel(c.pop());for(t=0,n=u.length;t<n;++t){var r=ue(s[t].clone);u[t].$destroy(),(c[t]=l.leave(r)).done(a(c,t))}s.length=0,u.length=0,(o=i.cases["!"+e]||i.cases["?"])&&ve(o,function(i){i.transclude(function(e,t){u.push(t);var n=i.element;e[e.length++]=d.$$createComment("end ngSwitchWhen");var r={clone:e};s.push(r),l.enter(e,n.parent(),n)})})})}}}],$o=Ki({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){ve(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter(function(e,t,n){return n[t-1]!==e}),function(e){r.cases["!"+e]=r.cases["!"+e]||[],r.cases["!"+e].push({transclude:i,element:t})})}}),_o=Ki({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),Mo=C("ngTransclude"),Io=["$compile",function(t){return{restrict:"EAC",compile:function(e){var s=t(e.contents());return e.empty(),function(e,n,t,r,i){if(!i)throw Mo("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",Fe(n));t.ngTransclude===t.$attr.ngTransclude&&(t.ngTransclude="");var a=t.ngTransclude||t.ngTranscludeSlot;function o(){s(e,function(e){n.append(e)})}i(function(e,t){e.length&&function(e){for(var t=0,n=e.length;t<n;t++){var r=e[t];if(r.nodeType!==je||r.nodeValue.trim())return!0}}(e)?n.append(e):(o(),t.$destroy())},null,a),a&&!i.isSlotFilled(a)&&o()}}}}],Co=["$templateCache",function(i){return{restrict:"E",terminal:!0,compile:function(e,t){if("text/ng-template"===t.type){var n=t.id,r=e[0].text;i.put(n,r)}}}}],Ao={$setViewValue:ke,$render:ke};function Do(e,t){e.prop("selected",t),e.attr("selected",t)}function Ro(){return{restrict:"E",require:["select","?ngModel"],controller:Fo,priority:1,link:{pre:function(e,t,n,r){var i=r[0],a=r[1];if(!a)return void(i.registerOption=ke);if(i.ngModelCtrl=a,t.on("change",function(){i.removeUnknownOption(),e.$apply(function(){a.$setViewValue(i.readValue())})}),n.multiple){i.multiple=!0,i.readValue=function(){var n=[];return ve(t.find("option"),function(e){if(e.selected&&!e.disabled){var t=e.value;n.push(t in i.selectValueMap?i.selectValueMap[t]:t)}}),n},i.writeValue=function(n){ve(t.find("option"),function(e){var t=!!n&&(L(n,e.value)||L(n,i.selectValueMap[e.value]));t!==e.selected&&Do(fe(e),t)})};var o,s=NaN;e.$watch(function(){s!==a.$viewValue||Pe(o,a.$viewValue)||(o=qe(a.$viewValue),a.$render()),s=a.$viewValue}),a.$isEmpty=function(e){return!e||0===e.length}}},post:function(e,t,n,r){var i=r[1];if(!i)return;var a=r[0];i.$render=function(){a.writeValue(i.$viewValue)}}}}}var Eo,Po,Oo,To,Fo=["$element","$scope",function(i,t){var s=this,r=new zt;s.selectValueMap={},s.ngModelCtrl=Ao,s.multiple=!1,s.unknownOption=fe(le.document.createElement("option")),s.hasEmptyOption=!1,s.emptyOption=void 0,s.renderUnknownOption=function(e){var t=s.generateUnknownOptionValue(e);s.unknownOption.val(t),i.prepend(s.unknownOption),Do(s.unknownOption,!0),i.val(t)},s.updateUnknownOption=function(e){var t=s.generateUnknownOptionValue(e);s.unknownOption.val(t),Do(s.unknownOption,!0),i.val(t)},s.generateUnknownOptionValue=function(e){return"? "+Ht(e)+" ?"},s.removeUnknownOption=function(){s.unknownOption.parent()&&s.unknownOption.remove()},s.selectEmptyOption=function(){s.emptyOption&&(i.val(""),Do(s.emptyOption,!0))},s.unselectEmptyOption=function(){s.hasEmptyOption&&Do(s.emptyOption,!1)},t.$on("$destroy",function(){s.renderUnknownOption=ke}),s.readValue=function(){var e=i.val(),t=e in s.selectValueMap?s.selectValueMap[e]:e;return s.hasOption(t)?t:null},s.writeValue=function(e){var t=i[0].options[i[0].selectedIndex];if(t&&Do(fe(t),!1),s.hasOption(e)){s.removeUnknownOption();var n=Ht(e);i.val(n in s.selectValueMap?n:e);var r=i[0].options[i[0].selectedIndex];Do(fe(r),!0)}else s.selectUnknownOrEmptyOption(e)},s.addOption=function(e,t){if(t[0].nodeType!==ze){ce(e,'"option value"'),""===e&&(s.hasEmptyOption=!0,s.emptyOption=t);var n=r.get(e)||0;r.set(e,n+1),c()}},s.removeOption=function(e){var t=r.get(e);t&&(1===t?(r.delete(e),""===e&&(s.hasEmptyOption=!1,s.emptyOption=void 0)):r.set(e,t-1))},s.hasOption=function(e){return!!r.get(e)},s.$hasEmptyOption=function(){return s.hasEmptyOption},s.$isUnknownOptionSelected=function(){return i[0].options[0]===s.unknownOption[0]},s.$isEmptyOptionSelected=function(){return s.hasEmptyOption&&i[0].options[i[0].selectedIndex]===s.emptyOption[0]};var e=!(s.selectUnknownOrEmptyOption=function(e){null==e&&s.emptyOption?(s.removeUnknownOption(),s.selectEmptyOption()):s.unknownOption.parent().length?s.updateUnknownOption(e):s.renderUnknownOption(e)});function c(){e||(e=!0,t.$$postDigest(function(){e=!1,s.ngModelCtrl.$render()}))}var n=!1;function u(e){n||(n=!0,t.$$postDigest(function(){t.$$destroyed||(n=!1,s.ngModelCtrl.$setViewValue(s.readValue()),e&&s.ngModelCtrl.$render())}))}s.registerOption=function(e,r,i,t,n){var a,o;i.$attr.ngValue?i.$observe("value",function(e){var t,n=r.prop("selected");E(o)&&(s.removeOption(a),delete s.selectValueMap[o],t=!0),o=Ht(e),a=e,s.selectValueMap[o]=e,s.addOption(e,r),r.attr("value",o),t&&n&&u()}):t?i.$observe("value",function(e){var t;s.readValue();var n=r.prop("selected");E(a)&&(s.removeOption(a),t=!0),a=e,s.addOption(e,r),t&&n&&u()}):n?e.$watch(n,function(e,t){i.$set("value",e);var n=r.prop("selected");t!==e&&s.removeOption(t),s.addOption(e,r),t&&n&&u()}):s.addOption(i.value,r);i.$observe("disabled",function(e){("true"===e||e&&r.prop("selected"))&&(s.multiple?u(!0):(s.ngModelCtrl.$setViewValue(null),s.ngModelCtrl.$render()))}),r.on("$destroy",function(){var e=s.readValue(),t=i.value;s.removeOption(t),c(),(s.multiple&&e&&-1!==e.indexOf(t)||e===t)&&u(!0)})}}],Lo=["$interpolate",function(n){return{restrict:"E",priority:100,compile:function(e,t){var o,s;return E(t.ngValue)||(E(t.value)?o=n(t.value,!0):(s=n(e.text(),!0))||t.$set("value",e.text())),function(e,t,n){var r="$selectController",i=t.parent(),a=i.data(r)||i.parent().data(r);a&&a.registerOption(e,t,n,o,s)}}}}],No=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=n.hasOwnProperty("required")||a(n.ngRequired)(e);n.ngRequired||(n.required=!0),r.$validators.required=function(e,t){return!i||!r.$isEmpty(t)},n.$observe("required",function(e){i!==e&&(i=e,r.$validate())})}}}}],Bo=["$parse",function(n){return{restrict:"A",require:"?ngModel",compile:function(e,t){var o,s;return t.ngPattern&&(o=t.ngPattern,s="/"===t.ngPattern.charAt(0)&&a.test(t.ngPattern)?function(){return t.ngPattern}:n(t.ngPattern)),function(e,n,t,r){if(r){var i=t.pattern;t.ngPattern?i=s(e):o=t.pattern;var a=jo(i,o,n);t.$observe("pattern",function(e){var t=a;a=jo(e,o,n),(t&&t.toString())!==(a&&a.toString())&&r.$validate()}),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||we(a)||a.test(t)}}}}}}],Ho=["$parse",function(o){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=n.maxlength||o(n.ngMaxlength)(e),a=zo(i);n.$observe("maxlength",function(e){i!==e&&(a=zo(e),i=e,r.$validate())}),r.$validators.maxlength=function(e,t){return a<0||r.$isEmpty(t)||t.length<=a}}}}}],Uo=["$parse",function(o){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=n.minlength||o(n.ngMinlength)(e),a=zo(i)||-1;n.$observe("minlength",function(e){i!==e&&(a=zo(e)||-1,i=e,r.$validate())}),r.$validators.minlength=function(e,t){return r.$isEmpty(t)||t.length>=a}}}}}];function jo(e,t,n){if(e){if(Se(e)&&(e=new RegExp("^"+e+"$")),!e.test)throw C("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",t,e,Fe(n));return e}}function zo(e){var t=y(e);return D(t)?-1:t}le.angular.bootstrap?le.console&&console.log("WARNING: Tried to load AngularJS more than once."):(function(){var i;if(!oe){var e=H();(t=we(e)?le.jQuery:e?le[e]:void 0)&&t.fn.on?ge((fe=t).fn,{scope:Dt.scope,isolateScope:Dt.isolateScope,controller:Dt.controller,injector:Dt.injector,inheritedData:Dt.inheritedData}):fe=ft,i=fe.cleanData,fe.cleanData=function(e){for(var t,n,r=0;null!=(n=e[r]);r++)(t=(fe._data(n)||{}).events)&&t.$destroy&&fe(n).triggerHandler("$destroy");i(e)},k.element=fe,oe=!0}}(),ge(k,{errorHandlingConfig:e,bootstrap:ne,copy:N,extend:ge,merge:v,equals:Pe,element:fe,forEach:ve,injector:Qt,noop:ke,bind:Te,toJson:z,fromJson:V,identity:be,isUndefined:we,isDefined:E,isString:Se,isFunction:Me,isObject:xe,isNumber:x,isElement:F,isArray:$e,version:Je,isDate:S,callbacks:{$$counter:0},getTestability:ie,reloadWithDebugInfo:re,$$minErr:C,$$csp:B,$$encodeUriSegment:X,$$encodeUriQuery:Z,$$lowercase:he,$$stringify:He,$$uppercase:f}),(Eo=le,Po=C("$injector"),Oo=C("ng"),(To=Vo(Eo,"angular",Object)).$$minErr=To.$$minErr||C,(g=Vo(To,"module",function(){var e={};return function(s,c,u){var l={};return function(e,t){if("hasOwnProperty"===e)throw Oo("badname","hasOwnProperty is not a valid {0} name",t)}(s,"module"),c&&e.hasOwnProperty(s)&&(e[s]=null),Vo(e,s,function(){if(!c)throw Po("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",s);var a=[],e=[],t=[],n=r("$injector","invoke","push",e),o={_invokeQueue:a,_configBlocks:e,_runBlocks:t,info:function(e){if(E(e)){if(!xe(e))throw Oo("aobj","Argument '{0}' must be an object","value");return l=e,this}return l},requires:c,name:s,provider:i("$provide","provider"),factory:i("$provide","factory"),service:i("$provide","service"),value:r("$provide","value"),constant:r("$provide","constant","unshift"),decorator:i("$provide","decorator",e),animation:i("$animateProvider","register"),filter:i("$filterProvider","register"),controller:i("$controllerProvider","register"),directive:i("$compileProvider","directive"),component:i("$compileProvider","component"),config:n,run:function(e){return t.push(e),this}};return u&&n(u),o;function r(e,t,n,r){return r=r||a,function(){return r[n||"push"]([e,t,arguments]),o}}function i(n,r,i){return i=i||a,function(e,t){return t&&Me(t)&&(t.$$moduleName=s),i.push([n,r,arguments]),o}}})}}))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Jr}),e.provider("$compile",kn).directive({a:qi,input:Aa,textarea:Aa,form:Qi,script:Co,select:Ro,option:Lo,ngBind:Ra,ngBindHtml:Pa,ngBindTemplate:Ea,ngClass:Fa,ngClassEven:Na,ngClassOdd:La,ngCloak:Ba,ngController:Ha,ngForm:ea,ngHide:wo,ngIf:Ka,ngInclude:qa,ngInit:Ja,ngNonBindable:lo,ngPluralize:mo,ngRef:go,ngRepeat:yo,ngShow:bo,ngStyle:xo,ngSwitch:So,ngSwitchWhen:$o,ngSwitchDefault:_o,ngOptions:ho,ngTransclude:Io,ngModel:ao,ngList:Va,ngChange:Oa,pattern:Bo,ngPattern:Bo,required:No,ngRequired:No,minlength:Uo,ngMinlength:Uo,maxlength:Ho,ngMaxlength:Ho,ngValue:Ca,ngModelOptions:co}).directive({ngInclude:Wa,input:Ia}).directive(Wi).directive(Ua),e.provider({$anchorScroll:en,$animate:fn,$animateCss:dn,$$animateJs:sn,$$animateQueue:cn,$$AnimateRunner:ln,$$animateAsyncRun:un,$browser:hn,$cacheFactory:mn,$controller:Cn,$document:An,$$isDocumentHidden:Dn,$exceptionHandler:Rn,$filter:ki,$$forceReflow:En,$interpolate:Xn,$interval:Qn,$$intervalFactory:er,$http:Wn,$httpParamSerializer:Hn,$httpParamSerializerJQLike:Un,$httpBackend:Gn,$xhrFactory:Jn,$jsonpCallbacks:tr,$location:yr,$log:kr,$parse:Br,$rootScope:Wr,$q:Hr,$$q:Ur,$sce:ti,$sceDelegate:ei,$sniffer:ni,$$taskTrackerFactory:ri,$templateCache:vn,$templateRequest:oi,$$testability:si,$timeout:ui,$window:vi,$$rAF:qr,$$jqLite:Bt,$$Map:Vt,$$cookieReader:yi})}])).info({angularVersion:"1.7.9"}),k.module("ngLocale",[],["$provide",function(e){var i="one",a="other";function o(e,t){var n=t;void 0===n&&(n=Math.min(function(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}(e),3));var r=Math.pow(10,n);return{v:n,f:(e*r|0)%r}}e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var n=0|e,r=o(e,t);return 1==n&&0==r.v?i:a}})}]),fe(function(){te(le.document,ne)}));function Vo(e,t,n){return e[t]||(e[t]=n())}}(window),window.angular.$$csp().noInlineStyle||window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');var bind,extend,forEach,isArray,isDefined,lowercase,noop,nodeContains,htmlParser,htmlSanitizeWriter,$sanitizeMinErr=angular.$$minErr("$sanitize");function $SanitizeProvider(){var t=!1,r=!1;this.$get=["$$sanitizeUri",function(n){return t=!0,r&&extend(f,l),function(e){var t=[];return htmlParser(e,htmlSanitizeWriter(t,function(e,t){return!/^unsafe:/.test(n(e,t))})),t.join("")}}],this.enableSvg=function(e){return isDefined(e)?(r=e,this):r},this.addValidElements=function(e){return t||(isArray(e)&&(e={htmlElements:e}),k(l,e.svgElements),k(s,e.htmlVoidElements),k(f,e.htmlVoidElements),k(f,e.htmlElements)),this},this.addValidAttrs=function(e){return t||extend(v,y(e,!0)),this},bind=angular.bind,extend=angular.extend,forEach=angular.forEach,isArray=angular.isArray,isDefined=angular.isDefined,lowercase=angular.$$lowercase,noop=angular.noop,htmlParser=function(e,t){null==e?e="":"string"!=typeof e&&(e=""+e);var n=b(e);if(!n)return"";var r=5;do{if(0===r)throw $sanitizeMinErr("uinput","Failed to sanitize html because the input is unstable");r--,e=n.innerHTML,n=b(e)}while(e!==n.innerHTML);var i=n.firstChild;for(;i;){switch(i.nodeType){case 1:t.start(i.nodeName.toLowerCase(),w(i.attributes));break;case 3:t.chars(i.textContent)}var a;if(!((a=i.firstChild)||(1===i.nodeType&&t.end(i.nodeName.toLowerCase()),a=S("nextSibling",i))))for(;null==a&&(i=S("parentNode",i))!==n;)a=S("nextSibling",i),1===i.nodeType&&t.end(i.nodeName.toLowerCase());i=a}for(;i=n.firstChild;)n.removeChild(i)},htmlSanitizeWriter=function(e,a){var t=!1,o=bind(e,e.push);return{start:function(i,e){i=lowercase(i),!t&&d[i]&&(t=i),t||!0!==f[i]||(o("<"),o(i),forEach(e,function(e,t){var n=lowercase(t),r="img"===i&&"src"===n||"background"===n;!0!==v[n]||!0===p[n]&&!a(e,r)||(o(" "),o(t),o('="'),o(x(e)),o('"'))}),o(">"))},end:function(e){e=lowercase(e),t||!0!==f[e]||!0===s[e]||(o("</"),o(e),o(">")),e==t&&(t=!1)},chars:function(e){t||o(x(e))}}},nodeContains=window.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))};var n=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i=/([^#-~ |!])/g,s=g("area,br,col,hr,img,wbr"),e=g("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),a=g("rp,rt"),o=extend({},a,e),c=extend({},e,g("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul,progress")),u=extend({},a,g("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),l=g("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),d=g("script,style"),f=extend({},s,c,u,o),p=g("background,cite,href,longdesc,src,xlink:href,xml:base"),h=g("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width,style"),m=g("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),v=extend({},p,m,h);function g(e,t){return y(e.split(","),t)}function y(e,t){var n,r={};for(n=0;n<e.length;n++)r[t?lowercase(e[n]):e[n]]=!0;return r}function k(e,t){t&&t.length&&extend(e,y(t))}var b=function(r,t){var e;if(!t||!t.implementation)throw $sanitizeMinErr("noinert","Can't create an inert html document");var n=((e=t.implementation.createHTMLDocument("inert")).documentElement||e.getDocumentElement()).querySelector("body");return n.innerHTML='<svg><g onload="this.parentNode.remove()"></g></svg>',n.querySelector("svg")?(n.innerHTML='<svg><p><style><img src="</style><img src=x onerror=alert(1)//">',n.querySelector("svg img")?function(e){e="<remove></remove>"+e;try{var t=(new r.DOMParser).parseFromString(e,"text/html").body;return t.firstChild.remove(),t}catch(e){return}}:function(e){n.innerHTML=e,t.documentMode&&function e(t){for(;t;){if(t.nodeType===window.Node.ELEMENT_NODE)for(var n=t.attributes,r=0,i=n.length;r<i;r++){var a=n[r],o=a.name.toLowerCase();"xmlns:ns1"!==o&&0!==o.lastIndexOf("ns1:",0)||(t.removeAttributeNode(a),r--,i--)}var s=t.firstChild;s&&e(s),t=S("nextSibling",t)}}(n);return n}):function(e){e="<remove></remove>"+e;try{e=encodeURI(e)}catch(e){return}var t=new r.XMLHttpRequest;t.responseType="document",t.open("GET","data:text/html;charset=utf-8,"+e,!1),t.send(null);var n=t.response.body;return n.firstChild.remove(),n}}(window,window.document);function w(e){for(var t={},n=0,r=e.length;n<r;n++){var i=e[n];t[i.name]=i.value}return t}function x(e){return e.replace(/&/g,"&amp;").replace(n,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(i,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function S(e,t){var n=t[e];if(n&&nodeContains.call(t,n))throw $sanitizeMinErr("elclob","Failed to sanitize html because the element is clobbered: {0}",t.outerHTML||t.outerText);return n}}function sanitizeText(e){var t=[];return htmlSanitizeWriter(t,noop).chars(e),t.join("")}angular.module("ngSanitize",[]).provider("$sanitize",$SanitizeProvider).info({angularVersion:'"NG_VERSION_FULL"'}),function(){function p(e,t){return e.set(t[0],t[1]),e}function h(e,t){return e.add(t),e}function n(e,t){for(var n=-1,r=null==e?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}function l(e,t){return!(null==e||!e.length)&&-1<c(e,t,0)}function a(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}function u(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}function m(e,t,n){for(var r=-1,i=null==e?0:e.length;++r<i;)n=t(n,e[r],r,e);return n}function v(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function i(e,t,n){var r=e.length;for(n+=-1;++n<r;)if(t(e[n],n,e))return n;return-1}function c(e,t,n){if(t==t)e:{--n;for(var r=e.length;++n<r;)if(e[n]===t){e=n;break e}e=-1}else e=i(e,o,n);return e}function o(e){return e!=e}function g(e,t){return e.has(t)}function y(e){var n=-1,r=Array(e.size);return e.forEach(function(e,t){r[++n]=[t,e]}),r}function e(t){var n=Object;return function(e){return t(n(e))}}function k(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}function r(){}function t(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function d(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}function b(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new d;++t<n;)this.add(e[t])}function w(e){this.size=(this.__data__=new s(e)).size}function f(e,t){var n=Sn(e),r=!n&&xn(e),i=!n&&!r&&$n(e),a=!n&&!r&&!i&&_n(e);if(n=n||r||i||a){r=e.length;for(var o=String,s=-1,c=Array(r);++s<r;)c[s]=o(s);r=c}else r=[];var u;o=r.length;for(u in e)!t&&!yt.call(e,u)||n&&("length"==u||i&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||te(u,o))||r.push(u);return r}function x(e,t,n){(n===He||pe(e[t],n))&&(n!==He||t in e)||_(e,t,n)}function S(e,t,n){var r=e[t];yt.call(e,t)&&pe(r,n)&&(n!==He||t in e)||_(e,t,n)}function $(e,t){for(var n=e.length;n--;)if(pe(e[n][0],t))return n;return-1}function _(e,t,n){"__proto__"==t&&Pt?Pt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function M(n,r,i,e,t,a){var o,s=1&r,c=2&r,u=4&r;if(i&&(o=t?i(n,e,t,a):i(n)),o!==He)return o;if(!ye(n))return n;if(e=Sn(n)){if(o=function(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&yt.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(n),!s)return j(n,o)}else{var l=ln(n),d="[object Function]"==l||"[object GeneratorFunction]"==l;if($n(n))return B(n,s);if("[object Object]"==l||"[object Arguments]"==l||d&&!t){if(o=c||d?{}:Q(n),!s)return c?function(e,t){return z(e,un(e),t)}(n,function(e,t){return e&&z(t,Re(t),e)}(o,n)):function(e,t){return z(e,cn(e),t)}(n,function(e,t){return e&&z(t,De(t),e)}(o,n))}else{if(!nt[l])return t?n:{};o=function(e,t,n,r){var i=e.constructor;switch(t){case"[object ArrayBuffer]":return H(e);case"[object Boolean]":case"[object Date]":return new i(+e);case"[object DataView]":return t=r?H(e.buffer):e.buffer,new e.constructor(t,e.byteOffset,e.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return U(e,r);case"[object Map]":return m(t=r?n(y(e),1):y(e),p,new e.constructor);case"[object Number]":case"[object String]":return new i(e);case"[object RegExp]":return(t=new e.constructor(e.source,Ge.exec(e))).lastIndex=e.lastIndex,t;case"[object Set]":return m(t=r?n(k(e),1):k(e),h,new e.constructor);case"[object Symbol]":return Qt?Object(Qt.call(e)):{}}}(n,l,M,s)}}if(t=(a=a||new w).get(n))return t;a.set(n,o);c=u?c?G:J:c?Re:De;var f=e?He:c(n);return function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););}(f||n,function(e,t){f&&(e=n[t=e]),S(o,t,M(e,r,i,t,n,a))}),o}function I(e,t){for(var n=0,r=(t=N(t,e)).length;null!=e&&n<r;)e=e[oe(t[n++])];return n&&n==r?e:He}function C(e,t,n){return t=t(e),Sn(e)?t:u(t,n(e))}function A(e){if(null==e)e=e===He?"[object Undefined]":"[object Null]";else if(Et&&Et in Object(e)){var t=yt.call(e,Et),n=e[Et];try{e[Et]=He;var r=!0}catch(e){}var i=bt.call(e);r&&(t?e[Et]=n:delete e[Et]),e=i}else e=bt.call(e);return e}function D(e){return ke(e)&&"[object Arguments]"==A(e)}function R(e,t,n,r,i){if(e===t)t=!0;else if(null==e||null==t||!ke(e)&&!ke(t))t=e!=e&&t!=t;else e:{var a,o,s=Sn(e),c=Sn(t),u="[object Object]"==(a="[object Arguments]"==(a=s?"[object Array]":ln(e))?"[object Object]":a);c="[object Object]"==(o="[object Arguments]"==(o=c?"[object Array]":ln(t))?"[object Object]":o);if((o=a==o)&&$n(e)){if(!$n(t)){t=!1;break e}u=!(s=!0)}if(o&&!u)i=i||new w,t=s||_n(e)?q(e,t,n,r,R,i):function(e,t,n,r,i,a,o){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)break;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":if(e.byteLength!=t.byteLength||!a(new _t(e),new _t(t)))break;return!0;case"[object Boolean]":case"[object Date]":case"[object Number]":return pe(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var s=y;case"[object Set]":if(s=s||k,e.size!=t.size&&!(1&r))break;return(n=o.get(e))?n==t:(r|=2,o.set(e,t),t=q(s(e),s(t),r,i,a,o),o.delete(e),t);case"[object Symbol]":if(Qt)return Qt.call(e)==Qt.call(t)}return!1}(e,t,a,n,r,R,i);else{if(!(1&n)&&(s=u&&yt.call(e,"__wrapped__"),a=c&&yt.call(t,"__wrapped__"),s||a)){t=R(e=s?e.value():e,t=a?t.value():t,n,r,i=i||new w);break e}if(o)t:if(i=i||new w,s=1&n,a=J(e),c=a.length,o=J(t).length,c==o||s){for(u=c;u--;){var l=a[u];if(!(s?l in t:yt.call(t,l))){t=!1;break t}}if((o=i.get(e))&&i.get(t))t=o==t;else{o=!0,i.set(e,t),i.set(t,e);for(var d=s;++u<c;){var f=e[l=a[u]],p=t[l];if(r)var h=s?r(p,f,l,t,e,i):r(f,p,l,e,t,i);if(h===He?f!==p&&!R(f,p,n,r,i):!h){o=!1;break}d=d||"constructor"==l}o&&!d&&((n=e.constructor)!=(r=t.constructor)&&"constructor"in e&&"constructor"in t&&!("function"==typeof n&&n instanceof n&&"function"==typeof r&&r instanceof r)&&(o=!1)),i.delete(e),i.delete(t),t=o}}else t=!1;else t=!1}}return t}function E(e){return"function"==typeof e?e:null==e?Oe:"object"==typeof e?Sn(e)?function(n,r){return ne(n)&&r==r&&!ye(r)?ie(oe(n),r):function(e){var t=Ce(e,n);return t===He&&t===r?Ae(e,n):R(r,t,3)}}(e[0],e[1]):function(t){var n=function(e){for(var t=De(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,i==i&&!ye(i)]}return t}(t);return 1==n.length&&n[0][2]?ie(n[0][0],n[0][1]):function(e){return e===t||function(e,t){var n=t.length,r=n;if(null==e)return!r;for(e=Object(e);n--;){if((i=t[n])[2]?i[1]!==e[i[0]]:!(i[0]in e))return!1}for(;++n<r;){var i,a=(i=t[n])[0],o=e[a],s=i[1];if(i[2]){if(o===He&&!(a in e))return!1}else if(i=new w,void 0!==He||!R(s,o,3,void 0,i))return!1}return!0}(e,n)}}(e):Le(e)}function P(l,d,f,p,h){l!==d&&an(d,function(e,t){if(ye(e)){var n=h=h||new w,r=l[t],i=d[t];if(u=n.get(i))x(l,t,u);else{var a=(u=p?p(r,i,t+"",l,d,n):He)===He;if(a){var o=Sn(i),s=!o&&$n(i),c=!o&&!s&&_n(i),u=i;o||s||c?u=Sn(r)?r:me(r)?j(r):s?B(i,!(a=!1)):c?U(i,!(a=!1)):[]:be(i)||xn(i)?xn(u=r)?u=Me(r):(!ye(r)||f&&ve(r))&&(u=Q(i)):a=!1}a&&(n.set(i,u),P(u,i,f,p,n),n.delete(i)),x(l,t,u)}}else(n=p?p(l[t],e,t+"",l,d,h):He)===He&&(n=e),x(l,t,n)},Re)}function O(n,e){return function(e,t,n){for(var r=-1,i=t.length,a={};++r<i;){var o=t[r],s=I(e,o);if(n(s,o)){var c=a;o=N(o,e);if(ye(c)){o=N(o,c);for(var u=-1,l=o.length,d=l-1;null!=c&&++u<l;){var f=oe(o[u]),p=s;if(u!=d){var h=c[f];(p=He)===He&&(p=ye(h)?h:te(o[u+1])?[]:{})}S(c,f,p),c=c[f]}}}}return a}(n,e,function(e,t){return Ae(n,t)})}function T(e){return gn(ae(e,void 0,Oe),e+"")}function F(e){if("string"==typeof e)return e;if(Sn(e))return a(e,F)+"";if(xe(e))return en?en.call(e):"";var t=e+"";return"0"==t&&1/e==-Ue?"-0":t}function L(e,t){var n;if((t=N(t,e)).length<2)n=e;else{var r=0,i=-1,a=-1,o=(n=t).length;for(r<0&&(r=o<-r?0:o+r),(i=o<i?o:i)<0&&(i+=o),o=i<r?0:i-r>>>0,r>>>=0,i=Array(o);++a<o;)i[a]=n[a+r];n=I(e,i)}null==(e=n)||delete e[oe(le(t))]}function N(e,t){return Sn(e)?e:ne(e,t)?[e]:yn(Ie(e))}function B(e,t){if(t)return e.slice();var n=e.length;n=Mt?Mt(n):new e.constructor(n);return e.copy(n),n}function H(e){var t=new e.constructor(e.byteLength);return new _t(t).set(new _t(e)),t}function U(e,t){return new e.constructor(t?H(e.buffer):e.buffer,e.byteOffset,e.length)}function j(e,t){var n=-1,r=e.length;for(t=t||Array(r);++n<r;)t[n]=e[n];return t}function z(e,t,n){var r=!n;n=n||{};for(var i=-1,a=t.length;++i<a;){var o=t[i],s=He;s===He&&(s=e[o]),r?_(n,o,s):S(n,o,s)}return n}function V(u){return T(function(e,t){var n,r=-1,i=t.length,a=1<i?t[i-1]:He,o=2<i?t[2]:He;a=3<u.length&&"function"==typeof a?(i--,a):He;if(n=o){n=t[0];var s=t[1];if(ye(o)){var c=typeof s;n=!!("number"==c?he(o)&&te(s,o.length):"string"==c&&s in o)&&pe(o[s],n)}else n=!1}for(n&&(a=i<3?He:a,i=1),e=Object(e);++r<i;)(o=t[r])&&u(e,o,r,a);return e})}function K(e){return be(e)?He:e}function q(e,t,n,r,i,a){var o=1&n,s=e.length;if(s!=(c=t.length)&&!(o&&s<c))return!1;if((c=a.get(e))&&a.get(t))return c==t;var c=-1,u=!0,l=2&n?new b:He;for(a.set(e,t),a.set(t,e);++c<s;){var d=e[c],f=t[c];if(r)var p=o?r(f,d,c,t,e,a):r(d,f,c,e,t,a);if(p!==He){if(p)continue;u=!1;break}if(l){if(!v(t,function(e,t){if(!g(l,t)&&(d===e||i(d,e,n,r,a)))return l.push(t)})){u=!1;break}}else if(d!==f&&!i(d,f,n,r,a)){u=!1;break}}return a.delete(e),a.delete(t),u}function W(e){return gn(ae(e,He,ue),e+"")}function J(e){return C(e,De,cn)}function G(e){return C(e,Re,un)}function Y(e,t){var n=(n=r.iteratee||Te)===Te?E:n;return arguments.length?n(e,t):n}function X(e,t){var n=e.__data__,r=typeof t;return("string"==r||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==t:null===t)?n["string"==typeof t?"string":"hash"]:n.map}function Z(e,t){var n=null==e?He:e[t];return!ye(n)||kt&&kt in n||!(ve(n)?xt:Ze).test(se(n))?He:n}function Q(e){return"function"!=typeof e.constructor||re(e)?{}:tn(It(e))}function ee(e){return Sn(e)||xn(e)||!!(Rt&&e&&e[Rt])}function te(e,t){return!!(t=null==t?9007199254740991:t)&&("number"==typeof e||et.test(e))&&-1<e&&0==e%1&&e<t}function ne(e,t){if(Sn(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!xe(e))||Ve.test(e)||!ze.test(e)||null!=t&&e in Object(t)}function re(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||mt)}function ie(t,n){return function(e){return null!=e&&e[t]===n&&(n!==He||t in Object(e))}}function ae(i,a,o){return a=Nt(a===He?i.length-1:a,0),function(){for(var e=arguments,t=-1,n=Nt(e.length-a,0),r=Array(n);++t<n;)r[t]=e[a+t];for(t=-1,n=Array(a+1);++t<a;)n[t]=e[t];return n[a]=o(r),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(i,this,n)}}function oe(e){if("string"==typeof e||xe(e))return e;var t=e+"";return"0"==t&&1/e==-Ue?"-0":t}function se(e){if(null==e)return"";try{return gt.call(e)}catch(e){}return e+""}function ce(e,t,n){var r=null==e?0:e.length;return r?((n=null==n?0:$e(n))<0&&(n=Nt(r+n,0)),i(e,Y(t,3),n)):-1}function ue(e){return null!=e&&e.length?function e(t,n,r,i,a){var o=-1,s=t.length;for(r=r||ee,a=a||[];++o<s;){var c=t[o];0<n&&r(c)?1<n?e(c,n-1,r,i,a):u(a,c):i||(a[a.length]=c)}return a}(e,1):[]}function le(e){var t=null==e?0:e.length;return t?e[t-1]:He}function de(e,t){var n;if(e&&e.length&&t&&t.length){var r=c,i=-1,a=(n=t).length;for(e===n&&(n=j(n));++i<a;)for(var o=0,s=n[i];-1<(o=r(e,s,o,void 0));)e!=e&&Dt.call(e,o,1),Dt.call(e,o,1);n=e}else n=e;return n}function fe(r,i){function a(){var e=arguments,t=i?i.apply(this,e):e[0],n=a.cache;return n.has(t)?n.get(t):(e=r.apply(this,e),a.cache=n.set(t,e)||n,e)}if("function"!=typeof r||null!=i&&"function"!=typeof i)throw new TypeError("Expected a function");return a.cache=new(fe.Cache||d),a}function pe(e,t){return e===t||e!=e&&t!=t}function he(e){return null!=e&&ge(e.length)&&!ve(e)}function me(e){return ke(e)&&he(e)}function ve(e){return!!ye(e)&&("[object Function]"==(e=A(e))||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e)}function ge(e){return"number"==typeof e&&-1<e&&0==e%1&&e<=9007199254740991}function ye(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function ke(e){return null!=e&&"object"==typeof e}function be(e){return!(!ke(e)||"[object Object]"!=A(e))&&(null===(e=It(e))||"function"==typeof(e=yt.call(e,"constructor")&&e.constructor)&&e instanceof e&&gt.call(e)==wt)}function we(e){return"string"==typeof e||!Sn(e)&&ke(e)&&"[object String]"==A(e)}function xe(e){return"symbol"==typeof e||ke(e)&&"[object Symbol]"==A(e)}function Se(e){return e?(e=_e(e))===Ue||e===-Ue?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function $e(e){var t=(e=Se(e))%1;return e==e?t?e-t:e:0}function _e(e){if("number"==typeof e)return e;if(xe(e))return je;if(ye(e)&&(e=ye(e="function"==typeof e.valueOf?e.valueOf():e)?e+"":e),"string"!=typeof e)return 0===e?e:+e;e=e.replace(We,"");var t=Xe.test(e);return t||Qe.test(e)?it(e.slice(2),t?2:8):Ye.test(e)?je:+e}function Me(e){return z(e,Re(e))}function Ie(e){return null==e?"":F(e)}function Ce(e,t,n){return(e=null==e?He:I(e,t))===He?n:e}function Ae(e,t){var n;if(n=null!=e){for(var r,i=-1,a=(r=N(t,n=e)).length,o=!1;++i<a;){var s=oe(r[i]);if(!(o=null!=n&&null!=n&&s in Object(n)))break;n=n[s]}n=o||++i!=a?o:!!(a=null==n?0:n.length)&&ge(a)&&te(s,a)&&(Sn(n)||xn(n))}return n}function De(e){if(he(e))e=f(e);else if(re(e)){var t,n=[];for(t in Object(e))yt.call(e,t)&&"constructor"!=t&&n.push(t);e=n}else e=Lt(e);return e}function Re(e){if(he(e))e=f(e,!0);else if(ye(e)){var t,n=re(e),r=[];for(t in e)("constructor"!=t||!n&&yt.call(e,t))&&r.push(t);e=r}else{if(t=[],null!=e)for(n in Object(e))t.push(n);e=t}return e}function Ee(e){return null==e?[]:function(t,e){return a(e,function(e){return t[e]})}(e,De(e))}function Pe(e){return function(){return e}}function Oe(e){return e}function Te(e){return E("function"==typeof e?e:M(e,1))}function Fe(){}function Le(e){return ne(e)?function(t){return function(e){return null==e?He:e[t]}}(oe(e)):function(t){return function(e){return I(e,t)}}(e)}function Ne(){return[]}function Be(){return!1}var He,Ue=1/0,je=NaN,ze=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ve=/^\w*$/,Ke=/^\./,qe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,We=/^\s+|\s+$/g,Je=/\\(\\)?/g,Ge=/\w*$/,Ye=/^[-+]0x[0-9a-f]+$/i,Xe=/^0b[01]+$/i,Ze=/^\[object .+?Constructor\]$/,Qe=/^0o[0-7]+$/i,et=/^(?:0|[1-9]\d*)$/,tt={};tt["[object Float32Array]"]=tt["[object Float64Array]"]=tt["[object Int8Array]"]=tt["[object Int16Array]"]=tt["[object Int32Array]"]=tt["[object Uint8Array]"]=tt["[object Uint8ClampedArray]"]=tt["[object Uint16Array]"]=tt["[object Uint32Array]"]=!0,tt["[object Arguments]"]=tt["[object Array]"]=tt["[object ArrayBuffer]"]=tt["[object Boolean]"]=tt["[object DataView]"]=tt["[object Date]"]=tt["[object Error]"]=tt["[object Function]"]=tt["[object Map]"]=tt["[object Number]"]=tt["[object Object]"]=tt["[object RegExp]"]=tt["[object Set]"]=tt["[object String]"]=tt["[object WeakMap]"]=!1;var nt={};nt["[object Arguments]"]=nt["[object Array]"]=nt["[object ArrayBuffer]"]=nt["[object DataView]"]=nt["[object Boolean]"]=nt["[object Date]"]=nt["[object Float32Array]"]=nt["[object Float64Array]"]=nt["[object Int8Array]"]=nt["[object Int16Array]"]=nt["[object Int32Array]"]=nt["[object Map]"]=nt["[object Number]"]=nt["[object Object]"]=nt["[object RegExp]"]=nt["[object Set]"]=nt["[object String]"]=nt["[object Symbol]"]=nt["[object Uint8Array]"]=nt["[object Uint8ClampedArray]"]=nt["[object Uint16Array]"]=nt["[object Uint32Array]"]=!0,nt["[object Error]"]=nt["[object Function]"]=nt["[object WeakMap]"]=!1;var rt,it=parseInt,at="object"==typeof global&&global&&global.Object===Object&&global,ot="object"==typeof self&&self&&self.Object===Object&&self,st=at||ot||Function("return this")(),ct="object"==typeof exports&&exports&&!exports.nodeType&&exports,ut=ct&&"object"==typeof module&&module&&!module.nodeType&&module,lt=ut&&ut.exports===ct,dt=lt&&at.process;e:{try{rt=dt&&dt.binding&&dt.binding("util");break e}catch(p){}rt=void 0}var ft,pt=rt&&rt.isTypedArray,ht=Array.prototype,mt=Object.prototype,vt=st["__core-js_shared__"],gt=Function.prototype.toString,yt=mt.hasOwnProperty,kt=(ft=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||""))?"Symbol(src)_1."+ft:"",bt=mt.toString,wt=gt.call(Object),xt=RegExp("^"+gt.call(yt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),St=lt?st.Buffer:He,$t=st.Symbol,_t=st.Uint8Array,Mt=St?St.a:He,It=e(Object.getPrototypeOf),Ct=Object.create,At=mt.propertyIsEnumerable,Dt=ht.splice,Rt=$t?$t.isConcatSpreadable:He,Et=$t?$t.toStringTag:He,Pt=function(){try{var e=Z(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),Ot=Math.floor,Tt=Object.getOwnPropertySymbols,Ft=St?St.isBuffer:He,Lt=e(Object.keys),Nt=Math.max,Bt=Math.min,Ht=Date.now,Ut=Z(st,"DataView"),jt=Z(st,"Map"),zt=Z(st,"Promise"),Vt=Z(st,"Set"),Kt=Z(st,"WeakMap"),qt=Z(Object,"create"),Wt=se(Ut),Jt=se(jt),Gt=se(zt),Yt=se(Vt),Xt=se(Kt),Zt=$t?$t.prototype:He,Qt=Zt?Zt.valueOf:He,en=Zt?Zt.toString:He,tn=function(e){return ye(e)?Ct?Ct(e):(nn.prototype=e,e=new nn,nn.prototype=He,e):{}};function nn(){}t.prototype.clear=function(){this.__data__=qt?qt(null):{},this.size=0},t.prototype.delete=function(e){return e=this.has(e)&&delete this.__data__[e],this.size-=e?1:0,e},t.prototype.get=function(e){var t=this.__data__;return qt?"__lodash_hash_undefined__"===(e=t[e])?He:e:yt.call(t,e)?t[e]:He},t.prototype.has=function(e){var t=this.__data__;return qt?t[e]!==He:yt.call(t,e)},t.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=qt&&t===He?"__lodash_hash_undefined__":t,this},s.prototype.clear=function(){this.__data__=[],this.size=0},s.prototype.delete=function(e){var t=this.__data__;return!((e=$(t,e))<0||(e==t.length-1?t.pop():Dt.call(t,e,1),--this.size,0))},s.prototype.get=function(e){var t=this.__data__;return(e=$(t,e))<0?He:t[e][1]},s.prototype.has=function(e){return-1<$(this.__data__,e)},s.prototype.set=function(e,t){var n=this.__data__,r=$(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},d.prototype.clear=function(){this.size=0,this.__data__={hash:new t,map:new(jt||s),string:new t}},d.prototype.delete=function(e){return e=X(this,e).delete(e),this.size-=e?1:0,e},d.prototype.get=function(e){return X(this,e).get(e)},d.prototype.has=function(e){return X(this,e).has(e)},d.prototype.set=function(e,t){var n=X(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},b.prototype.add=b.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},b.prototype.has=function(e){return this.__data__.has(e)},w.prototype.clear=function(){this.__data__=new s,this.size=0},w.prototype.delete=function(e){var t=this.__data__;return e=t.delete(e),this.size=t.size,e},w.prototype.get=function(e){return this.__data__.get(e)},w.prototype.has=function(e){return this.__data__.has(e)},w.prototype.set=function(e,t){var n=this.__data__;if(n instanceof s){var r=n.__data__;if(!jt||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new d(r)}return n.set(e,t),this.size=n.size,this};var rn=function(e,t){if(null==e)return e;if(!he(e))return function(e,t){return e&&an(e,t,De)}(e,t);for(var n=e.length,r=-1,i=Object(e);++r<n&&!1!==t(i[r],r,i););return e},an=function(e,t,n){for(var r=-1,i=Object(e),a=(n=n(e)).length;a--;){var o=n[++r];if(!1===t(i[o],o,i))break}return e},on=Pt?function(e,t){return Pt(e,"toString",{configurable:!0,enumerable:!1,value:Pe(t),writable:!0})}:Oe,sn=Vt&&1/k(new Vt([,-0]))[1]==Ue?function(e){return new Vt(e)}:Fe,cn=Tt?function(t){return null==t?[]:(t=Object(t),n(Tt(t),function(e){return At.call(t,e)}))}:Ne,un=Tt?function(e){for(var t=[];e;)u(t,cn(e)),e=It(e);return t}:Ne,ln=A;(Ut&&"[object DataView]"!=ln(new Ut(new ArrayBuffer(1)))||jt&&"[object Map]"!=ln(new jt)||zt&&"[object Promise]"!=ln(zt.resolve())||Vt&&"[object Set]"!=ln(new Vt)||Kt&&"[object WeakMap]"!=ln(new Kt))&&(ln=function(e){var t=A(e);if(e=(e="[object Object]"==t?e.constructor:He)?se(e):"")switch(e){case Wt:return"[object DataView]";case Jt:return"[object Map]";case Gt:return"[object Promise]";case Yt:return"[object Set]";case Xt:return"[object WeakMap]"}return t});var dn,fn,pn,hn,mn,vn,gn=(hn=on,vn=mn=0,function(){var e=Ht(),t=16-(e-vn);if(vn=e,0<t){if(800<=++mn)return arguments[0]}else mn=0;return hn.apply(He,arguments)}),yn=(pn=(fn=fe(fn=function(e){var i=[];return Ke.test(e)&&i.push(""),e.replace(qe,function(e,t,n,r){i.push(n?r.replace(Je,"$1"):t||e)}),i},function(e){return 500===pn.size&&pn.clear(),e})).cache,fn),kn=T(de),bn=(dn=ce,function(e,t,n){var r=Object(e);if(!he(e)){var i=Y(t,3);e=De(e),t=function(e){return i(r[e],e,r)}}return-1<(t=dn(e,t,n))?r[i?e[t]:t]:He});fe.Cache=d;var wn,xn=D(function(){return arguments}())?D:function(e){return ke(e)&&yt.call(e,"callee")&&!At.call(e,"callee")},Sn=Array.isArray,$n=Ft||Be,_n=pt?(wn=pt,function(e){return wn(e)}):function(e){return ke(e)&&ge(e.length)&&!!tt[A(e)]},Mn=V(function(e,t,n){P(e,t,n)}),In=V(function(e,t,n,r){P(e,t,n,r)}),Cn=W(function(t,e){var n={};if(null==t)return n;var r=!1;e=a(e,function(e){return e=N(e,t),r=r||1<e.length,e}),z(t,G(t),n),r&&(n=M(n,7,K));for(var i=e.length;i--;)L(n,e[i]);return n}),An=W(function(e,t){return null==e?{}:O(e,t)});r.constant=Pe,r.filter=function(e,t){return(Sn(e)?n:function(e,r){var i=[];return rn(e,function(e,t,n){r(e,t,n)&&i.push(e)}),i})(e,Y(t,3))},r.flatten=ue,r.iteratee=Te,r.keys=De,r.keysIn=Re,r.map=function(e,t){return(Sn(e)?a:function(e,r){var i=-1,a=he(e)?Array(e.length):[];return rn(e,function(e,t,n){a[++i]=r(e,t,n)}),a})(e,Y(t,3))},r.memoize=fe,r.merge=Mn,r.mergeWith=In,r.omit=Cn,r.pick=An,r.property=Le,r.pull=kn,r.pullAll=de,r.remove=function(e,t){var n=[];if(!e||!e.length)return n;var r=-1,i=[],a=e.length;for(t=Y(t,3);++r<a;){var o=e[r];t(o,r,e)&&(n.push(o),i.push(r))}for(a=(r=e?i.length:0)-1;r--;)if(o=i[r],r==a||o!==s){var s=o;te(o)?Dt.call(e,o,1):L(e,o)}return n},r.toPlainObject=Me,r.uniq=function(e){if(e&&e.length)e:{var t=-1,n=l,r=e.length,i=!0,a=[],o=a;if(200<=r){if(n=sn(e)){e=k(n);break e}i=!1,n=g,o=new b}else o=a;t:for(;++t<r;){var s=c=e[t],c=0!==c?c:0;if(i&&s==s){for(var u=o.length;u--;)if(o[u]===s)continue t;a.push(c)}else n(o,s,void 0)||(o!==a&&o.push(s),a.push(c))}e=a}else e=[];return e},r.values=Ee,r.cloneDeep=function(e){return M(e,5)},r.eq=pe,r.find=bn,r.findIndex=ce,r.get=Ce,r.hasIn=Ae,r.identity=Oe,r.includes=function(e,t,n,r){return e=he(e)?e:Ee(e),n=n&&!r?$e(n):0,r=e.length,n<0&&(n=Nt(r+n,0)),we(e)?n<=r&&-1<e.indexOf(t,n):!!r&&-1<c(e,t,n)},r.isArguments=xn,r.isArray=Sn,r.isArrayLike=he,r.isArrayLikeObject=me,r.isBuffer=$n,r.isFunction=ve,r.isLength=ge,r.isObject=ye,r.isObjectLike=ke,r.isPlainObject=be,r.isString=we,r.isSymbol=xe,r.isTypedArray=_n,r.last=le,r.stubArray=Ne,r.stubFalse=Be,r.noop=Fe,r.sortedIndexBy=function(e,t,n){t=(n=Y(n,2))(t);for(var r=0,i=null==e?0:e.length,a=t!=t,o=null===t,s=xe(t),c=t===He;r<i;){var u=Ot((r+i)/2),l=n(e[u]),d=l!==He,f=null===l,p=l==l,h=xe(l);(a?p:c?p&&d:o?p&&d&&!f:s?p&&d&&!f&&!h:!f&&!h&&l<t)?r=u+1:i=u}return Bt(i,4294967294)},r.toFinite=Se,r.toInteger=$e,r.toNumber=_e,r.toString=Ie,r.VERSION="4.17.4","function"==typeof define&&"object"==typeof define.amd&&define.amd?(st._=r,define(function(){return r})):ut?((ut.exports=r)._=r,ct._=r):st._=r}.call(this),function a(o,s,c){function u(t,e){if(!s[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var i=s[t]={exports:{}};o[t][0].call(i.exports,function(e){return u(o[t][1][e]||e)},i,i.exports,a,o,s,c)}return s[t].exports}for(var l="function"==typeof require&&require,e=0;e<c.length;e++)u(c[e]);return u}({1:[function(e,t,n){"use strict";var r=e("@babel/runtime/helpers/interopRequireDefault"),c=r(e("@babel/runtime/helpers/get")),y=r(e("@babel/runtime/helpers/asyncToGenerator")),v=r(e("@babel/runtime/helpers/classCallCheck")),f=r(e("@babel/runtime/helpers/createClass")),g=r(e("@babel/runtime/helpers/possibleConstructorReturn")),k=r(e("@babel/runtime/helpers/getPrototypeOf")),p=r(e("@babel/runtime/helpers/inherits")),$=r(e("@babel/runtime/regenerator")),i=r(e("@babel/runtime/helpers/typeof"));Object.defineProperty(n,"__esModule",{value:!0}),n.SNTheme=n.SNSmartTag=n.SNServerExtension=n.SNMfa=n.SNEncryptedStorage=n.SNTag=n.SNNote=n.SNExtension=n.Action=n.SNEditor=n.SNComponent=n.SNComponentManager=void 0;function s(e,t,n){null===e&&(e=Function.prototype);var r=Object.getOwnPropertyDescriptor(e,t);if(void 0===r){var i=Object.getPrototypeOf(e);return null===i?void 0:s(i,t,n)}if("value"in r)return r.value;var a=r.get;return void 0!==a?a.call(n):void 0}var a=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var u=e("standard-file-js");function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(0,i.default)(t)&&"function"!=typeof t?e:t}function d(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(0,i.default)(t));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function m(e){return function(){var s=e.apply(this,arguments);return new Promise(function(a,o){return function t(e,n){try{var r=s[e](n),i=r.value}catch(e){return void o(e)}if(!r.done)return Promise.resolve(i).then(function(e){t("next",e)},function(e){t("throw",e)});a(i)}("next")})}}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var b,w,x,S=n.SNComponentManager=(a(M,[{key:"configureForGeneralUsage",value:function(){var A=this;this.modelManager.addItemSyncObserver("component-manager","*",function(s,e,t,c,u){var n=s.filter(function(e){return"SN|Component"===e.content_type||"SN|Theme"==e.content_type});0<n.length&&c!=SFModelManager.MappingSourceRemoteSaved&&A.isDesktop&&A.desktopManager.syncComponentsInstallation(n);var r=!0,i=!1,a=void 0;try{for(var o,l=n[Symbol.iterator]();!(r=(o=l.next()).done);r=!0){var d=o.value,f=_.find(A.activeComponents,{uuid:d.uuid});!d.active||d.deleted||f?!d.active&&f&&A.deactivateComponent(d):A.activateComponent(d)}}catch(e){i=!0,a=e}finally{try{!r&&l.return&&l.return()}finally{if(i)throw a}}function p(t){if(u&&u==t.component.uuid)return"continue";var e=s.filter(function(e){return-1!==t.contentTypes.indexOf(e.content_type)});if(0==e.length)return"continue";var n=[{name:"stream-items",content_types:t.contentTypes.sort()}];A.runWithPermissions(t.component,n,function(){A.sendItemsInReply(t.component,e,t.originalMessage)})}var h=!0,m=!1,v=void 0;try{for(var g,y=A.streamObservers[Symbol.iterator]();!(h=(g=y.next()).done);h=!0)p(g.value)}catch(e){m=!0,v=e}finally{try{!h&&y.return&&y.return()}finally{if(m)throw v}}function k(e){if(u&&u==e.component.uuid)return"continue";var t=!0,n=!1,r=void 0;try{for(var i,a=A.handlers[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;(o.areas.includes(e.component.area)||o.areas.includes("*"))&&o.contextRequestHandler&&(I=o.contextRequestHandler(e.component))&&(C=_.find(s,{uuid:I.uuid}))&&A.runWithPermissions(e.component,b,function(){A.sendContextItemInReply(e.component,C,e.originalMessage,c)})}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}}var b=[{name:"stream-context-item"}],w=!0,x=!1,S=void 0;try{for(var $,M=A.contextStreamObservers[Symbol.iterator]();!(w=($=M.next()).done);w=!0){var I,C;k($.value)}}catch(e){x=!0,S=e}finally{try{!w&&M.return&&M.return()}finally{if(x)throw S}}})}},{key:"configureForNonMobileUsage",value:function(){function e(){var e=!0,t=!1,n=void 0;try{for(var r,i=o.activeComponents[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var a=r.value;if(document.activeElement==o.iframeForComponent(a)){o.$timeout(function(){o.focusChangedForComponent(a)});break}}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}}var o=this;window.addEventListener?window.addEventListener("focus",e,!0):window.attachEvent("onfocusout",e),window.addEventListener?window.addEventListener("blur",e,!0):window.attachEvent("onblur",e),this.desktopManager.registerUpdateObserver(function(e){e.active&&e.isTheme()&&o.postActiveThemesToAllComponents()}),window.addEventListener("message",function(e){o.loggingEnabled&&console.log("Web app: received message",e),e.data.sessionKey&&o.handleMessage(o.componentForSessionKey(e.data.sessionKey),e.data)},!1)}},{key:"postActiveThemesToAllComponents",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.components[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var a=r.value;!a.isTheme()&&a.active&&a.window&&this.postActiveThemesToComponent(a)}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}}},{key:"getActiveThemes",value:function(){return this.componentsForArea("themes").filter(function(e){return e.active})}},{key:"urlsForActiveThemes",value:function(){var t=this;return this.getActiveThemes().map(function(e){return t.urlForComponent(e)})}},{key:"postActiveThemesToComponent",value:function(e){var t={themes:this.urlsForActiveThemes()};this.sendMessageToComponent(e,{action:"themes",data:t})}},{key:"contextItemDidChangeInArea",value:function(t){var e=!0,n=!1,r=void 0;try{for(var i,a=this.handlers[Symbol.iterator]();!(e=(i=a.next()).done);e=!0){var o=i.value;if(!1!==o.areas.includes(t)||o.areas.includes("*")){var s=this.contextStreamObservers.filter(function(e){return e.component.area===t}),c=!0,u=!1,l=void 0;try{for(var d,f=s[Symbol.iterator]();!(c=(d=f.next()).done);c=!0){var p=d.value;if(o.contextRequestHandler){var h=o.contextRequestHandler(p.component);h&&this.sendContextItemInReply(p.component,h,p.originalMessage)}}}catch(e){u=!0,l=e}finally{try{!c&&f.return&&f.return()}finally{if(u)throw l}}}}}catch(e){n=!0,r=e}finally{try{!e&&a.return&&a.return()}finally{if(n)throw r}}}},{key:"setComponentHidden",value:function(e,t){if(t)e.hidden=!0;else if(e.hidden){e.hidden=!1;var n=_.find(this.contextStreamObservers,{identifier:e.uuid});n&&this.handleStreamContextItemMessage(e,n.originalMessage);var r=_.find(this.streamObservers,{identifier:e.uuid});r&&this.handleStreamItemsMessage(e,r.originalMessage)}}},{key:"jsonForItem",value:function(e,t,n){var r={uuid:e.uuid,content_type:e.content_type,created_at:e.created_at,updated_at:e.updated_at,deleted:e.deleted};return r.content=e.createContentJSONFromProperties(),r.clientData=e.getDomainDataItem(t.getClientDataKey(),M.ClientDataDomain)||{},!n||n!=SFModelManager.MappingSourceRemoteSaved&&n!=SFModelManager.MappingSourceLocalSaved||(r.isMetadataUpdate=!0),this.removePrivatePropertiesFromResponseItems([r],t,{type:"outgoing"}),r}},{key:"sendItemsInReply",value:function(t,e,n,r){var i=this;this.loggingEnabled&&console.log("Web|componentManager|sendItemsInReply",t,e,n);var a={items:{}},o=e.map(function(e){return i.jsonForItem(e,t,r)});a.items=o,this.replyToMessage(t,n,a)}},{key:"sendContextItemInReply",value:function(e,t,n,r){this.loggingEnabled&&console.log("Web|componentManager|sendContextItemInReply",e,t,n);var i={item:this.jsonForItem(t,e,r)};this.replyToMessage(e,n,i)}},{key:"replyToMessage",value:function(e,t,n){var r={action:"reply",original:t,data:n};this.sendMessageToComponent(e,r)}},{key:"sendMessageToComponent",value:function(e,t){if(!e.hidden||["component-registered","themes"].includes(t.action)){this.loggingEnabled&&console.log("Web|sendMessageToComponent",e,t);var n=this.urlForComponent(e);n.startsWith("http")||n.startsWith("file")||(n=window.location.href+n),e.window||this.alertManager.alert({text:"Standard Notes is trying to communicate with "+e.name+", but an error is occurring. Please restart this extension and try again."}),this.isMobile&&(t=JSON.stringify(t)),e.window.postMessage(t,n)}else this.loggingEnabled&&console.log("Component disabled for current item, not sending any messages.",e.name)}},{key:"componentsForArea",value:function(t){return this.components.filter(function(e){return e.area===t})}},{key:"urlForComponent",value:function(e){if(e.offlineOnly&&!this.isDesktop)return null;if(e.offlineOnly||this.isDesktop&&e.local_url)return e.local_url&&e.local_url.replace("sn://",this.desktopManager.getExtServerHost());var t=e.hosted_url||e.legacy_url;if(this.isMobile){var n="ios"==this.platform?"localhost":"10.0.2.2";t=t.replace("localhost",n).replace("sn.local",n)}return t}},{key:"componentForUrl",value:function(t){return this.components.filter(function(e){return e.hosted_url===t||e.legacy_url===t})[0]}},{key:"componentForSessionKey",value:function(e){var t=_.find(this.components,{sessionKey:e});if(!t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.handlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(s.componentForSessionKeyHandler&&(t=s.componentForSessionKeyHandler(e)))break}}catch(e){r=!0,i=e}finally{try{!n&&o.return&&o.return()}finally{if(r)throw i}}}return t}},{key:"handleMessage",value:function(t,n){var r=this;if(!t)return console.log("Component not defined for message, returning",n),void this.alertManager.alert({text:"An extension is trying to communicate with Standard Notes, but there is an error establishing a bridge. Please restart the app and try again."});if(t.readonly&&["save-items","associate-item","deassociate-item","create-item","create-items","delete-items","set-component-data"].includes(n.action))this.alertManager.alert({text:"The extension "+t.name+" is trying to save, but it is in a locked state and cannot accept changes."});else{if("stream-items"===n.action)this.handleStreamItemsMessage(t,n);else if("stream-context-item"===n.action)this.handleStreamContextItemMessage(t,n);else if("set-component-data"===n.action)this.handleSetComponentDataMessage(t,n);else if("delete-items"===n.action)this.handleDeleteItemsMessage(t,n);else if("create-items"===n.action||"create-item"===n.action)this.handleCreateItemsMessage(t,n);else if("save-items"===n.action)this.handleSaveItemsMessage(t,n);else if("toggle-activate-component"===n.action){var e=this.modelManager.findItem(n.data.uuid);this.handleToggleComponentMessage(t,e,n)}else"request-permissions"===n.action?this.handleRequestPermissionsMessage(t,n):"install-local-component"===n.action?this.handleInstallLocalComponentMessage(t,n):"duplicate-item"===n.action&&this.handleDuplicateItemMessage(t,n);var i=function(e){e.actionHandler&&(e.areas.includes(t.area)||e.areas.includes("*"))&&r.$timeout(function(){e.actionHandler(t,n.action,n.data)})},a=!0,o=!1,s=void 0;try{for(var c,u=this.handlers[Symbol.iterator]();!(a=(c=u.next()).done);a=!0)i(c.value)}catch(e){o=!0,s=e}finally{try{!a&&u.return&&u.return()}finally{if(o)throw s}}}}},{key:"removePrivatePropertiesFromResponseItems",value:function(e,t,n){var r=2<arguments.length&&void 0!==n?n:{};if("incoming"==r.type){var i=["updated_at"],a=!0,o=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(a=(c=u.next()).done);a=!0){var l=c.value;if("function"!=typeof l.setDirty){var d=!0,f=!1,p=void 0;try{for(var h,m=i[Symbol.iterator]();!(d=(h=m.next()).done);d=!0)delete l[h.value]}catch(e){f=!0,p=e}finally{try{!d&&m.return&&m.return()}finally{if(f)throw p}}}else console.error("Attempting to pass object. Use JSON.")}}catch(e){o=!0,s=e}finally{try{!a&&u.return&&u.return()}finally{if(o)throw s}}}if(!(t&&this.nativeExtManager&&this.nativeExtManager.isSystemExtension(t))){var v=["autoupdateDisabled","permissions","active"];r&&r.includeUrls&&(v=v.concat(["url","hosted_url","local_url"]));var g=!0,y=!1,k=void 0;try{for(var b,w=e[Symbol.iterator]();!(g=(b=w.next()).done);g=!0){var x=b.value;if("function"!=typeof x.setDirty){var S=!0,$=!1,_=void 0;try{for(var M,I=v[Symbol.iterator]();!(S=(M=I.next()).done);S=!0){var C=M.value;delete x.content[C]}}catch(e){$=!0,_=e}finally{try{!S&&I.return&&I.return()}finally{if($)throw _}}}else console.error("Attempting to pass object. Use JSON.")}}catch(e){y=!0,k=e}finally{try{!g&&w.return&&w.return()}finally{if(y)throw k}}}}},{key:"handleStreamItemsMessage",value:function(s,c){var u=this,e=[{name:"stream-items",content_types:c.data.content_types.sort()}];this.runWithPermissions(s,e,function(){_.find(u.streamObservers,{identifier:s.uuid})||u.streamObservers.push({identifier:s.uuid,component:s,originalMessage:c,contentTypes:c.data.content_types});var e=[],t=!0,n=!1,r=void 0;try{for(var i,a=c.data.content_types[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;e=e.concat(u.modelManager.validItemsForContentType(o))}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}u.sendItemsInReply(s,e,c)})}},{key:"handleStreamContextItemMessage",value:function(s,c){var u=this;this.runWithPermissions(s,[{name:"stream-context-item"}],function(){_.find(u.contextStreamObservers,{identifier:s.uuid})||u.contextStreamObservers.push({identifier:s.uuid,component:s,originalMessage:c});var e=!0,t=!1,n=void 0;try{for(var r,i=u.handlersForArea(s.area)[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var a=r.value;if(a.contextRequestHandler){var o=a.contextRequestHandler(s);o&&u.sendContextItemInReply(s,o,c)}}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}})}},{key:"isItemIdWithinComponentContextJurisdiction",value:function(e,t){return this.itemIdsInContextJurisdictionForComponent(t).includes(e)}},{key:"itemIdsInContextJurisdictionForComponent",value:function(e){var t=[],n=!0,r=!1,i=void 0;try{for(var a,o=this.handlersForArea(e.area)[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(s.contextRequestHandler){var c=s.contextRequestHandler(e);c&&t.push(c.uuid)}}}catch(e){r=!0,i=e}finally{try{!n&&o.return&&o.return()}finally{if(r)throw i}}return t}},{key:"handlersForArea",value:function(t){return this.handlers.filter(function(e){return e.areas.includes(t)})}},{key:"handleSaveItemsMessage",value:(x=m($.default.mark(function e(b,w){var x,t,n,r,i,a,o,s,c,u,l,S=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:x=w.data.items,t=[],n=this.itemIdsInContextJurisdictionForComponent(b),r=x.slice(),a=!(i=!0),o=void 0,e.prev=7,s=x.slice()[Symbol.iterator]();case 9:if(i=(c=s.next()).done){e.next=18;break}if(u=c.value,n.includes(u.uuid))return t.push({name:"stream-context-item"}),_.pull(r,u),e.abrupt("break",18);e.next=15;break;case 15:i=!0,e.next=9;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(7),a=!0,o=e.t0;case 24:e.prev=24,e.prev=25,!i&&s.return&&s.return();case 27:if(e.prev=27,a)throw o;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:0<r.length&&(l=_.uniq(r.map(function(e){return e.content_type})).sort(),t.push({name:"stream-items",content_types:l})),this.runWithPermissions(b,t,m($.default.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(S.removePrivatePropertiesFromResponseItems(x,b,{includeUrls:!0,type:"incoming"}),t=x.map(function(e){return e.uuid}),n=S.modelManager.findItems(t),a=!(i=!(r=0)),o=void 0,e.prev=7,s=n[Symbol.iterator]();!(i=(c=s.next()).done);i=!0)(u=c.value).locked&&(_.remove(x,{uuid:u.uuid}),r++);e.next=15;break;case 11:e.prev=11,e.t0=e.catch(7),a=!0,o=e.t0;case 15:e.prev=15,e.prev=16,!i&&s.return&&s.return();case 18:if(e.prev=18,a)throw o;e.next=21;break;case 21:return e.finish(18);case 22:return e.finish(15);case 23:return 0<r&&(l=1==r?"item":"items",d=1==r?"is":"are",S.alertManager.alert({title:"Items Locked",text:r+" "+l+" you are attempting to save "+d+" locked and cannot be edited."})),e.next=26,S.modelManager.mapResponseItemsToLocalModels(x,SFModelManager.MappingSourceComponentRetrieved,b.uuid);case 26:f=e.sent,h=!(p=!0),m=void 0,e.prev=30,v=x[Symbol.iterator]();case 32:if(p=(g=v.next()).done){e.next=42;break}if(y=g.value,k=_.find(f,{uuid:y.uuid})){e.next=38;break}return S.alertManager.alert({text:"The extension "+b.name+" is trying to save an item with type "+y.content_type+", but that item does not exist. Please restart this extension and try again."}),e.abrupt("continue",39);case 38:k.locked||(y.clientData&&k.setDomainDataItem(b.getClientDataKey(),y.clientData,M.ClientDataDomain),S.modelManager.setItemDirty(k,!0,!0,SFModelManager.MappingSourceComponentRetrieved,b.uuid));case 39:p=!0,e.next=32;break;case 42:e.next=48;break;case 44:e.prev=44,e.t1=e.catch(30),h=!0,m=e.t1;case 48:e.prev=48,e.prev=49,!p&&v.return&&v.return();case 51:if(e.prev=51,h)throw m;e.next=54;break;case 54:return e.finish(51);case 55:return e.finish(48);case 56:S.syncManager.sync().then(function(e){var t=Object.assign({},w);t.action=e&&e.error?"save-error":"save-success",S.replyToMessage(b,w,{error:e&&e.error}),S.handleMessage(b,t)});case 57:case"end":return e.stop()}},e,S,[[7,11,15,23],[16,,18,22],[30,44,48,56],[49,,51,55]])})));case 34:case"end":return e.stop()}},e,this,[[7,20,24,32],[25,,27,31]])})),function(e,t){return x.apply(this,arguments)})},{key:"handleDuplicateItemMessage",value:function(t,n){var r=this,e=n.data.item,i=this.modelManager.findItem(e.uuid),a=[{name:"stream-items",content_types:[i.content_type]}];this.runWithPermissions(t,a,function(){var e=r.modelManager.duplicateItemAndAdd(i);r.syncManager.sync(),r.replyToMessage(t,n,{item:r.jsonForItem(e,t)})})}},{key:"handleCreateItemsMessage",value:function(u,l){var d=this,f=l.data.item?[l.data.item]:l.data.items,e=[{name:"stream-items",content_types:_.uniq(f.map(function(e){return e.content_type}))}];this.runWithPermissions(u,e,function(){d.removePrivatePropertiesFromResponseItems(f,u,{type:"incoming"});var e=[],t=!0,n=!1,r=void 0;try{for(var i,a=f[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=d.modelManager.createItem(o);o.clientData&&s.setDomainDataItem(u.getClientDataKey(),o.clientData,M.ClientDataDomain),d.modelManager.addItem(s),d.modelManager.resolveReferencesForItem(s,!0),d.modelManager.setItemDirty(s,!0),e.push(s)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}d.syncManager.sync();var c="create-item"==l.action?{item:d.jsonForItem(e[0],u)}:{items:e.map(function(e){return d.jsonForItem(e,u)})};d.replyToMessage(u,l,c)})}},{key:"handleDeleteItemsMessage",value:function(f,p){var h=this,e=[{name:"stream-items",content_types:_.uniq(p.data.items.map(function(e){return e.content_type})).sort()}];this.runWithPermissions(f,e,m($.default.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=p.data.items,n=1==t.length?"item":"items",i=!(r=null),e.next=6,h.alertManager.confirm({text:"Are you sure you want to delete "+t.length+" "+n+"?"}).catch(function(){i=!1});case 6:if(!i){e.next=42;break}o=!(a=!0),s=void 0,e.prev=10,c=t[Symbol.iterator]();case 12:if(a=(u=c.next()).done){e.next=24;break}if(l=u.value,d=h.modelManager.findItem(l.uuid)){e.next=18;break}return h.alertManager.alert({text:"The item you are trying to delete cannot be found."}),e.abrupt("continue",21);case 18:["SN|Component","SN|Theme"].includes(d.content_type)&&h.deactivateComponent(d,!0),h.modelManager.setItemToBeDeleted(d),h.modelManager.notifySyncObserversOfModels([d],SFModelManager.MappingSourceRemoteSaved);case 21:a=!0,e.next=12;break;case 24:e.next=30;break;case 26:e.prev=26,e.t0=e.catch(10),o=!0,s=e.t0;case 30:e.prev=30,e.prev=31,!a&&c.return&&c.return();case 33:if(e.prev=33,o)throw s;e.next=36;break;case 36:return e.finish(33);case 37:return e.finish(30);case 38:h.syncManager.sync(),r={deleted:!0},e.next=43;break;case 42:r={deleted:!1};case 43:h.replyToMessage(f,p,r);case 44:case"end":return e.stop()}},e,h,[[10,26,30,38],[31,,33,37]])})))}},{key:"handleRequestPermissionsMessage",value:function(e,t){var n=this;this.runWithPermissions(e,t.data.permissions,function(){n.replyToMessage(e,t,{approved:!0})})}},{key:"handleSetComponentDataMessage",value:function(e,t){var n=this;this.runWithPermissions(e,[],function(){e.componentData=t.data.componentData,n.modelManager.setItemDirty(e,!0),n.syncManager.sync()})}},{key:"handleToggleComponentMessage",value:function(e,t){this.toggleComponent(t)}},{key:"toggleComponent",value:function(e){var o=this;if("modal"==e.area)this.openModalComponent(e);else if(e.active)this.deactivateComponent(e);else if("SN|Theme"==e.content_type){var s=this.getActiveThemes();this.activateComponent(e),e.isLayerable()||setTimeout(function(){var e=!0,t=!1,n=void 0;try{for(var r,i=s[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var a=r.value;a&&!a.isLayerable()&&o.deactivateComponent(a)}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}},10)}else this.activateComponent(e)}},{key:"handleInstallLocalComponentMessage",value:function(e,t){if(!this.nativeExtManager||this.nativeExtManager.isSystemExtension(e)){var n=this.modelManager.findItem(t.data.uuid);this.desktopManager.installComponent(n)}}},{key:"runWithPermissions",value:function(e,u,t){function n(t){var e=l.find(function(e){return e.name==t.name});if(!e)return"continue";var n=t.content_types;if(!n)return _.pull(u,t),"continue";var r=!0,i=!1,a=void 0;try{for(var o,s=e.content_types[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){var c=o.value;_.pull(n,c)}}catch(e){i=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}0==n.length&&_.pull(u,t)}e.permissions||(e.permissions=[]),u=JSON.parse(JSON.stringify(u));var l=e.permissions,r=!0,i=!1,a=void 0;try{for(var o,s=u.slice()[Symbol.iterator]();!(r=(o=s.next()).done);r=!0)n(o.value)}catch(e){i=!0,a=e}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}0<u.length?this.promptForPermissions(e,u,function(e){e&&t()}):t()}},{key:"promptForPermissions",value:function(s,c,e){var u=this,l={};l.component=s,l.permissions=c,l.permissionsString=this.permissionsStringForPermissions(c,s),l.actionBlock=e,l.callback=function(t){if(t){var e=function(t){var e=s.permissions.find(function(e){return e.name==t.name});if(e){var n=e.content_types||[];e.content_types=_.uniq(n.concat(t.content_types))}else s.permissions.push(t)},n=!0,r=!1,i=void 0;try{for(var a,o=c[Symbol.iterator]();!(n=(a=o.next()).done);n=!0)e(a.value)}catch(e){r=!0,i=e}finally{try{!n&&o.return&&o.return()}finally{if(r)throw i}}u.modelManager.setItemDirty(s,!0),u.syncManager.sync()}u.permissionDialogs=u.permissionDialogs.filter(function(e){return e==l?(e.actionBlock&&e.actionBlock(t),!1):!!(e.component!=s||e.permissions!=c&&(n=c,e.permissions.some(function(t){return!n.find(function(e){return JSON.stringify(e)===JSON.stringify(t)})})))||(t&&e.actionBlock&&e.actionBlock(t),!1);var n}),0<u.permissionDialogs.length&&u.presentPermissionsDialog(u.permissionDialogs[0])};var t=_.find(this.permissionDialogs,{component:s});this.permissionDialogs.push(l),t?console.log("Existing dialog, not presenting."):this.presentPermissionsDialog(l)}},{key:"presentPermissionsDialog",value:function(){console.error("Must override")}},{key:"openModalComponent",value:function(){console.error("Must override")}},{key:"registerHandler",value:function(e){this.handlers.push(e)}},{key:"deregisterHandler",value:function(e){var t=_.find(this.handlers,{identifier:e});t?this.handlers.splice(this.handlers.indexOf(t),1):console.log("Attempting to deregister non-existing handler")}},{key:"registerComponentWindow",value:(w=m($.default.mark(function e(t,n){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t.window===n&&this.loggingEnabled&&console.log("Web|componentManager","attempting to re-register same component window."),this.loggingEnabled&&console.log("Web|componentManager|registerComponentWindow",t),t.window=n,e.next=5,SFJS.crypto.generateUUID();case 5:t.sessionKey=e.sent,this.sendMessageToComponent(t,{action:"component-registered",sessionKey:t.sessionKey,componentData:t.componentData,data:{uuid:t.uuid,environment:this.environment,platform:this.platform,activeThemeUrls:this.urlsForActiveThemes()}}),this.postActiveThemesToComponent(t),this.desktopManager&&this.desktopManager.notifyComponentActivation(t);case 9:case"end":return e.stop()}},e,this)})),function(e,t){return w.apply(this,arguments)})},{key:"activateComponent",value:function(t,e){function n(e){(e.areas.includes(t.area)||e.areas.includes("*"))&&r.$uiRunner(function(){e.activationHandler&&e.activationHandler(t)})}var r=this,i=1<arguments.length&&void 0!==e&&e,a=1!=t.active,o=t.active=!0,s=!1,c=void 0;try{for(var u,l=this.handlers[Symbol.iterator]();!(o=(u=l.next()).done);o=!0)n(u.value)}catch(e){s=!0,c=e}finally{try{!o&&l.return&&l.return()}finally{if(s)throw c}}a&&!i&&(this.modelManager.setItemDirty(t,!0),this.syncManager.sync()),this.activeComponents.includes(t)||this.activeComponents.push(t),"themes"==t.area&&this.postActiveThemesToAllComponents()}},{key:"deactivateComponent",value:function(t,e){var n=this,r=1<arguments.length&&void 0!==e&&e,i=0!=t.active;function a(e){(e.areas.includes(t.area)||e.areas.includes("*"))&&n.$uiRunner(function(){e.activationHandler&&e.activationHandler(t)})}t.active=!1;var o=!(t.sessionKey=null),s=!1,c=void 0;try{for(var u,l=this.handlers[Symbol.iterator]();!(o=(u=l.next()).done);o=!0)a(u.value)}catch(e){s=!0,c=e}finally{try{!o&&l.return&&l.return()}finally{if(s)throw c}}i&&!r&&(this.modelManager.setItemDirty(t,!0),this.syncManager.sync()),_.pull(this.activeComponents,t),this.streamObservers=this.streamObservers.filter(function(e){return e.component!==t}),this.contextStreamObservers=this.contextStreamObservers.filter(function(e){return e.component!==t}),"themes"==t.area&&this.postActiveThemesToAllComponents()}},{key:"reloadComponent",value:(b=m($.default.mark(function e(s){var t,n,r,i,a,o,c,u=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(s.active=!1,t=function(e){(e.areas.includes(s.area)||e.areas.includes("*"))&&u.$uiRunner(function(){e.activationHandler&&e.activationHandler(s)})},r=!(n=!0),i=void 0,e.prev=5,a=this.handlers[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)c=o.value,t(c);e.next=13;break;case 9:e.prev=9,e.t0=e.catch(5),r=!0,i=e.t0;case 13:e.prev=13,e.prev=14,!n&&a.return&&a.return();case 16:if(e.prev=16,r)throw i;e.next=19;break;case 19:return e.finish(16);case 20:return e.finish(13);case 21:return this.streamObservers=this.streamObservers.filter(function(e){return e.component!==s}),this.contextStreamObservers=this.contextStreamObservers.filter(function(e){return e.component!==s}),"themes"==s.area&&this.postActiveThemesToAllComponents(),e.abrupt("return",new Promise(function(o,e){u.$timeout(function(){var e=s.active=!0,t=!1,n=void 0;try{for(var r,i=u.handlers[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var a=r.value;(a.areas.includes(s.area)||a.areas.includes("*"))&&u.$uiRunner(function(){a.activationHandler&&a.activationHandler(s),o()})}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}u.activeComponents.includes(s)||u.activeComponents.push(s),"themes"==s.area&&u.postActiveThemesToAllComponents(),o()})}));case 25:case"end":return e.stop()}},e,this,[[5,9,13,21],[14,,16,20]])})),function(e){return b.apply(this,arguments)})},{key:"deleteComponent",value:function(e){this.modelManager.setItemToBeDeleted(e),this.syncManager.sync()}},{key:"isComponentActive",value:function(e){return e.active}},{key:"iframeForComponent",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=Array.from(document.getElementsByTagName("iframe"))[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;if(o.dataset.componentId===e.uuid)return o}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}}},{key:"focusChangedForComponent",value:function(e){var t=document.activeElement==this.iframeForComponent(e),n=!0,r=!1,i=void 0;try{for(var a,o=this.handlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;s.focusHandler&&s.focusHandler(e,t)}}catch(e){r=!0,i=e}finally{try{!n&&o.return&&o.return()}finally{if(r)throw i}}}},{key:"handleSetSizeEvent",value:function(e,i){function t(e,t){var n="string"==typeof t.width?t.width:i.width+"px",r="string"==typeof t.height?t.height:i.height+"px";e&&e.setAttribute("style","width:"+n+"; height:"+r+";")}if("rooms"==e.area||"modal"==e.area){var n="rooms"==e.area?"inner":"outer",r=document.getElementById("component-content-"+n+"-"+e.uuid);r&&t(r,i)}else{var a=this.iframeForComponent(e);if(!a)return;if(t(a,i),"editor-stack"==e.area){var o=a.parentElement;o&&t(o,i)}}}},{key:"editorForNote",value:function(e){var t=this.componentsForArea("editor-editor"),n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(s.isExplicitlyEnabledForItem(e))return s}}catch(e){r=!0,i=e}finally{try{!n&&o.return&&o.return()}finally{if(r)throw i}}if(this.isMobile){if(!e.content.mobilePrefersPlainEditor)return this.getDefaultEditor()}else if(!e.getAppDataItem("prefersPlainEditor"))return t.filter(function(e){return e.isDefaultEditor()})[0]}},{key:"permissionsStringForPermissions",value:function(e,o){function s(e,t){return 0<e?e==t-1?2==t?" and ":", and ":", ":""}var c=this,u="",l=e.length;return e.forEach(function(e,t){if("stream-items"===e.name){for(var n=e.content_types.map(function(e){var t=c.modelManager.humanReadableDisplayForContentType(e);return t?t+"s":"items of type "+e}),r="",i=0;i<n.length;i++){var a=n[i];r+=s(i,n.length+l-t-1),r+=a}u+=s(t,l),u+=r,2<=n.length&&t<l-1&&(u+=", ")}else"stream-context-item"===e.name&&(u+=s(t,l),u+={"editor-stack":"working note","note-tags":"working note","editor-editor":"working note"}[o.area])}),u+"."}},{key:"components",get:function(){return this.modelManager.allItemsMatchingTypes(["SN|Component","SN|Theme"])}}]),M);function M(e){var t=e.modelManager,n=e.syncManager,r=e.desktopManager,i=e.nativeExtManager,a=e.alertManager,o=e.$uiRunner,s=e.$timeout,c=e.environment,u=e.platform;h(this,M),M.ClientDataDomain="org.standardnotes.sn.components",this.$uiRunner=o||function(e){e()},this.$timeout=s||setTimeout.bind(window),this.modelManager=t,this.syncManager=n,this.desktopManager=r,this.nativeExtManager=i,this.alertManager=a,this.streamObservers=[],this.contextStreamObservers=[],this.activeComponents=[],this.environment=c,this.platform=u,this.isDesktop="desktop"==this.environment,this.isMobile="mobile"==this.environment,"mobile"!=c&&this.configureForNonMobileUsage(),this.configureForGeneralUsage(),this.permissionDialogs=[],this.handlers=[]}var I=n.SNComponent=(d(C,u.SFItem),a(C,[{key:"mapContentToLocalProperties",value:function(e){s(C.prototype.__proto__||Object.getPrototypeOf(C.prototype),"mapContentToLocalProperties",this).call(this,e),e.hosted_url||(this.legacy_url=e.url),this.local_url=e.local_url,this.hosted_url=e.hosted_url||e.url,this.offlineOnly=e.offlineOnly,e.valid_until&&(this.valid_until=new Date(e.valid_until)),this.name=e.name,this.autoupdateDisabled=e.autoupdateDisabled,this.package_info=e.package_info,this.area=e.area,this.permissions=e.permissions,this.permissions||(this.permissions=[]),this.active=e.active,this.componentData=e.componentData||{},this.disassociatedItemIds=e.disassociatedItemIds||[],this.associatedItemIds=e.associatedItemIds||[]}},{key:"handleDeletedContent",value:function(){s(C.prototype.__proto__||Object.getPrototypeOf(C.prototype),"handleDeletedContent",this).call(this),this.active=!1}},{key:"structureParams",value:function(){var e={legacy_url:this.legacy_url,hosted_url:this.hosted_url,local_url:this.local_url,valid_until:this.valid_until,offlineOnly:this.offlineOnly,name:this.name,area:this.area,package_info:this.package_info,permissions:this.permissions,active:this.active,autoupdateDisabled:this.autoupdateDisabled,componentData:this.componentData,disassociatedItemIds:this.disassociatedItemIds,associatedItemIds:this.associatedItemIds},t=s(C.prototype.__proto__||Object.getPrototypeOf(C.prototype),"structureParams",this).call(this);return Object.assign(t,e),t}},{key:"isEditor",value:function(){return"editor-editor"==this.area}},{key:"isTheme",value:function(){return"SN|Theme"==this.content_type||"themes"==this.area}},{key:"isDefaultEditor",value:function(){return 1==this.getAppDataItem("defaultEditor")}},{key:"setLastSize",value:function(e){this.setAppDataItem("lastSize",e)}},{key:"getLastSize",value:function(){return this.getAppDataItem("lastSize")}},{key:"acceptsThemes",value:function(){return!(this.content.package_info&&"acceptsThemes"in this.content.package_info)||this.content.package_info.acceptsThemes}},{key:"getClientDataKey",value:function(){return this.legacy_url?this.legacy_url:this.uuid}},{key:"hasValidHostedUrl",value:function(){return this.hosted_url||this.legacy_url}},{key:"keysToIgnoreWhenCheckingContentEquality",value:function(){return["active","disassociatedItemIds","associatedItemIds"].concat(s(C.prototype.__proto__||Object.getPrototypeOf(C.prototype),"keysToIgnoreWhenCheckingContentEquality",this).call(this))}},{key:"isAssociative",value:function(){return Component.associativeAreas().includes(this.area)}},{key:"associateWithItem",value:function(e){this.associatedItemIds.push(e.uuid)}},{key:"isExplicitlyEnabledForItem",value:function(e){return-1!==this.associatedItemIds.indexOf(e.uuid)}},{key:"isExplicitlyDisabledForItem",value:function(e){return-1!==this.disassociatedItemIds.indexOf(e.uuid)}},{key:"content_type",get:function(){return"SN|Component"}}],[{key:"associativeAreas",value:function(){return["editor-editor"]}}]),C);function C(e){h(this,C),e.window=null;var t=l(this,(C.__proto__||Object.getPrototypeOf(C)).call(this,e));return t.componentData||(t.componentData={}),t.disassociatedItemIds||(t.disassociatedItemIds=[]),t.associatedItemIds||(t.associatedItemIds=[]),t}var A=n.SNEditor=(d(D,u.SFItem),a(D,[{key:"mapContentToLocalProperties",value:function(e){s(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"mapContentToLocalProperties",this).call(this,e),this.url=e.url,this.name=e.name,this.data=e.data||{},this.default=e.default,this.systemEditor=e.systemEditor}},{key:"structureParams",value:function(){var e={url:this.url,name:this.name,data:this.data,default:this.default,systemEditor:this.systemEditor},t=s(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"structureParams",this).call(this);return Object.assign(t,e),t}},{key:"referenceParams",value:function(){return _.map(this.notes,function(e){return{uuid:e.uuid,content_type:e.content_type}})}},{key:"addItemAsRelationship",value:function(e){"Note"==e.content_type&&(_.find(this.notes,e)||this.notes.push(e)),s(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"addItemAsRelationship",this).call(this,e)}},{key:"removeItemAsRelationship",value:function(e){"Note"==e.content_type&&_.pull(this.notes,e),s(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"removeItemAsRelationship",this).call(this,e)}},{key:"removeAndDirtyAllRelationships",value:function(){s(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"removeAndDirtyAllRelationships",this).call(this),this.notes=[]}},{key:"removeReferencesNotPresentIn",value:function(e){s(D.prototype.__proto__||Object.getPrototypeOf(D.prototype),"removeReferencesNotPresentIn",this).call(this,e);var t=e.map(function(e){return e.uuid});this.notes.forEach(function(e){t.includes(e.uuid)||_.remove(this.notes,{uuid:e.uuid})}.bind(this))}},{key:"potentialItemOfInterestHasChangedItsUUID",value:function(e,t){"Note"===e.content_type&&_.find(this.notes,{uuid:t})&&(_.remove(this.notes,{uuid:t}),this.notes.push(e))}},{key:"setData",value:function(e,t){return JSON.stringify(this.data[e])!==JSON.stringify(t)&&(this.data[e]=t,!0)}},{key:"dataForKey",value:function(e){return this.data[e]||{}}},{key:"content_type",get:function(){return"SN|Editor"}}]),D);function D(e){h(this,D);var t=l(this,(D.__proto__||Object.getPrototypeOf(D)).call(this,e));return t.notes||(t.notes=[]),t.data||(t.data={}),t}var R=n.Action=function e(t){h(this,e),_.merge(this,t),this.running=!1,this.error=!1,this.lastExecuted&&(this.lastExecuted=new Date(this.lastExecuted))},E=n.SNExtension=(d(P,u.SFItem),a(P,[{key:"actionsWithContextForItem",value:function(t){return this.actions.filter(function(e){return e.context==t.content_type||"Item"==e.context})}},{key:"mapContentToLocalProperties",value:function(e){s(P.prototype.__proto__||Object.getPrototypeOf(P.prototype),"mapContentToLocalProperties",this).call(this,e),this.description=e.description,this.url=e.url,this.name=e.name,this.package_info=e.package_info,this.supported_types=e.supported_types,e.actions&&(this.actions=e.actions.map(function(e){return new R(e)}))}},{key:"structureParams",value:function(){var e={name:this.name,url:this.url,package_info:this.package_info,description:this.description,actions:this.actions.map(function(e){return _.omit(e,["subrows","subactions"])}),supported_types:this.supported_types},t=s(P.prototype.__proto__||Object.getPrototypeOf(P.prototype),"structureParams",this).call(this);return Object.assign(t,e),t}},{key:"content_type",get:function(){return"Extension"}}]),P);function P(e){h(this,P);var t=l(this,(P.__proto__||Object.getPrototypeOf(P)).call(this,e));return e.actions&&(t.actions=e.actions.map(function(e){return new R(e)})),t.actions||(t.actions=[]),t}var O=n.SNNote=(d(T,u.SFItem),a(T,[{key:"mapContentToLocalProperties",value:function(e){s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"mapContentToLocalProperties",this).call(this,e),this.title=e.title,this.text=e.text}},{key:"structureParams",value:function(){var e={title:this.title,text:this.text},t=s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"structureParams",this).call(this);return Object.assign(t,e),t}},{key:"addItemAsRelationship",value:function(e){"Tag"==e.content_type&&e.addItemAsRelationship(this),s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"addItemAsRelationship",this).call(this,e)}},{key:"setIsBeingReferencedBy",value:function(e){s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"setIsBeingReferencedBy",this).call(this,e),this.clearSavedTagsString()}},{key:"setIsNoLongerBeingReferencedBy",value:function(e){s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"setIsNoLongerBeingReferencedBy",this).call(this,e),this.clearSavedTagsString()}},{key:"isBeingRemovedLocally",value:function(){this.tags.forEach(function(e){_.remove(e.notes,{uuid:this.uuid})}.bind(this)),s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"isBeingRemovedLocally",this).call(this)}},{key:"informReferencesOfUUIDChange",value:function(e){s(T.prototype.__proto__||Object.getPrototypeOf(T.prototype),"informReferencesOfUUIDChange",this).call(this);var t=!0,n=!1,r=void 0;try{for(var i,a=this.tags[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;_.remove(o.notes,{uuid:e}),o.notes.push(this)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}}},{key:"tagDidFinishSyncing",value:function(){this.clearSavedTagsString()}},{key:"safeText",value:function(){return this.text||""}},{key:"safeTitle",value:function(){return this.title||""}},{key:"clearSavedTagsString",value:function(){this.savedTagsString=null}},{key:"tagsString",value:function(){return this.savedTagsString=F.arrayToDisplayString(this.tags),this.savedTagsString}},{key:"content_type",get:function(){return"Note"}},{key:"displayName",get:function(){return"Note"}}],[{key:"filterDummyNotes",value:function(e){return e.filter(function(e){return 0==e.dummy||null==e.dummy})}}]),T);function T(e){h(this,T);var t=l(this,(T.__proto__||Object.getPrototypeOf(T)).call(this,e));return t.text||(t.text=""),t.tags||(t.tags=[]),t}var F=n.SNTag=(d(L,u.SFItem),a(L,[{key:"mapContentToLocalProperties",value:function(e){s(L.prototype.__proto__||Object.getPrototypeOf(L.prototype),"mapContentToLocalProperties",this).call(this,e),this.title=e.title}},{key:"structureParams",value:function(){var e={title:this.title},t=s(L.prototype.__proto__||Object.getPrototypeOf(L.prototype),"structureParams",this).call(this);return Object.assign(t,e),t}},{key:"addItemAsRelationship",value:function(e){"Note"==e.content_type&&(_.find(this.notes,{uuid:e.uuid})||(this.notes.push(e),e.tags.push(this))),s(L.prototype.__proto__||Object.getPrototypeOf(L.prototype),"addItemAsRelationship",this).call(this,e)}},{key:"removeItemAsRelationship",value:function(e){"Note"==e.content_type&&(_.remove(this.notes,{uuid:e.uuid}),_.remove(e.tags,{uuid:this.uuid})),s(L.prototype.__proto__||Object.getPrototypeOf(L.prototype),"removeItemAsRelationship",this).call(this,e)}},{key:"updateLocalRelationships",value:function(){var t=this.content.references.map(function(e){return e.uuid});this.notes.slice().forEach(function(e){t.includes(e.uuid)||(_.remove(e.tags,{uuid:this.uuid}),_.remove(this.notes,{uuid:e.uuid}),e.setIsNoLongerBeingReferencedBy(this))}.bind(this))}},{key:"isBeingRemovedLocally",value:function(){var t=this;this.notes.forEach(function(e){_.remove(e.tags,{uuid:t.uuid}),e.setIsNoLongerBeingReferencedBy(t)}),this.notes.length=0,s(L.prototype.__proto__||Object.getPrototypeOf(L.prototype),"isBeingRemovedLocally",this).call(this)}},{key:"informReferencesOfUUIDChange",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=this.notes[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;_.remove(o.tags,{uuid:e}),o.tags.push(this)}}catch(e){n=!0,r=e}finally{try{!t&&a.return&&a.return()}finally{if(n)throw r}}}},{key:"didFinishSyncing",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.notes[Symbol.iterator]();!(e=(r=i.next()).done);e=!0)r.value.tagDidFinishSyncing(this)}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}}},{key:"isSmartTag",value:function(){return"SN|SmartTag"==this.content_type}},{key:"displayName",get:function(){return"Tag"}}],[{key:"arrayToDisplayString",value:function(e){return e.sort(function(e,t){return e.title>t.title}).map(function(e,t){return"#"+e.title}).join(" ")}}]),L);function L(e){h(this,L);var t=l(this,(L.__proto__||Object.getPrototypeOf(L)).call(this,e));return t.content_type||(t.content_type="Tag"),t.notes||(t.notes=[]),t}var N=n.SNEncryptedStorage=(d(B,u.SFItem),a(B,[{key:"mapContentToLocalProperties",value:function(e){s(B.prototype.__proto__||Object.getPrototypeOf(B.prototype),"mapContentToLocalProperties",this).call(this,e),this.storage=e.storage}},{key:"content_type",get:function(){return"SN|EncryptedStorage"}}]),B);function B(){return h(this,B),l(this,(B.__proto__||Object.getPrototypeOf(B)).apply(this,arguments))}var H=n.SNMfa=(d(U,u.SFItem),a(U,[{key:"doNotEncrypt",value:function(){return!0}},{key:"content_type",get:function(){return"SF|MFA"}}]),U);function U(e){return h(this,U),l(this,(U.__proto__||Object.getPrototypeOf(U)).call(this,e))}var j=n.SNServerExtension=(d(z,u.SFItem),a(z,[{key:"mapContentToLocalProperties",value:function(e){s(z.prototype.__proto__||Object.getPrototypeOf(z.prototype),"mapContentToLocalProperties",this).call(this,e),this.url=e.url}},{key:"doNotEncrypt",value:function(){return!0}},{key:"content_type",get:function(){return"SF|Extension"}}]),z);function z(){return h(this,z),l(this,(z.__proto__||Object.getPrototypeOf(z)).apply(this,arguments))}var V=n.SNSmartTag=(d(K,F),a(K,null,[{key:"systemSmartTags",value:function(){return[new K({uuid:K.SystemSmartTagIdAllNotes,dummy:!0,content:{title:"All notes",isSystemTag:!0,isAllTag:!0,predicate:new SFPredicate.fromArray(["content_type","=","Note"])}}),new K({uuid:K.SystemSmartTagIdArchivedNotes,dummy:!0,content:{title:"Archived",isSystemTag:!0,isArchiveTag:!0,predicate:new SFPredicate.fromArray(["archived","=",!0])}}),new K({uuid:K.SystemSmartTagIdTrashedNotes,dummy:!0,content:{title:"Trash",isSystemTag:!0,isTrashTag:!0,predicate:new SFPredicate.fromArray(["content.trashed","=",!0])}})]}}]),K);function K(e){h(this,K);var t=l(this,(K.__proto__||Object.getPrototypeOf(K)).call(this,e));return t.content_type="SN|SmartTag",t}V.SystemSmartTagIdAllNotes="all-notes",V.SystemSmartTagIdArchivedNotes="archived-notes",V.SystemSmartTagIdTrashedNotes="trashed-notes";var q=n.SNTheme=(d(W,I),a(W,[{key:"isLayerable",value:function(){return this.package_info&&this.package_info.layerable}},{key:"setMobileRules",value:function(e){this.setAppDataItem("mobileRules",e)}},{key:"getMobileRules",value:function(){return this.getAppDataItem("mobileRules")||{constants:{},rules:{}}}},{key:"hasMobileRules",value:function(){return this.getAppDataItem("mobileRules")}},{key:"setNotAvailOnMobile",value:function(e){this.setAppDataItem("notAvailableOnMobile",e)}},{key:"getNotAvailOnMobile",value:function(){return this.getAppDataItem("notAvailableOnMobile")}},{key:"setMobileActive",value:function(e){this.setAppDataItem("mobileActive",e)}},{key:"isMobileActive",value:function(){return this.getAppDataItem("mobileActive")}},{key:"content_type",get:function(){return"SN|Theme"}},{key:"displayName",get:function(){return"Theme"}}]),W);function W(e){h(this,W);var t=l(this,(W.__proto__||Object.getPrototypeOf(W)).call(this,e));return t.area="themes",t}if("undefined"!=typeof window&&null!==window)try{window.SNNote=O,window.SNTag=F,window.SNSmartTag=V,window.SNMfa=H,window.SNServerExtension=j,window.SNComponent=I,window.SNEditor=A,window.SNExtension=E,window.SNTheme=q,window.SNEncryptedStorage=N,window.SNComponentManager=S}catch(e){console.log("Exception while exporting snjs window variables",e)}function J(){try{var e=navigator.platform.toLowerCase(),t="";return-1!==e.indexOf("mac")?t="mac":-1!==e.indexOf("win")&&(t="windows"),-1!==e.indexOf("linux")&&(t="linux"),t+(G()?"-desktop":"-web")}catch(e){return null}}function G(){return window.isElectron}angular.module("app",["ngSanitize"]),Array.prototype.containsPrimitiveSubset=function(e){var t=this;return!e.some(function(e){return-1===t.indexOf(e)})},Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(e,t){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),r=n.length>>>0;if(0==r)return!1;var i,a,o=0|t,s=Math.max(0<=o?o:r-Math.abs(o),0);for(;s<r;){if((i=n[s])===(a=e)||"number"==typeof i&&"number"==typeof a&&isNaN(i)&&isNaN(a))return!0;s++}return!1}}),angular.module("app").constant("appVersion","3.0.22"),angular.module("app").config(["$locationProvider",function(e){G()?e.html5Mode(!1):window.history&&window.history.pushState&&e.html5Mode({enabled:!0,requireBase:!1})}]);var Y=function(e){function t(){return(0,v.default)(this,t),(0,g.default)(this,(0,k.default)(t).apply(this,arguments))}return(0,p.default)(t,e),(0,f.default)(t,[{key:"previewTitle",value:function(){return this.item.updated_at.toLocaleString()}},{key:"previewSubTitle",value:function(){return this.hasPreviousEntry?this.textCharDiffLength<0?"".concat(-1*this.textCharDiffLength," characters removed"):0<this.textCharDiffLength?"".concat(this.textCharDiffLength," characters added"):"Title or metadata changed":"".concat(this.textCharDiffLength," characters loaded")}}]),t}(SFItemHistoryEntry);angular.module("app").directive("editorSection",["$timeout","$sce",function(e,t){return{restrict:"E",scope:{remove:"&",note:"=",updateTags:"&"},templateUrl:"editor.html",replace:!0,controller:"EditorCtrl",controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,r){e.$watch("ctrl.note",function(e,t){e&&r.noteDidChange(e,t)})}}}]).controller("EditorCtrl",["$sce","$timeout","authManager","$rootScope","actionsManager","syncManager","modelManager","themeManager","componentManager","storageManager","sessionHistory","privilegesManager","keyboardManager","desktopManager","alertManager",function(e,u,l,i,t,d,f,n,o,r,a,s,c,p,h){var m=this;this.spellcheck=!0,this.componentManager=o,this.componentStack=[],this.isDesktop=G();d.addEventHandler(function(e,t){if(m.note)if("sync:taking-too-long"==e)m.syncTakingTooLong=!0;else if("sync:completed"==e)if(m.syncTakingTooLong=!1,m.note.dirty);else{var n=t.savedItems.find(function(e){return e.uuid==m.note.uuid});(m.saveError||n)&&m.showAllChangesSavedStatus()}else"sync:error"==e&&m.note.dirty&&m.showErrorStatus()}),this.syncStatusObserver=d.registerSyncStatusObserver(function(e){e.localError&&u(function(){m.showErrorStatus({message:"Offline Saving Issue",desc:"Changes not saved"})},500)}),f.addItemSyncObserver("editor-note-observer","Note",function(e,t,n,r){m.note&&(m.note.deleted||m.note.content.trashed?i.notifyDelete():SFModelManager.isMappingSourceRetrieved(r)&&e.find(function(e){return e.uuid==m.note.uuid})&&m.loadTagsString())}),f.addItemSyncObserver("editor-tag-observer","Tag",function(e,t,n,r){if(m.note){var i=!0,a=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(i=(s=c.next()).done);i=!0){var u=s.value;if(null==m.note.savedTagsString||u.deleted||u.hasRelationshipWithItem(m.note))return void m.loadTagsString()}}catch(e){a=!0,o=e}finally{try{i||null==c.return||c.return()}finally{if(a)throw o}}}}),f.addItemSyncObserver("editor-component-observer","SN|Component",function(e,t,n,r){if(m.note&&(m.reloadComponentStackArray(),0!=e.filter(function(e){return e.isEditor()}).length)){var i=m.editorForNote(m.note);(m.selectedEditor=i)||m.reloadFont()}}),this.noteDidChange=function(e,t){this.setNote(e,t),this.reloadComponentContext()},this.setNote=function(e,t){var n=this;this.showExtensions=!1,this.showMenu=!1,this.noteStatus=null,this.altKeyDown=!1,this.loadTagsString();function r(){n.noteReady=!0,u(function(){n.loadPreferences()})}var i=this.editorForNote(e);i&&i!=this.selectedEditor?(this.noteReady=!1,u(function(){n.selectedEditor=i,r()})):(i||(this.selectedEditor=null),r()),0==e.safeText().length&&e.dummy&&this.focusTitle(100),t&&t!=e&&t.dummy&&this.remove()(t)},this.editorForNote=function(e){return o.editorForNote(e)},this.closeAllMenus=function(){this.showEditorMenu=!1,this.showMenu=!1,this.showExtensions=!1},this.toggleMenu=function(e){this[e]=!this[e];for(var t=0,n=["showMenu","showEditorMenu","showExtensions","showSessionHistory"];t<n.length;t++){var r=n[t];r!=e&&(this[r]=!1)}},this.editorMenuOnSelect=function(e){var t=this;if(e&&"editor-editor"!=e.area)"editor-stack"==e.area&&this.toggleStackComponentForCurrentItem(e);else{this.showEditorMenu=!1;var n=e;this.selectedEditor&&n!==this.selectedEditor&&this.disassociateComponentWithCurrentNote(this.selectedEditor),n?(1==this.note.getAppDataItem("prefersPlainEditor")&&(this.note.setAppDataItem("prefersPlainEditor",!1),f.setItemDirty(this.note,!0)),this.associateComponentWithCurrentNote(n)):(this.note.getAppDataItem("prefersPlainEditor")||(this.note.setAppDataItem("prefersPlainEditor",!0),f.setItemDirty(this.note,!0)),u(function(){t.reloadFont()})),this.selectedEditor=n}d.sync()}.bind(this),this.hasAvailableExtensions=function(){return 0<t.extensionsInContextOfItem(this.note).length},this.focusEditor=function(e){setTimeout(function(){var e=document.getElementById("note-text-editor");e&&e.focus()},e)},this.focusTitle=function(e){setTimeout(function(){document.getElementById("note-title-editor").focus()},e)},this.clickedTextArea=function(){this.showMenu=!1},this.EditorNgDebounce=200;this.saveNote=function(e){var t=this,n=e.bypassDebouncer,r=e.updateClientModified,i=e.dontUpdatePreviews,a=this.note;if(a.dummy=!1,a.deleted)h.alert({text:"The note you are attempting to edit has been deleted, and is awaiting sync. Changes you make will be disregarded."});else if(f.findItem(a.uuid)){if(this.showSavingStatus(),!i){var o=a.text||"",s=80<o.length;a.content.preview_plain=o.substring(0,80)+(s?"...":""),a.content.preview_html=null}var c;f.setItemDirty(a,!0,r),this.saveTimeout&&u.cancel(this.saveTimeout),c=l.offline()||n?100:350,this.saveTimeout=u(function(){d.sync().then(function(e){e&&e.error&&!t.didShowErrorAlert&&(t.didShowErrorAlert=!0,h.alert({text:"There was an error saving your note. Please try again."}))})},c)}else h.alert({text:"The note you are attempting to save can not be found or has been deleted. Changes you make will not be synced. Please copy this note's text and start a new note."})},this.showSavingStatus=function(){this.setStatus({message:"Saving..."},!1)},this.showAllChangesSavedStatus=function(){this.saveError=!1,this.syncTakingTooLong=!1;var e="All changes saved";l.offline()&&(e+=" (offline)"),this.setStatus({message:e})},this.showErrorStatus=function(e){e=e||{message:"Sync Unreachable",desc:"Changes saved offline"},this.saveError=!0,this.syncTakingTooLong=!1,this.setStatus(e)},this.setStatus=function(e){var t,n=this,r=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];t=this.noteStatus&&this.noteStatus.date?400-(new Date-this.noteStatus.date):0,(!r||t<0)&&(t=0),this.statusTimeout&&u.cancel(this.statusTimeout),this.statusTimeout=u(function(){e.date=new Date,n.noteStatus=e},t)},this.contentChanged=function(){this.saveNote({updateClientModified:!0})},this.onTitleEnter=function(e){e.target.blur(),this.onTitleChange(),this.focusEditor()},this.onTitleChange=function(){this.saveNote({dontUpdatePreviews:!0,updateClientModified:!0})},this.onNameFocus=function(){this.editingName=!0},this.onContentFocus=function(){i.$broadcast("editorFocused")},this.onNameBlur=function(){this.editingName=!1},this.selectedMenuItem=function(e){e&&(this.showMenu=!1)},this.deleteNote=function(){var t=(0,y.default)($.default.mark(function e(n){var t,r=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.note.dummy)return h.alert({text:"This note is a placeholder and cannot be deleted. To remove from your list, simply navigate to a different note."}),e.abrupt("return");e.next=3;break;case 3:return t=function(){u(function(){if(r.note.locked)h.alert("This note is locked. If you'd like to delete it, unlock it, and try again.");else{var e=r.note.safeTitle().length?"'".concat(r.note.title,"'"):"this note",t=n?"Are you sure you want to permanently delete ".concat(e,"?"):"Are you sure you want to move ".concat(e," to the trash?");h.confirm({text:t,destructive:!0,onConfirm:function(){n?r.remove()(r.note):(r.note.content.trashed=!0,r.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0})),r.showMenu=!1}})}})},e.next=6,s.actionRequiresPrivilege(de.ActionDeleteNote);case 6:if(!e.sent){e.next=10;break}s.presentPrivilegesModal(de.ActionDeleteNote,function(){t()}),e.next=11;break;case 10:t();case 11:case"end":return e.stop()}},e,this)}));return function(e){return t.apply(this,arguments)}}(),this.restoreTrashedNote=function(){this.note.content.trashed=!1,this.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0})},this.deleteNotePermanantely=function(){this.deleteNote(!0)},this.getTrashCount=function(){return f.trashedItems().length},this.emptyTrash=function(){var e=this.getTrashCount();h.confirm({text:"Are you sure you want to permanently delete ".concat(e," note(s)?"),destructive:!0,onConfirm:function(){f.emptyTrash(),d.sync()}})},this.togglePin=function(){this.note.setAppDataItem("pinned",!this.note.pinned),this.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0})},this.toggleLockNote=function(){this.note.setAppDataItem("locked",!this.note.locked),this.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0})},this.toggleProtectNote=function(){this.note.content.protected=!this.note.content.protected,this.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0}),s.actionHasPrivilegesConfigured(de.ActionViewProtectedNotes).then(function(e){e||s.presentPrivilegesManagementModal()})},this.toggleNotePreview=function(){this.note.content.hidePreview=!this.note.content.hidePreview,this.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0})},this.toggleArchiveNote=function(){this.note.setAppDataItem("archived",!this.note.archived),this.saveNote({bypassDebouncer:!0,dontUpdatePreviews:!0}),i.$broadcast("noteArchived")},this.clickedEditNote=function(){this.focusEditor(100)},this.loadTagsString=function(){this.tagsString=this.note.tagsString()},this.addTag=function(e){var t=this.note.tags.map(function(e){return e.title});t.push(e.title),this.updateTags()(this.note,t),this.loadTagsString()},this.removeTag=function(t){var e=this.note.tags.map(function(e){return e.title}).filter(function(e){return e!==t.title});this.updateTags()(this.note,e),this.loadTagsString()},this.updateTagsFromTagsString=function(){if(this.tagsString!=this.note.tagsString()){var e=this.tagsString.split("#").filter(function(e){return 0<e.length}).map(function(e){return e.trim()});this.note.dummy=!1,this.updateTags()(this.note,e)}},this.leftResizeControl={},this.rightResizeControl={},this.onPanelResizeFinish=function(e,t,n){n?l.setUserPrefValue("editorWidth",null):null!=e&&(l.setUserPrefValue("editorWidth",e),m.leftResizeControl.setWidth(e)),null!=t&&(l.setUserPrefValue("editorLeft",t),m.rightResizeControl.setLeft(t)),l.syncUserPreferences()},i.$on("user-preferences-changed",function(){m.loadPreferences()}),this.loadPreferences=function(){this.monospaceFont=l.getUserPrefValue("monospaceFont","monospace");var e=!G();if(this.spellcheck=l.getUserPrefValue("spellcheck",e),this.marginResizersEnabled=l.getUserPrefValue("marginResizersEnabled",!0),document.getElementById("editor-content")&&(this.reloadFont(),this.marginResizersEnabled)){var t=l.getUserPrefValue("editorWidth",null);null!==t&&(this.leftResizeControl.setWidth(t),this.rightResizeControl.setWidth(t));var n=l.getUserPrefValue("editorLeft",null);null!==n&&(this.leftResizeControl.setLeft(n),this.rightResizeControl.setLeft(n))}},this.reloadFont=function(){var e=document.getElementById("note-text-editor");e&&(this.monospaceFont?G()?e.style.fontFamily="Menlo, Consolas, 'DejaVu Sans Mono', monospace":e.style.fontFamily="monospace":e.style.fontFamily="inherit")},this.toggleKey=function(e){var t=this;this[e]=!this[e],l.setUserPrefValue(e,this[e],!0),this.reloadFont(),"spellcheck"==e?(this.noteReady=!1,u(function(){t.noteReady=!0,u(function(){t.reloadFont()})},0)):"marginResizersEnabled"==e&&1==this[e]&&u(function(){t.leftResizeControl.flash(),t.rightResizeControl.flash()})},this.onEditorLoad=function(e){p.redoSearch()},o.registerHandler({identifier:"editor",areas:["note-tags","editor-stack","editor-editor"],activationHandler:function(e){"note-tags"===e.area?m.tagsComponent=e.active?e:null:"editor-editor"==e.area?m.selectedEditor&&m.selectedEditor==e&&0==e.active?m.selectedEditor=null:m.selectedEditor?m.selectedEditor.active&&e.isExplicitlyEnabledForItem(m.note)&&!m.selectedEditor.isExplicitlyEnabledForItem(m.note)&&(m.selectedEditor=e):e.active&&m.note&&(e.isExplicitlyEnabledForItem(m.note)||e.isDefaultEditor())?m.selectedEditor=e:m.selectedEditor=null:"editor-stack"==e.area&&m.reloadComponentContext()},contextRequestHandler:function(e){if(e==m.selectedEditor||e==m.tagsComponent||m.componentStack.includes(e))return m.note},focusHandler:function(e,t){e.isEditor()&&t&&m.closeAllMenus()},actionHandler:function(e,t,n){if("set-size"===t){if("container"==n.type&&"note-tags"==e.area){var r=document.getElementById("note-tags-component-container");a=r,s="string"==typeof(o=n).width?o.width:"".concat(n.width,"px"),c="string"==typeof o.height?o.height:"".concat(n.height,"px"),a.setAttribute("style","width:".concat(s,"; height:").concat(c,"; "))}}else if("associate-item"===t){if("Tag"==n.item.content_type){var i=f.findItem(n.item.uuid);m.addTag(i)}}else if("deassociate-item"===t){i=f.findItem(n.item.uuid);m.removeTag(i)}else"save-items"===t&&n.items.map(function(e){return e.uuid}).includes(m.note.uuid)&&m.showSavingStatus();var a,o,s,c}}),this.reloadComponentStackArray=function(){this.componentStack=o.componentsForArea("editor-stack").sort(function(e,t){return e.name.toLowerCase()<t.name.toLowerCase()?-1:1})},this.reloadComponentContext=function(){if(this.reloadComponentStackArray(),this.note){var e=!0,t=!1,n=void 0;try{for(var r,i=this.componentStack[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var a=r.value;a.active&&o.setComponentHidden(a,!a.isExplicitlyEnabledForItem(this.note))}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}}o.contextItemDidChangeInArea("note-tags"),o.contextItemDidChangeInArea("editor-stack"),o.contextItemDidChangeInArea("editor-editor")},this.toggleStackComponentForCurrentItem=function(e){e.hidden||!e.active?(o.setComponentHidden(e,!1),this.associateComponentWithCurrentNote(e),e.active||o.activateComponent(e),o.contextItemDidChangeInArea("editor-stack")):(o.setComponentHidden(e,!0),this.disassociateComponentWithCurrentNote(e))},this.disassociateComponentWithCurrentNote=function(e){var t=this;e.associatedItemIds=e.associatedItemIds.filter(function(e){return e!==t.note.uuid}),e.disassociatedItemIds.includes(this.note.uuid)||e.disassociatedItemIds.push(this.note.uuid),f.setItemDirty(e,!0),d.sync()},this.associateComponentWithCurrentNote=function(e){var t=this;e.disassociatedItemIds=e.disassociatedItemIds.filter(function(e){return e!==t.note.uuid}),e.associatedItemIds.includes(this.note.uuid)||e.associatedItemIds.push(this.note.uuid),f.setItemDirty(e,!0),d.sync()},this.altKeyObserver=c.addKeyObserver({modifiers:[oe.KeyModifierAlt],onKeyDown:function(){u(function(){m.altKeyDown=!0})},onKeyUp:function(){u(function(){m.altKeyDown=!1})}}),this.trashKeyObserver=c.addKeyObserver({key:oe.KeyBackspace,notElementIds:["note-text-editor","note-title-editor"],modifiers:[oe.KeyModifierMeta],onKeyDown:function(){u(function(){m.deleteNote()})}}),this.deleteKeyObserver=c.addKeyObserver({key:oe.KeyBackspace,modifiers:[oe.KeyModifierMeta,oe.KeyModifierShift,oe.KeyModifierAlt],onKeyDown:function(e){e.preventDefault(),u(function(){m.deleteNote(!0)})}}),this.onSystemEditorLoad=function(){var r=this;if(!this.loadedTabListener){this.loadedTabListener=!0;var i=document.getElementById("note-text-editor");this.tabObserver=c.addKeyObserver({element:i,key:oe.KeyTab,onKeyDown:function(e){if(!e.shiftKey&&!r.note.locked){if(e.preventDefault(),!document.execCommand("insertText",!1,"\t")){var t=i.selectionStart,n=i.selectionEnd;i.value=i.value.substring(0,t)+" "+i.value.substring(n),i.selectionStart=i.selectionEnd=t+4}u(function(){r.note.text=i.value,r.saveNote({bypassDebouncer:!0})})}}}),angular.element(i).on("$destroy",function(){this.tabObserver&&(c.removeKeyObserver(this.tabObserver),this.loadedTabListener=!1)}.bind(this))}}}]),angular.module("app").directive("footer",["authManager",function(e){return{restrict:"E",scope:{},templateUrl:"footer.html",replace:!0,controller:"FooterCtrl",controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,r){e.$on("sync:completed",function(){r.syncUpdated(),r.findErrors(),r.updateOfflineStatus()}),e.$on("sync:error",function(){r.findErrors(),r.updateOfflineStatus()})}}}]).controller("FooterCtrl",["$rootScope","authManager","modelManager","$timeout","dbManager","syncManager","storageManager","passcodeManager","componentManager","singletonManager","nativeExtManager","privilegesManager","statusManager","alertManager",function(t,e,o,r,n,i,a,s,c,u,l,d,f,p){var h=this;e.checkForSecurityUpdate().then(function(e){h.securityUpdateAvailable=e}),t.$on("security-update-status-changed",function(){h.securityUpdateAvailable=e.securityUpdateAvailable}),f.addStatusObserver(function(e){r(function(){h.arbitraryStatusMessage=e})}),t.$on("did-begin-local-backup",function(){r(function(){h.backupStatus=f.addStatusFromString("Saving local backup...")})}),t.$on("did-finish-local-backup",function(e,t){r(function(){t.success?h.backupStatus=f.replaceStatusWithString(h.backupStatus,"Successfully saved backup."):h.backupStatus=f.replaceStatusWithString(h.backupStatus,"Unable to save local backup."),r(function(){h.backupStatus=f.removeStatus(h.backupStatus)},2e3)})}),this.openSecurityUpdate=function(){e.presentPasswordWizard("upgrade-security")},t.$on("reload-ext-data",function(){h.reloadExtendedData()}),this.reloadExtendedData=function(){if(!h.reloadInProgress){h.reloadInProgress=!0;var e=h.rooms.find(function(e){return e.package_info.identifier==l.extensionsManagerIdentifier});if(!e)return h.queueExtReload=!0,void(h.reloadInProgress=!1);h.selectRoom(e),r(function(){h.selectRoom(e),h.reloadInProgress=!1,t.$broadcast("ext-reload-complete")},2e3)}},this.getUser=function(){return e.user},this.updateOfflineStatus=function(){this.offline=e.offline()},this.updateOfflineStatus(),i.addEventHandler(function(e,t){r(function(){"local-data-loaded"==e?h.offline&&0==o.noteCount()&&(h.showAccountMenu=!0):"enter-out-of-sync"==e?h.outOfSync=!0:"exit-out-of-sync"==e&&(h.outOfSync=!1)})}),this.findErrors=function(){this.error=i.syncStatus.error},this.findErrors(),this.onAuthSuccess=function(){this.showAccountMenu=!1}.bind(this),this.accountMenuPressed=function(){this.showAccountMenu=!this.showAccountMenu,this.closeAllRooms()},this.toggleSyncResolutionMenu=function(){this.showSyncResolution=!this.showSyncResolution}.bind(this),this.closeAccountMenu=function(){h.showAccountMenu=!1},this.hasPasscode=function(){return s.hasPasscode()},this.lockApp=function(){t.lockApplication()},this.refreshData=function(){var t=this;this.isRefreshing=!0,i.sync({force:!0,performIntegrityCheck:!0}).then(function(e){r(function(){this.isRefreshing=!1}.bind(t),200),e&&e.error?p.alert({text:"There was an error syncing. Please try again. If all else fails, try signing out and signing back in."}):t.syncUpdated()})},this.syncUpdated=function(){this.lastSyncDate=new Date},t.$on("new-update-available",function(){r(function(){h.onNewUpdateAvailable()})}),this.onNewUpdateAvailable=function(){this.newUpdateAvailable=!0},this.clickedNewUpdateAnnouncement=function(){this.newUpdateAvailable=!1,p.alert({text:"A new update is ready to install. Please use the top-level 'Updates' menu to manage installation."})},this.componentManager=c,this.rooms=[],this.themesWithIcons=[],o.addItemSyncObserver("room-bar","SN|Component",function(e,t,n,r){h.rooms=o.components.filter(function(e){return"rooms"==e.area&&!e.deleted}),h.queueExtReload&&(h.queueExtReload=!1,h.reloadExtendedData())}),o.addItemSyncObserver("footer-bar-themes","SN|Theme",function(e,t,n,r){var i=o.validItemsForContentType("SN|Theme").filter(function(e){return!e.deleted&&e.content.package_info&&e.content.package_info.dock_icon}).sort(function(e,t){return e.name.toLowerCase()<t.name.toLowerCase()?-1:1}),a=i.length!=h.themesWithIcons.length;h.themesWithIcons=i,a&&h.reloadDockShortcuts()}),this.reloadDockShortcuts=function(){var e=[],t=!0,n=!1,r=void 0;try{for(var i,a=this.themesWithIcons[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=o.content.package_info.name,c=o.content.package_info.dock_icon;c&&e.push({name:s,component:o,icon:c})}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}this.dockShortcuts=e.sort(function(e,t){var n=e.icon.type,r=t.icon.type;return n==r?0:"circle"==n&&"svg"==r?-1:"circle"==r&&"svg"==n?1:void 0})},this.initSvgForShortcut=function(e){var t="dock-svg-"+e.component.uuid,n=document.getElementById(t),r=new DOMParser,i=e.component.content.package_info.dock_icon.source,a=r.parseFromString(i,"image/svg+xml");n.appendChild(a.documentElement)},this.selectShortcut=function(e){c.toggleComponent(e.component)},c.registerHandler({identifier:"roomBar",areas:["rooms","modal"],activationHandler:function(){},actionHandler:function(e,t,n){"set-size"==t&&e.setLastSize(n)},focusHandler:function(e,t){e.isEditor()&&t&&(h.closeAllRooms(),h.closeAccountMenu())}}),t.$on("editorFocused",function(){h.closeAllRooms(),h.closeAccountMenu()}),this.onRoomDismiss=function(e){e.showRoom=!1},this.closeAllRooms=function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.rooms[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){r.value.showRoom=!1}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}},this.selectRoom=function(){var t=(0,y.default)($.default.mark(function e(t){var n;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=function(){r(function(){t.showRoom=!t.showRoom})},t.showRoom){e.next=11;break}return e.next=4,d.actionRequiresPrivilege(de.ActionManageExtensions);case 4:if(!e.sent){e.next=8;break}d.presentPrivilegesModal(de.ActionManageExtensions,function(){n()}),e.next=9;break;case 8:n();case 9:e.next=12;break;case 11:n();case 12:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),this.clickOutsideAccountMenu=function(){d.authenticationInProgress()||(this.showAccountMenu=!1)}}]),angular.module("app").controller("HomeCtrl",["$scope","$location","$rootScope","$timeout","modelManager","dbManager","syncManager","authManager","themeManager","passcodeManager","storageManager","migrationManager","privilegesManager","statusManager","alertManager",function(r,t,i,a,b,e,w,o,n,s,c,u,l,d,f){var p=this;c.initialize(s.hasPasscode(),o.isEphemeralSession()),r.platform=J(),r.onUpdateAvailable=function(){i.$broadcast("new-update-available")},i.$on("panel-resized",function(e,t){"notes"==t.panel&&(p.notesCollapsed=t.collapsed),"tags"==t.panel&&(p.tagsCollapsed=t.collapsed);var n="";p.notesCollapsed&&(n+="collapsed-notes"),p.tagsCollapsed&&(n+=" collapsed-tags"),r.appClass=n}),i.sync=function(e){w.sync()},i.lockApplication=function(){window.location.reload()};var h=function(){var n;o.loadInitialData(),p.syncStatusObserver=w.registerSyncStatusObserver(function(e){if(20<e.retrievedCount){var t="Downloading ".concat(e.retrievedCount," items. Keep app open.");p.syncStatus=d.replaceStatusWithString(p.syncStatus,t),p.showingDownloadStatus=!0}else if(p.showingDownloadStatus){p.showingDownloadStatus=!1;t="Download Complete.";p.syncStatus=d.replaceStatusWithString(p.syncStatus,t),setTimeout(function(){p.syncStatus=d.removeStatus(p.syncStatus)},2e3)}else 20<e.total?p.uploadSyncStatus=d.replaceStatusWithString(p.uploadSyncStatus,"Syncing ".concat(e.current,"/").concat(e.total," items...")):p.uploadSyncStatus&&(p.uploadSyncStatus=d.removeStatus(p.uploadSyncStatus))}),w.setKeyRequestHandler((0,y.default)($.default.mark(function e(){var t,n,r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t=o.offline())){e.next=5;break}e.t0=s.passcodeAuthParams(),e.next=8;break;case 5:return e.next=7,o.getAuthParams();case 7:e.t0=e.sent;case 8:if(n=e.t0,!t){e.next=13;break}e.t1=s.keys(),e.next=16;break;case 13:return e.next=15,o.keys();case 15:e.t1=e.sent;case 16:return r=e.t1,e.abrupt("return",{keys:r,offline:t,auth_params:n});case 18:case"end":return e.stop()}},e)}))),w.addEventHandler(function(e,t){if(i.$broadcast(e,t||{}),"sync-session-invalid"==e){(!n||30<(new Date-n)/1e3)&&(n=new Date,setTimeout(function(){f.alert({text:"Your session has expired. New changes will not be pulled in. Please sign out and sign back in to refresh your session."})},500))}else"sync-exception"==e&&f.alert({text:"There was an error while trying to save your items. Please contact support and share this message: ".concat(t)})});var r=o.user||s.hasPasscode();p.syncStatus=d.addStatusFromString(r?"Decrypting items...":"Loading items...");w.loadLocalItems({incrementalCallback:function(e,t){var n="".concat(e,"/").concat(t," items...");p.syncStatus=d.replaceStatusWithString(p.syncStatus,r?"Decrypting ".concat(n):"Loading ".concat(n))}}).then(function(){a(function(){i.$broadcast("initial-data-loaded"),p.syncStatus=d.replaceStatusWithString(p.syncStatus,"Syncing..."),w.sync({performIntegrityCheck:!0}).then(function(){p.syncStatus=d.removeStatus(p.syncStatus)}),setInterval(function(){w.sync()},3e4)})}),o.addEventHandler(function(e){e==SFAuthManager.DidSignOutEvent&&(b.handleSignout(),w.handleSignout())})};function m(){e.setLocked(!1),e.openDatabase(null,function(){w.clearSyncToken(),w.sync()}),h()}function v(e){return t.search()[e]}function g(){return(g=(0,y.default)($.default.mark(function e(){var t,n,r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=v("server"),n=v("email"),r=v("pw"),o.offline()){e.next=18;break}return e.next=6,w.getServerURL();case 6:if(e.t1=e.sent,e.t2=t,e.t0=e.t1===e.t2,!e.t0){e.next=11;break}e.t0=o.user.email===n;case 11:if(e.t0)return e.abrupt("return");e.next=15;break;case 15:o.signout(!0).then(function(){window.location.reload()});case 16:e.next=19;break;case 18:o.login(t,n,r,!1,!1,{}).then(function(e){window.location.reload()});case 19:case"end":return e.stop()}},e)}))).apply(this,arguments)}s.isLocked()?r.needsUnlock=!0:m(),r.onSuccessfulUnlock=function(){a(function(){r.needsUnlock=!1,m()})},r.updateTagsForNote=function(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e.tags[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){var c=o.value;-1===t.indexOf(c.title)&&n.push(c)}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}for(var u=0,l=n;u<l.length;u++){l[u].removeItemAsRelationship(e)}b.setItemsDirty(n,!0);var d=[],f=!0,p=!1,h=void 0;try{for(var m,v=t[Symbol.iterator]();!(f=(m=v.next()).done);f=!0){var g=m.value;_.find(e.tags,{title:g})||d.push(b.findOrCreateTagByTitle(g))}}catch(e){p=!0,h=e}finally{try{f||null==v.return||v.return()}finally{if(p)throw h}}for(var y=0,k=d;y<k.length;y++){(c=k[y]).addItemAsRelationship(e)}b.setItemsDirty(d,!0),w.sync()},r.tagsSelectionMade=function(e){r.selectedTag&&e&&r.selectedTag.uuid==e.uuid||(r.selectedNote&&r.selectedNote.dummy&&(b.removeItemLocally(r.selectedNote),r.selectedNote=null),r.selectedTag=e)},r.tagsAddNew=function(e){b.addItem(e)},r.tagsSave=function(e,t){e.title&&0!=e.title.length?(b.setItemDirty(e,!0),w.sync().then(t),b.resortTag(e)):r.removeTag(e)},r.removeTag=function(e){f.confirm({text:"Are you sure you want to delete this tag? Note: deleting a tag will not delete its notes.",destructive:!0,onConfirm:function(){b.setItemToBeDeleted(e),w.sync().then(function(){i.safeApply()})}})},r.notesSelectionMade=function(e){r.selectedNote=e},r.notesAddNew=function(e){b.addItem(e),b.setItemDirty(e),r.selectedTag.isSmartTag()||(r.selectedTag.addItemAsRelationship(e),b.setItemDirty(r.selectedTag,!0))},i.safeApply=function(e){var t=this.$root.$$phase;"$apply"==t||"$digest"==t?this.$eval(e):this.$apply(e)},i.notifyDelete=function(){a(function(){i.$broadcast("noteDeleted")}.bind(this),0)},r.deleteNote=function(e){if(b.setItemToBeDeleted(e),e==r.selectedNote&&(r.selectedNote=null),e.dummy)return b.removeItemLocally(e),void i.notifyDelete();w.sync().then(function(){o.offline()?setTimeout(function(){i.notifyDelete(),i.safeApply()},50):a(function(){i.notifyDelete()})})},window.addEventListener("dragover",function(e){e.preventDefault()},!1),window.addEventListener("drop",function(e){e.preventDefault(),f.alert({text:"Please use FileSafe or the Bold Editor to attach images and files. Learn more at standardnotes.org/filesafe."})},!1),v("server")&&function(){g.apply(this,arguments)}()}]);var X=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="lock-screen.html",this.scope={onSuccess:"&"}}return(0,f.default)(e,[{key:"controller",value:["$scope","passcodeManager","authManager","syncManager","storageManager","alertManager",function(t,e,n,r,i,a){var o=this;t.formData={},this.visibilityObserver=e.addVisibilityObserver(function(e){if(e){var t=document.getElementById("passcode-input");t&&t.focus()}}),t.$on("$destroy",function(){e.removeVisibilityObserver(o.visibilityObserver)}),t.submitPasscodeForm=function(){t.formData.passcode&&0!=t.formData.passcode.length&&e.unlock(t.formData.passcode,function(e){e?t.onSuccess()():a.alert({text:"Invalid passcode. Please try again."})})},t.forgotPasscode=function(){t.formData.showRecovery=!0},t.beginDeleteData=function(){a.confirm({text:"Are you sure you want to clear all local data?",destructive:!0,onConfirm:function(){n.signout(!0).then(function(){window.location.reload()})}})}}]}]),e}();angular.module("app").directive("lockScreen",function(){return new X}),angular.module("app").directive("notesSection",function(){return{scope:{addNew:"&",selectionMade:"&",tag:"="},templateUrl:"notes.html",replace:!0,controller:"NotesCtrl",controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,r){e.$watch("ctrl.tag",function(e,t){e&&r.tagDidChange(e,t)})}}}).controller("NotesCtrl",["authManager","$timeout","$rootScope","modelManager","syncManager","storageManager","desktopManager","privilegesManager","keyboardManager",function(i,f,a,o,s,e,c,u,t){var p=this;this.panelController={},this.searchSubmitted=!1,a.$on("user-preferences-changed",function(){p.loadPreferences(),p.reloadNotes()}),i.addEventHandler(function(e){e==SFAuthManager.DidSignInEvent&&p.selectedNote&&p.selectedNote.dummy&&(o.removeItemLocally(p.selectedNote),_.pull(p.notes,p.selectedNote),p.selectedNote=null,p.selectNote(null),p.createDummyOnSynCompletionIfNoNotes=!0)}),s.addEventHandler(function(e,t){"local-data-loaded"==e?0==p.notes.length&&p.createNewNote():"sync:completed"==e&&f(function(){p.createDummyOnSynCompletionIfNoNotes&&0==p.notes.length&&(p.createDummyOnSynCompletionIfNoNotes=!1,p.createNewNote())},100)}),o.addItemSyncObserver("note-list","*",function(e,t,n,r,i){p.reloadNotes();var a=e.filter(function(e){return"Note"==e.content_type}),o=!0,s=!1,c=void 0;try{for(var u,l=a[Symbol.iterator]();!(o=(u=l.next()).done);o=!0){var d=u.value;p.loadFlagsForNote(d),d.cachedCreatedAtString=d.createdAtString(),d.cachedUpdatedAtString=d.updatedAtString()}}catch(e){s=!0,c=e}finally{try{o||null==l.return||l.return()}finally{if(s)throw c}}p.selectedNote||f(function(){p.selectFirstNote()})}),this.setNotes=function(e){e=this.filterNotes(e),e=this.sortNotes(e,this.sortBy,this.sortReverse);var t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;o.shouldShowTags=this.shouldShowTagsForNote(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}this.notes=e,this.reloadPanelTitle()},this.reloadNotes=function(){var e=this.tag.notes,t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;o.errorDecrypting&&this.loadFlagsForNote(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}this.setNotes(e)},this.reorderNotes=function(){this.setNotes(this.notes)},this.loadPreferences=function(){var e=this,t=this.sortBy;this.sortBy=i.getUserPrefValue("sortBy","created_at"),this.sortReverse=i.getUserPrefValue("sortReverse",!1),"updated_at"==this.sortBy&&(this.sortBy="client_updated_at"),t&&t!=this.sortBy&&f(function(){e.selectFirstNote()}),this.showArchived=i.getUserPrefValue("showArchived",!1),this.hidePinned=i.getUserPrefValue("hidePinned",!1),this.hideNotePreview=i.getUserPrefValue("hideNotePreview",!1),this.hideDate=i.getUserPrefValue("hideDate",!1),this.hideTags=i.getUserPrefValue("hideTags",!1);var n=i.getUserPrefValue("notesPanelWidth");n&&(this.panelController.setWidth(n),this.panelController.isCollapsed()&&a.$broadcast("panel-resized",{panel:"notes",collapsed:this.panelController.isCollapsed()}))},this.loadPreferences(),this.onPanelResize=function(e,t,n,r){i.setUserPrefValue("notesPanelWidth",e),i.syncUserPreferences(),a.$broadcast("panel-resized",{panel:"notes",collapsed:r})},angular.element(document).ready(function(){p.loadPreferences()}),a.$on("editorFocused",function(){this.showMenu=!1}.bind(this)),a.$on("noteDeleted",function(){f(this.onNoteRemoval.bind(this))}.bind(this)),a.$on("noteArchived",function(){f(this.onNoteRemoval.bind(this))}.bind(this)),this.onNoteRemoval=function(){var e=this.visibleNotes(),t=e[this.selectedIndex<e.length?Math.max(this.selectedIndex,0):e.length-1];t?this.selectNote(t):this.createNewNote()},window.onresize=function(e){p.resetPagination({keepCurrentIfLarger:!0})},this.paginate=function(){this.notesToDisplay+=this.DefaultNotesToDisplayValue,this.searchSubmitted&&c.searchText(this.noteFilter.text)},this.resetPagination=function(){var e=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).keepCurrentIfLarger;this.DefaultNotesToDisplayValue=document.documentElement.clientHeight/51||20,e&&this.notesToDisplay>this.DefaultNotesToDisplayValue||(this.notesToDisplay=this.DefaultNotesToDisplayValue)},this.resetPagination(),this.reloadPanelTitle=function(){this.isFiltering()?this.panelTitle="".concat(this.notes.filter(function(e){return e.visible}).length," search results"):this.tag&&(this.panelTitle="".concat(this.tag.title))},this.optionsSubtitle=function(){var e="";return"created_at"==this.sortBy?e+=" Date Added":"client_updated_at"==this.sortBy?e+=" Date Modified":"title"==this.sortBy&&(e+=" Title"),this.showArchived&&(e+=" | + Archived"),this.hidePinned&&(e+=" | Pinned"),this.sortReverse&&(e+=" | Reversed"),e},this.loadFlagsForNote=function(e){var t=[];return e.pinned&&t.push({text:"Pinned",class:"info"}),e.archived&&t.push({text:"Archived",class:"warning"}),e.content.protected&&t.push({text:"Protected",class:"success"}),e.locked&&t.push({text:"Locked",class:"neutral"}),e.content.trashed&&t.push({text:"Deleted",class:"danger"}),e.content.conflict_of&&t.push({text:"Conflicted Copy",class:"danger"}),e.errorDecrypting&&t.push({text:"Missing Keys",class:"danger"}),e.deleted&&t.push({text:"Deletion Pending Sync",class:"danger"}),e.flags=t},this.tagDidChange=function(e,t){var n=this,r=document.getElementById("notes-scrollable");r&&(r.scrollTop=0,r.scrollLeft=0),this.resetPagination(),this.showMenu=!1,this.selectedNote&&this.selectedNote.dummy&&t&&_.remove(t.notes,this.selectedNote),this.noteFilter.text="",c.searchText(),this.setNotes(e.notes),f(function(){0<n.notes.length?(n.notes.forEach(function(e){e.visible=!0}),n.selectFirstNote()):s.initialDataLoaded()&&(e.isSmartTag()?n.selectedNote&&!n.notes.includes(n.selectedNote)&&n.selectNote(null):n.createNewNote())})},this.visibleNotes=function(){return this.renderedNotes.filter(function(e){return e.visible})},this.selectFirstNote=function(){var e=this.visibleNotes();0<e.length&&this.selectNote(e[0])},this.selectNextNote=function(){var e=this.visibleNotes(),t=e.indexOf(this.selectedNote);t+1<e.length&&this.selectNote(e[t+1])},this.selectPreviousNote=function(){var e=this.visibleNotes(),t=e.indexOf(this.selectedNote);return 0<=t-1&&(this.selectNote(e[t-1]),!0)},this.selectNote=function(){var t=(0,y.default)($.default.mark(function e(t){var n,r,i=this,a=arguments;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=1<a.length&&void 0!==a[1]&&a[1],this.selectedNote===t)return e.abrupt("return");e.next=3;break;case 3:if(t){e.next=6;break}return this.selectionMade()(null),e.abrupt("return");case 6:if(r=function(){f(function(){var e;i.selectedNote&&i.selectedNote!=t&&1==i.selectedNote.dummy&&(e=i.selectedNote),(i.selectedNote=t).content.conflict_of&&(t.content.conflict_of=null,o.setItemDirty(t,!0),s.sync()),i.selectionMade()(t),i.selectedIndex=Math.max(i.visibleNotes().indexOf(t),0),e&&1==e.dummy&&f(function(){o.removeItemLocally(e),_.pull(i.notes,e)},250),n&&i.isFiltering()&&c.searchText(i.noteFilter.text)})},e.t0=t.content.protected,e.t0)return e.next=11,u.actionRequiresPrivilege(de.ActionViewProtectedNotes);e.next=12;break;case 11:e.t0=e.sent;case 12:if(!e.t0){e.next=16;break}u.presentPrivilegesModal(de.ActionViewProtectedNotes,function(){r()}),e.next=17;break;case 16:r();case 17:case"end":return e.stop()}},e,this)}));return function(e){return t.apply(this,arguments)}}(),this.isFiltering=function(){return this.noteFilter.text&&0<this.noteFilter.text.length},this.createNewNote=function(){if(!this.selectedNote||!this.selectedNote.dummy){var e="Note"+(this.notes?" "+(this.notes.length+1):""),t=o.createItem({content_type:"Note",content:{text:"",title:e}});t.client_updated_at=new Date,t.dummy=!0,this.selectNote(t),this.addNew()(t)}},this.noteFilter={text:""},this.onFilterEnter=function(){this.searchSubmitted=!0,c.searchText(this.noteFilter.text)},this.clearFilterText=function(){this.noteFilter.text="",this.onFilterEnter(),this.filterTextChanged(),this.resetPagination()},this.filterTextChanged=function(){var e=this;this.searchSubmitted&&(this.searchSubmitted=!1),this.reloadNotes(),f(function(){e.selectedNote.visible||e.selectFirstNote()},100)},this.selectedMenuItem=function(){this.showMenu=!1},this.togglePrefKey=function(e){this[e]=!this[e],i.setUserPrefValue(e,this[e]),i.syncUserPreferences(),this.reloadNotes()},this.selectedSortByCreated=function(){this.setSortBy("created_at")},this.selectedSortByUpdated=function(){this.setSortBy("client_updated_at")},this.selectedSortByTitle=function(){this.setSortBy("title")},this.toggleReverseSort=function(){this.selectedMenuItem(),this.sortReverse=!this.sortReverse,this.reorderNotes(),i.setUserPrefValue("sortReverse",this.sortReverse),i.syncUserPreferences()},this.setSortBy=function(e){this.sortBy=e,this.reorderNotes(),i.setUserPrefValue("sortBy",this.sortBy),i.syncUserPreferences()},this.shouldShowTagsForNote=function(e){return!this.hideTags&&!e.content.protected&&(this.tag.content.isAllTag?e.tags&&0<e.tags.length:!!this.tag.isSmartTag()||e.tags&&1<e.tags.length)},this.filterNotes=function(e){var c=this;return e.filter(function(t){var e=c.showArchived,n=!c.hidePinned,r=c.tag.content.isTrashTag;if(!r&&t.content.trashed)return t.visible=!1,t.visible;if(c.tag.isSmartTag()&&(e=e||c.tag.content.isArchiveTag||r),t.archived&&!e||t.pinned&&!n)return t.visible=!1,t.visible;var i=c.noteFilter.text.toLowerCase();if(0==i.length)t.visible=!0;else{var a=i.split(" "),o=a.every(function(e){return 0<=t.safeTitle().toLowerCase().indexOf(e)}),s=a.every(function(e){return 0<=t.safeText().toLowerCase().indexOf(e)});t.visible=o||s}return t.visible})},this.sortNotes=function(e,c,u){return(e=e||[]).sort(function(e,t){return function e(t,n,r){var i=2<arguments.length&&void 0!==r&&r;if(t.dummy)return-1;if(n.dummy)return 1;if(!i){if(t.pinned&&n.pinned)return e(t,n,!0);if(t.pinned)return-1;if(n.pinned)return 1}var a=t[c]||"",o=n[c]||"",s=1;if(u&&(s*=-1),"title"==c){if(a=a.toLowerCase(),o=o.toLowerCase(),0==a.length&&0==o.length)return 0;if(0==a.length&&0!=o.length)return 1*s;if(0!=a.length&&0==o.length)return-1*s;s*=-1}return o<a?-1*s:a<o?1*s:0}(e,t)})},this.newNoteKeyObserver=t.addKeyObserver({key:"n",modifiers:[oe.KeyModifierMeta,oe.KeyModifierCtrl],onKeyDown:function(e){e.preventDefault(),f(function(){p.createNewNote()})}}),this.getSearchBar=function(){return document.getElementById("search-bar")},this.nextNoteKeyObserver=t.addKeyObserver({key:oe.KeyDown,elements:[document.body,this.getSearchBar()],onKeyDown:function(){var e=p.getSearchBar();e==document.activeElement&&e.blur(),f(function(){p.selectNextNote()})}}),this.nextNoteKeyObserver=t.addKeyObserver({key:oe.KeyUp,element:document.body,onKeyDown:function(){f(function(){p.selectPreviousNote()})}}),this.searchKeyObserver=t.addKeyObserver({key:"f",modifiers:[oe.KeyModifierMeta,oe.KeyModifierShift],onKeyDown:function(){var e=p.getSearchBar();e&&e.focus()}})}]),angular.module("app").directive("tagsSection",function(){return{restrict:"E",scope:{addNew:"&",selectionMade:"&",save:"&",removeTag:"&"},templateUrl:"tags.html",replace:!0,controller:"TagsCtrl",controllerAs:"ctrl",bindToController:!0}}).controller("TagsCtrl",["$rootScope","modelManager","syncManager","$timeout","componentManager","authManager",function(i,a,t,r,e,o){var s=this;r(function(){s.smartTags=a.getSmartTags(),s.selectTag(s.smartTags[0])}),t.addEventHandler(function(e,t){"local-data-loaded"!=e&&"sync:completed"!=e&&"local-data-incremental-load"!=e||(s.tags=a.tags,s.smartTags=a.getSmartTags())}),a.addItemSyncObserver("tags-list","*",function(e,t,n,r,i){s.reloadNoteCounts()}),this.reloadNoteCounts=function(){var e=[];this.tags&&(e=e.concat(this.tags)),this.smartTags&&(e=e.concat(this.smartTags));var t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=O.filterDummyNotes(o.notes).filter(function(e){return!e.archived&&!e.content.trashed});o.cachedNoteCount=s.length}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}},this.panelController={},i.$on("user-preferences-changed",function(){s.loadPreferences()}),this.loadPreferences=function(){var e=o.getUserPrefValue("tagsPanelWidth");e&&(this.panelController.setWidth(e),this.panelController.isCollapsed()&&i.$broadcast("panel-resized",{panel:"tags",collapsed:this.panelController.isCollapsed()}))},this.loadPreferences(),this.onPanelResize=function(e,t,n,r){o.setUserPrefValue("tagsPanelWidth",e,!0),i.$broadcast("panel-resized",{panel:"tags",collapsed:r})},(this.componentManager=e).registerHandler({identifier:"tags",areas:["tags-list"],activationHandler:function(e){this.component=e}.bind(this),contextRequestHandler:function(e){return null}.bind(this),actionHandler:function(e,t,n){if("select-item"===t){if("Tag"==n.item.content_type){var r=a.findItem(n.item.uuid);r&&this.selectTag(r)}else if("SN|SmartTag"==n.item.content_type){var i=new V(n.item);this.selectTag(i)}}else"clear-selection"===t&&this.selectTag(this.smartTags[0])}.bind(this)}),this.selectTag=function(e){e.isSmartTag()&&Object.defineProperty(e,"notes",{get:function(){return a.notesMatchingSmartTag(e)}}),(this.selectedTag=e).content.conflict_of&&(e.content.conflict_of=null,a.setItemDirty(e,!0),t.sync()),this.selectionMade()(e)},this.clickedAddNewTag=function(){this.editingTag||(this.newTag=a.createItem({content_type:"Tag"}),this.selectedTag=this.newTag,this.editingTag=this.newTag,this.addNew()(this.newTag))},this.tagTitleDidChange=function(e){this.editingTag=e},this.saveTag=function(e,t){var n=this;this.editingTag=null,e.target.blur(),t.title&&0!=t.title.length?this.save()(t,function(e){r(function(){n.selectTag(t),n.newTag=null})}):c?(t.title=c,c=null):a.removeItemLocally(t)};var c="";this.selectedRenameTag=function(e,t){c=t.title,this.editingTag=t,r(function(){(function(e){return document.getElementById("tag-"+e.uuid)})(t).focus()})},this.selectedDeleteTag=function(e){this.removeTag()(e),this.selectTag(this.smartTags[0])}}]);var Z=function(){function c(e,t,n,r,i,a,o,s){(0,v.default)(this,c),this.httpManager=e,this.modelManager=t,this.authManager=n,this.syncManager=r,this.alertManager=s,this.$rootScope=i,this.$compile=a,this.$timeout=o,this.previousPasswords=[]}var n,i;return c.$inject=["httpManager","modelManager","authManager","syncManager","$rootScope","$compile","$timeout","alertManager"],(0,f.default)(c,[{key:"extensionsInContextOfItem",value:function(t){return this.extensions.filter(function(e){return _.includes(e.supported_types,t.content_type)||0<e.actionsWithContextForItem(t).length})}},{key:"loadExtensionInContextOfItem",value:function(t,e,n){this.httpManager.getAbsolute(t.url,{content_type:e.content_type,item_uuid:e.uuid},function(e){this.updateExtensionFromRemoteResponse(t,e),n&&n(t)}.bind(this),function(e){console.log("Error loading extension",e),n&&n(null)}.bind(this))}},{key:"updateExtensionFromRemoteResponse",value:function(e,t){t.description&&(e.description=t.description),t.supported_types&&(e.supported_types=t.supported_types),t.actions?e.actions=t.actions.map(function(e){return new R(e)}):e.actions=[]}},{key:"executeAction",value:(i=(0,y.default)($.default.mark(function e(n,r,t,i){var k,a,b,w,o,x=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:k=function(e,t){n.running=!1,x.$timeout(function(){i(e,t)})},n.running=!0,a="decrypted"==n.access_type,b=[],w=function(){var r=(0,y.default)($.default.mark(function e(t,n,r){var i,a,o,s,c,u,l,d,f,p,h,m,v,g,y;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=t.item,e.next=3,SFJS.itemTransformer.decryptItem(i,n);case 3:if(i.errorDecrypting){e.next=36;break}if(r)return e.next=7,x.modelManager.mapResponseItemsToLocalModels([i],SFModelManager.MappingSourceRemoteActionRetrieved);e.next=31;break;case 7:for(a=e.sent,s=!(o=!0),c=void 0,e.prev=11,u=a[Symbol.iterator]();!(o=(l=u.next()).done);o=!0)d=l.value,x.modelManager.setItemDirty(d,!0);e.next=19;break;case 15:e.prev=15,e.t0=e.catch(11),s=!0,c=e.t0;case 19:e.prev=19,e.prev=20,o||null==u.return||u.return();case 22:if(e.prev=22,s)throw c;e.next=25;break;case 25:return e.finish(22);case 26:return e.finish(19);case 27:x.syncManager.sync(),k({item:i}),e.next=33;break;case 31:i=x.modelManager.createItem(i),k({item:i});case 33:return e.abrupt("return",!0);case 36:if(t.auth_params){e.next=39;break}return x.alertManager.alert({text:"We were unable to decrypt this revision using your current keys, and this revision is missing metadata that would allow us to try different keys to decrypt it. This can likely be fixed with some manual intervention. Please email hello@standardnotes.org for assistance."}),e.abrupt("return");case 39:p=!(f=!0),h=void 0,e.prev=42,m=x.previousPasswords[Symbol.iterator]();case 44:if(f=(v=m.next()).done){e.next=62;break}if(g=v.value,b.includes(g))return e.abrupt("continue",59);e.next=48;break;case 48:return b.push(g),e.next=51,SFJS.crypto.computeEncryptionKeysForUser(g,t.auth_params);case 51:if(y=e.sent){e.next=54;break}return e.abrupt("continue",59);case 54:return e.next=56,w(t,y,r);case 56:if(e.sent)return e.abrupt("return",!0);e.next=59;break;case 59:f=!0,e.next=44;break;case 62:e.next=68;break;case 64:e.prev=64,e.t1=e.catch(42),p=!0,h=e.t1;case 68:e.prev=68,e.prev=69,f||null==m.return||m.return();case 71:if(e.prev=71,p)throw h;e.next=74;break;case 74:return e.finish(71);case 75:return e.finish(68);case 76:return x.presentPasswordModal(function(e){x.previousPasswords.push(e),w(t,n,r)}),e.abrupt("return",!1);case 78:case"end":return e.stop()}},e,null,[[11,15,19,27],[20,,22,26],[42,64,68,76],[69,,71,75]])}));return function(e,t,n){return r.apply(this,arguments)}}(),e.t0=n.verb,e.next="get"===e.t0?8:"render"===e.t0?10:"show"===e.t0?12:"post"===e.t0?16:18;break;case 8:return this.alertManager.confirm({text:"Are you sure you want to replace the current note contents with this action's results?",onConfirm:function(){x.httpManager.getAbsolute(n.url,{},function(){var t=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n.error=!1,e.t0=w,e.t1=t,e.next=5,x.authManager.keys();case 5:e.t2=e.sent,(0,e.t0)(e.t1,e.t2,!0);case 7:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){var t=e&&e.error||{message:"An issue occurred while processing this action. Please try again."};x.alertManager.alert({text:t.message}),n.error=!0,k(null,t)})}}),e.abrupt("break",18);case 10:return this.httpManager.getAbsolute(n.url,{},function(){var t=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n.error=!1,e.t0=w,e.t1=t,e.next=5,x.authManager.keys();case 5:e.t2=e.sent,(0,e.t0)(e.t1,e.t2,!1);case 7:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){var t=e&&e.error||{message:"An issue occurred while processing this action. Please try again."};x.alertManager.alert({text:t.message}),n.error=!0,k(null,t)}),e.abrupt("break",18);case 12:return(o=window.open(n.url,"_blank"))&&o.focus(),k(),e.abrupt("break",18);case 16:return this.outgoingParamsForItem(t,r,a).then(function(e){var t={items:[e]};x.performPost(n,r,t,function(e){e&&e.error&&x.alertManager.alert({text:"An issue occurred while processing this action. Please try again."}),k(e)})}),e.abrupt("break",18);case 18:n.lastExecuted=new Date;case 19:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"outgoingParamsForItem",value:(n=(0,y.default)($.default.mark(function e(t,n){var r,i,a,o=arguments;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=2<o.length&&void 0!==o[2]&&o[2],e.next=3,this.authManager.keys();case 3:return i=e.sent,r&&(i=null),e.t0=SFItemParams,e.t1=t,e.t2=i,e.next=10,this.authManager.getAuthParams();case 10:return e.t3=e.sent,a=new e.t0(e.t1,e.t2,e.t3),e.abrupt("return",a.paramsForExtension());case 13:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"performPost",value:function(t,e,n,r){this.httpManager.postAbsolute(t.url,n,function(e){t.error=!1,r&&r(e)}.bind(this),function(e){t.error=!0,console.log("Action error response:",e),r&&r({error:"Request error"})})}},{key:"presentRevisionPreviewModal",value:function(e,t){var n=this.$rootScope.$new(!0);n.uuid=e,n.content=t;var r=this.$compile("<revision-preview-modal uuid='uuid' content='content' class='sk-modal'></revision-preview-modal>")(n);angular.element(document.body).append(r)}},{key:"presentPasswordModal",value:function(e){var t=this.$rootScope.$new(!0);t.type="password",t.title="Decryption Assistance",t.message="Unable to decrypt this item with your current keys. Please enter your account password at the time of this revision.",t.callback=e;var n=this.$compile("<input-modal type='type' message='message' title='title' callback='callback'></input-modal>")(t);angular.element(document.body).append(n)}},{key:"extensions",get:function(){return this.modelManager.validItemsForContentType("Extension")}}]),c}();angular.module("app").service("actionsManager",Z);var Q=function(e){function n(e){var t;return(0,v.default)(this,n),(t=(0,g.default)(this,(0,k.default)(n).call(this))).$timeout=e,t}var t,r;return n.$inject=["$timeout"],(0,p.default)(n,e),(0,f.default)(n,[{key:"alert",value:(r=(0,y.default)($.default.mark(function e(){var t,i,a,n,o,s,c=this,r=arguments;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=(t=0<r.length&&void 0!==r[0]?r[0]:{}).title,a=t.text,n=t.closeButtonText,o=void 0===n?"OK":n,s=t.onClose,e.abrupt("return",new Promise(function(t,e){var n,r=[{text:o,style:"neutral",action:(n=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:s&&c.$timeout(s),t(!0);case 2:case"end":return e.stop()}},e)})),function(){return n.apply(this,arguments)})}];new Stylekit.SKAlert({title:i,text:a,buttons:r}).present()}));case 2:case"end":return e.stop()}},e)})),function(){return r.apply(this,arguments)})},{key:"confirm",value:(t=(0,y.default)($.default.mark(function e(){var t,a,o,n,s,r,c,u,l,i,d,f=this,p=arguments;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=(t=0<p.length&&void 0!==p[0]?p[0]:{}).title,o=t.text,n=t.confirmButtonText,s=void 0===n?"Confirm":n,r=t.cancelButtonText,c=void 0===r?"Cancel":r,u=t.onConfirm,l=t.onCancel,i=t.destructive,d=void 0!==i&&i,e.abrupt("return",new Promise(function(t,n){var e,r,i=[{text:c,style:"neutral",action:(r=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:l&&f.$timeout(l),n(!1);case 2:case"end":return e.stop()}},e)})),function(){return r.apply(this,arguments)})},{text:s,style:d?"danger":"info",action:(e=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:u&&f.$timeout(u),t(!0);case 2:case"end":return e.stop()}},e)})),function(){return e.apply(this,arguments)})}];new Stylekit.SKAlert({title:a,text:o,buttons:i}).present()}));case 2:case"end":return e.stop()}},e)})),function(){return t.apply(this,arguments)})}]),n}(SFAlertManager);angular.module("app").service("alertManager",Q);var ee=function(){function i(e,t,n,r){(0,v.default)(this,i),this.passcodeManager=e,this.authManager=t,this.modelManager=n,this.privilegesManager=r}var r,n,t;return i.$inject=["passcodeManager","authManager","modelManager","privilegesManager"],(0,f.default)(i,[{key:"downloadBackup",value:(t=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.downloadBackupOfItems(this.modelManager.allItems,t));case 1:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"downloadBackupOfItems",value:(n=(0,y.default)($.default.mark(function e(r,i){var t,a=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=function(){var e=(0,y.default)($.default.mark(function e(){var n,t;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!i){e.next=12;break}if(!a.authManager.offline()||!a.passcodeManager.hasPasscode()){e.next=6;break}n=a.passcodeManager.keys(),t=a.passcodeManager.passcodeAuthParams(),e.next=12;break;case 6:return e.next=8,a.authManager.keys();case 8:return n=e.sent,e.next=11,a.authManager.getAuthParams();case 11:t=e.sent;case 12:a.__itemsData(r,n,t).then(function(e){var t=i?"Encrypted":"Decrypted";a.__downloadData(e,"Standard Notes ".concat(t," Backup - ").concat(a.__formattedDate(),".txt")),n||a.__downloadZippedItems(r)});case 13:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}(),e.next=3,this.privilegesManager.actionRequiresPrivilege(de.ActionManageBackups);case 3:if(!e.sent){e.next=7;break}this.privilegesManager.presentPrivilegesModal(de.ActionManageBackups,function(){t()}),e.next=8;break;case 7:t();case 8:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"__formattedDate",value:function(){var e="".concat(new Date),t=e.match(/^(.*?) \(/);return 2<=t.length?t[1]:e}},{key:"__itemsData",value:(r=(0,y.default)($.default.mark(function e(t,n,r){var i,a;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.modelManager.getJSONDataForItems(t,n,r);case 2:return i=e.sent,a=new Blob([i],{type:"text/json"}),e.abrupt("return",a);case 5:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})},{key:"__loadZip",value:function(e){if(window.zip)e();else{var t=document.createElement("script");t.src="/assets/zip/zip.js",t.async=!1,document.getElementsByTagName("head")[0].appendChild(t),t.onload=function(){zip.workerScriptsPath="assets/zip/",e()}}}},{key:"__downloadZippedItems",value:function(l){var d=this;this.__loadZip(function(){zip.createWriter(new zip.BlobWriter("application/zip"),function(c){var u=0;!function e(){var t,n,r=l[u];n="Note"==r.content_type?(t=r.content.title,r.content.text):(t=r.content_type,JSON.stringify(r.content,null,2)),t=t||"";var i=new Blob([n],{type:"text/plain"}),a=t.replace(/\//g,"").replace(/\\+/g,""),o="-".concat(r.uuid.split("-")[0],".txt");a=a.slice(0,255-o.length);var s="".concat(r.content_type,"/").concat(a).concat(o);c.add(s,new zip.BlobReader(i),function(){++u<l.length?e():c.close(function(e){d.__downloadData(e,"Standard Notes Backup - ".concat(d.__formattedDate(),".zip")),c=null})})}()},onerror)})}},{key:"__hrefForData",value:function(e){return null!==this.textFile&&window.URL.revokeObjectURL(this.textFile),this.textFile=window.URL.createObjectURL(e),this.textFile}},{key:"__downloadData",value:function(e,t){var n=document.createElement("a");n.setAttribute("download",t),n.href=this.__hrefForData(e),document.body.appendChild(n),n.click(),n.remove()}}]),i}();angular.module("app").service("archiveManager",ee);var te=function(e){function u(e,t,n,r,i,a,o,s){var c;return(0,v.default)(this,u),(c=(0,g.default)(this,(0,k.default)(u).call(this,n,i,null,o))).$rootScope=a,c.$compile=s,c.modelManager=e,c.singletonManager=t,c.storageManager=n,c.dbManager=r,c}var t,n,a,o,i,s,r;return u.$inject=["modelManager","singletonManager","storageManager","dbManager","httpManager","$rootScope","$timeout","$compile"],(0,p.default)(u,e),(0,f.default)(u,[{key:"loadInitialData",value:function(){var a=this,e=this.storageManager.getItemSync("user");if(e)this.user=JSON.parse(e);else{var t=this.storageManager.getItemSync("uuid");t&&(this.user={uuid:t})}this.configureUserPrefs(),this.checkForSecurityUpdate(),this.modelManager.addItemSyncObserver("user-prefs","SN|UserPreferences",function(e,t,n,r,i){a.userPreferencesDidChange()})}},{key:"offline",value:function(){return!this.user}},{key:"isEphemeralSession",value:function(){return null!=this.ephemeral&&null!=this.ephemeral||(this.ephemeral=JSON.parse(this.storageManager.getItemSync("ephemeral",ve.Fixed))),this.ephemeral}},{key:"setEphemeral",value:function(e){(this.ephemeral=e)?(this.storageManager.setModelStorageMode(ve.Ephemeral),this.storageManager.setItemsMode(ve.Ephemeral)):(this.storageManager.setModelStorageMode(ve.Fixed),this.storageManager.setItemsMode(this.storageManager.bestStorageMode()),this.storageManager.setItem("ephemeral",JSON.stringify(!1),ve.Fixed))}},{key:"getAuthParamsForEmail",value:(r=(0,y.default)($.default.mark(function e(t,n,r){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,c.default)((0,k.default)(u.prototype),"getAuthParamsForEmail",this).call(this,t,n,r));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})},{key:"login",value:(s=(0,y.default)($.default.mark(function e(t,n,r,i,a,o){var s=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,c.default)((0,k.default)(u.prototype),"login",this).call(this,t,n,r,a,o).then(function(e){return e.error||(s.setEphemeral(i),s.checkForSecurityUpdate()),e}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r,i,a){return s.apply(this,arguments)})},{key:"register",value:(i=(0,y.default)($.default.mark(function e(t,n,r,i){var a=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,c.default)((0,k.default)(u.prototype),"register",this).call(this,t,n,r).then(function(e){return e.error||a.setEphemeral(i),e}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"changePassword",value:(o=(0,y.default)($.default.mark(function e(t,n,r,i,a){var o=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",(0,c.default)((0,k.default)(u.prototype),"changePassword",this).call(this,t,n,r,i,a).then(function(e){return e.error||o.checkForSecurityUpdate(),e}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r,i){return o.apply(this,arguments)})},{key:"handleAuthResponse",value:(a=(0,y.default)($.default.mark(function e(t,n,r,i,a){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,c.default)((0,k.default)(u.prototype),"handleAuthResponse",this).call(this,t,n,r,i,a);case 3:this.user=t.user,this.storageManager.setItem("user",JSON.stringify(t.user)),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),this.dbManager.displayOfflineAlert();case 10:case"end":return e.stop()}},e,this,[[0,7]])})),function(e,t,n,r,i){return a.apply(this,arguments)})},{key:"verifyAccountPassword",value:(n=(0,y.default)($.default.mark(function e(t){var n,r,i;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAuthParams();case 2:return n=e.sent,e.next=5,SFJS.crypto.computeEncryptionKeysForUser(t,n);case 5:return r=e.sent,e.t0=r.mk,e.next=9,this.keys();case 9:return e.t1=e.sent.mk,i=e.t0===e.t1,e.abrupt("return",i);case 12:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"checkForSecurityUpdate",value:(t=(0,y.default)($.default.mark(function e(){var t,n;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.offline())return e.abrupt("return",!1);e.next=2;break;case 2:return t=SFJS.version(),e.next=5,this.protocolVersion();case 5:return e.t0=e.sent,e.t1=t,(n=e.t0!==e.t1)!==this.securityUpdateAvailable&&(this.securityUpdateAvailable=n,this.$rootScope.$broadcast("security-update-status-changed")),e.abrupt("return",this.securityUpdateAvailable);case 10:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"presentPasswordWizard",value:function(e){var t=this.$rootScope.$new(!0);t.type=e;var n=this.$compile("<password-wizard type='type'></password-wizard>")(t);angular.element(document.body).append(n)}},{key:"signOut",value:function(){(0,c.default)((0,k.default)(u.prototype),"signout",this).call(this),this.user=null,this._authParams=null}},{key:"configureUserPrefs",value:function(){var n=this,r="SN|UserPreferences",e=new SFPredicate("content_type","=",r);this.singletonManager.registerSingleton([e],function(e){n.userPreferences=e},function(e){var t=new SFItem({content_type:r});n.modelManager.addItem(t),n.modelManager.setItemDirty(t,!0),n.$rootScope.sync(),e(t)})}},{key:"userPreferencesDidChange",value:function(){this.$rootScope.$broadcast("user-preferences-changed")}},{key:"syncUserPreferences",value:function(){this.userPreferences&&(this.modelManager.setItemDirty(this.userPreferences,!0),this.$rootScope.sync())}},{key:"getUserPrefValue",value:function(e,t){if(!this.userPreferences)return t;var n=this.userPreferences.getAppDataItem(e);return void 0!==n&&null!=n?n:t}},{key:"setUserPrefValue",value:function(e,t,n){this.userPreferences?(this.userPreferences.setAppDataItem(e,t),n&&this.syncUserPreferences()):console.log("Prefs are null, not setting value",e)}}]),u}(SFAuthManager);angular.module("app").service("authManager",te);var ne=function(e){function c(e,t,n,r,i,a,o){var s;return(0,v.default)(this,c),(s=(0,g.default)(this,(0,k.default)(c).call(this,{modelManager:e,syncManager:t,desktopManager:n,nativeExtManager:r,alertManager:new SFAlertManager,$uiRunner:i.safeApply,$timeout:a,environment:G()?"desktop":"web",platform:J()}))).$compile=o,s.$rootScope=i,s}return c.$inject=["modelManager","syncManager","desktopManager","nativeExtManager","$rootScope","$timeout","$compile"],(0,p.default)(c,e),(0,f.default)(c,[{key:"openModalComponent",value:function(e){var t=this.$rootScope.$new(!0);t.component=e;var n=this.$compile("<component-modal component='component' class='sk-modal'></component-modal>")(t);angular.element(document.body).append(n)}},{key:"presentPermissionsDialog",value:function(e){var t=this.$rootScope.$new(!0);t.permissionsString=e.permissionsString,t.component=e.component,t.callback=e.callback;var n=this.$compile("<permissions-modal component='component' permissions-string='permissionsString' callback='callback' class='sk-modal'></permissions-modal>")(t);angular.element(document.body).append(n)}}]),c}(S);angular.module("app").service("componentManager",ne);var re=function(){function t(e){(0,v.default)(this,t),this.locked=!0,this.alertManager}return t.$inject=["alertManager"],(0,f.default)(t,[{key:"displayOfflineAlert",value:function(){this.alertManager.alert({text:"There was an issue loading your offline database. This could happen for two reasons:\n\n1. You're in a private window in your browser. We can't save your data without access to the local database. Please use a non-private window.\n\n2. You have two windows of the app open at the same time. Please close any other app instances and reload the page."})}},{key:"setLocked",value:function(e){this.locked=e}},{key:"openDatabase",value:function(n,r){if(!this.locked){var e=window.indexedDB.open("standardnotes",1);e.onerror=function(e){e.target.errorCode?this.alertManager.alert({text:"Offline database issue: "+e.target.errorCode}):this.displayOfflineAlert(),console.error("Offline database issue:",e),n&&n(null)}.bind(this),e.onsuccess=function(e){var t=e.target.result;t.onversionchange=function(e){t.close()},t.onerror=function(e){console.log("Database error: "+e.target.errorCode)},n&&n(t)},e.onblocked=function(e){console.error("Request blocked error:",e.target.errorCode)},e.onupgradeneeded=function(e){var t=e.target.result;t.onversionchange=function(e){t.close()};var n=t.createObjectStore("items",{keyPath:"uuid"});n.createIndex("title","title",{unique:!1}),n.createIndex("uuid","uuid",{unique:!0}),n.transaction.oncomplete=function(e){1===t.version&&r&&r()}}}}},{key:"getAllModels",value:function(r){this.openDatabase(function(e){var t=e.transaction("items").objectStore("items"),n=[];t.openCursor().onsuccess=function(e){var t=e.target.result;t?(n.push(t.value),t.continue()):r(n)}},null)}},{key:"saveModel",value:function(e){this.saveModels([e])}},{key:"saveModels",value:function(a,o,n){0!=a.length?this.openDatabase(function(e){var t=e.transaction("items","readwrite");t.oncomplete=function(e){},t.onerror=function(e){console.error("Transaction error:",e.target.errorCode)},t.onblocked=function(e){console.error("Transaction blocked error:",e.target.errorCode)},t.onabort=function(e){console.log("Offline saving aborted:",e);var t=e.target.error;"QuotaExceededError"==t.name?this.alertManager.alert({text:"Unable to save changes locally because your device is out of space. Please free up some disk space and try again, otherwise, your data may end up in an inconsistent state."}):this.alertManager.alert({text:"Unable to save changes locally due to an unknown system issue. Issue Code: ".concat(t.code," Issue Name: ").concat(t.name,".")}),n&&n(t)};var r=t.objectStore("items"),i=0;!function e(){if(i<a.length){var t=a[i],n=r.put(t);n.onerror=function(e){console.error("DB put error:",e.target.error)},n.onsuccess=e,++i}else o&&o()}()},null):o&&o()}},{key:"deleteModel",value:function(t,n){this.openDatabase(function(e){e.transaction("items","readwrite").objectStore("items").delete(t.uuid).onsuccess=function(e){n&&n(!0)}},null)}},{key:"clearAllModels",value:function(t){var e=window.indexedDB.deleteDatabase("standardnotes");e.onerror=function(e){console.log("Error deleting database."),t&&t()},e.onsuccess=function(e){console.log("Database deleted successfully"),t&&t()},e.onblocked=function(e){console.error("Delete request blocked"),this.alertManager.alert({text:"Your browser is blocking Standard Notes from deleting the local database. Make sure there are no other open windows of this app and try again. If the issue persists, please manually delete app data to sign out."})}}}]),t}();angular.module("app").service("dbManager",re);var ie=function(){function s(e,t,n,r,i,a){var o=this;(0,v.default)(this,s),this.passcodeManager=a,this.modelManager=n,this.authManager=i,this.syncManager=r,this.$rootScope=e,this.timeout=t,this.updateObservers=[],this.componentActivationObservers=[],this.isDesktop=G(),e.$on("initial-data-loaded",function(){o.dataLoaded=!0,o.dataLoadHandler&&o.dataLoadHandler()}),e.$on("major-data-change",function(){o.majorDataChangeHandler&&o.majorDataChangeHandler()})}var t,n,r,i;return s.$inject=["$rootScope","$timeout","modelManager","syncManager","authManager","passcodeManager"],(0,f.default)(s,[{key:"saveBackup",value:function(){this.majorDataChangeHandler&&this.majorDataChangeHandler()}},{key:"getExtServerHost",value:function(){return console.assert(this.extServerHost,"extServerHost is null"),this.extServerHost}},{key:"convertComponentForTransmission",value:(i=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new SFItemParams(t).paramsForExportFile(!0));case 1:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"syncComponentsInstallation",value:function(e){var t=this;this.isDesktop&&Promise.all(e.map(function(e){return t.convertComponentForTransmission(e)})).then(function(e){t.installationSyncHandler(e)})}},{key:"installComponent",value:(r=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=this,e.next=3,this.convertComponentForTransmission(t);case 3:e.t1=e.sent,e.t0.installComponentHandler.call(e.t0,e.t1);case 5:case"end":return e.stop()}},e,this)})),function(e){return r.apply(this,arguments)})},{key:"registerUpdateObserver",value:function(e){var t={id:Math.random,callback:e};return this.updateObservers.push(t),t}},{key:"searchText",value:function(e){this.isDesktop&&(this.lastSearchedText=e,this.searchHandler&&this.searchHandler(e))}},{key:"redoSearch",value:function(){this.lastSearchedText&&this.searchText(this.lastSearchedText)}},{key:"deregisterUpdateObserver",value:function(e){_.pull(this.updateObservers,e)}},{key:"desktop_setSearchHandler",value:function(e){this.searchHandler=e}},{key:"desktop_windowGainedFocus",value:function(){this.$rootScope.$broadcast("window-gained-focus")}},{key:"desktop_windowLostFocus",value:function(){this.$rootScope.$broadcast("window-lost-focus")}},{key:"desktop_onComponentInstallationComplete",value:function(e,t){var a=this,o=this.modelManager.findItem(e.uuid);if(o){if(t)o.setAppDataItem("installError",t);else{var n=!0,r=!1,i=void 0;try{for(var s,c=["package_info","local_url"][Symbol.iterator]();!(n=(s=c.next()).done);n=!0){var u=s.value;o[u]=e.content[u]}}catch(e){r=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(r)throw i}}this.modelManager.notifySyncObserversOfModels([o],SFModelManager.MappingSourceDesktopInstalled),o.setAppDataItem("installError",null)}this.modelManager.setItemDirty(o,!0),this.syncManager.sync(),this.timeout(function(){var e=!0,t=!1,n=void 0;try{for(var r,i=a.updateObservers[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){r.value.callback(o)}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}})}else console.error("desktop_onComponentInstallationComplete component is null for uuid",e.uuid)}},{key:"desktop_registerComponentActivationObserver",value:function(e){var t={id:Math.random,callback:e};return this.componentActivationObservers.push(t),t}},{key:"desktop_deregisterComponentActivationObserver",value:function(e){_.pull(this.componentActivationObservers,e)}},{key:"notifyComponentActivation",value:(n=(0,y.default)($.default.mark(function e(t){var a,o=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.convertComponentForTransmission(t);case 2:a=e.sent,this.timeout(function(){var e=!0,t=!1,n=void 0;try{for(var r,i=o.componentActivationObservers[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){r.value.callback(a)}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}});case 4:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"desktop_setExtServerHost",value:function(e){this.extServerHost=e,this.$rootScope.$broadcast("desktop-did-set-ext-server-host")}},{key:"desktop_setComponentInstallationSyncHandler",value:function(e){this.installationSyncHandler=e}},{key:"desktop_setInstallComponentHandler",value:function(e){this.installComponentHandler=e}},{key:"desktop_setInitialDataLoadHandler",value:function(e){this.dataLoadHandler=e,this.dataLoaded&&this.dataLoadHandler()}},{key:"desktop_requestBackupFile",value:(t=(0,y.default)($.default.mark(function e(t){var n,r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.authManager.offline()||!this.passcodeManager.hasPasscode()){e.next=5;break}n=this.passcodeManager.keys(),r=this.passcodeManager.passcodeAuthParams(),e.next=11;break;case 5:return e.next=7,this.authManager.keys();case 7:return n=e.sent,e.next=10,this.authManager.getAuthParams();case 10:r=e.sent;case 11:this.modelManager.getAllItemsJSONData(n,r,!0).then(function(e){t(e)});case 12:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"desktop_setMajorDataChangeHandler",value:function(e){this.majorDataChangeHandler=e}},{key:"desktop_didBeginBackup",value:function(){this.$rootScope.$broadcast("did-begin-local-backup")}},{key:"desktop_didFinishBackup",value:function(e){this.$rootScope.$broadcast("did-finish-local-backup",{success:e})}}]),s}();angular.module("app").service("desktopManager",ie);var ae=function(e){function r(t,e){var n;return(0,v.default)(this,r),(n=(0,g.default)(this,(0,k.default)(r).call(this,e))).setJWTRequestHandler((0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.getItem("jwt"));case 1:case"end":return e.stop()}},e)}))),n}return r.$inject=["storageManager","$timeout"],(0,p.default)(r,e),r}(SFHttpManager);angular.module("app").service("httpManager",ae);var oe=function(){function u(){(0,v.default)(this,u),this.observers=[],u.KeyTab="Tab",u.KeyBackspace="Backspace",u.KeyUp="ArrowUp",u.KeyDown="ArrowDown",u.KeyModifierShift="Shift",u.KeyModifierCtrl="Control",u.KeyModifierMeta="Meta",u.KeyModifierAlt="Alt",u.KeyEventDown="KeyEventDown",u.KeyEventUp="KeyEventUp",u.AllModifiers=[u.KeyModifierShift,u.KeyModifierCtrl,u.KeyModifierMeta,u.KeyModifierAlt],window.addEventListener("keydown",this.handleKeyDown.bind(this)),window.addEventListener("keyup",this.handleKeyUp.bind(this))}return(0,f.default)(u,[{key:"modifiersForEvent",value:function(t){return u.AllModifiers.filter(function(e){return(t.ctrlKey||t.key==u.KeyModifierCtrl)&&e===u.KeyModifierCtrl||(t.metaKey||t.key==u.KeyModifierMeta)&&e===u.KeyModifierMeta||(t.altKey||t.key==u.KeyModifierAlt)&&e===u.KeyModifierAlt||(t.shiftKey||t.key==u.KeyModifierShift)&&e===u.KeyModifierShift})}},{key:"eventMatchesKeyAndModifiers",value:function(e,t,n){var r=2<arguments.length&&void 0!==n?n:[],i=this.modifiersForEvent(e);if(i.length!=r.length)return!1;var a=!0,o=!1,s=void 0;try{for(var c,u=r[Symbol.iterator]();!(a=(c=u.next()).done);a=!0){var l=c.value;if(!i.includes(l))return!1}}catch(e){o=!0,s=e}finally{try{a||null==u.return||u.return()}finally{if(o)throw s}}return!t||t.toLowerCase()==e.key.toLowerCase()}},{key:"notifyObserver",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.observers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if((!s.element||e.target==s.element)&&((!s.elements||s.elements.includes(e.target))&&(!s.notElement||s.notElement!=e.target)&&(!s.notElementIds||!s.notElementIds.includes(e.target.id))&&this.eventMatchesKeyAndModifiers(e,s.key,s.modifiers))){var c=t==u.KeyEventDown?s.onKeyDown:s.onKeyUp;c&&c(e)}}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"handleKeyDown",value:function(e){this.notifyObserver(e,u.KeyEventDown)}},{key:"handleKeyUp",value:function(e){this.notifyObserver(e,u.KeyEventUp)}},{key:"addKeyObserver",value:function(e){var t={key:e.key,modifiers:e.modifiers,onKeyDown:e.onKeyDown,onKeyUp:e.onKeyUp,element:e.element,elements:e.elements,notElement:e.notElement,notElementIds:e.notElementIds};return this.observers.push(t),t}},{key:"removeKeyObserver",value:function(e){this.observers.splice(this.observers.indexOf(e),1)}}]),u}();angular.module("app").service("keyboardManager",oe);var se=function(e){function u(e,t,n,r,i,a,o,s){var c;return(0,v.default)(this,u),(c=(0,g.default)(this,(0,k.default)(u).call(this,t,n,i,o))).componentManager=r,c.statusManager=a,c.desktopManager=s,c}return u.$inject=["$rootScope","modelManager","syncManager","componentManager","storageManager","statusManager","authManager","desktopManager"],(0,p.default)(u,e),(0,f.default)(u,[{key:"registeredMigrations",value:function(){return[this.editorToComponentMigration(),this.componentUrlToHostedUrl(),this.removeTagReferencesFromNotes()]}},{key:"editorToComponentMigration",value:function(){var t,m=this;return{name:"editor-to-component",content_type:"SN|Editor",handler:(t=(0,y.default)($.default.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(r=!(n=!0),i=void 0,e.prev=3,a=t[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)(s=o.value).url&&!m.componentManager.componentForUrl(s.url)&&((c=m.modelManager.createItem({content_type:"SN|Component",content:{url:s.url,name:s.name,area:"editor-editor"}})).setAppDataItem("data",s.data),m.modelManager.addItem(c),m.modelManager.setItemDirty(c,!0));e.next=11;break;case 7:e.prev=7,e.t0=e.catch(3),r=!0,i=e.t0;case 11:e.prev=11,e.prev=12,n||null==a.return||a.return();case 14:if(e.prev=14,r)throw i;e.next=17;break;case 17:return e.finish(14);case 18:return e.finish(11);case 19:for(l=!(u=!0),d=void 0,e.prev=22,f=t[Symbol.iterator]();!(u=(p=f.next()).done);u=!0)h=p.value,m.modelManager.setItemToBeDeleted(h);e.next=30;break;case 26:e.prev=26,e.t1=e.catch(22),l=!0,d=e.t1;case 30:e.prev=30,e.prev=31,u||null==f.return||f.return();case 33:if(e.prev=33,l)throw d;e.next=36;break;case 36:return e.finish(33);case 37:return e.finish(30);case 38:m.syncManager.sync();case 39:case"end":return e.stop()}},e,null,[[3,7,11,19],[12,,14,18],[22,26,30,38],[31,,33,37]])})),function(e){return t.apply(this,arguments)})}}},{key:"componentUrlToHostedUrl",value:function(){var t,g=this;return{name:"component-url-to-hosted-url",content_type:"SN|Component",handler:(t=(0,y.default)($.default.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=!1,r=g.modelManager.validItemsForContentType("Note"),a=!(i=!0),o=void 0,e.prev=5,s=r[Symbol.iterator]();case 7:if(i=(c=s.next()).done){e.next=31;break}for(u=c.value,d=!(l=!0),f=void 0,e.prev=12,p=t[Symbol.iterator]();!(l=(h=p.next()).done);l=!0)m=h.value,(v=u.getDomainDataItem(m.hosted_url,ne.ClientDataDomain))&&(u.setDomainDataItem(m.uuid,v,ne.ClientDataDomain),u.setDomainDataItem(m.hosted_url,null,ne.ClientDataDomain),g.modelManager.setItemDirty(u,!0),n=!0);e.next=20;break;case 16:e.prev=16,e.t0=e.catch(12),d=!0,f=e.t0;case 20:e.prev=20,e.prev=21,l||null==p.return||p.return();case 23:if(e.prev=23,d)throw f;e.next=26;break;case 26:return e.finish(23);case 27:return e.finish(20);case 28:i=!0,e.next=7;break;case 31:e.next=37;break;case 33:e.prev=33,e.t1=e.catch(5),a=!0,o=e.t1;case 37:e.prev=37,e.prev=38,i||null==s.return||s.return();case 40:if(e.prev=40,a)throw o;e.next=43;break;case 43:return e.finish(40);case 44:return e.finish(37);case 45:n&&g.syncManager.sync();case 46:case"end":return e.stop()}},e,null,[[5,33,37,45],[12,16,20,28],[21,,23,27],[38,,40,44]])})),function(e){return t.apply(this,arguments)})}}},{key:"removeTagReferencesFromNotes",value:function(){var t,k=this;return{name:"remove-tag-references-from-notes",content_type:"Note",handler:(t=(0,y.default)($.default.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:!1,n=k.statusManager.addStatusFromString("Optimizing data..."),a=!(i=!(r=0)),o=void 0,e.prev=6,s=t[Symbol.iterator]();case 8:if(i=(c=s.next()).done){e.next=47;break}if((u=c.value).content){e.next=12;break}return e.abrupt("continue",44);case 12:l=u.content.references,d=[],p=!(f=!0),h=void 0,e.prev=17,m=l[Symbol.iterator]();case 19:if(f=(v=m.next()).done){e.next=29;break}if("Tag"!=(g=v.value).content_type)return d.push(g),e.abrupt("continue",26);e.next=24;break;case 24:(y=k.modelManager.findItem(g.uuid))&&!y.hasRelationshipWithItem(u)&&(y.addItemAsRelationship(u),k.modelManager.setItemDirty(y,!0),r++);case 26:f=!0,e.next=19;break;case 29:e.next=35;break;case 31:e.prev=31,e.t0=e.catch(17),p=!0,h=e.t0;case 35:e.prev=35,e.prev=36,f||null==m.return||m.return();case 38:if(e.prev=38,p)throw h;e.next=41;break;case 41:return e.finish(38);case 42:return e.finish(35);case 43:d.length!=l.length&&(u.content.references=d,k.modelManager.setItemDirty(u,!0),r++);case 44:i=!0,e.next=8;break;case 47:e.next=53;break;case 49:e.prev=49,e.t1=e.catch(6),a=!0,o=e.t1;case 53:e.prev=53,e.prev=54,i||null==s.return||s.return();case 56:if(e.prev=56,a)throw o;e.next=59;break;case 59:return e.finish(56);case 60:return e.finish(53);case 61:if(0<r)return G()&&k.desktopManager.saveBackup(),n=k.statusManager.replaceStatusWithString(n,"".concat(r," items optimized.")),e.next=66,k.syncManager.sync();e.next=70;break;case 66:n=k.statusManager.replaceStatusWithString(n,"Optimization complete."),setTimeout(function(){k.statusManager.removeStatus(n)},2e3),e.next=71;break;case 70:k.statusManager.removeStatus(n);case 71:case"end":return e.stop()}},e,null,[[6,49,53,61],[17,31,35,43],[36,,38,42],[54,,56,60]])})),function(e){return t.apply(this,arguments)})}}}]),u}(SFMigrationManager);angular.module("app").service("migrationManager",se),SFModelManager.ContentTypeClassMapping={Note:O,Tag:F,"SN|SmartTag":V,Extension:E,"SN|Editor":A,"SN|Theme":q,"SN|Component":I,"SF|Extension":j,"SF|MFA":H,"SN|Privileges":SFPrivileges},SFItem.AppDomain="org.standardnotes.sn";var ce=function(e){function i(e,t){var n;return(0,v.default)(this,i),(n=(0,g.default)(this,(0,k.default)(i).call(this,t))).notes=[],n.tags=[],n.components=[],n.storageManager=e,n.buildSystemSmartTags(),n}return i.$inject=["storageManager","$timeout"],(0,p.default)(i,e),(0,f.default)(i,[{key:"handleSignout",value:function(){(0,c.default)((0,k.default)(i.prototype),"handleSignout",this).call(this),this.notes.length=0,this.tags.length=0,this.components.length=0}},{key:"noteCount",value:function(){return this.notes.filter(function(e){return!e.dummy}).length}},{key:"removeAllItemsFromMemory",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.items[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){r.value.deleted=!0}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}this.notifySyncObserversOfModels(this.items),this.handleSignout()}},{key:"findOrCreateTagByTitle",value:function(e){var t=_.find(this.tags,{title:e});return t||(t=this.createItem({content_type:"Tag",content:{title:e}}),this.addItem(t),this.setItemDirty(t,!0)),t}},{key:"addItems",value:function(e,t){var n=this,r=1<arguments.length&&void 0!==t&&t;(0,c.default)((0,k.default)(i.prototype),"addItems",this).call(this,e,r),e.forEach(function(e){r||("Tag"==e.content_type?_.find(n.tags,{uuid:e.uuid})||n.tags.splice(_.sortedIndexBy(n.tags,e,function(e){return e.title?e.title.toLowerCase():""}),0,e):"Note"==e.content_type?_.find(n.notes,{uuid:e.uuid})||n.notes.unshift(e):"SN|Component"==e.content_type&&(_.find(n.components,{uuid:e.uuid})||n.components.unshift(e)))})}},{key:"resortTag",value:function(e){_.pull(this.tags,e),this.tags.splice(_.sortedIndexBy(this.tags,e,function(e){return e.title?e.title.toLowerCase():""}),0,e)}},{key:"setItemToBeDeleted",value:function(e){(0,c.default)((0,k.default)(i.prototype),"setItemToBeDeleted",this).call(this,e),this.removeItemFromRespectiveArray(e)}},{key:"removeItemLocally",value:function(e,t){(0,c.default)((0,k.default)(i.prototype),"removeItemLocally",this).call(this,e,t),this.removeItemFromRespectiveArray(e),this.storageManager.deleteModel(e).then(t)}},{key:"removeItemFromRespectiveArray",value:function(e){"Tag"==e.content_type?_.remove(this.tags,{uuid:e.uuid}):"Note"==e.content_type?_.remove(this.notes,{uuid:e.uuid}):"SN|Component"==e.content_type&&_.remove(this.components,{uuid:e.uuid})}},{key:"notesMatchingSmartTag",value:function(e){var t=[new SFPredicate("content_type","=","Note"),e.content.predicate];if(!e.content.isTrashTag){var n=new SFPredicate("content.trashed","=",!1);t.push(n)}return this.itemsMatchingPredicates(t)}},{key:"trashSmartTag",value:function(){return this.systemSmartTags.find(function(e){return e.content.isTrashTag})}},{key:"trashedItems",value:function(){return this.notesMatchingSmartTag(this.trashSmartTag())}},{key:"emptyTrash",value:function(){var e=this.trashedItems(),t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;this.setItemToBeDeleted(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}},{key:"buildSystemSmartTags",value:function(){this.systemSmartTags=V.systemSmartTags()}},{key:"getSmartTagWithId",value:function(t){return this.getSmartTags().find(function(e){return e.uuid==t})}},{key:"getSmartTags",value:function(){var e=this.validItemsForContentType("SN|SmartTag").sort(function(e,t){return e.content.title<t.content.title?-1:1});return this.systemSmartTags.concat(e)}},{key:"humanReadableDisplayForContentType",value:function(e){return{Note:"note",Tag:"tag","SN|SmartTag":"smart tag",Extension:"action-based extension","SN|Component":"component","SN|Editor":"editor","SN|Theme":"theme","SF|Extension":"server extension","SF|MFA":"two-factor authentication setting","SN|FileSafe|Credentials":"FileSafe credential","SN|FileSafe|FileMetadata":"FileSafe file","SN|FileSafe|Integration":"FileSafe integration"}[e]}}]),i}(SFModelManager);angular.module("app").service("modelManager",ce);var ue=function(){function r(e,t,n){(0,v.default)(this,r),this.modelManager=e,this.syncManager=t,this.singletonManager=n,this.extensionsManagerIdentifier="org.standardnotes.extensions-manager",this.batchManagerIdentifier="org.standardnotes.batch-manager",this.systemExtensions=[],this.resolveExtensionsManager(),this.resolveBatchManager()}return r.$inject=["modelManager","syncManager","singletonManager"],(0,f.default)(r,[{key:"isSystemExtension",value:function(e){return this.systemExtensions.includes(e.uuid)}},{key:"resolveExtensionsManager",value:function(){var i=this,e=new SFPredicate("content_type","=","SN|Component"),t=new SFPredicate("package_info.identifier","=",this.extensionsManagerIdentifier);this.singletonManager.registerSingleton([e,t],function(e){i.systemExtensions.push(e.uuid);var t=!1;G()?e.local_url||(e.local_url=window._extensions_manager_location,t=!0):e.hosted_url||(e.hosted_url=window._extensions_manager_location,t=!0);var n=e.content.permissions.find(function(e){return"stream-items"==e.name});n.content_types.includes("SN|ExtensionRepo")||(n.content_types.push("SN|ExtensionRepo"),t=!0),t&&(i.modelManager.setItemDirty(e,!0),i.syncManager.sync())},function(e){if(window._extensions_manager_location){var t={name:"Extensions",identifier:i.extensionsManagerIdentifier},n={content_type:"SN|Component",content:{name:t.name,area:"rooms",package_info:t,permissions:[{name:"stream-items",content_types:["SN|Component","SN|Theme","SF|Extension","Extension","SF|MFA","SN|Editor","SN|ExtensionRepo"]}]}};G()?n.content.local_url=window._extensions_manager_location:n.content.hosted_url=window._extensions_manager_location;var r=i.modelManager.createItem(n);i.modelManager.addItem(r),i.modelManager.setItemDirty(r,!0),i.syncManager.sync(),i.systemExtensions.push(r.uuid),e(r)}else console.error("window._extensions_manager_location must be set.")})}},{key:"resolveBatchManager",value:function(){var i=this,e=new SFPredicate("content_type","=","SN|Component"),t=new SFPredicate("package_info.identifier","=",this.batchManagerIdentifier);this.singletonManager.registerSingleton([e,t],function(e){i.systemExtensions.push(e.uuid);var t=!1;G()?e.local_url||(e.local_url=window._batch_manager_location,t=!0):e.hosted_url||(e.hosted_url=window._batch_manager_location,t=!0),t&&(i.modelManager.setItemDirty(e,!0),i.syncManager.sync())},function(e){if(window._batch_manager_location){var t={name:"Batch Manager",identifier:i.batchManagerIdentifier},n={content_type:"SN|Component",content:{name:t.name,area:"modal",package_info:t,permissions:[{name:"stream-items",content_types:["Note","Tag","SN|SmartTag","SN|Component","SN|Theme","SN|UserPreferences","SF|Extension","Extension","SF|MFA","SN|Editor","SN|FileSafe|Credentials","SN|FileSafe|FileMetadata","SN|FileSafe|Integration"]}]}};G()?n.content.local_url=window._batch_manager_location:n.content.hosted_url=window._batch_manager_location;var r=i.modelManager.createItem(n);i.modelManager.addItem(r),i.modelManager.setItemDirty(r,!0),i.syncManager.sync(),i.systemExtensions.push(r.uuid),e(r)}else console.error("window._batch_manager_location must be set.")})}}]),r}();angular.module("app").service("nativeExtManager",ue);var le=function(){function i(e,t,n,r){(0,v.default)(this,i),this.authManager=t,this.storageManager=n,this.syncManager=r,this.$rootScope=e,this._hasPasscode=null!=this.storageManager.getItemSync("offlineParams",ve.Fixed),this._locked=this._hasPasscode,this.visibilityObservers=[],this.passcodeChangeObservers=[],this.configureAutoLock()}var e,n,t,r,a;return i.$inject=["$rootScope","authManager","storageManager","syncManager"],(0,f.default)(i,[{key:"addPasscodeChangeObserver",value:function(e){this.passcodeChangeObservers.push(e)}},{key:"lockApplication",value:function(){window.location.reload(),this.cancelAutoLockTimer()}},{key:"isLocked",value:function(){return this._locked}},{key:"hasPasscode",value:function(){return this._hasPasscode}},{key:"keys",value:function(){return this._keys}},{key:"addVisibilityObserver",value:function(e){return this.visibilityObservers.push(e),e}},{key:"removeVisibilityObserver",value:function(e){_.pull(this.visibilityObservers,e)}},{key:"notifiyVisibilityObservers",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=this.visibilityObservers[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){(0,i.value)(e)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}},{key:"setAutoLockInterval",value:(a=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.storageManager.setItem(i.AutoLockIntervalKey,JSON.stringify(t),ve.FixedEncrypted));case 1:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"getAutoLockInterval",value:(r=(0,y.default)($.default.mark(function e(){var t;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.storageManager.getItem(i.AutoLockIntervalKey,ve.FixedEncrypted);case 2:if(t=e.sent)return e.abrupt("return",JSON.parse(t));e.next=7;break;case 7:return e.abrupt("return",i.AutoLockIntervalNone);case 8:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"passcodeAuthParams",value:function(){var e=JSON.parse(this.storageManager.getItemSync("offlineParams",ve.Fixed));if(e&&!e.version){var t=this.keys();t&&t.ak?e.version="002":e.version="001"}return e}},{key:"verifyPasscode",value:(t=(0,y.default)($.default.mark(function e(i){var a=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var n=(0,y.default)($.default.mark(function e(t,n){var r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=a.passcodeAuthParams(),e.next=3,SFJS.crypto.computeEncryptionKeysForUser(i,r);case 3:e.sent.pw!==r.hash?t(!1):t(!0);case 5:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e)})),function(e){return t.apply(this,arguments)})},{key:"unlock",value:function(e,t){var n=this,r=this.passcodeAuthParams();SFJS.crypto.computeEncryptionKeysForUser(e,r).then(function(e){e.pw===r.hash?(n._keys=e,n._authParams=r,n.decryptLocalStorage(e,r).then(function(){n._locked=!1,t(!0)})):t(!1)})}},{key:"setPasscode",value:function(e,r){var i=this,t=SFJS.crypto.generateUUIDSync();SFJS.crypto.generateInitialKeysAndAuthParamsForUser(t,e).then(function(e){var t=e.keys,n=e.authParams;n.hash=t.pw,i._keys=t,i._hasPasscode=!0,i._authParams=n,i.encryptLocalStorage(t,n),i.storageManager.setItem("offlineParams",JSON.stringify(n),ve.Fixed),r(!0),i.notifyObserversOfPasscodeChange()})}},{key:"changePasscode",value:function(e,t){this.setPasscode(e,t)}},{key:"clearPasscode",value:function(){this.storageManager.setItemsMode(this.authManager.isEphemeralSession()?ve.Ephemeral:ve.Fixed),this.storageManager.removeItem("offlineParams",ve.Fixed),this._keys=null,this._hasPasscode=!1,this.notifyObserversOfPasscodeChange()}},{key:"notifyObserversOfPasscodeChange",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.passcodeChangeObservers[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){(0,r.value)()}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}}},{key:"encryptLocalStorage",value:function(e,t){this.storageManager.setKeys(e,t),this.storageManager.setItemsMode(this.authManager.isEphemeralSession()?ve.Ephemeral:ve.FixedEncrypted,!0)}},{key:"decryptLocalStorage",value:(n=(0,y.default)($.default.mark(function e(t,n){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.storageManager.setKeys(t,n),e.abrupt("return",this.storageManager.decryptStorage());case 2:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})},{key:"configureAutoLock",value:function(){var n=this;i.AutoLockPollFocusInterval=1e3,i.AutoLockIntervalNone=0,i.AutoLockIntervalImmediate=1,i.AutoLockIntervalOneMinute=6e4,i.AutoLockIntervalFiveMinutes=3e5,i.AutoLockIntervalOneHour=36e5,i.AutoLockIntervalKey="AutoLockIntervalKey",G()?(this.$rootScope.$on("window-lost-focus",function(){n.documentVisibilityChanged(!1)}),this.$rootScope.$on("window-gained-focus",function(){n.documentVisibilityChanged(!0)})):(document.addEventListener("visibilitychange",function(e){var t="visible"==document.visibilityState;n.documentVisibilityChanged(t)}),this.pollFocusTimeout=setInterval(function(){var e=document.hasFocus();e&&"hidden"==n.lastFocusState?n.documentVisibilityChanged(!0):e||"visible"!=n.lastFocusState||n.documentVisibilityChanged(!1),n.lastFocusState=e?"visible":"hidden"},i.AutoLockPollFocusInterval))}},{key:"getAutoLockIntervalOptions",value:function(){return[{value:i.AutoLockIntervalNone,label:"Off"},{value:i.AutoLockIntervalImmediate,label:"Immediately"},{value:i.AutoLockIntervalOneMinute,label:"1m"},{value:i.AutoLockIntervalFiveMinutes,label:"5m"},{value:i.AutoLockIntervalOneHour,label:"1h"}]}},{key:"documentVisibilityChanged",value:function(e){e?(this.lockAfterDate&&new Date>this.lockAfterDate&&!this.isLocked()?this.lockApplication():this.isLocked()||this.syncManager.sync(),this.cancelAutoLockTimer()):this.beginAutoLockTimer(),this.notifiyVisibilityObservers(e)}},{key:"beginAutoLockTimer",value:(e=(0,y.default)($.default.mark(function e(){var t,n,r=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAutoLockInterval();case 2:if((t=e.sent)==i.AutoLockIntervalNone)return e.abrupt("return");e.next=5;break;case 5:n=function(e){var t=new Date;return t.setSeconds(t.getSeconds()+e),t},this.lockAfterDate=n(t/1e3),this.lockTimeout=setTimeout(function(){r.lockApplication(),r.lockAfterDate=null},t);case 8:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"cancelAutoLockTimer",value:function(){clearTimeout(this.lockTimeout),this.lockAfterDate=null}}]),i}();angular.module("app").service("passcodeManager",le);var de=function(e){function m(n,r,e,t,i,a,o,s){var c,u,l,d,f,p,h;return(0,v.default)(this,m),(c=(0,g.default)(this,(0,k.default)(m).call(this,i,e,t))).$rootScope=o,c.$compile=s,c.setDelegate({isOffline:(h=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",r.offline());case 1:case"end":return e.stop()}},e)})),function(){return h.apply(this,arguments)}),hasLocalPasscode:(p=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n.hasPasscode());case 1:case"end":return e.stop()}},e)})),function(){return p.apply(this,arguments)}),saveToStorage:(f=(0,y.default)($.default.mark(function e(t,n){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.setItem(t,n,a.bestStorageMode()));case 1:case"end":return e.stop()}},e)})),function(e,t){return f.apply(this,arguments)}),getFromStorage:(d=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.getItem(t,a.bestStorageMode()));case 1:case"end":return e.stop()}},e)})),function(e){return d.apply(this,arguments)}),verifyAccountPassword:(l=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",r.verifyAccountPassword(t));case 1:case"end":return e.stop()}},e)})),function(e){return l.apply(this,arguments)}),verifyLocalPasscode:(u=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",n.verifyPasscode(t));case 1:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})}),c}return m.$inject=["passcodeManager","authManager","syncManager","singletonManager","modelManager","storageManager","$rootScope","$compile"],(0,p.default)(m,e),(0,f.default)(m,[{key:"presentPrivilegesModal",value:function(e,t,n){var r=this;if(this.authenticationInProgress())n&&n();else{var i=this.$rootScope.$new(!0);i.action=e,i.onSuccess=function(){t&&t(),r.currentAuthenticationElement=null},i.onCancel=function(){n&&n(),r.currentAuthenticationElement=null};var a=this.$compile("<privileges-auth-modal action='action' on-success='onSuccess' on-cancel='onCancel' class='sk-modal'></privileges-auth-modal>")(i);angular.element(document.body).append(a),this.currentAuthenticationElement=a}}},{key:"presentPrivilegesManagementModal",value:function(){var e=this.$rootScope.$new(!0),t=this.$compile("<privileges-management-modal class='sk-modal'></privileges-management-modal>")(e);angular.element(document.body).append(t)}},{key:"authenticationInProgress",value:function(){return null!=this.currentAuthenticationElement}}]),m}(SFPrivilegesManager);angular.module("app").service("privilegesManager",de);var fe=function(e){function s(e,t,i,a,n){var r;(0,v.default)(this,s),SFItemHistory.HistoryEntryClassMapping={Note:Y},a.addPasscodeChangeObserver(function(){r.saveToDisk()});var o=function(){var e=(0,y.default)($.default.mark(function e(){var t,n,r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t=i.offline())){e.next=5;break}e.t0=a.passcodeAuthParams(),e.next=8;break;case 5:return e.next=7,i.getAuthParams();case 7:e.t0=e.sent;case 8:if(n=e.t0,!t){e.next=13;break}e.t1=a.keys(),e.next=16;break;case 13:return e.next=15,i.keys();case 15:e.t1=e.sent;case 16:return r=e.t1,e.abrupt("return",{keys:r,offline:t,auth_params:n});case 18:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}();return r=(0,g.default)(this,(0,k.default)(s).call(this,e,t,o,["Note"],n))}return s.$inject=["modelManager","storageManager","authManager","passcodeManager","$timeout"],(0,p.default)(s,e),s}(SFSessionHistoryManager);angular.module("app").service("sessionHistory",fe);var pe=function(e){function n(e,t){return(0,v.default)(this,n),(0,g.default)(this,(0,k.default)(n).call(this,e,t))}return n.$inject=["modelManager","syncManager"],(0,p.default)(n,e),n}(SFSingletonManager);angular.module("app").service("singletonManager",pe);var he=function(){function e(){(0,v.default)(this,e),this.statuses=[],this.observers=[]}return(0,f.default)(e,[{key:"statusFromString",value:function(e){return{string:e}}},{key:"replaceStatusWithString",value:function(e,t){return this.removeStatus(e),this.addStatusFromString(t)}},{key:"addStatusFromString",value:function(e){return this.addStatus(this.statusFromString(e))}},{key:"addStatus",value:function(e){if("object"===(0,i.default)(e))return this.statuses.push(e),this.notifyObservers(),e;console.error("Attempting to set non-object status",e)}},{key:"removeStatus",value:function(e){return _.pull(this.statuses,e),this.notifyObservers(),null}},{key:"getStatusString",value:function(){var n="";return this.statuses.forEach(function(e,t){0<t&&(n+=" "),n+=e.string}),n}},{key:"notifyObservers",value:function(){var e=!0,t=!1,n=void 0;try{for(var r,i=this.observers[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){(0,r.value)(this.getStatusString())}}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}}},{key:"addStatusObserver",value:function(e){this.observers.push(e)}},{key:"removeStatusObserver",value:function(e){_.pull(this.statuses,e)}}]),e}();angular.module("app").service("statusManager",he);var me=function(){function e(){(0,v.default)(this,e),this.memory={}}return(0,f.default)(e,[{key:"getItem",value:function(e){return this.memory[e]||null}},{key:"getItemSync",value:function(e){return this.getItem(e)}},{key:"setItem",value:function(e,t){this.memory[e]=t}},{key:"removeItem",value:function(e){delete this.memory[e]}},{key:"clear",value:function(){this.memory={}}},{key:"keys",value:function(){return Object.keys(this.memory)}},{key:"key",value:function(e){return Object.keys(this.memory)[e]}},{key:"length",get:function(){return Object.keys(this.memory).length}}]),e}(),ve=function(e){function o(e,t){var n;return(0,v.default)(this,o),(n=(0,g.default)(this,(0,k.default)(o).call(this))).dbManager=e,n.alertManager=t,n}var t,n,r,i,a,s,c,u,l,d;return o.$inject=["dbManager","alertManager"],(0,p.default)(o,e),(0,f.default)(o,[{key:"initialize",value:function(e,t){e?(this.storage=this.memoryStorage,this.itemsStorageMode=o.FixedEncrypted):t?(this.storage=this.memoryStorage,this.itemsStorageMode=o.Ephemeral):(this.storage=localStorage,this.itemsStorageMode=o.Fixed),this.modelStorageMode=t?o.Ephemeral:o.Fixed}},{key:"setItemsMode",value:function(e,t){var n=this.getVault(e);if(n!==this.storage||e!==this.itemsStorageMode||t){for(var r=this.storage.length,i=0;i<r;i++){var a=this.storage.key(i);n.setItem(a,this.storage.getItem(a))}this.itemsStorageMode=e,n!==this.storage&&this.storage.clear(),this.storage=n,e==o.FixedEncrypted?this.writeEncryptedStorageToDisk():e==o.Fixed&&this.removeItem("encryptedStorage",o.Fixed)}}},{key:"getVault",value:function(e){return e?e==o.Ephemeral||e==o.FixedEncrypted?this.memoryStorage:localStorage:this.storage}},{key:"setItem",value:(d=(0,y.default)($.default.mark(function e(t,n,r){var i;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:i=this.getVault(r);try{i.setItem(t,n)}catch(e){console.error("Exception while trying to setItem in StorageManager:",e),this.alertManager.alert({text:"The application's local storage is out of space. If you have Session History save-to-disk enabled, please disable it, and try again."})}r!==o.FixedEncrypted&&(r||this.itemsStorageMode!==o.FixedEncrypted)||this.writeEncryptedStorageToDisk();case 3:case"end":return e.stop()}},e,this)})),function(e,t,n){return d.apply(this,arguments)})},{key:"getItem",value:(l=(0,y.default)($.default.mark(function e(t,n){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getItemSync(t,n));case 1:case"end":return e.stop()}},e,this)})),function(e,t){return l.apply(this,arguments)})},{key:"getItemSync",value:function(e,t){return this.getVault(t).getItem(e)}},{key:"removeItem",value:(u=(0,y.default)($.default.mark(function e(t,n){var r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.getVault(n),e.abrupt("return",r.removeItem(t));case 2:case"end":return e.stop()}},e,this)})),function(e,t){return u.apply(this,arguments)})},{key:"clear",value:(c=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.memoryStorage.clear(),localStorage.clear();case 2:case"end":return e.stop()}},e,this)})),function(){return c.apply(this,arguments)})},{key:"storageAsHash",value:function(){for(var e={},t=this.storage.length,n=0;n<t;n++){var r=this.storage.key(n);e[r]=this.storage.getItem(r)}return e}},{key:"setKeys",value:function(e,t){this.encryptedStorageKeys=e,this.encryptedStorageAuthParams=t}},{key:"writeEncryptedStorageToDisk",value:function(){var t=this,e=new N;e.content.storage=this.storageAsHash(),new SFItemParams(e,this.encryptedStorageKeys,this.encryptedStorageAuthParams).paramsForSync().then(function(e){t.setItem("encryptedStorage",JSON.stringify(e),o.Fixed)})}},{key:"decryptStorage",value:(s=(0,y.default)($.default.mark(function e(){var t,n,r,i,a;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=JSON.parse(this.getItemSync("encryptedStorage",o.Fixed)),e.next=3,SFJS.itemTransformer.decryptItem(t,this.encryptedStorageKeys);case 3:for(n=new N(t),r=0,i=Object.keys(n.content.storage);r<i.length;r++)a=i[r],this.setItem(a,n.storage[a]);case 5:case"end":return e.stop()}},e,this)})),function(){return s.apply(this,arguments)})},{key:"hasPasscode",value:function(){return null!==this.getItemSync("encryptedStorage",o.Fixed)}},{key:"bestStorageMode",value:function(){return this.hasPasscode()?o.FixedEncrypted:o.Fixed}},{key:"setModelStorageMode",value:function(e){e!=this.modelStorageMode&&(e==o.Ephemeral&&this.dbManager.clearAllModels(null),this.modelStorageMode=e)}},{key:"getAllModels",value:(a=(0,y.default)($.default.mark(function e(){var n=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){n.modelStorageMode==o.Fixed?n.dbManager.getAllModels(e):e()}));case 1:case"end":return e.stop()}},e)})),function(){return a.apply(this,arguments)})},{key:"saveModel",value:(i=(0,y.default)($.default.mark(function e(t){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.saveModels([t]));case 1:case"end":return e.stop()}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"saveModels",value:(r=(0,y.default)($.default.mark(function e(n,t,r){var i=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){i.modelStorageMode==o.Fixed?i.dbManager.saveModels(n,e,t):e()}));case 1:case"end":return e.stop()}},e)})),function(e,t,n){return r.apply(this,arguments)})},{key:"deleteModel",value:(n=(0,y.default)($.default.mark(function e(n){var r=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){r.modelStorageMode==o.Fixed?r.dbManager.deleteModel(n,e):e()}));case 1:case"end":return e.stop()}},e)})),function(e){return n.apply(this,arguments)})},{key:"clearAllModels",value:(t=(0,y.default)($.default.mark(function e(){var n=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){n.dbManager.clearAllModels(e)}));case 1:case"end":return e.stop()}},e)})),function(){return t.apply(this,arguments)})},{key:"memoryStorage",get:function(){return this._memoryStorage||(this._memoryStorage=new me),this._memoryStorage}}]),o}(SFStorageManager);ve.FixedEncrypted="FixedEncrypted",ve.Ephemeral="Ephemeral",ve.Fixed="Fixed",angular.module("app").service("storageManager",ve);var ge=function(e){function c(e,t,n,r,i,a,o){var s;return(0,v.default)(this,c),(s=(0,g.default)(this,(0,k.default)(c).call(this,e,t,n,r,i))).$rootScope=o,s.$compile=a,s.contentTypeLoadPriority=["SN|UserPreferences","SN|Privileges","SN|Component","SN|Theme"],s}return c.$inject=["modelManager","storageManager","httpManager","$timeout","$interval","$compile","$rootScope"],(0,p.default)(c,e),(0,f.default)(c,[{key:"presentConflictResolutionModal",value:function(e,t){var n=this.$rootScope.$new(!0);n.item1=e[0],n.item2=e[1],n.callback=t;var r=this.$compile("<conflict-resolution-modal item1='item1' item2='item2' callback='callback' class='sk-modal'></conflict-resolution-modal>")(n);angular.element(document.body).append(r)}}]),c}(SFSyncManager);angular.module("app").service("syncManager",ge);var ye,ke,be=function(){function o(e,t,n,r,i){var a=this;(0,v.default)(this,o),this.componentManager=e,this.storageManager=n,this.desktopManager=t,this.activeThemes=[],o.CachedThemesKey="cachedThemes",this.registerObservers(),r.addPasscodeChangeObserver(function(){a.cacheThemes()}),t.isDesktop?i.$on("desktop-did-set-ext-server-host",function(){a.activateCachedThemes()}):this.activateCachedThemes()}var e,t;return o.$inject=["componentManager","desktopManager","storageManager","passcodeManager","$rootScope"],(0,f.default)(o,[{key:"activateCachedThemes",value:function(){var e=this.getCachedThemes(),t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;this.activateTheme(o,!1)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}},{key:"registerObservers",value:function(){var t=this;this.desktopManager.registerUpdateObserver(function(e){e.active&&e.isTheme()&&(t.deactivateTheme(e),setTimeout(function(){t.activateTheme(e)},10))}),this.componentManager.registerHandler({identifier:"themeManager",areas:["themes"],activationHandler:function(e){e.active?t.activateTheme(e):t.deactivateTheme(e)}})}},{key:"hasActiveTheme",value:function(){return 0<this.componentManager.getActiveThemes().length}},{key:"deactivateAllThemes",value:function(){var e=this.componentManager.getActiveThemes(),t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;o&&this.componentManager.deactivateComponent(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}this.decacheThemes()}},{key:"activateTheme",value:function(e,t){var n=!(1<arguments.length&&void 0!==t)||t;if(!_.find(this.activeThemes,{uuid:e.uuid})){this.activeThemes.push(e);var r=this.componentManager.urlForComponent(e),i=document.createElement("link");i.href=r,i.type="text/css",i.rel="stylesheet",i.media="screen,print",i.id=e.uuid,document.getElementsByTagName("head")[0].appendChild(i),n&&this.cacheThemes()}}},{key:"deactivateTheme",value:function(e){var t=document.getElementById(e.uuid);t&&(t.disabled=!0,t.parentNode.removeChild(t)),_.remove(this.activeThemes,{uuid:e.uuid}),this.cacheThemes()}},{key:"cacheThemes",value:(t=(0,y.default)($.default.mark(function e(){var t,n;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(this.activeThemes.map(function(){var t=(0,y.default)($.default.mark(function e(t){var n,r;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new SFItemParams(t),e.next=3,n.paramsForLocalStorage();case 3:return r=e.sent,e.abrupt("return",r);case 5:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()));case 2:return t=e.sent,n=JSON.stringify(t),e.abrupt("return",this.storageManager.setItem(o.CachedThemesKey,n,ve.Fixed));case 5:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"decacheThemes",value:(e=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.storageManager.removeItem(o.CachedThemesKey,ve.Fixed));case 1:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"getCachedThemes",value:function(){var e=this.storageManager.getItemSync(o.CachedThemesKey,ve.Fixed);return e?JSON.parse(e).map(function(e){return new q(e)}):[]}}]),o}();angular.module("app").service("themeManager",be),angular.module("app").filter("appDate",["$filter",function(t){return function(e){return e?t("date")(new Date(e),"MM/dd/yyyy","UTC"):""}}]).filter("appDateTime",["$filter",function(t){return function(e){return"undefined"!=typeof Intl&&Intl.DateTimeFormat?(ke||(ye=navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language,ke=new Intl.DateTimeFormat(ye,{year:"numeric",month:"numeric",day:"2-digit",hour:"2-digit",minute:"2-digit"})),ke.format(e)):e?t("date")(new Date(e),"MM/dd/yyyy h:mm a"):""}}]),angular.module("app").filter("trusted",["$sce",function(t){return function(e){return t.trustAsResourceUrl(e)}}]),angular.module("app").directive("snAutofocus",["$timeout",function(n){return{restrict:"A",scope:{shouldFocus:"="},link:function(e,t){n(function(){e.shouldFocus&&t[0].focus()})}}}]),angular.module("app").directive("clickOutside",["$document",function(i){return{restrict:"A",replace:!1,link:function(t,e,n){var r=!1;e.bind("click",function(e){r=!1,n.isOpen&&e.stopPropagation()}),i.bind("click",function(e){e.target.closest(".sk-modal")||r||(t.$apply(n.clickOutside),r=!0)})}}}]),angular.module("app").directive("delayHide",["$timeout",function(i){return{restrict:"A",scope:{show:"=",delay:"@"},link:function(t,n){function r(e){e?n.css({display:""}):n.css({display:"none"})}r(!1),t.$watch("show",function(e){e?function(){t.hidePromise&&(i.cancel(t.hidePromise),t.hidePromise=null);r(!0)}():function(){t.hidePromise=i(r.bind(this,!1),function(){var e=parseInt(t.delay);return angular.isNumber(e)?e:200}())}()})}}}]),angular.module("app").directive("elemReady",["$parse",function(r){return{restrict:"A",link:function(e,t,n){t.ready(function(){e.$apply(function(){r(n.elemReady)(e)})})}}}]),angular.module("app").directive("fileChange",function(){return{restrict:"A",scope:{handler:"&"},link:function(t,e){e.on("change",function(e){t.$apply(function(){t.handler({files:e.target.files})})})}}}),angular.module("app").directive("infiniteScroll",["$rootScope","$window","$timeout",function(e,t,n){return{link:function(e,t,n){var r=parseInt(n.threshold)||0,i=t[0];t.on("scroll",function(){e.$eval(n.canLoad)&&i.scrollTop+i.offsetHeight>=i.scrollHeight-r&&e.$apply(n.infiniteScroll)})}}}]),angular.module("app").directive("lowercase",function(){return{require:"ngModel",link:function(e,t,n,r){function i(e){null==e&&(e="");var t=e.toLowerCase();return t!==e&&(r.$setViewValue(t),r.$render()),t}r.$parsers.push(i),i(e[n.ngModel])}}}),angular.module("app").directive("selectOnClick",["$window",function(n){return{restrict:"A",link:function(e,t){t.on("focus",function(){n.getSelection().toString()||this.setSelectionRange(0,this.value.length)})}}}]),angular.module("app").directive("snEnter",function(){return function(t,e,n){e.bind("keydown keypress",function(e){13===e.which&&(t.$apply(function(){t.$eval(n.snEnter,{event:e})}),e.preventDefault())})}});var we=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/account-menu.html",this.scope={onSuccessfulAuth:"&",closeFunction:"&"}}return(0,f.default)(e,[{key:"controller",value:["$scope","$rootScope","authManager","modelManager","syncManager","storageManager","dbManager","passcodeManager","$timeout","$compile","archiveManager","privilegesManager","appVersion","alertManager",function(r,n,i,d,f,a,e,o,s,t,c,u,l,p){r.appVersion="v"+(window.electronAppVersion||l),r.formData={mergeLocal:!0,ephemeral:!1},r.user=i.user,f.getServerURL().then(function(e){s(function(){r.server=e,r.formData.url=e})}),i.checkForSecurityUpdate().then(function(e){r.securityUpdateAvailable=e}),r.close=function(){s(function(){r.closeFunction()()})},r.encryptedBackupsAvailable=function(){return i.user||o.hasPasscode()},r.canAddPasscode=!i.isEphemeralSession(),r.syncStatus=f.syncStatus,r.submitMfaForm=function(){var e={};e[r.formData.mfa.payload.mfa_key]=r.formData.userMfaCode,r.login(e)},r.submitAuthForm=function(){r.formData.email&&r.formData.user_password&&(r.formData.showLogin?r.login():r.register())},r.login=function(e){f.lockSyncing(),r.formData.status="Generating Login Keys...",r.formData.authenticating=!0,s(function(){i.login(r.formData.url,r.formData.email,r.formData.user_password,r.formData.ephemeral,r.formData.strictSignin,e).then(function(t){s(function(){if(!t||t.error){f.unlockSyncing(),r.formData.status=null;var e=t?t.error:{message:"An unknown error occured."};"mfa-required"==e.tag||"mfa-invalid"==e.tag?(r.formData.showLogin=!1,r.formData.mfa=e):(r.formData.showLogin=!0,r.formData.mfa=null,e.message&&p.alert({text:e.message})),r.formData.authenticating=!1}else r.onAuthSuccess(function(){f.unlockSyncing(),f.sync({performIntegrityCheck:!0})})})})})},r.register=function(){r.formData.password_conf===r.formData.user_password?(r.formData.confirmPassword=!1,r.formData.status="Generating Account Keys...",r.formData.authenticating=!0,s(function(){i.register(r.formData.url,r.formData.email,r.formData.user_password,r.formData.ephemeral).then(function(t){s(function(){if(!t||t.error){r.formData.status=null;var e=t?t.error:{message:"An unknown error occured."};r.formData.authenticating=!1,p.alert({text:e.message})}else r.onAuthSuccess(function(){f.sync()})})})})):p.alert({text:"The two passwords you entered do not match. Please try again."})},r.mergeLocalChanged=function(){r.formData.mergeLocal||p.confirm({text:"Unchecking this option means any of the notes you have written while you were signed out will be deleted. Are you sure you want to discard these notes?",destructive:!0,onCancel:function(){r.formData.mergeLocal=!0}})},r.onAuthSuccess=function(e){function t(){s(function(){r.formData.authenticating=!1,r.onSuccessfulAuth()(),f.refreshErroredItems(),e&&e()})}r.formData.mergeLocal?(n.$broadcast("major-data-change"),r.clearDatabaseAndRewriteAllItems(!0,t)):(d.removeAllItemsFromMemory(),a.clearAllModels().then(function(){t()}))},r.openPasswordWizard=function(e){r.close(),i.presentPasswordWizard(e)},r.openPrivilegesModal=(0,y.default)($.default.mark(function e(){var t;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r.close(),t=function(){s(function(){u.presentPrivilegesManagementModal()})},e.next=4,u.actionRequiresPrivilege(de.ActionManagePrivileges);case 4:if(!e.sent){e.next=8;break}u.presentPrivilegesModal(de.ActionManagePrivileges,function(){t()}),e.next=9;break;case 8:t();case 9:case"end":return e.stop()}},e)})),r.clearDatabaseAndRewriteAllItems=function(e,t){a.clearAllModels().then(function(){f.markAllItemsDirtyAndSaveOffline(e).then(function(){t&&t()})})},r.destroyLocalData=function(){p.confirm({text:"Are you sure you want to end your session? This will delete all local items and extensions.",destructive:!0,onConfirm:function(){i.signout(!0).then(function(){window.location.reload()})}})},r.archiveFormData={encrypted:!!r.encryptedBackupsAvailable()},r.user=i.user,r.submitImportPassword=function(){r.performImport(r.importData.data,r.importData.password)},r.performImport=function(e,t){r.importData.loading=!0,s(function(){r.importJSONData(e,t,function(t,n){s(function(){r.importData.loading=!1,r.importData=null,setTimeout(function(){if(t&&t.error)p.alert({text:"There was an error importing your data. Please try again."});else if(0<n){var e="Import complete. ".concat(n," items were not imported because there was an error decrypting them. Make sure the password is correct and try again.");p.alert({text:e})}else p.alert({text:"Your data has been successfully imported."})},10)})})})},r.importFileSelected=function(){var t=(0,y.default)($.default.mark(function e(n){var t;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=function(){s(function(){r.importData={};var e=n[0],t=new FileReader;t.onload=function(e){try{var t=JSON.parse(e.target.result);s(function(){t.auth_params?(r.importData.requestPassword=!0,r.importData.data=t,s(function(){var e=document.getElementById("import-password-request");e&&e.scrollIntoView(!1)})):r.performImport(t,null)})}catch(e){p.alert({text:"Unable to open file. Ensure it is a proper JSON file and try again."})}},t.readAsText(e)})},e.next=3,u.actionRequiresPrivilege(de.ActionManageBackups);case 3:if(!e.sent){e.next=7;break}u.presentPrivilegesModal(de.ActionManageBackups,function(){t()}),e.next=8;break;case 7:t();case 8:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),r.importJSONData=function(u,e,l){var n=function(){var t=(0,y.default)($.default.mark(function e(t){var n,r,i,a,o,s,c;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.importItems(u.items);case 2:for(n=e.sent,i=!(r=!0),a=void 0,e.prev=6,o=n[Symbol.iterator]();!(r=(s=o.next()).done);r=!0)"SN|Component"==(c=s.value).content_type&&(c.active=!1);e.next=14;break;case 10:e.prev=10,e.t0=e.catch(6),i=!0,a=e.t0;case 14:e.prev=14,e.prev=15,r||null==o.return||o.return();case 17:if(e.prev=17,i)throw a;e.next=20;break;case 20:return e.finish(17);case 21:return e.finish(14);case 22:f.sync().then(function(e){l(e,t)});case 23:case"end":return e.stop()}},e,null,[[6,10,14,22],[15,,17,21]])}));return function(e){return t.apply(this,arguments)}}();u.auth_params?SFJS.crypto.computeEncryptionKeysForUser(e,u.auth_params).then(function(e){try{SFJS.itemTransformer.decryptMultipleItems(u.items,e,!1).then(function(){u.items.forEach(function(e){e.enc_item_key=null,e.auth_hash=null});var t=0;u.items=u.items.filter(function(e){return!e.errorDecrypting||(t++,!1)}),n(t)})}catch(e){return console.log("Error decrypting",e),p.alert({text:"There was an error decrypting your items. Make sure the password you entered is correct and try again."}),void l(null)}}):n()},r.downloadDataArchive=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:c.downloadBackup(r.archiveFormData.encrypted);case 1:case"end":return e.stop()}},e)})),r.notesAndTagsCount=function(){return d.allItemsMatchingTypes(["Note","Tag"]).length},r.encryptionStatusForNotes=function(){var e=r.notesAndTagsCount();return e+"/"+e+" notes and tags encrypted"},r.encryptionEnabled=function(){return o.hasPasscode()||!i.offline()},r.encryptionSource=function(){return i.offline()?o.hasPasscode()?"Local Passcode":null:"Account keys"},r.encryptionStatusString=function(){return i.offline()?o.hasPasscode()?"Encryption is enabled. Your data is encrypted using your passcode before it is saved to your device storage.":"Encryption is not enabled. Sign in, register, or add a passcode lock to enable encryption.":"End-to-end encryption is enabled. Your data is encrypted on your device first, then synced to your private cloud."},r.passcodeAutoLockOptions=o.getAutoLockIntervalOptions(),r.reloadAutoLockInterval=function(){o.getAutoLockInterval().then(function(e){s(function(){r.selectedAutoLockInterval=e})})},r.reloadAutoLockInterval(),r.selectAutoLockInterval=function(){var t=(0,y.default)($.default.mark(function e(t){var n;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(){var e=(0,y.default)($.default.mark(function e(){return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.setAutoLockInterval(t);case 2:s(function(){r.reloadAutoLockInterval()});case 3:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}(),e.next=3,u.actionRequiresPrivilege(de.ActionManagePasscode);case 3:if(!e.sent){e.next=7;break}u.presentPrivilegesModal(de.ActionManagePasscode,function(){n()}),e.next=8;break;case 7:n();case 8:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),r.hasPasscode=function(){return o.hasPasscode()},r.addPasscodeClicked=function(){r.formData.showPasscodeForm=!0},r.submitPasscodeForm=function(){var e=r.formData.passcode;e===r.formData.confirmPasscode?(r.formData.changingPasscode?o.changePasscode.bind(o):o.setPasscode.bind(o))(e,function(){s(function(){r.formData.passcode=null,r.formData.confirmPasscode=null,r.formData.showPasscodeForm=!1,i.offline()&&(n.$broadcast("major-data-change"),r.clearDatabaseAndRewriteAllItems(!1))})}):p.alert({text:"The two passcodes you entered do not match. Please try again."})},r.changePasscodePressed=(0,y.default)($.default.mark(function e(){var t;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=function(){s(function(){r.formData.changingPasscode=!0,r.addPasscodeClicked()})},e.next=3,u.actionRequiresPrivilege(de.ActionManagePasscode);case 3:if(!e.sent){e.next=7;break}u.presentPrivilegesModal(de.ActionManagePasscode,function(){t()}),e.next=8;break;case 7:t();case 8:case"end":return e.stop()}},e)})),r.removePasscodePressed=(0,y.default)($.default.mark(function e(){var t;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=function(){s(function(){var e="Are you sure you want to remove your local passcode?";i.offline()&&(e+=" This will remove encryption from your local data."),p.confirm({text:e,destructive:!0,onConfirm:function(){o.clearPasscode(),i.offline()&&f.markAllItemsDirtyAndSaveOffline()}})})},e.next=3,u.actionRequiresPrivilege(de.ActionManagePasscode);case 3:if(!e.sent){e.next=7;break}u.presentPrivilegesModal(de.ActionManagePasscode,function(){t()}),e.next=8;break;case 7:t();case 8:case"end":return e.stop()}},e)})),r.isDesktopApplication=function(){return G()}}]}]),e}();angular.module("app").directive("accountMenu",function(){return new we});var xe=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/actions-menu.html",this.scope={item:"="}}return(0,f.default)(e,[{key:"controller",value:["$scope","modelManager","actionsManager",function(i,e,a){i.extensions=a.extensions.sort(function(e,t){return e.name.toLowerCase()<t.name.toLowerCase()?-1:1});var t=!0,n=!1,r=void 0;try{for(var o,s=function(){var t=o.value;t.loading=!0,a.loadExtensionInContextOfItem(t,i.item,function(e){t.loading=!1})},c=i.extensions[Symbol.iterator]();!(t=(o=c.next()).done);t=!0)s()}catch(e){n=!0,r=e}finally{try{t||null==c.return||c.return()}finally{if(n)throw r}}i.executeAction=function(n,r,e){"nested"!=n.verb?(n.running=!0,a.executeAction(n,r,i.item,function(e,t){t||(n.running=!1,i.handleActionResponse(n,e),a.loadExtensionInContextOfItem(r,i.item,function(e){}))})):n.subrows?n.subrows=null:n.subrows=i.subRowsForAction(n,r)},i.handleActionResponse=function(e,t){switch(e.verb){case"render":var n=t.item;a.presentRevisionPreviewModal(n.uuid,n.content)}},i.subRowsForAction=function(t,n){var r=this;return t.subactions?t.subactions.map(function(e){return{onClick:function(){r.executeAction(e,n,t)},label:e.label,subtitle:e.desc,spinnerClass:e.running?"info":null}}):null}}]}]),e}();angular.module("app").directive("actionsMenu",function(){return new xe});var Se=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/component-modal.html",this.scope={show:"=",component:"=",callback:"=",onDismiss:"&"}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.el=t}},{key:"controller",value:["$scope","$timeout","componentManager",function(t){t.dismiss=function(e){t.el.remove(),t.$destroy(),t.onDismiss&&t.onDismiss()&&t.onDismiss()(t.component),e&&e()}}]}]),e}();angular.module("app").directive("componentModal",function(){return new Se});var $e=function(){function a(e,t,n,r,i){(0,v.default)(this,a),this.restrict="E",this.templateUrl="directives/component-view.html",this.scope={component:"=",onLoad:"=?",manualDealloc:"=?"},this.desktopManager=n}return(0,f.default)(a,[{key:"link",value:function(t,e,n,r){t.el=e,t.componentValid=!0,t.updateObserver=this.desktopManager.registerUpdateObserver(function(e){e==t.component&&e.active&&t.reloadComponent()}),t.$watch("component",function(e,t){r.componentValueChanging(e,t)})}},{key:"controller",value:["$scope","$rootScope","$timeout","componentManager","desktopManager","themeManager",function(a,o,s,c,e,t){a.onVisibilityChange=function(){"hidden"!=document.visibilityState&&a.issueLoading&&a.reloadComponent()},a.themeHandlerIdentifier="component-view-"+Math.random(),c.registerHandler({identifier:a.themeHandlerIdentifier,areas:["themes"],activationHandler:function(){a.reloadThemeStatus()}}),a.identifier="component-view-"+Math.random(),c.registerHandler({identifier:a.identifier,areas:[a.component.area],activationHandler:function(e){e===a.component&&s(function(){a.handleActivation()})},actionHandler:function(e,t,n){"set-size"==t&&c.handleSetSizeEvent(e,n)}}),a.handleActivation=function(){var n=a.component;if(n.active){var r=c.iframeForComponent(n);r&&(a.loading=!0,a.loadTimeout&&s.cancel(a.loadTimeout),a.loadTimeout=s(function(){a.loading&&(a.loading=!1,a.issueLoading=!0,a.didAttemptReload?document.addEventListener("visibilitychange",a.onVisibilityChange):(a.didAttemptReload=!0,a.reloadComponent()))},3500),r.onload=function(e){var t=!1;try{!G()||null!=r.contentWindow.origin&&"null"!=r.contentWindow.origin||(t=!0)}catch(e){}s.cancel(a.loadTimeout),c.registerComponentWindow(n,r.contentWindow).then(function(){s(function(){a.loading=!1,a.issueLoading=t,a.onLoad&&a.onLoad(a.component)},7)})})}},this.componentValueChanging=function(e,t){t&&e!==t&&c.deactivateComponent(t,!0),e&&(c.activateComponent(e,!0),a.reloadStatus())},a.$on("ext-reload-complete",function(){a.reloadStatus(!1)}),a.reloadComponent=function(){a.componentValid=!1,c.reloadComponent(a.component).then(function(){a.reloadStatus()})},a.reloadStatus=function(){var e=!(0<arguments.length&&void 0!==arguments[0])||arguments[0],t=a.component;a.reloading=!0;var n=a.componentValid,r=t.offlineOnly&&!G(),i=!G()&&!t.hasValidHostedUrl()||G()&&!t.local_url&&!t.hasValidHostedUrl();a.expired=t.valid_until&&t.valid_until<=new Date,t.lockReadonly||(t.readonly=a.expired),a.componentValid=!r&&!i,a.componentValid||(a.loading=!1),a.error=r?"offline-restricted":i?"url-missing":null,a.componentValid!==n&&a.componentValid&&c.reloadComponent(t,!0),a.expired&&e&&o.$broadcast("reload-ext-data"),a.reloadThemeStatus(),s(function(){a.reloading=!1},500)},a.reloadThemeStatus=function(){a.component.acceptsThemes()||(t.hasActiveTheme()?a.dismissedNoThemesMessage||(a.showNoThemesMessage=!0):a.showNoThemesMessage=!1)},a.noThemesMessageDismiss=function(){a.showNoThemesMessage=!1,a.dismissedNoThemesMessage=!0},a.disableActiveTheme=function(){t.deactivateAllThemes(),a.noThemesMessageDismiss()},a.getUrl=function(){var e=c.urlForComponent(a.component);return a.component.runningLocally=e==a.component.local_url,e},a.destroy=function(){c.deregisterHandler(a.themeHandlerIdentifier),c.deregisterHandler(a.identifier),a.component&&!a.manualDealloc&&c.deactivateComponent(a.component,!0),e.deregisterUpdateObserver(a.updateObserver),document.removeEventListener("visibilitychange",a.onVisibilityChange)},a.$on("$destroy",function(){a.destroy()})}]}]),a}();angular.module("app").directive("componentView",["$rootScope","componentManager","desktopManager","$timeout",function(e,t,n,r){return new $e(e,t,n,r)}]);var _e=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/conflict-resolution-modal.html",this.scope={item1:"=",item2:"=",callback:"="}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.dismiss=function(){t.remove()}}},{key:"controller",value:["$scope","modelManager","syncManager","archiveManager","alertManager",function(e,t,n,r,i){e.createContentString=function(e){return JSON.stringify(Object.assign({created_at:e.created_at,updated_at:e.updated_at},e.content),null,2)},e.contentType=e.item1.content_type,e.item1Content=e.createContentString(e.item1),e.item2Content=e.createContentString(e.item2),e.keepItem1=function(){i.confirm({text:"Are you sure you want to delete the item on the right?",destructive:!0,onConfirm:function(){t.setItemToBeDeleted(e.item2),n.sync().then(function(){e.applyCallback()}),e.dismiss()}})},e.keepItem2=function(){i.confirm({text:"Are you sure you want to delete the item on the left?",destructive:!0,onConfirm:function(){t.setItemToBeDeleted(e.item1),n.sync().then(function(){e.applyCallback()}),e.dismiss()}})},e.keepBoth=function(){e.applyCallback(),e.dismiss()},e.export=function(){r.downloadBackupOfItems([e.item1,e.item2],!0)},e.applyCallback=function(){e.callback&&e.callback()}}]}]),e}();angular.module("app").directive("conflictResolutionModal",function(){return new _e});var Me=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/editor-menu.html",this.scope={callback:"&",selectedEditor:"=",currentItem:"="}}return(0,f.default)(e,[{key:"controller",value:["$scope","componentManager","syncManager","modelManager","$timeout",function(n,r,i,a,t){n.formData={},n.editors=r.componentsForArea("editor-editor").sort(function(e,t){return e.name.toLowerCase()<t.name.toLowerCase()?-1:1}),n.isDesktop=G(),n.defaultEditor=n.editors.filter(function(e){return e.isDefaultEditor()})[0],n.selectComponent=function(e){e&&e.content.conflict_of&&(e.content.conflict_of=null,a.setItemDirty(e,!0),i.sync()),t(function(){n.callback()(e)})},n.toggleDefaultForEditor=function(e){n.defaultEditor==e?n.removeEditorDefault(e):n.makeEditorDefault(e)},n.offlineAvailableForComponent=function(e){return e.local_url&&G()},n.makeEditorDefault=function(e){var t=r.componentsForArea("editor-editor").filter(function(e){return e.isDefaultEditor()})[0];t&&(t.setAppDataItem("defaultEditor",!1),a.setItemDirty(t,!0)),e.setAppDataItem("defaultEditor",!0),a.setItemDirty(e,!0),i.sync(),n.defaultEditor=e},n.removeEditorDefault=function(e){e.setAppDataItem("defaultEditor",!1),a.setItemDirty(e,!0),i.sync(),n.defaultEditor=null},n.shouldDisplayRunningLocallyLabel=function(e){return!!e.runningLocally&&e==n.selectedEditor}}]}]),e}();angular.module("app").directive("editorMenu",function(){return new Me});var Ie=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/input-modal.html",this.scope={type:"=",title:"=",message:"=",placeholder:"=",callback:"&"}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.el=t}},{key:"controller",value:["$scope","modelManager","archiveManager","authManager","syncManager","$timeout",function(e){e.formData={},e.dismiss=function(){e.el.remove(),e.$destroy()},e.submit=function(){e.callback()(e.formData.input),e.dismiss()}}]}]),e}();angular.module("app").directive("inputModal",function(){return new Ie});var Ce=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.transclude=!0,this.templateUrl="directives/menu-row.html",this.scope={action:"&",circle:"=",circleAlign:"=",label:"=",subtitle:"=",hasButton:"=",buttonText:"=",buttonClass:"=",buttonAction:"&",spinnerClass:"=",subRows:"=",faded:"=",desc:"=",disabled:"=",stylekitClass:"="}}return(0,f.default)(e,[{key:"controller",value:["$scope","componentManager",function(t){t.onClick=function(e){t.disabled||(e.stopPropagation(),t.action())},t.clickButton=function(e){t.disabled||(e.stopPropagation(),t.buttonAction())}}]}]),e}();angular.module("app").directive("menuRow",function(){return new Ce});var Ae=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/panel-resizer.html",this.scope={index:"=",panelId:"=",onResize:"&",defaultWidth:"=",onResizeFinish:"&",control:"=",alwaysVisible:"=",minWidth:"=",property:"=",hoverable:"=",collapsable:"="}}return(0,f.default)(e,[{key:"link",value:function(t,e){t.elem=e,t.control.setWidth=function(e){t.setWidth(e,!0)},t.control.setLeft=function(e){t.setLeft(e)},t.control.flash=function(){t.flash()},t.control.isCollapsed=function(){return t.isCollapsed()}}},{key:"controller",value:["$scope","$element","modelManager","actionsManager","$timeout","$compile",function(o,e,t,n,r,i){var s=document.getElementById(o.panelId);s||console.log("Panel not found for",o.panelId);var a,c=e[0],u=c.offsetWidth,l=o.minWidth||u,d=!1,f=s.scrollWidth,p=0,h=f,m=s.offsetLeft,v=m;o.isAtMaxWidth=function(){return Math.round(h+v)==Math.round(y().width)},o.isCollapsed=function(){return h<=l};var g=0;function y(){return s.parentNode.getBoundingClientRect()}if(c.ondblclick=function(){r(function(){var e=o.isCollapsed();e?o.setWidth(g||o.defaultWidth):(g=h,o.setWidth(l)),o.finishSettingWidth();var t=!e;o.onResizeFinish()(h,v,o.isAtMaxWidth(),t)})},"right"==o.property){var k=function(r,i,a){var o;return function(){var e=this,t=arguments,n=a&&!o;clearTimeout(o),o=setTimeout(function(){o=null,a||r.apply(e,t)},i),n&&r.apply(e,t)}}(function(e){b(),w(),r(function(){o.finishSettingWidth()})},250);window.addEventListener("resize",k),o.$on("$destroy",function(){window.removeEventListener("resize",k)})}function b(){f=o.isAtMaxWidth()?y().width:s.scrollWidth,h=f,a=document.getElementById("app").getBoundingClientRect()}function w(e){var t;e?t=e.clientX:p=t=0;var n=f+(t-p);o.setWidth(n,!1),o.onResize()&&o.onResize()(h,s)}b(),o.alwaysVisible&&c.classList.add("always-visible"),o.hoverable&&c.classList.add("hoverable"),o.setWidth=function(e,t){e<l&&(e=l);var n=y();e>n.width&&(e=n.width);var r=a.width-s.getBoundingClientRect().x;r<e&&(e=r),Math.round(e+v)==Math.round(n.width)?(s.style.width="calc(100% - ".concat(v,"px)"),s.style.flexBasis="calc(100% - ".concat(v,"px)")):(s.style.flexBasis=e+"px",s.style.width=e+"px"),h=e,t&&o.finishSettingWidth()},o.setLeft=function(e){s.style.left=e+"px",v=e},o.finishSettingWidth=function(){o.collapsable&&(o.isCollapsed()?c.classList.add("collapsed"):c.classList.remove("collapsed"))},o.addInvisibleOverlay=function(){o.overlay||(o.overlay=i("<div id='resizer-overlay'></div>")(o),angular.element(document.body).prepend(o.overlay))},o.removeInvisibleOverlay=function(){o.overlay&&(o.overlay.remove(),o.overlay=null)},o.flash=function(){c.classList.add("animate-opacity"),r(function(){c.classList.remove("animate-opacity")},3e3)},c.addEventListener("mousedown",function(e){o.addInvisibleOverlay(),d=!0,p=e.clientX,f=s.scrollWidth,m=s.offsetLeft,s.classList.add("no-selection"),o.hoverable&&c.classList.add("dragging")}),document.addEventListener("mousemove",function(e){d&&(e.preventDefault(),o.property&&"left"==o.property?function(e){var t=s.getBoundingClientRect(),n=(e.clientX||t.x)-p,r=m+n;r<0&&(r=0,n=-m);var i=y(),a=f-n;a<l&&(a=l);a>i.width&&(a=i.width);r+a>i.width&&(r=i.width-a);o.setLeft(r,!1),o.setWidth(a,!1)}(e):w(e))}),document.addEventListener("mouseup",function(e){if(o.removeInvisibleOverlay(),d){d=!1,c.classList.remove("dragging"),s.classList.remove("no-selection");var t=o.isAtMaxWidth();o.onResizeFinish&&o.onResizeFinish()(h,v,t,o.isCollapsed()),o.finishSettingWidth()}})}]}]),e}();angular.module("app").directive("panelResizer",function(){return new Ae});var De=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/password-wizard.html",this.scope={type:"="}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.el=t}},{key:"controller",value:["$scope","modelManager","archiveManager","authManager","syncManager","$timeout","alertManager",function(s,e,t,c,u,l,d){window.onbeforeunload=function(e){return!0},s.$on("$destroy",function(){window.onbeforeunload=null}),s.dismiss=function(){s.lockContinue?d.alert({text:"Cannot close window until pending tasks are complete."}):(s.el.remove(),s.$destroy())},s.syncStatus=u.syncStatus,s.formData={};s.continueTitle="Continue",s.step=0,s.titleForStep=function(e){switch(e){case 1:return"Download a backup of your data";case 2:return"Sign out of all your devices";case 3:return s.changePassword?"Password information":"Enter your current password";case 4:return"Encrypt and sync data with new keys";case 5:return"Sign back in to your devices";default:return null}},s.configure=void("change-pw"==s.type?(s.title="Change Password",s.changePassword=!0):"upgrade-security"==s.type&&(s.title="Security Update",s.securityUpdate=!0)),s.continue=function(){if(!s.lockContinue&&!s.isContinuing)if(s.isContinuing=!0,5!=s.step){var e=function(){s.step+=1,s.initializeStep(s.step),s.isContinuing=!1},t=s.preprocessorForStep(s.step);t?t(function(){e()},function(){s.isContinuing=!1}):e()}else s.dismiss()},s.downloadBackup=function(e){t.downloadBackup(e)},s.preprocessorForStep=function(e){if(3==e)return function(t,n){s.showSpinner=!0,s.continueTitle="Generating Keys...",l(function(){s.validateCurrentPassword(function(e){s.showSpinner=!1,s.continueTitle="Continue",e?t():n&&n()})})}};var n="There was an error re-encrypting your items. Your password was changed, but not all your items were properly re-encrypted and synced. You should try syncing again. If all else fails, you should restore your notes from backup.";s.initializeStep=function(e){4==e?(s.lockContinue=!0,s.formData.status="Processing encryption keys...",s.formData.processing=!0,s.processPasswordChange(function(e){s.formData.statusError=!e,(s.formData.processing=e)?(s.formData.status="Encrypting and syncing data with new keys...",s.resyncData(function(e){s.formData.statusError=!e,s.formData.processing=!e,e?(s.lockContinue=!1,s.changePassword?s.formData.status="Successfully changed password and synced all items.":s.securityUpdate&&(s.formData.status="Successfully performed security update and synced all items.")):s.formData.status=n})):s.formData.status="Unable to process your password. Please try again."})):5==e&&(s.continueTitle="Finish")},s.validateCurrentPassword=function(){var t=(0,y.default)($.default.mark(function e(r){var t,n,i,a,o=this;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=s.formData.currentPassword,n=s.securityUpdate?t:s.formData.newPassword,t&&0!=t.length){e.next=6;break}return d.alert({text:"Please enter your current password."}),r(!1),e.abrupt("return");case 6:if(!s.changePassword){e.next=16;break}if(n&&0!=n.length){e.next=11;break}return d.alert({text:"Please enter a new password."}),r(!1),e.abrupt("return");case 11:if(n!=s.formData.newPasswordConfirmation)return d.alert({text:"Your new password does not match its confirmation."}),s.formData.status=null,r(!1),e.abrupt("return");e.next=16;break;case 16:if(c.user.email){e.next=21;break}return d.alert({text:"We don't have your email stored. Please log out then log back in to fix this issue."}),s.formData.status=null,r(!1),e.abrupt("return");case 21:return e.next=23,c.getAuthParams();case 23:i=e.sent,a=s.formData.currentPassword,SFJS.crypto.computeEncryptionKeysForUser(a,i).then(function(){var t=(0,y.default)($.default.mark(function e(t){var n;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=t.mk,e.next=3,c.keys();case 3:e.t1=e.sent.mk,(n=e.t0===e.t1)?o.currentServerPw=t.pw:d.alert({text:"The current password you entered is not correct. Please try again."}),l(function(){return r(n)});case 7:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}());case 26:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),s.resyncData=function(t){e.setAllItemsDirty(),u.sync().then(function(e){!e||e.error?(d.alert({text:n}),l(function(){return t(!1)})):l(function(){return t(!0)})})},s.processPasswordChange=function(){var t=(0,y.default)($.default.mark(function e(t){var n,r,i,a,o;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=s.securityUpdate?s.formData.currentPassword:s.formData.newPassword,r=this.currentServerPw,e.next=4,SFJS.crypto.generateInitialKeysAndAuthParamsForUser(c.user.email,n);case 4:return i=e.sent,a=i.keys,o=i.authParams,e.next=9,u.sync();case 9:return e.sent,e.t0=c,e.next=13,u.getServerURL();case 13:e.t1=e.sent,e.t2=c.user.email,e.t3=r,e.t4=a,e.t5=o,e.t6=function(e){e.error?(d.alert({text:e.error.message?e.error.message:"There was an error changing your password. Please try again."}),l(function(){return t(!1)})):l(function(){return t(!0)})},e.t0.changePassword.call(e.t0,e.t1,e.t2,e.t3,e.t4,e.t5).then(e.t6);case 20:case"end":return e.stop()}},e,this)}));return function(e){return t.apply(this,arguments)}}()}]}]),e}();angular.module("app").directive("passwordWizard",function(){return new De});var Re=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/permissions-modal.html",this.scope={show:"=",component:"=",permissionsString:"=",callback:"="}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.dismiss=function(){t.remove()},e.accept=function(){e.callback(!0),e.dismiss()},e.deny=function(){e.callback(!1),e.dismiss()}}},{key:"controller",value:["$scope","modelManager",function(){}]}]),e}();angular.module("app").directive("permissionsModal",function(){return new Re});var Ee=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/privileges-auth-modal.html",this.scope={action:"=",onSuccess:"=",onCancel:"="}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.dismiss=function(){t.remove()}}},{key:"controller",value:["$scope","privilegesManager","passcodeManager","authManager","$timeout",function(c,t,e,n,r){c.authenticationParameters={},c.sessionLengthOptions=t.getSessionLengthOptions(),t.getSelectedSessionLength().then(function(e){r(function(){c.selectedSessionLength=e})}),c.selectSessionLength=function(e){c.selectedSessionLength=e},t.netCredentialsForAction(c.action).then(function(e){r(function(){c.requiredCredentials=e.sort()})}),c.promptForCredential=function(e){return t.displayInfoForCredential(e).prompt},c.cancel=function(){c.dismiss(),c.onCancel&&c.onCancel()},c.isCredentialInFailureState=function(t){return!!c.failedCredentials&&null!=c.failedCredentials.find(function(e){return e==t})},c.validate=function(){var e=[],t=!0,n=!1,r=void 0;try{for(var i,a=c.requiredCredentials[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=c.authenticationParameters[o];s&&0!=s.length||e.push(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return 0==(c.failedCredentials=e).length},c.submit=function(){c.validate()&&t.authenticateAction(c.action,c.authenticationParameters).then(function(e){r(function(){e.success?(t.setSessionLength(c.selectedSessionLength),c.onSuccess(),c.dismiss()):c.failedCredentials=e.failedCredentials})})}}]}]),e}();angular.module("app").directive("privilegesAuthModal",function(){return new Ee});var Pe=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/privileges-management-modal.html",this.scope={}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.dismiss=function(){t.remove()}}},{key:"controller",value:["$scope","privilegesManager","passcodeManager","authManager","$timeout",function(c,u,e,t,l){c.dummy={},c.hasPasscode=e.hasPasscode(),c.hasAccount=!t.offline(),c.displayInfoForCredential=function(e){var t=u.displayInfoForCredential(e);return e==de.CredentialLocalPasscode?t.availability=c.hasPasscode:e==de.CredentialAccountPassword?t.availability=c.hasAccount:t.availability=!0,t},c.displayInfoForAction=function(e){return u.displayInfoForAction(e).label},c.isCredentialRequiredForAction=function(e,t){return!!c.privileges&&c.privileges.isCredentialRequiredForAction(e,t)},c.clearSession=function(){u.clearSession().then(function(){c.reloadPrivileges()})},c.reloadPrivileges=(0,y.default)($.default.mark(function e(){var t,n,r,i,a,o,s;return $.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return c.availableActions=u.getAvailableActions(),c.availableCredentials=u.getAvailableCredentials(),e.next=4,u.getSessionExpirey();case 4:for(t=e.sent,c.sessionExpirey=t.toLocaleString(),c.sessionExpired=new Date>=t,c.credentialDisplayInfo={},r=!(n=!0),i=void 0,e.prev=11,a=c.availableCredentials[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)s=o.value,c.credentialDisplayInfo[s]=c.displayInfoForCredential(s);e.next=19;break;case 15:e.prev=15,e.t0=e.catch(11),r=!0,i=e.t0;case 19:e.prev=19,e.prev=20,n||null==a.return||a.return();case 22:if(e.prev=22,r)throw i;e.next=25;break;case 25:return e.finish(22);case 26:return e.finish(19);case 27:u.getPrivileges().then(function(e){l(function(){c.privileges=e})});case 28:case"end":return e.stop()}},e,null,[[11,15,19,27],[20,,22,26]])})),c.checkboxValueChanged=function(e,t){c.privileges.toggleCredentialForAction(e,t),u.savePrivileges()},c.reloadPrivileges(),c.cancel=function(){c.dismiss(),c.onCancel&&c.onCancel()}}]}]),e}();angular.module("app").directive("privilegesManagementModal",function(){return new Pe});var Oe=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/revision-preview-modal.html",this.scope={uuid:"=",content:"="}}return(0,f.default)(e,[{key:"link",value:function(e,t){e.el=t}},{key:"controller",value:["$scope","modelManager","syncManager","componentManager","$timeout","alertManager",function(i,a,o,e,t,n){i.dismiss=function(){i.el.remove(),i.$destroy()},i.$on("$destroy",function(){i.identifier&&e.deregisterHandler(i.identifier)}),i.note=new SFItem({content:i.content,content_type:"Note"}),i.note.uuid=i.uuid;var r=e.editorForNote(i.note);if(i.note.uuid=SFJS.crypto.generateUUIDSync(),r){var s=new I({content:r.content});s.readonly=!0,s.lockReadonly=!0,i.identifier=s.uuid,e.registerHandler({identifier:i.identifier,areas:["editor-editor"],contextRequestHandler:function(e){if(e==i.editor)return i.note},componentForSessionKeyHandler:function(e){if(e==i.editor.sessionKey)return i.editor}}),i.editor=s}i.restore=function(r){function e(){var e;if(r){var t=Object.assign({},i.content);t.title&&(t.title+=" (copy)"),e=a.createItem({content_type:"Note",content:t}),a.addItem(e)}else{var n=i.uuid;(e=a.findItem(n)).content=Object.assign({},i.content),a.mapResponseItemsToLocalModels([e],SFModelManager.MappingSourceRemoteActionRetrieved)}a.setItemDirty(e,!0),o.sync(),i.dismiss()}r?e():n.confirm({text:"Are you sure you want to replace the current note's contents with what you see in this preview?",destructive:!0,onConfirm:function(){e()}})}}]}]),e}();angular.module("app").directive("revisionPreviewModal",function(){return new Oe});var Te=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/session-history-menu.html",this.scope={item:"="}}return(0,f.default)(e,[{key:"controller",value:["$scope","modelManager","sessionHistory","actionsManager","$timeout","alertManager",function(t,e,n,r,i,a){t.diskEnabled=n.diskEnabled,t.autoOptimize=n.autoOptimize,t.reloadHistory=function(){var e=n.historyForItem(t.item);t.entries=e.entries.slice(0).sort(function(e,t){return e.item.updated_at<t.item.updated_at?1:-1}),t.history=e},t.reloadHistory(),t.openRevision=function(e){r.presentRevisionPreviewModal(e.item.uuid,e.item.content)},t.classForRevision=function(e){var t=e.operationVector();return 0==t?"default":1==t?"success":-1==t?"danger":void 0},t.clearItemHistory=function(){a.confirm({text:"Are you sure you want to delete the local session history for this note?",destructive:!0,onConfirm:function(){n.clearHistoryForItem(t.item).then(function(){i(function(){t.reloadHistory()})})}})},t.clearAllHistory=function(){a.confirm({text:"Are you sure you want to delete the local session history for all notes?",destructive:!0,onConfirm:function(){n.clearAllHistory().then(function(){i(function(){t.reloadHistory()})})}})},t.toggleDiskSaving=function(){function e(){n.toggleDiskSaving().then(function(){i(function(){t.diskEnabled=n.diskEnabled})})}n.diskEnabled?e():a.confirm({text:"Are you sure you want to save history to disk? This will decrease general performance, especially as you type. You are advised to disable this feature if you experience any lagging.",destructive:!0,onConfirm:function(){e()}})},t.toggleAutoOptimize=function(){n.toggleAutoOptimize().then(function(){i(function(){t.autoOptimize=n.autoOptimize})})}}]}]),e}();angular.module("app").directive("sessionHistoryMenu",function(){return new Te});var Fe=function(){function e(){(0,v.default)(this,e),this.restrict="E",this.templateUrl="directives/sync-resolution-menu.html",this.scope={closeFunction:"&"}}return(0,f.default)(e,[{key:"controller",value:["$scope","modelManager","syncManager","archiveManager","$timeout",function(t,e,n,r,i){t.status={},t.close=function(){i(function(){t.closeFunction()()})},t.downloadBackup=function(e){r.downloadBackup(e),t.status.backupFinished=!0},t.skipBackup=function(){t.status.backupFinished=!0},t.performSyncResolution=function(){t.status.resolving=!0,n.resolveOutOfSync().then(function(){t.status.resolving=!1,t.status.attemptedResolution=!0,n.isOutOfSync()?t.status.fail=!0:t.status.success=!0})}}]}]),e}();angular.module("app").directive("syncResolutionMenu",function(){return new Fe})},{"@babel/runtime/helpers/asyncToGenerator":3,"@babel/runtime/helpers/classCallCheck":4,"@babel/runtime/helpers/createClass":5,"@babel/runtime/helpers/get":6,"@babel/runtime/helpers/getPrototypeOf":7,"@babel/runtime/helpers/inherits":8,"@babel/runtime/helpers/interopRequireDefault":9,"@babel/runtime/helpers/possibleConstructorReturn":10,"@babel/runtime/helpers/typeof":13,"@babel/runtime/regenerator":15,"standard-file-js":16}],2:[function(e,t,n){t.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},{}],3:[function(e,t,n){function c(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}t.exports=function(s){return function(){var e=this,o=arguments;return new Promise(function(t,n){var r=s.apply(e,o);function i(e){c(r,t,n,i,a,"next",e)}function a(e){c(r,t,n,i,a,"throw",e)}i(void 0)})}}},{}],4:[function(e,t,n){t.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},{}],5:[function(e,t,n){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}t.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},{}],6:[function(e,r,t){var a=e("./superPropBase");function i(e,t,n){return"undefined"!=typeof Reflect&&Reflect.get?r.exports=i=Reflect.get:r.exports=i=function(e,t,n){var r=a(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(n):i.value}},i(e,t,n||e)}r.exports=i},{"./superPropBase":12}],7:[function(e,t,n){function r(e){return t.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}t.exports=r},{}],8:[function(e,t,n){var r=e("./setPrototypeOf");t.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},{"./setPrototypeOf":11}],9:[function(e,t,n){t.exports=function(e){return e&&e.__esModule?e:{default:e}}},{}],10:[function(e,t,n){var r=e("../helpers/typeof"),i=e("./assertThisInitialized");t.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?i(e):t}},{"../helpers/typeof":13,"./assertThisInitialized":2}],11:[function(e,n,t){function r(e,t){return n.exports=r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.exports=r},{}],12:[function(e,t,n){var r=e("./getPrototypeOf");t.exports=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=r(e)););return e}},{"./getPrototypeOf":7}],13:[function(e,t,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return"function"==typeof Symbol&&"symbol"===r(Symbol.iterator)?t.exports=i=function(e){return r(e)}:t.exports=i=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":r(e)},i(e)}t.exports=i},{}],14:[function(e,t,n){var r=function(a){"use strict";var c,e=Object.prototype,u=e.hasOwnProperty,t="function"==typeof Symbol?Symbol:{},i=t.iterator||"@@iterator",n=t.asyncIterator||"@@asyncIterator",r=t.toStringTag||"@@toStringTag";function o(e,t,n,r){var i=t&&t.prototype instanceof s?t:s,a=Object.create(i.prototype),o=new I(r||[]);return a._invoke=function(a,o,s){var c=d;return function(e,t){if(c===p)throw new Error("Generator is already running");if(c===h){if("throw"===e)throw t;return A()}for(s.method=e,s.arg=t;;){var n=s.delegate;if(n){var r=$(n,s);if(r){if(r===m)continue;return r}}if("next"===s.method)s.sent=s._sent=s.arg;else if("throw"===s.method){if(c===d)throw c=h,s.arg;s.dispatchException(s.arg)}else"return"===s.method&&s.abrupt("return",s.arg);c=p;var i=l(a,o,s);if("normal"===i.type){if(c=s.done?h:f,i.arg===m)continue;return{value:i.arg,done:s.done}}"throw"===i.type&&(c=h,s.method="throw",s.arg=i.arg)}}}(e,n,o),a}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}a.wrap=o;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={};function s(){}function v(){}function g(){}var y={};y[i]=function(){return this};var k=Object.getPrototypeOf,b=k&&k(k(C([])));b&&b!==e&&u.call(b,i)&&(y=b);var w=g.prototype=s.prototype=Object.create(y);function x(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function S(c){var t;this._invoke=function(n,r){function e(){return new Promise(function(e,t){!function t(e,n,r,i){var a=l(c[e],c,n);if("throw"!==a.type){var o=a.arg,s=o.value;return s&&"object"==typeof s&&u.call(s,"__await")?Promise.resolve(s.__await).then(function(e){t("next",e,r,i)},function(e){t("throw",e,r,i)}):Promise.resolve(s).then(function(e){o.value=e,r(o)},function(e){return t("throw",e,r,i)})}i(a.arg)}(n,r,e,t)})}return t=t?t.then(e,e):e()}}function $(e,t){var n=e.iterator[t.method];if(n===c){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=c,$(e,t),"throw"===t.method))return m;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var r=l(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,m;var i=r.arg;return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=c),t.delegate=null,m):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function M(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function C(t){if(t){var e=t[i];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,r=function e(){for(;++n<t.length;)if(u.call(t,n))return e.value=t[n],e.done=!1,e;return e.value=c,e.done=!0,e};return r.next=r}}return{next:A}}function A(){return{value:c,done:!0}}return v.prototype=w.constructor=g,g.constructor=v,g[r]=v.displayName="GeneratorFunction",a.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},a.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,r in e||(e[r]="GeneratorFunction")),e.prototype=Object.create(w),e},a.awrap=function(e){return{__await:e}},x(S.prototype),S.prototype[n]=function(){return this},a.AsyncIterator=S,a.async=function(e,t,n,r){var i=new S(o(e,t,n,r));return a.isGeneratorFunction(t)?i:i.next().then(function(e){return e.done?e.value:i.next()})},x(w),w[r]="Generator",w[i]=function(){return this},w.toString=function(){return"[object Generator]"},a.keys=function(n){var r=[];for(var e in n)r.push(e);return r.reverse(),function e(){for(;r.length;){var t=r.pop();if(t in n)return e.value=t,e.done=!1,e}return e.done=!0,e}},a.values=C,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=c,this.done=!1,this.delegate=null,this.method="next",this.arg=c,this.tryEntries.forEach(M),!e)for(var t in this)"t"===t.charAt(0)&&u.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=c)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(n){if(this.done)throw n;var r=this;function e(e,t){return a.type="throw",a.arg=n,r.next=e,t&&(r.method="next",r.arg=c),!!t}for(var t=this.tryEntries.length-1;0<=t;--t){var i=this.tryEntries[t],a=i.completion;if("root"===i.tryLoc)return e("end");if(i.tryLoc<=this.prev){var o=u.call(i,"catchLoc"),s=u.call(i,"finallyLoc");if(o&&s){if(this.prev<i.catchLoc)return e(i.catchLoc,!0);if(this.prev<i.finallyLoc)return e(i.finallyLoc)}else if(o){if(this.prev<i.catchLoc)return e(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return e(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;0<=n;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&u.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),M(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;0<=t;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;M(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:C(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=c),m}},a}("object"==typeof t?t.exports:{});try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},{}],15:[function(e,t,n){t.exports=e("regenerator-runtime")},{"regenerator-runtime":14}],16:[function(d,t,r){(function(n){!function(e){if("object"==typeof r&&void 0!==t)t.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:void 0!==n?n:"undefined"!=typeof self?self:this).SF=e()}}(function(){return function a(o,s,c){function u(t,e){if(!s[t]){if(!o[t]){var n="function"==typeof d&&d;if(!e&&n)return n(t,!0);if(l)return l(t,!0);var r=new Error("Cannot find module '"+t+"'");throw r.code="MODULE_NOT_FOUND",r}var i=s[t]={exports:{}};o[t][0].call(i.exports,function(e){return u(o[t][1][e]||e)},i,i.exports,a,o,s,c)}return s[t].exports}for(var l="function"==typeof d&&d,e=0;e<c.length;e++)u(c[e]);return u}({1:[function(e,t,we){(function(e){var t,c,n,r,i,u,a,C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);c=(t=C).lib.WordArray,t.enc.Base64={stringify:function(e){var t=e.words,n=e.sigBytes,r=this._map;e.clamp(),e=[];for(var i=0;i<n;i+=3)for(var a=(t[i>>>2]>>>24-i%4*8&255)<<16|(t[i+1>>>2]>>>24-(i+1)%4*8&255)<<8|t[i+2>>>2]>>>24-(i+2)%4*8&255,o=0;o<4&&i+.75*o<n;o++)e.push(r.charAt(a>>>6*(3-o)&63));if(t=r.charAt(64))for(;e.length%4;)e.push(t);return e.join("")},parse:function(e){var t=e.length,n=this._map;!(r=n.charAt(64))||-1!=(r=e.indexOf(r))&&(t=r);for(var r=[],i=0,a=0;a<t;a++)if(a%4){var o=n.indexOf(e.charAt(a-1))<<a%4*2,s=n.indexOf(e.charAt(a))>>>6-a%4*2;r[i>>>2]|=(o|s)<<24-i%4*8,i++}return c.create(r,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},function(a){function S(e,t,n,r,i,a,o){return((e=e+(t&n|~t&r)+i+o)<<a|e>>>32-a)+t}function $(e,t,n,r,i,a,o){return((e=e+(t&r|n&~r)+i+o)<<a|e>>>32-a)+t}function _(e,t,n,r,i,a,o){return((e=e+(t^n^r)+i+o)<<a|e>>>32-a)+t}function M(e,t,n,r,i,a,o){return((e=e+(n^(t|~r))+i+o)<<a|e>>>32-a)+t}for(var e=C,t=(r=e.lib).WordArray,n=r.Hasher,r=e.algo,I=[],i=0;i<64;i++)I[i]=4294967296*a.abs(a.sin(i+1))|0;r=r.MD5=n.extend({_doReset:function(){this._hash=new t.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=e[o=t+n];e[o]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8)}n=this._hash.words;var i,a,o=e[t+0],s=(r=e[t+1],e[t+2]),c=e[t+3],u=e[t+4],l=e[t+5],d=e[t+6],f=e[t+7],p=e[t+8],h=e[t+9],m=e[t+10],v=e[t+11],g=e[t+12],y=e[t+13],k=e[t+14],b=e[t+15],w=n[0],x=M(x=M(x=M(x=M(x=_(x=_(x=_(x=_(x=$(x=$(x=$(x=$(x=S(x=S(x=S(x=S(x=n[1],a=S(a=n[2],i=S(i=n[3],w=S(w,x,a,i,o,7,I[0]),x,a,r,12,I[1]),w,x,s,17,I[2]),i,w,c,22,I[3]),a=S(a,i=S(i,w=S(w,x,a,i,u,7,I[4]),x,a,l,12,I[5]),w,x,d,17,I[6]),i,w,f,22,I[7]),a=S(a,i=S(i,w=S(w,x,a,i,p,7,I[8]),x,a,h,12,I[9]),w,x,m,17,I[10]),i,w,v,22,I[11]),a=S(a,i=S(i,w=S(w,x,a,i,g,7,I[12]),x,a,y,12,I[13]),w,x,k,17,I[14]),i,w,b,22,I[15]),a=$(a,i=$(i,w=$(w,x,a,i,r,5,I[16]),x,a,d,9,I[17]),w,x,v,14,I[18]),i,w,o,20,I[19]),a=$(a,i=$(i,w=$(w,x,a,i,l,5,I[20]),x,a,m,9,I[21]),w,x,b,14,I[22]),i,w,u,20,I[23]),a=$(a,i=$(i,w=$(w,x,a,i,h,5,I[24]),x,a,k,9,I[25]),w,x,c,14,I[26]),i,w,p,20,I[27]),a=$(a,i=$(i,w=$(w,x,a,i,y,5,I[28]),x,a,s,9,I[29]),w,x,f,14,I[30]),i,w,g,20,I[31]),a=_(a,i=_(i,w=_(w,x,a,i,l,4,I[32]),x,a,p,11,I[33]),w,x,v,16,I[34]),i,w,k,23,I[35]),a=_(a,i=_(i,w=_(w,x,a,i,r,4,I[36]),x,a,u,11,I[37]),w,x,f,16,I[38]),i,w,m,23,I[39]),a=_(a,i=_(i,w=_(w,x,a,i,y,4,I[40]),x,a,o,11,I[41]),w,x,c,16,I[42]),i,w,d,23,I[43]),a=_(a,i=_(i,w=_(w,x,a,i,h,4,I[44]),x,a,g,11,I[45]),w,x,b,16,I[46]),i,w,s,23,I[47]),a=M(a,i=M(i,w=M(w,x,a,i,o,6,I[48]),x,a,f,10,I[49]),w,x,k,15,I[50]),i,w,l,21,I[51]),a=M(a,i=M(i,w=M(w,x,a,i,g,6,I[52]),x,a,c,10,I[53]),w,x,m,15,I[54]),i,w,r,21,I[55]),a=M(a,i=M(i,w=M(w,x,a,i,p,6,I[56]),x,a,b,10,I[57]),w,x,d,15,I[58]),i,w,y,21,I[59]),a=M(a,i=M(i,w=M(w,x,a,i,u,6,I[60]),x,a,v,10,I[61]),w,x,s,15,I[62]),i,w,h,21,I[63]);n[0]=n[0]+w|0,n[1]=n[1]+x|0,n[2]=n[2]+a|0,n[3]=n[3]+i|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32;var i=a.floor(n/4294967296);for(t[15+(r+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process(),t=(e=this._hash).words,n=0;n<4;n++)r=t[n],t[n]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8);return e},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}}),e.MD5=n._createHelper(r),e.HmacMD5=n._createHmacHelper(r)}(Math),i=(n=(r=C).lib).Base,u=n.WordArray,a=(n=r.algo).EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:n.MD5,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=(o=this.cfg).hasher.create(),r=u.create(),i=r.words,a=o.keySize,o=o.iterations;i.length<a;){s&&n.update(s);var s=n.update(e).finalize(t);n.reset();for(var c=1;c<o;c++)s=n.finalize(s),n.reset();r.concat(s)}return r.sigBytes=4*a,r}}),r.EvpKDF=function(e,t,n){return a.create(n).compute(e,t)},C.lib.Cipher||function(){var e=(f=C).lib,t=e.Base,o=e.WordArray,n=e.BufferedBlockAlgorithm,r=f.enc.Base64,i=f.algo.EvpKDF,a=e.Cipher=n.extend({cfg:t.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,n){this.cfg=this.cfg.extend(n),this._xformMode=e,this._key=t,this.reset()},reset:function(){n.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(r){return{encrypt:function(e,t,n){return("string"==typeof t?p:d).encrypt(r,e,t,n)},decrypt:function(e,t,n){return("string"==typeof t?p:d).decrypt(r,e,t,n)}}}});e.StreamCipher=a.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});function s(e,t,n){var r=this._iv;r?this._iv=void 0:r=this._prevBlock;for(var i=0;i<n;i++)e[t+i]^=r[i]}var c=f.mode={},u=(e.BlockCipherMode=t.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}})).extend();u.Encryptor=u.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize;s.call(this,e,t,r),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+r)}}),u.Decryptor=u.extend({processBlock:function(e,t){var n=this._cipher,r=n.blockSize,i=e.slice(t,t+r);n.decryptBlock(e,t),s.call(this,e,t,r),this._prevBlock=i}}),c=c.CBC=u,u=(f.pad={}).Pkcs7={pad:function(e,t){for(var n,r=(n=(n=4*t)-e.sigBytes%n)<<24|n<<16|n<<8|n,i=[],a=0;a<n;a+=4)i.push(r);n=o.create(i,n),e.concat(n)},unpad:function(e){e.sigBytes-=255&e.words[e.sigBytes-1>>>2]}},e.BlockCipher=a.extend({cfg:a.cfg.extend({mode:c,padding:u}),reset:function(){a.reset.call(this);var e=(t=this.cfg).iv,t=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=t.createEncryptor;else n=t.createDecryptor,this._minBufferSize=1;this._mode=n.call(t,this,e&&e.words)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else t=this._process(!0),e.unpad(t);return t},blockSize:4});var l=e.CipherParams=t.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),d=(c=(f.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext;return((e=e.salt)?o.create([1398893684,1701076831]).concat(e).concat(t):t).toString(r)},parse:function(e){var t=(e=r.parse(e)).words;if(1398893684==t[0]&&1701076831==t[1]){var n=o.create(t.slice(2,4));t.splice(0,4),e.sigBytes-=16}return l.create({ciphertext:e,salt:n})}},e.SerializableCipher=t.extend({cfg:t.extend({format:c}),encrypt:function(e,t,n,r){r=this.cfg.extend(r);var i=e.createEncryptor(n,r);return t=i.finalize(t),i=i.cfg,l.create({ciphertext:t,key:n,iv:i.iv,algorithm:e,mode:i.mode,padding:i.padding,blockSize:e.blockSize,formatter:r.format})},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),e.createDecryptor(n,r).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}})),f=(f.kdf={}).OpenSSL={execute:function(e,t,n,r){return r=r||o.random(8),e=i.create({keySize:t+n}).compute(e,r),n=o.create(e.words.slice(t),4*n),e.sigBytes=4*t,l.create({key:e,iv:n,salt:r})}},p=e.PasswordBasedCipher=d.extend({cfg:d.cfg.extend({kdf:f}),encrypt:function(e,t,n,r){return n=(r=this.cfg.extend(r)).kdf.execute(n,e.keySize,e.ivSize),r.iv=n.iv,(e=d.encrypt.call(this,e,t,n.key,r)).mixIn(n),e},decrypt:function(e,t,n,r){return r=this.cfg.extend(r),t=this._parse(t,r.format),n=r.kdf.execute(n,e.keySize,e.ivSize,t.salt),r.iv=n.iv,d.decrypt.call(this,e,t,n.key,r)}})}(),function(){for(var e=C,t=e.lib.BlockCipher,n=e.algo,o=[],r=[],i=[],a=[],s=[],c=[],u=[],l=[],d=[],f=[],p=[],h=0;h<256;h++)p[h]=h<128?h<<1:h<<1^283;var m=0,v=0;for(h=0;h<256;h++){var g=(g=v^v<<1^v<<2^v<<3^v<<4)>>>8^255&g^99;o[m]=g;var y=p[r[g]=m],k=p[y],b=p[k],w=257*p[g]^16843008*g;i[m]=w<<24|w>>>8,a[m]=w<<16|w>>>16,s[m]=w<<8|w>>>24,c[m]=w,w=16843009*b^65537*k^257*y^16843008*m,u[g]=w<<24|w>>>8,l[g]=w<<16|w>>>16,d[g]=w<<8|w>>>24,f[g]=w,m?(m=y^p[p[p[b^y]]],v^=p[p[v]]):m=v=1}var x=[0,1,2,4,8,16,32,64,128,27,54];n=n.AES=t.extend({_doReset:function(){for(var e=(n=this._key).words,t=n.sigBytes/4,n=4*((this._nRounds=t+6)+1),r=this._keySchedule=[],i=0;i<n;i++)if(i<t)r[i]=e[i];else{var a=r[i-1];i%t?6<t&&4==i%t&&(a=o[a>>>24]<<24|o[a>>>16&255]<<16|o[a>>>8&255]<<8|o[255&a]):(a=o[(a=a<<8|a>>>24)>>>24]<<24|o[a>>>16&255]<<16|o[a>>>8&255]<<8|o[255&a],a^=x[i/t|0]<<24),r[i]=r[i-t]^a}for(e=this._invKeySchedule=[],t=0;t<n;t++)i=n-t,a=t%4?r[i]:r[i-4],e[t]=t<4||i<=4?a:u[o[a>>>24]]^l[o[a>>>16&255]]^d[o[a>>>8&255]]^f[o[255&a]]},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,i,a,s,c,o)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,u,l,d,f,r),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var c=this._nRounds,u=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<c;h++){var m=r[u>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],v=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&u]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[u>>>8&255]^o[255&l]^n[p++];f=r[f>>>24]^i[u>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++],u=m,l=v,d=g}m=(s[u>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],v=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&u])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[u>>>8&255]<<8|s[255&l])^n[p++],f=(s[f>>>24]<<24|s[u>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=v,e[t+2]=g,e[t+3]=f},keySize:8});e.AES=t._createHelper(n)}();var o,l;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);!function(i){function e(e){return 4294967296*(e-(0|e))|0}for(var t=C,n=(a=t.lib).WordArray,r=a.Hasher,a=t.algo,o=[],h=[],s=2,c=0;c<64;){var u;e:{u=s;for(var l=i.sqrt(u),d=2;d<=l;d++)if(!(u%d)){u=!1;break e}u=!0}u&&(c<8&&(o[c]=e(i.pow(s,.5))),h[c]=e(i.pow(s,1/3)),c++),s++}var m=[];a=a.SHA256=r.extend({_doReset:function(){this._hash=new n.init(o.slice(0))},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],u=n[6],l=n[7],d=0;d<64;d++){if(d<16)m[d]=0|e[t+d];else{var f=m[d-15],p=m[d-2];m[d]=((f<<25|f>>>7)^(f<<14|f>>>18)^f>>>3)+m[d-7]+((p<<15|p>>>17)^(p<<13|p>>>19)^p>>>10)+m[d-16]}f=l+((s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25))+(s&c^~s&u)+h[d]+m[d],p=((r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22))+(r&i^r&a^i&a),l=u,u=c,c=s,s=o+f|0,o=a,a=i,i=r,r=f+p|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+u|0,n[7]=n[7]+l|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=i.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e}});t.SHA256=r._createHelper(a),t.HmacSHA256=r._createHmacHelper(a)}(Math),l=(o=C).enc.Utf8,o.algo.HMAC=o.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=l.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),o=i.words,s=a.words,c=0;c<n;c++)o[c]^=1549556828,s[c]^=909522486;i.sigBytes=a.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}});var s,d,f,p,h,m;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);d=(s=C).lib,f=d.Base,p=d.WordArray,(s=s.x64={}).Word=f.extend({init:function(e,t){this.high=e,this.low=t}}),s.WordArray=f.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:8*e.length},toX32:function(){for(var e=this.words,t=e.length,n=[],r=0;r<t;r++){var i=e[r];n.push(i.high),n.push(i.low)}return p.create(n,this.sigBytes)},clone:function(){for(var e=f.clone.call(this),t=e.words=this.words.slice(0),n=t.length,r=0;r<n;r++)t[r]=t[r].clone();return e}}),function(){function e(){return r.create.apply(r,arguments)}for(var t=C,n=t.lib.Hasher,r=(a=t.x64).Word,i=a.WordArray,a=t.algo,te=[e(1116352408,3609767458),e(1899447441,602891725),e(3049323471,3964484399),e(3921009573,2173295548),e(961987163,4081628472),e(1508970993,3053834265),e(2453635748,2937671579),e(2870763221,3664609560),e(3624381080,2734883394),e(310598401,1164996542),e(607225278,1323610764),e(1426881987,3590304994),e(1925078388,4068182383),e(2162078206,991336113),e(2614888103,633803317),e(3248222580,3479774868),e(3835390401,2666613458),e(4022224774,944711139),e(264347078,2341262773),e(604807628,2007800933),e(770255983,1495990901),e(1249150122,1856431235),e(1555081692,3175218132),e(1996064986,2198950837),e(2554220882,3999719339),e(2821834349,766784016),e(2952996808,2566594879),e(3210313671,3203337956),e(3336571891,1034457026),e(3584528711,2466948901),e(113926993,3758326383),e(338241895,168717936),e(666307205,1188179964),e(773529912,1546045734),e(1294757372,1522805485),e(1396182291,2643833823),e(1695183700,2343527390),e(1986661051,1014477480),e(2177026350,1206759142),e(2456956037,344077627),e(2730485921,1290863460),e(2820302411,3158454273),e(3259730800,3505952657),e(3345764771,106217008),e(3516065817,3606008344),e(3600352804,1432725776),e(4094571909,1467031594),e(275423344,851169720),e(430227734,3100823752),e(506948616,1363258195),e(659060556,3750685593),e(883997877,3785050280),e(958139571,3318307427),e(1322822218,3812723403),e(1537002063,2003034995),e(1747873779,3602036899),e(1955562222,1575990012),e(2024104815,1125592928),e(2227730452,2716904306),e(2361852424,442776044),e(2428436474,593698344),e(2756734187,3733110249),e(3204031479,2999351573),e(3329325298,3815920427),e(3391569614,3928383900),e(3515267271,566280711),e(3940187606,3454069534),e(4118630271,4000239992),e(116418474,1914138554),e(174292421,2731055270),e(289380356,3203993006),e(460393269,320620315),e(685471733,587496836),e(852142971,1086792851),e(1017036298,365543100),e(1126000580,2618297676),e(1288033470,3409855158),e(1501505948,4234509866),e(1607167915,987167468),e(1816402316,1246189591)],ne=[],o=0;o<80;o++)ne[o]=e();a=a.SHA512=n.extend({_doReset:function(){this._hash=new i.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(e,t){for(var n=(u=this._hash.words)[0],r=u[1],i=u[2],a=u[3],o=u[4],s=u[5],c=u[6],u=u[7],l=n.high,d=n.low,f=r.high,p=r.low,h=i.high,m=i.low,v=a.high,g=a.low,y=o.high,k=o.low,b=s.high,w=s.low,x=c.high,S=c.low,$=u.high,_=u.low,M=l,I=d,C=f,A=p,D=h,R=m,E=v,P=g,O=y,T=k,F=b,L=w,N=x,B=S,H=$,U=_,j=0;j<80;j++){var z=ne[j];if(j<16)var V=z.high=0|e[t+2*j],K=z.low=0|e[t+2*j+1];else{V=((K=(V=ne[j-15]).high)>>>1|(q=V.low)<<31)^(K>>>8|q<<24)^K>>>7;var q=(q>>>1|K<<31)^(q>>>8|K<<24)^(q>>>7|K<<25),W=((K=(W=ne[j-2]).high)>>>19|(J=W.low)<<13)^(K<<3|J>>>29)^K>>>6,J=(J>>>19|K<<13)^(J<<3|K>>>29)^(J>>>6|K<<26),G=(K=ne[j-7]).high,Y=(X=ne[j-16]).high,X=X.low;V=(V=(V=V+G+((K=q+K.low)>>>0<q>>>0?1:0))+W+((K=K+J)>>>0<J>>>0?1:0))+Y+((K=K+X)>>>0<X>>>0?1:0);z.high=V,z.low=K}G=O&F^~O&N,X=T&L^~T&B,z=M&C^M&D^C&D;var Z=I&A^I&R^A&R,Q=(q=(M>>>28|I<<4)^(M<<30|I>>>2)^(M<<25|I>>>7),W=(I>>>28|M<<4)^(I<<30|M>>>2)^(I<<25|M>>>7),(J=te[j]).high),ee=J.low;Y=H+((O>>>14|T<<18)^(O>>>18|T<<14)^(O<<23|T>>>9))+((J=U+((T>>>14|O<<18)^(T>>>18|O<<14)^(T<<23|O>>>9)))>>>0<U>>>0?1:0),H=N,U=B,N=F,B=L,F=O,L=T,O=E+(Y=(Y=(Y=Y+G+((J=J+X)>>>0<X>>>0?1:0))+Q+((J=J+ee)>>>0<ee>>>0?1:0))+V+((J=J+K)>>>0<K>>>0?1:0))+((T=P+J|0)>>>0<P>>>0?1:0)|0,E=D,P=R,D=C,R=A,C=M,A=I,M=Y+(z=q+z+((K=W+Z)>>>0<W>>>0?1:0))+((I=J+K|0)>>>0<J>>>0?1:0)|0}d=n.low=d+I,n.high=l+M+(d>>>0<I>>>0?1:0),p=r.low=p+A,r.high=f+C+(p>>>0<A>>>0?1:0),m=i.low=m+R,i.high=h+D+(m>>>0<R>>>0?1:0),g=a.low=g+P,a.high=v+E+(g>>>0<P>>>0?1:0),k=o.low=k+T,o.high=y+O+(k>>>0<T>>>0?1:0),w=s.low=w+L,s.high=b+F+(w>>>0<L>>>0?1:0),S=c.low=S+B,c.high=x+N+(S>>>0<B>>>0?1:0),_=u.low=_+U,u.high=$+H+(_>>>0<U>>>0?1:0)},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[30+(128+r>>>10<<5)]=Math.floor(n/4294967296),t[31+(128+r>>>10<<5)]=n,e.sigBytes=4*t.length,this._process(),this._hash.toX32()},clone:function(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),t.SHA512=n._createHelper(a),t.HmacSHA512=n._createHmacHelper(a)}(),m=(h=C).enc.Utf8,h.algo.HMAC=h.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=m.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),o=i.words,s=a.words,c=0;c<n;c++)o[c]^=1549556828,s[c]^=909522486;i.sigBytes=a.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}});var v,g,y,k,b,w,x,S,$,M,I,A,D;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);g=(b=(v=C).lib).WordArray,y=b.Hasher,k=[],b=v.algo.SHA1=y.extend({_doReset:function(){this._hash=new g.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=0;c<80;c++){if(c<16)k[c]=0|e[t+c];else{var u=k[c-3]^k[c-8]^k[c-14]^k[c-16];k[c]=u<<1|u>>>31}u=(r<<5|r>>>27)+s+k[c],u=c<20?u+(1518500249+(i&a|~i&o)):c<40?u+(1859775393+(i^a^o)):c<60?u+((i&a|i&o|a&o)-1894007588):u+((i^a^o)-899497514),s=o,o=a,a=i<<30|i>>>2,i=r,r=u}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=Math.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=y.clone.call(this);return e._hash=this._hash.clone(),e}}),v.SHA1=y._createHelper(b),v.HmacSHA1=y._createHmacHelper(b),x=(w=C).enc.Utf8,w.algo.HMAC=w.lib.Base.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=x.parse(t));var n=e.blockSize,r=4*n;t.sigBytes>r&&(t=e.finalize(t)),t.clamp();for(var i=this._oKey=t.clone(),a=this._iKey=t.clone(),o=i.words,s=a.words,c=0;c<n;c++)o[c]^=1549556828,s[c]^=909522486;i.sigBytes=a.sigBytes=r,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher;return e=t.finalize(e),t.reset(),t.finalize(this._oKey.clone().concat(e))}}),M=(S=($=C).lib).Base,I=S.WordArray,A=(S=$.algo).HMAC,D=S.PBKDF2=M.extend({cfg:M.extend({keySize:4,hasher:S.SHA1,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){var n=this.cfg,r=A.create(n.hasher,e),i=I.create(),a=I.create([1]),o=i.words,s=a.words,c=n.keySize;for(n=n.iterations;o.length<c;){var u=r.update(t).finalize(a);r.reset();for(var l=u.words,d=l.length,f=u,p=1;p<n;p++){f=r.finalize(f),r.reset();for(var h=f.words,m=0;m<d;m++)l[m]^=h[m]}i.concat(u),s[0]++}return i.sigBytes=4*c,i}}),$.PBKDF2=function(e,t,n){return D.create(n).compute(e,t)};var R,E,P,O,T;C=C||function(s){function n(){}var e={},t=e.lib={},r=t.Base={extend:function(e){n.prototype=this;var t=new n;return e&&t.mixIn(e),t.hasOwnProperty("init")||(t.init=function(){t.$super.init.apply(this,arguments)}),(t.init.prototype=t).$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}},c=t.WordArray=r.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||a).stringify(this)},concat:function(e){var t=this.words,n=e.words,r=this.sigBytes;if(e=e.sigBytes,this.clamp(),r%4)for(var i=0;i<e;i++)t[r+i>>>2]|=(n[i>>>2]>>>24-i%4*8&255)<<24-(r+i)%4*8;else if(65535<n.length)for(i=0;i<e;i+=4)t[r+i>>>2]=n[i>>>2];else t.push.apply(t,n);return this.sigBytes+=e,this},clamp:function(){var e=this.words,t=this.sigBytes;e[t>>>2]&=4294967295<<32-t%4*8,e.length=s.ceil(t/4)},clone:function(){var e=r.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],n=0;n<e;n+=4)t.push(4294967296*s.random()|0);return new c.init(t,e)}}),i=e.enc={},a=i.Hex={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++){var i=t[r>>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r+=2)n[r>>>3]|=parseInt(e.substr(r,2),16)<<24-r%8*4;return new c.init(n,t/2)}},o=i.Latin1={stringify:function(e){var t=e.words;e=e.sigBytes;for(var n=[],r=0;r<e;r++)n.push(String.fromCharCode(t[r>>>2]>>>24-r%4*8&255));return n.join("")},parse:function(e){for(var t=e.length,n=[],r=0;r<t;r++)n[r>>>2]|=(255&e.charCodeAt(r))<<24-r%4*8;return new c.init(n,t)}},u=i.Utf8={stringify:function(e){try{return decodeURIComponent(escape(o.stringify(e)))}catch(e){throw Error("Malformed UTF-8 data")}},parse:function(e){return o.parse(unescape(encodeURIComponent(e)))}},l=t.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=u.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(e){var t=this._data,n=t.words,r=t.sigBytes,i=this.blockSize,a=r/(4*i);if(e=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*i,r=s.min(4*e,r),e){for(var o=0;o<e;o+=i)this._doProcessBlock(n,o);o=n.splice(0,e),t.sigBytes-=r}return new c.init(o,r)},clone:function(){var e=r.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});t.Hasher=l.extend({cfg:r.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){l.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(n){return function(e,t){return new n.init(t).finalize(e)}},_createHmacHelper:function(n){return function(e,t){return new d.HMAC.init(n,t).finalize(e)}}});var d=e.algo={};return e}(Math);function F(e,t){return!t||"object"!==H(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function L(e){return(L=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function N(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function U(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function H(e){return(H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}function z(s){return function(){var e=this,o=arguments;return new Promise(function(t,n){var r=s.apply(e,o);function i(e){j(r,t,n,i,a,"next",e)}function a(e){j(r,t,n,i,a,"throw",e)}i(void 0)})}}function V(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function K(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function q(e,t,n){return t&&K(e.prototype,t),n&&K(e,n),e}E=(T=(R=C).lib).WordArray,P=T.Hasher,O=[],T=R.algo.SHA1=P.extend({_doReset:function(){this._hash=new E.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=0;c<80;c++){if(c<16)O[c]=0|e[t+c];else{var u=O[c-3]^O[c-8]^O[c-14]^O[c-16];O[c]=u<<1|u>>>31}u=(r<<5|r>>>27)+s+O[c],u=c<20?u+(1518500249+(i&a|~i&o)):c<40?u+(1859775393+(i^a^o)):c<60?u+((i&a|i&o|a&o)-1894007588):u+((i^a^o)-899497514),s=o,o=a,a=i<<30|i>>>2,i=r,r=u}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;return t[r>>>5]|=128<<24-r%32,t[14+(64+r>>>9<<4)]=Math.floor(n/4294967296),t[15+(64+r>>>9<<4)]=n,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=P.clone.call(this);return e._hash=this._hash.clone(),e}}),R.SHA1=P._createHelper(T),R.HmacSHA1=P._createHmacHelper(T),Object.defineProperty(we,"__esModule",{value:!0}),we.StandardFile=we.SFItemTransformer=we.SFCryptoWeb=we.SFCryptoJS=we.SFAbstractCrypto=we.SFItemHistoryEntry=we.SFItemHistory=we.SFHistorySession=we.SFPrivileges=we.SFPredicate=we.SFItemParams=we.SFItem=we.SFSyncManager=we.SFStorageManager=we.SFSingletonManager=we.SFSessionHistoryManager=we.SFPrivilegesManager=we.SFModelManager=we.SFMigrationManager=we.SFHttpManager=we.SFAuthManager=we.SFAlertManager=void 0;var W=function(){function e(){V(this,e)}var t,n;return q(e,[{key:"alert",value:(n=z(regeneratorRuntime.mark(function e(n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){window.alert(n.text),e()}));case 1:case"end":return e.stop()}},e)})),function(e){return n.apply(this,arguments)})},{key:"confirm",value:(t=z(regeneratorRuntime.mark(function e(n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){window.confirm(n.text)?e():t()}));case 1:case"end":return e.stop()}},e)})),function(e){return t.apply(this,arguments)})}]),e}();we.SFAlertManager=W;var J=function(){function k(e,t,n,r){V(this,k),k.DidSignOutEvent="DidSignOutEvent",k.WillSignInEvent="WillSignInEvent",k.DidSignInEvent="DidSignInEvent",this.httpManager=t,this.storageManager=e,this.alertManager=n||new W,this.$timeout=r||setTimeout.bind(window),this.eventHandlers=[]}var a,o,s,r,e,t,n,i,c,u;return q(k,[{key:"addEventHandler",value:function(e){return this.eventHandlers.push(e),e}},{key:"removeEventHandler",value:function(e){_.pull(this.eventHandlers,e)}},{key:"notifyEvent",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.eventHandlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){(0,a.value)(e,t||{})}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"saveKeys",value:(u=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this._keys=t,e.next=3,this.storageManager.setItem("mk",t.mk);case 3:return e.next=5,this.storageManager.setItem("ak",t.ak);case 5:case"end":return e.stop()}},e,this)})),function(e){return u.apply(this,arguments)})},{key:"signout",value:(c=z(regeneratorRuntime.mark(function e(t){var n=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._keys=null,this._authParams=null,t)return e.abrupt("return",this.storageManager.clearAllData().then(function(){n.notifyEvent(k.DidSignOutEvent)}));e.next=6;break;case 6:this.notifyEvent(k.DidSignOutEvent);case 7:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"keys",value:(i=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._keys){e.next=11;break}return e.next=3,this.storageManager.getItem("mk");case 3:if(t=e.sent){e.next=6;break}return e.abrupt("return",null);case 6:return e.t0=t,e.next=9,this.storageManager.getItem("ak");case 9:e.t1=e.sent,this._keys={mk:e.t0,ak:e.t1};case 11:return e.abrupt("return",this._keys);case 12:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"getAuthParams",value:(n=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._authParams){e.next=5;break}return e.next=3,this.storageManager.getItem("auth_params");case 3:t=e.sent,this._authParams=JSON.parse(t);case 5:if(this._authParams&&!this._authParams.version)return e.next=8,this.defaultProtocolVersion();e.next=9;break;case 8:this._authParams.version=e.sent;case 9:return e.abrupt("return",this._authParams);case 10:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"defaultProtocolVersion",value:(t=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.keys();case 2:if((t=e.sent)&&t.ak)return e.abrupt("return","002");e.next=7;break;case 7:return e.abrupt("return","001");case 8:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"protocolVersion",value:(e=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getAuthParams();case 2:if((t=e.sent)&&t.version)return e.abrupt("return",t.version);e.next=5;break;case 5:return e.abrupt("return",this.defaultProtocolVersion());case 6:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"getAuthParamsForEmail",value:(r=z(regeneratorRuntime.mark(function e(r,t,n){var i,a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return(i=_.merge({email:t},n)).api=Y.getApiVersion(),e.abrupt("return",new Promise(function(t,e){var n=r+"/auth/params";a.httpManager.getAbsolute(n,i,function(e){t(e)},function(e){console.error("Error getting auth params",e),"object"!==H(e)&&(e={error:{message:"A server error occurred while trying to sign in. Please try again."}}),t(e)})}));case 3:case"end":return e.stop()}},e)})),function(e,t,n){return r.apply(this,arguments)})},{key:"lock",value:function(){this.locked=!0}},{key:"unlock",value:function(){this.locked=!1}},{key:"isLocked",value:function(){return 1==this.locked}},{key:"unlockAndResolve",value:function(e,t){this.unlock(),e(t)}},{key:"login",value:(s=z(regeneratorRuntime.mark(function e(p,h,m,v,g){var y=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o,s,c,u,l,d,f;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,y.keys();case 2:if(null!=e.sent)return n({error:{message:"Cannot log in because already signed in."}}),e.abrupt("return");e.next=6;break;case 6:if(y.isLocked())return n({error:{message:"Login already in progress."}}),e.abrupt("return");e.next=9;break;case 9:return y.lock(),y.notifyEvent(k.WillSignInEvent),e.next=13,y.getAuthParamsForEmail(p,h,g);case 13:if((r=e.sent).identifier=h,r.error)return y.unlockAndResolve(n,r),e.abrupt("return");e.next=18;break;case 18:if(r&&r.pw_cost){e.next=21;break}return y.unlockAndResolve(n,{error:{message:"Invalid email or password."}}),e.abrupt("return");case 21:if(SFJS.supportedVersions().includes(r.version)){e.next=25;break}return i=SFJS.isVersionNewerThanLibraryVersion(r.version)?"This version of the application does not support your newer account type. Please upgrade to the latest version of Standard Notes to sign in.":"The protocol version associated with your account is outdated and no longer supported by this application. Please visit standardnotes.org/help/security for more information.",y.unlockAndResolve(n,{error:{message:i}}),e.abrupt("return");case 25:if(SFJS.isProtocolVersionOutdated(r.version))return a="The encryption version for your account, ".concat(r.version,", is outdated and requires upgrade. You may proceed with login, but are advised to perform a security update using the web or desktop application. Please visit standardnotes.org/help/security for more information."),o=!1,e.next=30,y.alertManager.confirm({title:"Update Needed",text:a,confirmButtonText:"Sign In"}).catch(function(){y.unlockAndResolve(n,{error:{}}),o=!0});e.next=32;break;case 30:if(o)return e.abrupt("return");e.next=32;break;case 32:if(SFJS.supportsPasswordDerivationCost(r.pw_cost)){e.next=36;break}return"Your account was created on a platform with higher security capabilities than this browser supports. If we attempted to generate your login keys here, it would take hours. Please use a browser with more up to date security capabilities, like Google Chrome or Firefox, to log in.",y.unlockAndResolve(n,{error:{message:"Your account was created on a platform with higher security capabilities than this browser supports. If we attempted to generate your login keys here, it would take hours. Please use a browser with more up to date security capabilities, like Google Chrome or Firefox, to log in."}}),e.abrupt("return");case 36:if(s=SFJS.costMinimumForVersion(r.version),r.pw_cost<s)return"Unable to login due to insecure password parameters. Please visit standardnotes.org/help/security for more information.",y.unlockAndResolve(n,{error:{message:"Unable to login due to insecure password parameters. Please visit standardnotes.org/help/security for more information."}}),e.abrupt("return");e.next=41;break;case 41:if(!v){e.next=47;break}if(c=SFJS.version(),r.version!==c)return u="Strict sign in refused server sign in parameters. The latest security version is ".concat(c,", but your account is reported to have version ").concat(r.version,". If you'd like to proceed with sign in anyway, please disable strict sign in and try again."),y.unlockAndResolve(n,{error:{message:u}}),e.abrupt("return");e.next=47;break;case 47:return e.next=49,SFJS.crypto.computeEncryptionKeysForUser(m,r);case 49:l=e.sent,d=p+"/auth/sign_in",(f=_.merge({password:l.pw,email:h},g)).api=Y.getApiVersion(),y.httpManager.postAbsolute(d,f,function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,y.handleAuthResponse(t,h,p,r,l);case 2:y.notifyEvent(k.DidSignInEvent),y.$timeout(function(){return y.unlockAndResolve(n,t)});case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){console.error("Error logging in",e),"object"!==H(e)&&(e={error:{message:"A server error occurred while trying to sign in. Please try again."}}),y.$timeout(function(){return y.unlockAndResolve(n,e)})});case 54:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r,i){return s.apply(this,arguments)})},{key:"register",value:function(u,l,d){var f=this;return new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o,s,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(f.isLocked())return n({error:{message:"Register already in progress."}}),e.abrupt("return");e.next=3;break;case 3:if(8,d.length<8)return r="Your password must be at least ".concat(8," characters in length. For your security, please choose a longer password or, ideally, a passphrase, and try again."),n({error:{message:r}}),e.abrupt("return");e.next=8;break;case 8:return f.lock(),e.next=11,SFJS.crypto.generateInitialKeysAndAuthParamsForUser(l,d);case 11:i=e.sent,a=i.keys,o=i.authParams,s=u+"/auth",(c=_.merge({password:a.pw,email:l},o)).api=Y.getApiVersion(),f.httpManager.postAbsolute(s,c,function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,f.handleAuthResponse(t,l,u,o,a);case 2:f.unlockAndResolve(n,t);case 3:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){console.error("Registration error",e),"object"!==H(e)&&(e={error:{message:"A server error occurred while trying to register. Please try again."}}),f.unlockAndResolve(n,e)});case 18:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}())}},{key:"changePassword",value:(o=z(regeneratorRuntime.mark(function e(o,s,c,u,l){var d=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(d.isLocked())return n({error:{message:"Change password already in progress."}}),e.abrupt("return");e.next=3;break;case 3:d.lock(),r=u.pw,i=o+"/auth/change_pw",(a=_.merge({new_password:r,current_password:c},l)).api=Y.getApiVersion(),d.httpManager.postAuthenticatedAbsolute(i,a,function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,d.handleAuthResponse(t,s,null,l,u);case 2:d.unlockAndResolve(n,t);case 3:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),function(e){"object"!==H(e)&&(e={error:{message:"Something went wrong while changing your password. Your password was not changed. Please try again."}}),d.unlockAndResolve(n,e)});case 9:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r,i){return o.apply(this,arguments)})},{key:"handleAuthResponse",value:(a=z(regeneratorRuntime.mark(function e(t,n,r,i,a){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r)return e.next=3,this.storageManager.setItem("server",r);e.next=3;break;case 3:return this._authParams=i,e.next=6,this.storageManager.setItem("auth_params",JSON.stringify(i));case 6:return e.next=8,this.storageManager.setItem("jwt",t.token);case 8:return e.abrupt("return",this.saveKeys(a));case 9:case"end":return e.stop()}},e,this)})),function(e,t,n,r,i){return a.apply(this,arguments)})}]),k}();we.SFAuthManager=J;var G="undefined"!=typeof window?window:void 0!==e?e:null,Y=function(){function n(e,t){V(this,n),this.$timeout=e||setTimeout.bind(G)}var a,i,o,s,c,t;return q(n,null,[{key:"getApiVersion",value:function(){return"20190520"}}]),q(n,[{key:"setJWTRequestHandler",value:function(e){this.jwtRequestHandler=e}},{key:"setAuthHeadersForRequest",value:(t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.jwtRequestHandler();case 2:(n=e.sent)&&t.setRequestHeader("Authorization","Bearer "+n);case 4:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"postAbsolute",value:(c=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("post",t,n,r,i));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return c.apply(this,arguments)})},{key:"postAuthenticatedAbsolute",value:(s=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("post",t,n,r,i,!0));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return s.apply(this,arguments)})},{key:"patchAbsolute",value:(o=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("patch",t,n,r,i));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return o.apply(this,arguments)})},{key:"getAbsolute",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.httpRequest("get",t,n,r,i));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"httpRequest",value:(a=z(regeneratorRuntime.mark(function e(i,a,o,s,c){var u,l=this,t=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return u=5<t.length&&void 0!==t[5]&&t[5],e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(t,n){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if((r=new XMLHttpRequest).onreadystatechange=function(){if(4==r.readyState){var e=r.responseText;if(e)try{e=JSON.parse(e)}catch(e){}200<=r.status&&r.status<=299?l.$timeout(function(){s(e),t(e)}):(console.error("Request error:",e),l.$timeout(function(){c(e,r.status),n(e)}))}},"get"==i&&0<Object.keys(o).length&&(a=l.urlForUrlAndParams(a,o)),r.open(i,a,!0),r.setRequestHeader("Content-type","application/json"),u)return e.next=8,l.setAuthHeadersForRequest(r);e.next=8;break;case 8:"post"==i||"patch"==i?r.send(JSON.stringify(o)):r.send();case 9:case"end":return e.stop()}},e)}));return function(e,t){return n.apply(this,arguments)}}()));case 2:case"end":return e.stop()}},e)})),function(e,t,n,r,i){return a.apply(this,arguments)})},{key:"urlForUrlAndParams",value:function(e,t){var n=Object.keys(t).map(function(e){return e+"="+encodeURIComponent(t[e])}).join("&");return e.includes("?")?e+"&"+n:e+"?"+n}}]),n}();we.SFHttpManager=Y;var X=function(){function r(e,t,n,f){var p=this;V(this,r),this.modelManager=e,this.syncManager=t,this.storageManager=n,this.completionHandlers=[],this.loadMigrations();var h=!1,m=f.addEventHandler(function(e){e==J.DidSignInEvent&&(h=!0)});this.receivedLocalDataEvent=t.initialDataLoaded(),this.syncManager.addEventHandler(function(){var n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(i="sync:completed"==t,!(r="local-data-loaded"==t)&&!i){e.next=40;break}if(r?p.receivedLocalDataEvent=!0:i&&(p.receivedSyncCompletedEvent=!0),!p.receivedLocalDataEvent||!p.receivedSyncCompletedEvent){e.next=40;break}if(h)return h=!1,f.removeEventHandler(m),e.next=10,p.getCompletedMigrations();e.next=39;break;case 10:a=e.sent.slice(),s=!(o=!0),c=void 0,e.prev=14,u=a[Symbol.iterator]();case 16:if(o=(l=u.next()).done){e.next=25;break}return d=l.value,e.next=20,p.migrationForEncodedName(d);case 20:e.sent.runOnlyOnce||_.pull(p._completed,d);case 22:o=!0,e.next=16;break;case 25:e.next=31;break;case 27:e.prev=27,e.t0=e.catch(14),s=!0,c=e.t0;case 31:e.prev=31,e.prev=32,o||null==u.return||u.return();case 34:if(e.prev=34,s)throw c;e.next=37;break;case 37:return e.finish(34);case 38:return e.finish(31);case 39:p.runPendingMigrations();case 40:case"end":return e.stop()}},e,null,[[14,27,31,39],[32,,34,38]])}));return function(e,t){return n.apply(this,arguments)}}())}var n,t,e,i,a,o,s,c;return q(r,[{key:"addCompletionHandler",value:function(e){this.completionHandlers.push(e)}},{key:"removeCompletionHandler",value:function(e){_.pull(this.completionHandlers,e)}},{key:"migrationForEncodedName",value:(c=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.decode(t);case 2:return n=e.sent,e.abrupt("return",this.migrations.find(function(e){return e.name==n}));case 4:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"loadMigrations",value:function(){this.migrations=this.registeredMigrations()}},{key:"registeredMigrations",value:function(){}},{key:"runPendingMigrations",value:(s=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getPendingMigrations();case 2:for(t=e.sent,r=!(n=!0),i=void 0,e.prev=6,a=t[Symbol.iterator]();!(n=(o=a.next()).done);n=!0)(s=o.value).items=[];e.next=14;break;case 10:e.prev=10,e.t0=e.catch(6),r=!0,i=e.t0;case 14:e.prev=14,e.prev=15,n||null==a.return||a.return();case 17:if(e.prev=17,r)throw i;e.next=20;break;case 20:return e.finish(17);case 21:return e.finish(14);case 22:u=!(c=!0),l=void 0,e.prev=25,d=this.modelManager.allNondummyItems[Symbol.iterator]();case 27:if(c=(f=d.next()).done){e.next=51;break}for(p=f.value,m=!(h=!0),v=void 0,e.prev=32,g=t[Symbol.iterator]();!(h=(y=g.next()).done);h=!0)s=y.value,p.content_type==s.content_type&&s.items.push(p);e.next=40;break;case 36:e.prev=36,e.t1=e.catch(32),m=!0,v=e.t1;case 40:e.prev=40,e.prev=41,h||null==g.return||g.return();case 43:if(e.prev=43,m)throw v;e.next=46;break;case 46:return e.finish(43);case 47:return e.finish(40);case 48:c=!0,e.next=27;break;case 51:e.next=57;break;case 53:e.prev=53,e.t2=e.catch(25),u=!0,l=e.t2;case 57:e.prev=57,e.prev=58,c||null==d.return||d.return();case 60:if(e.prev=60,u)throw l;e.next=63;break;case 63:return e.finish(60);case 64:return e.finish(57);case 65:b=!(k=!0),w=void 0,e.prev=68,x=t[Symbol.iterator]();case 70:if(k=(S=x.next()).done){e.next=81;break}if((s=S.value).items&&0<s.items.length||s.customHandler)return e.next=75,this.runMigration(s,s.items);e.next=77;break;case 75:e.next=78;break;case 77:this.markMigrationCompleted(s);case 78:k=!0,e.next=70;break;case 81:e.next=87;break;case 83:e.prev=83,e.t3=e.catch(68),b=!0,w=e.t3;case 87:e.prev=87,e.prev=88,k||null==x.return||x.return();case 90:if(e.prev=90,b)throw w;e.next=93;break;case 93:return e.finish(90);case 94:return e.finish(87);case 95:for(_=!($=!0),M=void 0,e.prev=98,I=this.completionHandlers[Symbol.iterator]();!($=(C=I.next()).done);$=!0)(0,C.value)();e.next=106;break;case 102:e.prev=102,e.t4=e.catch(98),_=!0,M=e.t4;case 106:e.prev=106,e.prev=107,$||null==I.return||I.return();case 109:if(e.prev=109,_)throw M;e.next=112;break;case 112:return e.finish(109);case 113:return e.finish(106);case 114:case"end":return e.stop()}},e,this,[[6,10,14,22],[15,,17,21],[25,53,57,65],[32,36,40,48],[41,,43,47],[58,,60,64],[68,83,87,95],[88,,90,94],[98,102,106,114],[107,,109,113]])})),function(){return s.apply(this,arguments)})},{key:"encode",value:(o=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",window.btoa(t));case 1:case"end":return e.stop()}},e)})),function(e){return o.apply(this,arguments)})},{key:"decode",value:(a=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",window.atob(t));case 1:case"end":return e.stop()}},e)})),function(e){return a.apply(this,arguments)})},{key:"getCompletedMigrations",value:(i=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._completed){e.next=5;break}return e.next=3,this.storageManager.getItem("migrations");case 3:t=e.sent,this._completed=t?JSON.parse(t):[];case 5:return e.abrupt("return",this._completed);case 6:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"getPendingMigrations",value:(e=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getCompletedMigrations();case 2:t=e.sent,n=[],i=!(r=!0),a=void 0,e.prev=7,o=this.migrations[Symbol.iterator]();case 9:if(r=(s=o.next()).done){e.next=22;break}return c=s.value,e.t0=t,e.next=14,this.encode(c.name);case 14:if(e.t1=e.sent,e.t2=e.t0.indexOf.call(e.t0,e.t1),e.t3=-1,e.t2!=e.t3){e.next=19;break}n.push(c);case 19:r=!0,e.next=9;break;case 22:e.next=28;break;case 24:e.prev=24,e.t4=e.catch(7),i=!0,a=e.t4;case 28:e.prev=28,e.prev=29,r||null==o.return||o.return();case 31:if(e.prev=31,i)throw a;e.next=34;break;case 34:return e.finish(31);case 35:return e.finish(28);case 36:return e.abrupt("return",n);case 37:case"end":return e.stop()}},e,this,[[7,24,28,36],[29,,31,35]])})),function(){return e.apply(this,arguments)})},{key:"markMigrationCompleted",value:(t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getCompletedMigrations();case 2:return n=e.sent,e.t0=n,e.next=6,this.encode(t.name);case 6:e.t1=e.sent,e.t0.push.call(e.t0,e.t1),this.storageManager.setItem("migrations",JSON.stringify(n)),t.running=!1;case 10:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"runMigration",value:(n=z(regeneratorRuntime.mark(function e(t,n){var r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t.running)return e.abrupt("return");e.next=2;break;case 2:if(console.log("Running migration:",t.name),t.running=!0,t.customHandler)return e.abrupt("return",t.customHandler().then(function(){r.markMigrationCompleted(t)}));e.next=8;break;case 8:return e.abrupt("return",t.handler(n).then(function(){r.markMigrationCompleted(t)}));case 9:case"end":return e.stop()}},e)})),function(e,t){return n.apply(this,arguments)})}]),r}();we.SFMigrationManager=X;var Z=function(){function A(e){V(this,A),A.MappingSourceRemoteRetrieved="MappingSourceRemoteRetrieved",A.MappingSourceRemoteSaved="MappingSourceRemoteSaved",A.MappingSourceLocalSaved="MappingSourceLocalSaved",A.MappingSourceLocalRetrieved="MappingSourceLocalRetrieved",A.MappingSourceLocalDirtied="MappingSourceLocalDirtied",A.MappingSourceComponentRetrieved="MappingSourceComponentRetrieved",A.MappingSourceDesktopInstalled="MappingSourceDesktopInstalled",A.MappingSourceRemoteActionRetrieved="MappingSourceRemoteActionRetrieved",A.MappingSourceFileImport="MappingSourceFileImport",A.isMappingSourceRetrieved=function(e){return[A.MappingSourceRemoteRetrieved,A.MappingSourceComponentRetrieved,A.MappingSourceRemoteActionRetrieved].includes(e)},this.$timeout=e||setTimeout.bind(window),this.itemSyncObservers=[],this.items=[],this.itemsHash={},this.missedReferences={},this.uuidChangeObservers=[]}var e,i,r,t,n,a,o,s,c,u,l,d;return q(A,[{key:"handleSignout",value:function(){this.items.length=0,this.itemsHash={},this.missedReferences={}}},{key:"addModelUuidChangeObserver",value:function(e,t){this.uuidChangeObservers.push({id:e,callback:t})}},{key:"notifyObserversOfUuidChange",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.uuidChangeObservers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;try{s.callback(e,t)}catch(e){console.error("Notify observers of uuid change exception:",e)}}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"alternateUUIDForItem",value:(d=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.createItem(t),e.next=3,SFJS.crypto.generateUUID();case 3:for(n.uuid=e.sent,n.informReferencesOfUUIDChange(t.uuid,n.uuid),this.informModelsOfUUIDChangeForItem(n,t.uuid,n.uuid),i=!(r=!0),a=void 0,e.prev=9,o=t.referencingObjects[Symbol.iterator]();!(r=(s=o.next()).done);r=!0)(c=s.value).setIsNoLongerBeingReferencedBy(t),t.setIsNoLongerBeingReferencedBy(c),c.addItemAsRelationship(n);e.next=17;break;case 13:e.prev=13,e.t0=e.catch(9),i=!0,a=e.t0;case 17:e.prev=17,e.prev=18,r||null==o.return||o.return();case 20:if(e.prev=20,i)throw a;e.next=23;break;case 23:return e.finish(20);case 24:return e.finish(17);case 25:return this.setItemsDirty(t.referencingObjects,!0),this.resolveReferencesForItem(n),this.loggingEnabled&&console.log(t.uuid,"--\x3e",n.uuid),t.deleted=!0,t.content.references=[],this.setItemDirty(t,!1,!1,A.MappingSourceLocalSaved),e.next=33,this.mapResponseItemsToLocalModels([t],A.MappingSourceLocalSaved);case 33:return this.addItem(n),this.setItemDirty(n,!0,!0,A.MappingSourceLocalSaved),this.notifyObserversOfUuidChange(t,n),e.abrupt("return",n);case 37:case"end":return e.stop()}},e,this,[[9,13,17,25],[18,,20,24]])})),function(e){return d.apply(this,arguments)})},{key:"informModelsOfUUIDChangeForItem",value:function(e,t,n){var r=!0,i=!1,a=void 0;try{for(var o,s=this.items[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){o.value.potentialItemOfInterestHasChangedItsUUID(e,t,n)}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}}},{key:"didSyncModelsOffline",value:function(e){this.notifySyncObserversOfModels(e,A.MappingSourceLocalSaved)}},{key:"mapResponseItemsToLocalModels",value:(l=z(regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mapResponseItemsToLocalModelsWithOptions({items:t,source:n,sourceKey:r}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return l.apply(this,arguments)})},{key:"mapResponseItemsToLocalModelsOmittingFields",value:(u=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.mapResponseItemsToLocalModelsWithOptions({items:t,omitFields:n,source:r,sourceKey:i}));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return u.apply(this,arguments)})},{key:"mapResponseItemsToLocalModelsWithOptions",value:(c=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C,A,D,R,E,P,O,T,F,L,N,B,H;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=t.items,r=t.omitFields,i=t.source,a=t.sourceKey,t.options,o=[],s=[],c=[],l=!(u=!0),d=void 0,e.prev=5,f=n[Symbol.iterator]();case 7:if(u=(p=f.next()).done){e.next=58;break}if(h=p.value){e.next=11;break}return e.abrupt("continue",55);case 11:if(m=!h.content&&!h.errorDecrypting,!(!h.content_type||!h.uuid)&&!m||h.deleted){e.next=16;break}return console.error("Server response item is corrupt:",h),e.abrupt("continue",55);case 16:if(!Array.isArray(r)){e.next=36;break}for(g=!(v=!0),y=void 0,e.prev=20,k=r[Symbol.iterator]();!(v=(b=k.next()).done);v=!0)w=b.value,delete h[w];e.next=28;break;case 24:e.prev=24,e.t0=e.catch(20),g=!0,y=e.t0;case 28:e.prev=28,e.prev=29,v||null==k.return||k.return();case 31:if(e.prev=31,g)throw y;e.next=34;break;case 34:return e.finish(31);case 35:return e.finish(28);case 36:if((x=this.findItem(h.uuid))&&(x.updateFromJSON(h),x.dummy=!1),S=h.content_type||x&&x.content_type,this.acceptableContentTypes&&!this.acceptableContentTypes.includes(S))return e.abrupt("continue",55);e.next=42;break;case 42:if($=!1,1!=h.deleted){e.next=50;break}if(!h.dirty){e.next=48;break}$=!0,e.next=50;break;case 48:return x&&(o.push(x),c.push(x),this.removeItemLocally(x)),e.abrupt("continue",55);case 50:x=x||this.createItem(h),this.addItem(x,$),x.errorDecrypting||c.push(x),o.push(x),s.push(h);case 55:u=!0,e.next=7;break;case 58:e.next=64;break;case 60:e.prev=60,e.t1=e.catch(5),l=!0,d=e.t1;case 64:e.prev=64,e.prev=65,u||null==f.return||f.return();case 67:if(e.prev=67,l)throw d;e.next=70;break;case 70:return e.finish(67);case 71:return e.finish(64);case 72:for(M=!(_=!0),I=void 0,e.prev=75,C=s.entries()[Symbol.iterator]();!(_=(A=C.next()).done);_=!0)D=U(A.value,2),R=D[0],E=D[1],P=o[R],E.content&&this.resolveReferencesForItem(P),P.didFinishSyncing();e.next=83;break;case 79:e.prev=79,e.t2=e.catch(75),M=!0,I=e.t2;case 83:e.prev=83,e.prev=84,_||null==C.return||C.return();case 86:if(e.prev=86,M)throw I;e.next=89;break;case 89:return e.finish(86);case 90:return e.finish(83);case 91:for(O=this.popMissedReferenceStructsForObjects(s),F=!(T=!0),L=void 0,e.prev=95,N=function(){var t=H.value,e=o.find(function(e){return e.uuid==t.reference_uuid});e&&t.for_item.addItemAsRelationship(e)},B=O[Symbol.iterator]();!(T=(H=B.next()).done);T=!0)N();e.next=104;break;case 100:e.prev=100,e.t3=e.catch(95),F=!0,L=e.t3;case 104:e.prev=104,e.prev=105,T||null==B.return||B.return();case 107:if(e.prev=107,F)throw L;e.next=110;break;case 110:return e.finish(107);case 111:return e.finish(104);case 112:return e.next=114,this.notifySyncObserversOfModels(c,i,a);case 114:return e.abrupt("return",o);case 115:case"end":return e.stop()}},e,this,[[5,60,64,72],[20,24,28,36],[29,,31,35],[65,,67,71],[75,79,83,91],[84,,86,90],[95,100,104,112],[105,,107,111]])})),function(e){return c.apply(this,arguments)})},{key:"missedReferenceBuildKey",value:function(e,t){return"".concat(e,":").concat(t)}},{key:"popMissedReferenceStructsForObjects",value:function(e){if(!e||0==e.length)return[];for(var t=[],n=[],r=e.map(function(e){return e.uuid}),i=r[0].length,a=0,o=Object.keys(this.missedReferences);a<o.length;a++){var s=o[a];r.includes(s.substring(0,i))&&(t.push(this.missedReferences[s]),n.push(s))}for(var c=0,u=n;c<u.length;c++){var l=u[c];delete this.missedReferences[l]}return t}},{key:"resolveReferencesForItem",value:function(e,t){var n=1<arguments.length&&void 0!==t&&t;if(!e.errorDecrypting){var r=e.contentObject;if(e.updateLocalRelationships(),r.references){var i=r.references.slice().map(function(e){return e.uuid}),a=this.findItems(i,!0),o=!0,s=!1,c=void 0;try{for(var u,l=a.entries()[Symbol.iterator]();!(o=(u=l.next()).done);o=!0){var d=U(u.value,2),f=d[0],p=d[1];if(p)e.addItemAsRelationship(p),n&&this.setItemDirty(p,!0);else{var h=i[f],m=this.missedReferenceBuildKey(h,e.uuid);if(!this.missedReferences[m]){var v={reference_uuid:h,for_item:e};this.missedReferences[m]=v}}}}catch(e){s=!0,c=e}finally{try{o||null==l.return||l.return()}finally{if(s)throw c}}}}}},{key:"notifySyncObserversOfModels",value:(s=z(regeneratorRuntime.mark(function e(d,f,p){var t,n,r,i,a,o,h,m=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=this.itemSyncObservers.sort(function(e,t){return e.priority<t.priority?-1:1}),r=!(n=!0),i=void 0,e.prev=4,a=regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(t=h.value,n=t.types.includes("*")?d:d.filter(function(e){return t.types.includes(e.content_type)}),r=[],i=[],o=!(a=!0),s=void 0,e.prev=6,c=n[Symbol.iterator]();!(a=(u=c.next()).done);a=!0)(l=u.value).deleted?i.push(l):r.push(l);e.next=14;break;case 10:e.prev=10,e.t0=e.catch(6),o=!0,s=e.t0;case 14:e.prev=14,e.prev=15,a||null==c.return||c.return();case 17:if(e.prev=17,o)throw s;e.next=20;break;case 20:return e.finish(17);case 21:return e.finish(14);case 22:if(0<n.length)return e.next=25,m._callSyncObserverCallbackWithTimeout(t,n,r,i,f,p);e.next=25;break;case 25:case"end":return e.stop()}},e,null,[[6,10,14,22],[15,,17,21]])}),o=t[Symbol.iterator]();case 7:if(n=(h=o.next()).done){e.next=12;break}return e.delegateYield(a(),"t0",9);case 9:n=!0,e.next=7;break;case 12:e.next=18;break;case 14:e.prev=14,e.t1=e.catch(4),r=!0,i=e.t1;case 18:e.prev=18,e.prev=19,n||null==o.return||o.return();case 21:if(e.prev=21,r)throw i;e.next=24;break;case 24:return e.finish(21);case 25:return e.finish(18);case 26:case"end":return e.stop()}},e,this,[[4,14,18,26],[19,,21,25]])})),function(e,t,n){return s.apply(this,arguments)})},{key:"_callSyncObserverCallbackWithTimeout",value:(o=z(regeneratorRuntime.mark(function e(n,r,i,a,o,s){var c=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e,t){c.$timeout(function(){try{n.callback(r,i,a,o,s)}catch(e){console.error("Sync observer exception",e)}finally{e()}})}));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r,i,a){return o.apply(this,arguments)})},{key:"setItemDirty",value:function(e,t,n,r,i){var a=!(1<arguments.length&&void 0!==t)||t,o=2<arguments.length?n:void 0,s=3<arguments.length?r:void 0,c=4<arguments.length?i:void 0;this.setItemsDirty([e],a,o,s,c)}},{key:"setItemsDirty",value:function(e,t,n,r,i){var a=!(1<arguments.length&&void 0!==t)||t,o=2<arguments.length?n:void 0,s=3<arguments.length?r:void 0,c=4<arguments.length?i:void 0,u=!0,l=!1,d=void 0;try{for(var f,p=e[Symbol.iterator]();!(u=(f=p.next()).done);u=!0){f.value.setDirty(a,o)}}catch(e){l=!0,d=e}finally{try{u||null==p.return||p.return()}finally{if(l)throw d}}this.notifySyncObserversOfModels(e,s||A.MappingSourceLocalDirtied,c)}},{key:"createItem",value:function(e){var t=A.ContentTypeClassMapping&&A.ContentTypeClassMapping[e.content_type];return new(t=t||ce)(e)}},{key:"createDuplicateItemFromResponseItem",value:(a=z(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("function"==typeof t.setDirty)return console.error("Attempting to create conflicted copy of non-response item."),e.abrupt("return",null);e.next=3;break;case 3:return n=JSON.parse(JSON.stringify(t)),e.next=6,SFJS.crypto.generateUUID();case 6:return n.uuid=e.sent,r=this.createItem(n),e.abrupt("return",r);case 9:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"duplicateItemAndAddAsConflict",value:function(e){return this.duplicateItemWithCustomContentAndAddAsConflict({content:e.content,duplicateOf:e})}},{key:"duplicateItemWithCustomContentAndAddAsConflict",value:function(e){var t=e.content,n=e.duplicateOf,r=this.duplicateItemWithCustomContent({content:t,duplicateOf:n});return this.addDuplicatedItemAsConflict({duplicate:r,duplicateOf:n}),r}},{key:"addDuplicatedItemAsConflict",value:function(e){var t=e.duplicate,n=e.duplicateOf;this.addDuplicatedItem(t,n),t.content.conflict_of=n.uuid}},{key:"duplicateItemWithCustomContent",value:function(e){var t=e.content,n=e.duplicateOf,r=new n.constructor({content:t});return r.created_at=n.created_at,r.content_type||(r.content_type=n.content_type),r}},{key:"duplicateItemAndAdd",value:function(e){var t=this.duplicateItemWithoutAdding(e);return this.addDuplicatedItem(t,e),t}},{key:"duplicateItemWithoutAdding",value:function(e){var t=new e.constructor({content:e.content});return t.created_at=e.created_at,t.content_type||(t.content_type=e.content_type),t}},{key:"addDuplicatedItem",value:function(e,t){this.addItem(e);var n=!0,r=!1,i=void 0;try{for(var a,o=t.referencingObjects[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;s.addItemAsRelationship(e),this.setItemDirty(s,!0)}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}this.resolveReferencesForItem(e),this.setItemDirty(e,!0)}},{key:"addItem",value:function(e,t){var n=1<arguments.length&&void 0!==t&&t;this.addItems([e],n)}},{key:"addItems",value:function(e,t){var n=this;e.forEach(function(e){n.itemsHash[e.uuid]||(n.itemsHash[e.uuid]=e,n.items.push(e))})}},{key:"addItemSyncObserver",value:function(e,t,n){this.addItemSyncObserverWithPriority({id:e,types:t,callback:n,priority:1})}},{key:"addItemSyncObserverWithPriority",value:function(e){var t=e.id,n=e.priority,r=e.types,i=e.callback;Array.isArray(r)||(r=[r]),this.itemSyncObservers.push({id:t,types:r,priority:n,callback:i})}},{key:"removeItemSyncObserver",value:function(e){_.remove(this.itemSyncObservers,_.find(this.itemSyncObservers,{id:e}))}},{key:"getDirtyItems",value:function(){return this.items.filter(function(e){return 1==e.dirty&&!e.dummy&&(!e.errorDecrypting||e.deleted)})}},{key:"clearDirtyItems",value:function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=e[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){i.value.setDirty(!1)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}},{key:"removeAndDirtyAllRelationshipsForItem",value:function(e){if(!e.errorDecrypting){var t=!0,n=!1,r=void 0;try{for(var i,a=e.content.references[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=this.findItem(o.uuid);s&&(e.removeItemAsRelationship(s),s.hasRelationshipWithItem(e)&&(s.removeItemAsRelationship(e),this.setItemDirty(s,!0)))}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}var c=!0,u=!1,l=void 0;try{for(var d,f=e.referencingObjects[Symbol.iterator]();!(c=(d=f.next()).done);c=!0){var p=d.value;p.removeItemAsRelationship(e),this.setItemDirty(p,!0)}}catch(e){u=!0,l=e}finally{try{c||null==f.return||f.return()}finally{if(u)throw l}}e.referencingObjects=[]}},{key:"setAllItemsDirty",value:function(){var e=this.allItems;this.setItemsDirty(e,!0)}},{key:"setItemToBeDeleted",value:function(e){e.deleted=!0,e.dummy||this.setItemDirty(e,!0),this.removeAndDirtyAllRelationshipsForItem(e)}},{key:"removeItemLocally",value:(n=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:_.remove(this.items,{uuid:t.uuid}),delete this.itemsHash[t.uuid],t.isBeingRemovedLocally();case 3:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"allItemsMatchingTypes",value:function(t){return this.allItems.filter(function(e){return(_.includes(t,e.content_type)||_.includes(t,"*"))&&!e.dummy})}},{key:"invalidItems",value:function(){return this.allItems.filter(function(e){return e.errorDecrypting})}},{key:"validItemsForContentType",value:function(t){return this.allItems.filter(function(e){return e.content_type==t&&!e.errorDecrypting})}},{key:"findItem",value:function(e){return this.itemsHash[e]}},{key:"findItems",value:function(e,t){var n=1<arguments.length&&void 0!==t&&t,r=[],i=!0,a=!1,o=void 0;try{for(var s,c=e[Symbol.iterator]();!(i=(s=c.next()).done);i=!0){var u=s.value,l=this.itemsHash[u];(l||n)&&r.push(l)}}catch(e){a=!0,o=e}finally{try{i||null==c.return||c.return()}finally{if(a)throw o}}return r}},{key:"itemsMatchingPredicate",value:function(e){return this.itemsMatchingPredicates([e])}},{key:"itemsMatchingPredicates",value:function(e){return this.filterItemsWithPredicates(this.allItems,e)}},{key:"filterItemsWithPredicates",value:function(e,s){return e.filter(function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=s[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;if(!e.satisfiesPredicate(o))return!1}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return!0})}},{key:"importItems",value:(t=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=[],r={},a=!(i=!0),o=void 0,e.prev=5,s=t[Symbol.iterator]();case 7:if(i=(c=s.next()).done){e.next=18;break}if(u=c.value,l=this.findItem(u.uuid)){e.next=13;break}return r[u.uuid]={},e.abrupt("continue",15);case 13:d=this.duplicateItemWithoutAdding(l),r[u.uuid]={frozenValue:d,itemRef:l};case 15:i=!0,e.next=7;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(5),a=!0,o=e.t0;case 24:e.prev=24,e.prev=25,i||null==s.return||s.return();case 27:if(e.prev=27,a)throw o;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:p=!(f=!0),h=void 0,e.prev=35,m=t[Symbol.iterator]();case 37:if(f=(v=m.next()).done){e.next=52;break}if(g=v.value,y=r[g.uuid],k=y.frozenValue,b=y.itemRef,k&&!b.errorDecrypting)return e.next=43,this.createDuplicateItemFromResponseItem(g);e.next=47;break;case 43:w=e.sent,g.deleted||k.isItemContentEqualWith(w)||(this.addDuplicatedItemAsConflict({duplicate:w,duplicateOf:b}),n.push(w)),e.next=49;break;case 47:n.push(g),b&&b.errorDecrypting&&(b.errorDecrypting=!1);case 49:f=!0,e.next=37;break;case 52:e.next=58;break;case 54:e.prev=54,e.t1=e.catch(35),p=!0,h=e.t1;case 58:e.prev=58,e.prev=59,f||null==m.return||m.return();case 61:if(e.prev=61,p)throw h;e.next=64;break;case 64:return e.finish(61);case 65:return e.finish(58);case 66:return e.next=68,this.mapResponseItemsToLocalModels(n,A.MappingSourceFileImport);case 68:for(x=e.sent,$=!(S=!0),_=void 0,e.prev=72,M=x[Symbol.iterator]();!(S=(I=M.next()).done);S=!0)C=I.value,this.setItemDirty(C,!0,!1),C.deleted=!1;e.next=80;break;case 76:e.prev=76,e.t2=e.catch(72),$=!0,_=e.t2;case 80:e.prev=80,e.prev=81,S||null==M.return||M.return();case 83:if(e.prev=83,$)throw _;e.next=86;break;case 86:return e.finish(83);case 87:return e.finish(80);case 88:return e.abrupt("return",x);case 89:case"end":return e.stop()}},e,this,[[5,20,24,32],[25,,27,31],[35,54,58,66],[59,,61,65],[72,76,80,88],[81,,83,87]])})),function(e){return t.apply(this,arguments)})},{key:"getAllItemsJSONData",value:(r=z(regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getJSONDataForItems(this.allItems,t,n,r));case 1:case"end":return e.stop()}},e,this)})),function(e,t,n){return r.apply(this,arguments)})},{key:"getJSONDataForItems",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all(t.map(function(e){return new ue(e,n,r).paramsForExportFile()})).then(function(e){if(i&&0==e.length)return null;var t={items:e};return n&&(t.auth_params=r),JSON.stringify(t,null,2)}));case 1:case"end":return e.stop()}},e)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"computeDataIntegrityHash",value:(e=z(regeneratorRuntime.mark(function e(){var t,n,r,i;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=this.allNondummyItems.sort(function(e,t){return t.updated_at-e.updated_at}),n=t.map(function(e){return e.updatedAtTimestamp()}),r=n.join(","),e.next=6,SFJS.crypto.sha256(r);case 6:return i=e.sent,e.abrupt("return",i);case 10:return e.prev=10,e.t0=e.catch(0),console.error("Error computing data integrity hash",e.t0),e.abrupt("return",null);case 14:case"end":return e.stop()}},e,this,[[0,10]])})),function(){return e.apply(this,arguments)})},{key:"allItems",get:function(){return this.items.slice()}},{key:"allNondummyItems",get:function(){return this.items.filter(function(e){return!e.dummy})}}]),A}();we.SFModelManager=Z;var Q=function(){function l(e,t,n){V(this,l),this.modelManager=e,this.syncManager=t,this.singletonManager=n,this.loadPrivileges(),l.CredentialAccountPassword="CredentialAccountPassword",l.CredentialLocalPasscode="CredentialLocalPasscode",l.ActionManageExtensions="ActionManageExtensions",l.ActionManageBackups="ActionManageBackups",l.ActionViewProtectedNotes="ActionViewProtectedNotes",l.ActionManagePrivileges="ActionManagePrivileges",l.ActionManagePasscode="ActionManagePasscode",l.ActionDeleteNote="ActionDeleteNote",l.SessionExpiresAtKey="SessionExpiresAtKey",l.SessionLengthKey="SessionLengthKey",l.SessionLengthNone=0,l.SessionLengthFiveMinutes=300,l.SessionLengthOneHour=3600,l.SessionLengthOneWeek=604800,this.availableActions=[l.ActionViewProtectedNotes,l.ActionDeleteNote,l.ActionManagePasscode,l.ActionManageBackups,l.ActionManageExtensions,l.ActionManagePrivileges],this.availableCredentials=[l.CredentialAccountPassword,l.CredentialLocalPasscode],this.sessionLengths=[l.SessionLengthNone,l.SessionLengthFiveMinutes,l.SessionLengthOneHour,l.SessionLengthOneWeek,l.SessionLengthIndefinite]}var n,r,e,t,i,a,o,s,c,u,d,f;return q(l,[{key:"setDelegate",value:function(e){this.delegate=e}},{key:"getAvailableActions",value:function(){return this.availableActions}},{key:"getAvailableCredentials",value:function(){return this.availableCredentials}},{key:"netCredentialsForAction",value:(f=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getPrivileges();case 2:e.t0=t,n=e.sent.getCredentialsForAction(e.t0),r=[],a=!(i=!0),o=void 0,e.prev=8,s=n[Symbol.iterator]();case 10:if(i=(c=s.next()).done){e.next=27;break}if((u=c.value)==l.CredentialAccountPassword)return e.next=15,this.delegate.isOffline();e.next=19;break;case 15:e.sent||r.push(u),e.next=24;break;case 19:if(u==l.CredentialLocalPasscode)return e.next=22,this.delegate.hasLocalPasscode();e.next=24;break;case 22:e.sent&&r.push(u);case 24:i=!0,e.next=10;break;case 27:e.next=33;break;case 29:e.prev=29,e.t1=e.catch(8),a=!0,o=e.t1;case 33:e.prev=33,e.prev=34,i||null==s.return||s.return();case 36:if(e.prev=36,a)throw o;e.next=39;break;case 39:return e.finish(36);case 40:return e.finish(33);case 41:return e.abrupt("return",r);case 42:case"end":return e.stop()}},e,this,[[8,29,33,41],[34,,36,40]])})),function(e){return f.apply(this,arguments)})},{key:"loadPrivileges",value:(d=z(regeneratorRuntime.mark(function e(){var a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.loadPromise)return e.abrupt("return",this.loadPromise);e.next=2;break;case 2:return this.loadPromise=new Promise(function(r,e){var i=de.contentType(),t=new le("content_type","=",i);a.singletonManager.registerSingleton([t],function(e){a.privileges=e,r(e)},function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=new de({content_type:i}),SFJS.crypto.generateUUIDSync){e.next=4;break}return e.next=4,n.initUUID();case 4:a.modelManager.addItem(n),a.modelManager.setItemDirty(n,!0),a.syncManager.sync(),t(n),r(n);case 9:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}())}),e.abrupt("return",this.loadPromise);case 4:case"end":return e.stop()}},e,this)})),function(){return d.apply(this,arguments)})},{key:"getPrivileges",value:(u=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.privileges)return e.abrupt("return",this.privileges);e.next=4;break;case 4:return e.abrupt("return",this.loadPrivileges());case 5:case"end":return e.stop()}},e,this)})),function(){return u.apply(this,arguments)})},{key:"displayInfoForCredential",value:function(e){var t={};return t[l.CredentialAccountPassword]={label:"Account Password",prompt:"Please enter your account password."},t[l.CredentialLocalPasscode]={label:"Local Passcode",prompt:"Please enter your local passcode."},t[e]}},{key:"displayInfoForAction",value:function(e){var t={};return t[l.ActionManageExtensions]={label:"Manage Extensions"},t[l.ActionManageBackups]={label:"Download/Import Backups"},t[l.ActionViewProtectedNotes]={label:"View Protected Notes"},t[l.ActionManagePrivileges]={label:"Manage Privileges"},t[l.ActionManagePasscode]={label:"Manage Passcode"},t[l.ActionDeleteNote]={label:"Delete Notes"},t[e]}},{key:"getSessionLengthOptions",value:function(){return[{value:l.SessionLengthNone,label:"Don't Remember"},{value:l.SessionLengthFiveMinutes,label:"5 Minutes"},{value:l.SessionLengthOneHour,label:"1 Hour"},{value:l.SessionLengthOneWeek,label:"1 Week"}]}},{key:"setSessionLength",value:(c=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=function(e){var t=new Date;return t.setSeconds(t.getSeconds()+e),t}(t),e.abrupt("return",Promise.all([this.delegate.saveToStorage(l.SessionExpiresAtKey,JSON.stringify(n)),this.delegate.saveToStorage(l.SessionLengthKey,JSON.stringify(t))]));case 3:case"end":return e.stop()}},e,this)})),function(e){return c.apply(this,arguments)})},{key:"clearSession",value:(s=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.setSessionLength(l.SessionLengthNone));case 1:case"end":return e.stop()}},e,this)})),function(){return s.apply(this,arguments)})},{key:"getSelectedSessionLength",value:(o=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.delegate.getFromStorage(l.SessionLengthKey);case 2:if(t=e.sent)return e.abrupt("return",JSON.parse(t));e.next=7;break;case 7:return e.abrupt("return",l.SessionLengthNone);case 8:case"end":return e.stop()}},e,this)})),function(){return o.apply(this,arguments)})},{key:"getSessionExpirey",value:(a=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.delegate.getFromStorage(l.SessionExpiresAtKey);case 2:if(t=e.sent)return e.abrupt("return",new Date(JSON.parse(t)));e.next=7;break;case 7:return e.abrupt("return",new Date);case 8:case"end":return e.stop()}},e,this)})),function(){return a.apply(this,arguments)})},{key:"actionHasPrivilegesConfigured",value:(i=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.netCredentialsForAction(t);case 2:return e.t0=e.sent.length,e.abrupt("return",0<e.t0);case 4:case"end":return e.stop()}},e,this)})),function(e){return i.apply(this,arguments)})},{key:"actionRequiresPrivilege",value:(t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getSessionExpirey();case 2:if(e.sent>new Date)return e.abrupt("return",!1);e.next=5;break;case 5:return e.next=7,this.netCredentialsForAction(t);case 7:return n=e.sent,e.abrupt("return",0<n.length);case 9:case"end":return e.stop()}},e,this)})),function(e){return t.apply(this,arguments)})},{key:"savePrivileges",value:(e=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getPrivileges();case 2:t=e.sent,this.modelManager.setItemDirty(t,!0),this.syncManager.sync();case 5:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"authenticateAction",value:(r=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.netCredentialsForAction(t);case 2:r=e.sent,i=[],a=[],s=!(o=!0),c=void 0,e.prev=7,u=r[Symbol.iterator]();case 9:if(o=(l=u.next()).done){e.next=18;break}return d=l.value,e.next=13,this._verifyAuthenticationParameters(d,n[d]);case 13:e.sent?i.push(d):a.push(d);case 15:o=!0,e.next=9;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(7),s=!0,c=e.t0;case 24:e.prev=24,e.prev=25,o||null==u.return||u.return();case 27:if(e.prev=27,s)throw c;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:return e.abrupt("return",{success:0==a.length,successfulCredentials:i,failedCredentials:a});case 33:case"end":return e.stop()}},e,this,[[7,20,24,32],[25,,27,31]])})),function(e,t){return r.apply(this,arguments)})},{key:"_verifyAuthenticationParameters",value:(n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.delegate.verifyAccountPassword(t));case 1:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),i=function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",a.delegate.verifyLocalPasscode(t));case 1:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),t==l.CredentialAccountPassword)return e.abrupt("return",r(n));e.next=6;break;case 6:if(t==l.CredentialLocalPasscode)return e.abrupt("return",i(n));e.next=8;break;case 8:case"end":return e.stop()}},e)})),function(e,t){return n.apply(this,arguments)})}]),l}();we.SFPrivilegesManager=Q;var ee="sessionHistory_persist",te="sessionHistory_revisions",ne="sessionHistory_autoOptimize",re=function(){function a(e,t,n,r,i){var d=this;V(this,a),this.modelManager=e,this.storageManager=t,this.$timeout=i||setTimeout.bind(window),this.keyRequestHandler=n,this.loadFromDisk().then(function(){d.modelManager.addItemSyncObserver("session-history",r,function(e,t,n,r,i){if(r!==Z.MappingSourceLocalDirtied){var a=!0,o=!1,s=void 0;try{for(var c,u=e[Symbol.iterator]();!(a=(c=u.next()).done);a=!0){var l=c.value;try{d.addHistoryEntryForItem(l)}catch(e){console.log("Caught exception while trying to add item history entry",e)}}}catch(e){o=!0,s=e}finally{try{a||null==u.return||u.return()}finally{if(o)throw s}}}})})}var e,t,n,r,i,o,s;return q(a,[{key:"encryptionParams",value:(s=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.keyRequestHandler());case 1:case"end":return e.stop()}},e,this)})),function(){return s.apply(this,arguments)})},{key:"addHistoryEntryForItem",value:function(e){var t=this,n={uuid:e.uuid,content_type:e.content_type,updated_at:e.updated_at,content:e.getContentCopy()},r=this.historySession.addEntryForItem(n);this.autoOptimize&&this.historySession.optimizeHistoryForItem(e),r&&this.diskEnabled&&(this.diskTimeout&&(this.$timeout.hasOwnProperty("cancel")?this.$timeout.cancel(this.diskTimeout):clearTimeout(this.diskTimeout)),this.diskTimeout=this.$timeout(function(){t.saveToDisk()},2e3))}},{key:"historyForItem",value:function(e){return this.historySession.historyForItem(e)}},{key:"clearHistoryForItem",value:(o=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.historySession.clearItemHistory(t),e.abrupt("return",this.saveToDisk());case 2:case"end":return e.stop()}},e,this)})),function(e){return o.apply(this,arguments)})},{key:"clearAllHistory",value:(i=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.historySession.clearAllHistory(),e.abrupt("return",this.storageManager.removeItem(te));case 2:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"toggleDiskSaving",value:(r=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.diskEnabled=!this.diskEnabled,!this.diskEnabled){e.next=6;break}this.storageManager.setItem(ee,JSON.stringify(!0)),this.saveToDisk(),e.next=8;break;case 6:return this.storageManager.setItem(ee,JSON.stringify(!1)),e.abrupt("return",this.storageManager.removeItem(te));case 8:case"end":return e.stop()}},e,this)})),function(){return r.apply(this,arguments)})},{key:"saveToDisk",value:(n=z(regeneratorRuntime.mark(function e(){var t,n=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.diskEnabled){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,this.encryptionParams();case 4:t=e.sent,new ue(this.historySession,t.keys,t.auth_params).paramsForSync().then(function(e){n.storageManager.setItem(te,JSON.stringify(e))});case 7:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"loadFromDisk",value:(t=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.storageManager.getItem(ee);case 2:return(t=e.sent)&&(this.diskEnabled=JSON.parse(t)),e.next=6,this.storageManager.getItem(te);case 6:if(n=e.sent)return n=JSON.parse(n),e.next=11,this.encryptionParams();e.next=18;break;case 11:return r=e.sent,e.next=14,SFJS.itemTransformer.decryptItem(n,r.keys);case 14:i=new fe(n),this.historySession=i,e.next=19;break;case 18:this.historySession=new fe;case 19:return e.next=21,this.storageManager.getItem(ne);case 21:a=e.sent,this.autoOptimize=!a||JSON.parse(a);case 23:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"toggleAutoOptimize",value:(e=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:this.autoOptimize=!this.autoOptimize,this.autoOptimize?this.storageManager.setItem(ne,JSON.stringify(!0)):this.storageManager.setItem(ne,JSON.stringify(!1));case 2:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]),a}();we.SFSessionHistoryManager=re;var ie=function(){function t(i,e){var c=this;V(this,t),this.syncManager=e,this.modelManager=i,this.singletonHandlers=[],i.addItemSyncObserverWithPriority({id:"sf-singleton-manager",types:"*",priority:-1,callback:function(e,t,n,r){r!==Z.MappingSourceLocalDirtied&&c.resolveSingletons(i.allNondummyItems,null,!0)}}),e.addEventHandler(function(e,t){if("local-data-loaded"==e)c.resolveSingletons(i.allNondummyItems,null,!0),c.initialDataLoaded=!0;else if("sync:completed"==e){if(!c.initialDataLoaded)return;c.resolveSingletons(t.retrievedItems,t.savedItems)}}),i.addModelUuidChangeObserver("singleton-manager",function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=c.singletonHandlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;s.singleton&&le.ItemSatisfiesPredicates(t,s.predicates)&&(s.singleton=null,c.resolveSingletons([t]))}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}})}return q(t,[{key:"registerSingleton",value:function(e,t,n){this.singletonHandlers.push({predicates:e,resolutionCallback:t,createBlock:n})}},{key:"resolveSingletons",value:function(v,g,y){var k=this;v=v||[],g=g||[];var e=!0,t=!1,n=void 0;try{function r(){function e(){t.createBlock&&(t.pendingCreateBlockCallback=!0,t.createBlock(function(e){t.singleton=e,t.pendingCreateBlockCallback=!1,t.resolutionCallback&&t.resolutionCallback(e)}))}var t=b.value,n=t.predicates.slice(),r=k.modelManager.filterItemsWithPredicates(v,n),i=k.modelManager.filterItemsWithPredicates(g,n).length;if(0<r.length||0<i){var a=k.modelManager.itemsMatchingPredicates(n);if(2<=a.length){var o=a.sort(function(e,t){return e.errorDecrypting?1:t.errorDecrypting?-1:e.created_at<t.created_at?-1:1}),s=o[0],c=o.slice(1,o.length),u=!0,l=!1,d=void 0;try{for(var f,p=c[Symbol.iterator]();!(u=(f=p.next()).done);u=!0){var h=f.value;k.modelManager.setItemToBeDeleted(h)}}catch(e){l=!0,d=e}finally{try{u||null==p.return||p.return()}finally{if(l)throw d}}k.syncManager.sync(),t.singleton=s,t.resolutionCallback&&t.resolutionCallback(s)}else if(1==a.length){var m=a[0];m.errorDecrypting?(k.modelManager.setItemToBeDeleted(m),e()):t.singleton&&t.singleton===m||(t.singleton=m,t.resolutionCallback&&t.resolutionCallback(m))}}else t.singleton||y||t.pendingCreateBlockCallback||e()}for(var b,i=this.singletonHandlers[Symbol.iterator]();!(e=(b=i.next()).done);e=!0)r()}catch(e){t=!0,n=e}finally{try{e||null==i.return||i.return()}finally{if(t)throw n}}}}]),t}();we.SFSingletonManager=ie;var ae=function(){function e(){V(this,e)}var t,n,r,i,a,o,s,c,u,l;return q(e,[{key:"setItem",value:(l=z(regeneratorRuntime.mark(function e(t,n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e,t){return l.apply(this,arguments)})},{key:"getItem",value:(u=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})},{key:"removeItem",value:(c=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return c.apply(this,arguments)})},{key:"clear",value:(s=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(){return s.apply(this,arguments)})},{key:"getAllModels",value:(o=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(){return o.apply(this,arguments)})},{key:"saveModel",value:(a=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.saveModels([t]));case 1:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"saveModels",value:(i=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"deleteModel",value:(r=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(e){return r.apply(this,arguments)})},{key:"clearAllModels",value:(n=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:case"end":return e.stop()}},e)})),function(){return n.apply(this,arguments)})},{key:"clearAllData",value:(t=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Promise.all([this.clear(),this.clearAllModels()]));case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})}]),e}();we.SFStorageManager=ae;var oe,se=function(){function O(e,t,n,r,i){V(this,O),O.KeyRequestLoadLocal="KeyRequestLoadLocal",O.KeyRequestSaveLocal="KeyRequestSaveLocal",O.KeyRequestLoadSaveAccount="KeyRequestLoadSaveAccount",this.httpManager=n,this.modelManager=e,this.storageManager=t,this.$interval=i||setInterval.bind(window),this.$timeout=r||setTimeout.bind(window),this.syncStatus={},this.syncStatusObservers=[],this.eventHandlers=[],this.PerSyncItemUploadLimit=150,this.ServerItemDownloadLimit=150,this.MajorDataChangeThreshold=15,this.MaxDiscordanceBeforeOutOfSync=5,this.syncDiscordance=0,this.outOfSync=!1}var e,t,n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x;return q(O,[{key:"handleServerIntegrityHash",value:(x=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&0!=t.length){e.next=2;break}return e.abrupt("return",!0);case 2:return e.next=4,this.modelManager.computeDataIntegrityHash();case 4:if(n=e.sent){e.next=7;break}return e.abrupt("return",!0);case 7:if(n!==t)return this.syncDiscordance++,this.syncDiscordance>=this.MaxDiscordanceBeforeOutOfSync&&(this.outOfSync||(this.outOfSync=!0,this.notifyEvent("enter-out-of-sync"))),e.abrupt("return",!1);e.next=13;break;case 13:return this.outOfSync&&(this.outOfSync=!1,this.notifyEvent("exit-out-of-sync")),this.syncDiscordance=0,e.abrupt("return",!0);case 16:case"end":return e.stop()}},e,this)})),function(e){return x.apply(this,arguments)})},{key:"isOutOfSync",value:function(){return this.outOfSync}},{key:"getServerURL",value:(w=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.storageManager.getItem("server");case 2:if(e.t0=e.sent,e.t0){e.next=5;break}e.t0=window._default_sf_server;case 5:return e.abrupt("return",e.t0);case 6:case"end":return e.stop()}},e,this)})),function(){return w.apply(this,arguments)})},{key:"getSyncURL",value:(b=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getServerURL();case 2:return e.t0=e.sent,e.abrupt("return",e.t0+"/items/sync");case 4:case"end":return e.stop()}},e,this)})),function(){return b.apply(this,arguments)})},{key:"registerSyncStatusObserver",value:function(e){var t={key:new Date,callback:e};return this.syncStatusObservers.push(t),t}},{key:"removeSyncStatusObserver",value:function(e){_.pull(this.syncStatusObservers,e)}},{key:"syncStatusDidChange",value:function(){var t=this;this.syncStatusObservers.forEach(function(e){e.callback(t.syncStatus)})}},{key:"addEventHandler",value:function(e){return this.eventHandlers.push(e),e}},{key:"removeEventHandler",value:function(e){_.pull(this.eventHandlers,e)}},{key:"notifyEvent",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=this.eventHandlers[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){(0,a.value)(e,t||{})}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}}},{key:"setKeyRequestHandler",value:function(e){this.keyRequestHandler=e}},{key:"getActiveKeyInfo",value:(k=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.keyRequestHandler(t));case 1:case"end":return e.stop()}},e,this)})),function(e){return k.apply(this,arguments)})},{key:"initialDataLoaded",value:function(){return!0===this._initialDataLoaded}},{key:"_sortLocalItems",value:function(e){var o=this;return e.sort(function(e,t){var n=new Date(t.updated_at)-new Date(e.updated_at),r=o.contentTypeLoadPriority,i=0,a=0;return r&&(i=r.indexOf(e.content_type),a=r.indexOf(t.content_type),-1==i&&(i=r.length),-1==a&&(a=r.length)),i==a?n:i<a?-1:1})}},{key:"loadLocalItems",value:(y=z(regeneratorRuntime.mark(function e(){var t,c,u,n,r,l=this,i=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(c=(t=0<i.length&&void 0!==i[0]?i[0]:{}).incrementalCallback,u=t.batchSize,(n=t.options)&&n.simulateHighLatency)return r=n.simulatedLatency||1e3,e.next=5,this._awaitSleep(r);e.next=5;break;case 5:if(this.loadLocalDataPromise)return e.abrupt("return",this.loadLocalDataPromise);e.next=7;break;case 7:return u=u||100,this.loadLocalDataPromise=this.storageManager.getAllModels().then(function(r){var i=(r=(r=l._sortLocalItems(r)).filter(function(e){var t=l.modelManager.findItem(e.uuid);return!t||new Date(e.dirtiedDate)>t.dirtiedDate})).length,a=0,o=[],s=function(){var e=z(regeneratorRuntime.mark(function e(){var t,n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.slice(a,a+u),e.next=3,l.handleItemsResponse(t,null,Z.MappingSourceLocalRetrieved,O.KeyRequestLoadLocal);case 3:if(n=e.sent,o.push(n),(a+=t.length)<i)return e.abrupt("return",new Promise(function(e,t){l.$timeout(function(){l.notifyEvent("local-data-incremental-load"),c&&c(a,i),s().then(e)})}));e.next=10;break;case 10:l._initialDataLoaded=!0,l.notifyEvent("local-data-loaded");case 12:case"end":return e.stop()}},e)}));return function(){return e.apply(this,arguments)}}();return s()}),e.abrupt("return",this.loadLocalDataPromise);case 10:case"end":return e.stop()}},e,this)})),function(){return y.apply(this,arguments)})},{key:"writeItemsToLocalStorage",value:(g=z(regeneratorRuntime.mark(function e(p,h){var m=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0==p.length)return e.abrupt("return");e.next=2;break;case 2:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l,d,f;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(r=[],i=[],o=!(a=!0),s=void 0,e.prev=4,c=p[Symbol.iterator]();!(a=(u=c.next()).done);a=!0)!0!==(l=u.value).deleted||l.dirty?r.push(l):i.push(l);e.next=12;break;case 8:e.prev=8,e.t0=e.catch(4),o=!0,s=e.t0;case 12:e.prev=12,e.prev=13,a||null==c.return||c.return();case 15:if(e.prev=15,o)throw s;e.next=18;break;case 18:return e.finish(15);case 19:return e.finish(12);case 20:if(0<i.length)return e.next=23,Promise.all(i.map(function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",m.storageManager.deleteModel(t));case 1:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()));e.next=23;break;case 23:return e.next=25,m.getActiveKeyInfo(O.KeyRequestSaveLocal);case 25:if(d=e.sent,0<r.length)return e.next=29,Promise.all(r.map(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=new ue(t,d.keys,d.auth_params),e.next=3,n.paramsForLocalStorage();case 3:return n=e.sent,h&&delete n.dirty,e.abrupt("return",n);case 6:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}())).catch(function(e){return n(e)});e.next=33;break;case 29:return f=e.sent,e.next=32,m.storageManager.saveModels(f).catch(function(e){console.error("Error writing items",e),m.syncStatus.localError=e,m.syncStatusDidChange(),n()});case 32:m.syncStatus.localError&&(m.syncStatus.localError=null,m.syncStatusDidChange());case 33:t();case 34:case"end":return e.stop()}},e,null,[[4,8,12,20],[13,,15,19]])}));return function(e,t){return n.apply(this,arguments)}}()));case 3:case"end":return e.stop()}},e)})),function(e,t){return g.apply(this,arguments)})},{key:"syncOffline",value:(v=z(regeneratorRuntime.mark(function e(s){var t,n,r,i,a,c=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(n=!(t=!0),r=void 0,e.prev=3,i=s[Symbol.iterator]();!(t=(a=i.next()).done);t=!0)a.value.updated_at=new Date;e.next=11;break;case 7:e.prev=7,e.t0=e.catch(3),n=!0,r=e.t0;case 11:e.prev=11,e.prev=12,t||null==i.return||i.return();case 14:if(e.prev=14,n)throw r;e.next=17;break;case 17:return e.finish(14);case 18:return e.finish(11);case 19:return e.abrupt("return",this.writeItemsToLocalStorage(s,!0).then(function(e){var t=!0,n=!1,r=void 0;try{for(var i,a=s[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value;o.deleted&&c.modelManager.removeItemLocally(o)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}return c.modelManager.clearDirtyItems(s),c.modelManager.didSyncModelsOffline(s),c.notifyEvent("sync:completed",{savedItems:s}),{saved_items:s}}));case 20:case"end":return e.stop()}},e,this,[[3,7,11,19],[12,,14,18]])})),function(e){return v.apply(this,arguments)})},{key:"markAllItemsDirtyAndSaveOffline",value:(m=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=28;break}n=this.modelManager.allNondummyItems.filter(function(e){return!e.errorDecrypting}).slice(),i=!(r=!0),a=void 0,e.prev=5,o=n[Symbol.iterator]();case 7:if(r=(s=o.next()).done){e.next=14;break}return c=s.value,e.next=11,this.modelManager.alternateUUIDForItem(c);case 11:r=!0,e.next=7;break;case 14:e.next=20;break;case 16:e.prev=16,e.t0=e.catch(5),i=!0,a=e.t0;case 20:e.prev=20,e.prev=21,r||null==o.return||o.return();case 23:if(e.prev=23,i)throw a;e.next=26;break;case 26:return e.finish(23);case 27:return e.finish(20);case 28:for(u=this.modelManager.allNondummyItems,d=!(l=!0),f=void 0,e.prev=32,p=u[Symbol.iterator]();!(l=(h=p.next()).done);l=!0)h.value.setDirty(!0);e.next=40;break;case 36:e.prev=36,e.t1=e.catch(32),d=!0,f=e.t1;case 40:e.prev=40,e.prev=41,l||null==p.return||p.return();case 43:if(e.prev=43,d)throw f;e.next=46;break;case 46:return e.finish(43);case 47:return e.finish(40);case 48:return e.abrupt("return",this.writeItemsToLocalStorage(u,!1));case 49:case"end":return e.stop()}},e,this,[[5,16,20,28],[21,,23,27],[32,36,40,48],[41,,43,47]])})),function(e){return m.apply(this,arguments)})},{key:"setSyncToken",value:(h=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this._syncToken=t,e.next=3,this.storageManager.setItem("syncToken",t);case 3:case"end":return e.stop()}},e,this)})),function(e){return h.apply(this,arguments)})},{key:"getSyncToken",value:(p=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._syncToken){e.next=4;break}return e.next=3,this.storageManager.getItem("syncToken");case 3:this._syncToken=e.sent;case 4:return e.abrupt("return",this._syncToken);case 5:case"end":return e.stop()}},e,this)})),function(){return p.apply(this,arguments)})},{key:"setCursorToken",value:(f=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._cursorToken=t)return e.next=4,this.storageManager.setItem("cursorToken",t);e.next=6;break;case 4:e.next=8;break;case 6:return e.next=8,this.storageManager.removeItem("cursorToken");case 8:case"end":return e.stop()}},e,this)})),function(e){return f.apply(this,arguments)})},{key:"getCursorToken",value:(d=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this._cursorToken){e.next=4;break}return e.next=3,this.storageManager.getItem("cursorToken");case 3:this._cursorToken=e.sent;case 4:return e.abrupt("return",this._cursorToken);case 5:case"end":return e.stop()}},e,this)})),function(){return d.apply(this,arguments)})},{key:"clearQueuedCallbacks",value:function(){this._queuedCallbacks=[]}},{key:"callQueuedCallbacks",value:function(e){var t=this.queuedCallbacks;if(t.length){var n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){(0,a.value)(e)}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}this.clearQueuedCallbacks()}}},{key:"beginCheckingIfSyncIsTakingTooLong",value:function(){this.syncStatus.checker&&this.stopCheckingIfSyncIsTakingTooLong(),this.syncStatus.checker=this.$interval(function(){5<(new Date-this.syncStatus.syncStart)/1e3&&(this.notifyEvent("sync:taking-too-long"),this.stopCheckingIfSyncIsTakingTooLong())}.bind(this),500)}},{key:"stopCheckingIfSyncIsTakingTooLong",value:function(){this.$interval.hasOwnProperty("cancel")?this.$interval.cancel(this.syncStatus.checker):clearInterval(this.syncStatus.checker),this.syncStatus.checker=null}},{key:"lockSyncing",value:function(){this.syncLocked=!0}},{key:"unlockSyncing",value:function(){this.syncLocked=!1}},{key:"sync",value:(l=z(regeneratorRuntime.mark(function e(){var g,y=this,t=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(g=0<t.length&&void 0!==t[0]?t[0]:{},this.syncLocked)return console.log("Sync Locked, Returning;"),e.abrupt("return");e.next=4;break;case 4:return e.abrupt("return",new Promise(function(){var n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o,s,c,u,l,d,f,p,h,m,v;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return g=g||{},r=y.modelManager.getDirtyItems(),i=r.filter(function(e){return!y.lastDirtyItemsSave||e.dirtiedDate>y.lastDirtyItemsSave}),e.next=5,y.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 5:if(a=e.sent,o=y.syncStatus.syncOpInProgress,s=y.initialDataLoaded(),o||!s)return y.performSyncAgainOnCompletion=!0,y.lastDirtyItemsSave=new Date,e.next=13,y.writeItemsToLocalStorage(i,!1);e.next=16;break;case 13:return o&&(y.queuedCallbacks.push(n),y.loggingEnabled&&console.warn("Attempting to sync while existing sync is in progress.")),s||(y.loggingEnabled&&console.warn("(1) Attempting to perform online sync before local data has loaded"),n()),e.abrupt("return");case 16:if(y.syncStatus.syncOpInProgress=!0,a.offline)return e.abrupt("return",y.syncOffline(r).then(function(e){y.syncStatus.syncOpInProgress=!1,n(e)}).catch(function(e){y.notifyEvent("sync-exception",e)}));e.next=19;break;case 19:if(y.initialDataLoaded()){e.next=22;break}return console.error("Attempting to perform online sync before local data has loaded"),e.abrupt("return");case 22:return y.loggingEnabled&&console.log("Syncing online user."),c=y.syncStatus.needsMoreSync,y.syncStatus.syncStart=new Date,y.beginCheckingIfSyncIsTakingTooLong(),u=y.PerSyncItemUploadLimit,(l=r.slice(0,u)).length<r.length?y.syncStatus.needsMoreSync=!0:y.syncStatus.needsMoreSync=!1,c||(y.syncStatus.total=r.length,y.syncStatus.current=0),y.syncStatus.current>y.syncStatus.total&&(y.syncStatus.total=y.syncStatus.current),y.syncStatusDidChange(),e.next=34,y.writeItemsToLocalStorage(i,!1);case 34:return y.lastDirtyItemsSave=new Date,g.onPreSyncSave&&g.onPreSyncSave(),y.allRetreivedItems||(y.allRetreivedItems=[]),y.allSavedItems||(y.allSavedItems=[]),(d={}).limit=y.ServerItemDownloadLimit,g.performIntegrityCheck&&(d.compute_integrity=!0),e.prev=41,e.next=44,Promise.all(l.map(function(e){var t=new ue(e,a.keys,a.auth_params);return t.additionalFields=g.additionalFields,t.paramsForSync()})).then(function(e){d.items=e});case 44:e.next=49;break;case 46:e.prev=46,e.t0=e.catch(41),y.notifyEvent("sync-exception",e.t0);case 49:for(p=!(f=!0),h=void 0,e.prev=52,m=l[Symbol.iterator]();!(f=(v=m.next()).done);f=!0)v.value.dirtyCount=0;e.next=60;break;case 56:e.prev=56,e.t1=e.catch(52),p=!0,h=e.t1;case 60:e.prev=60,e.prev=61,f||null==m.return||m.return();case 63:if(e.prev=63,p)throw h;e.next=66;break;case 66:return e.finish(63);case 67:return e.finish(60);case 68:return e.next=70,y.getSyncToken();case 70:return d.sync_token=e.sent,e.next=73,y.getCursorToken();case 73:return d.cursor_token=e.sent,d.api=Y.getApiVersion(),y.loggingEnabled&&console.log("Syncing with params",d),e.prev=76,e.t2=y.httpManager,e.next=80,y.getSyncURL();case 80:e.t3=e.sent,e.t4=d,e.t5=function(e){y.handleSyncSuccess(l,e,g).then(function(){n(e)}).catch(function(t){console.log("Caught sync success exception:",t),y.handleSyncError(t,null,r).then(function(e){y.notifyEvent("sync-exception",t),n(e)})})},e.t6=function(e,t){y.handleSyncError(e,t,r).then(function(e){n(e)})},e.t2.postAuthenticatedAbsolute.call(e.t2,e.t3,e.t4,e.t5,e.t6),e.next=90;break;case 87:e.prev=87,e.t7=e.catch(76),console.log("Sync exception caught:",e.t7);case 90:case"end":return e.stop()}},e,null,[[41,46],[52,56,60,68],[61,,63,67],[76,87]])}));return function(e,t){return n.apply(this,arguments)}}()));case 5:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"_awaitSleep",value:(u=z(regeneratorRuntime.mark(function e(n){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return console.warn("Simulating high latency sync request",n),e.abrupt("return",new Promise(function(e,t){setTimeout(function(){e()},n)}));case 2:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})},{key:"handleSyncSuccess",value:(c=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r.simulateHighLatency)return i=r.simulatedLatency||1e3,e.next=4,this._awaitSleep(i);e.next=4;break;case 4:for(this.syncStatus.error=null,this.loggingEnabled&&console.log("Sync response",n),a=this.allSavedItems.map(function(e){return e.uuid}),o=n.saved_items.map(function(e){return e.uuid}),n.retrieved_items=n.retrieved_items.filter(function(e){var t=a.includes(e.uuid),n=o.includes(e.uuid);if(t||n)return!1;var r=b.modelManager.findItem(e.uuid);return!r||!r.dirty}),s=[],u=!(c=!0),l=void 0,e.prev=13,d=t[Symbol.iterator]();!(c=(f=d.next()).done);c=!0)0==(p=f.value).dirtyCount&&s.push(p);e.next=21;break;case 17:e.prev=17,e.t0=e.catch(13),u=!0,l=e.t0;case 21:e.prev=21,e.prev=22,c||null==d.return||d.return();case 24:if(e.prev=24,u)throw l;e.next=27;break;case 27:return e.finish(24);case 28:return e.finish(21);case 29:return this.modelManager.clearDirtyItems(s),e.next=32,this.handleItemsResponse(n.retrieved_items,null,Z.MappingSourceRemoteRetrieved,O.KeyRequestLoadSaveAccount);case 32:return h=e.sent,this.allRetreivedItems=this.allRetreivedItems.concat(h),this.syncStatus.retrievedCount=this.allRetreivedItems.length,m=["content","auth_hash"],e.next=38,this.handleItemsResponse(n.saved_items,m,Z.MappingSourceRemoteSaved,O.KeyRequestLoadSaveAccount);case 38:return v=e.sent,this.allSavedItems=this.allSavedItems.concat(v),g=n.unsaved,e.next=43,this.deprecated_handleUnsavedItemsResponse(g);case 43:return e.next=45,this.handleConflictsResponse(n.conflicts);case 45:if(y=e.sent,k=y&&0<y.length,y)return e.next=50,this.writeItemsToLocalStorage(y,!1);e.next=50;break;case 50:return e.next=52,this.writeItemsToLocalStorage(v,!1);case 52:return e.next=54,this.writeItemsToLocalStorage(h,!1);case 54:if(n.integrity_hash&&!n.cursor_token)return e.next=57,this.handleServerIntegrityHash(n.integrity_hash);e.next=59;break;case 57:e.sent||this.syncDiscordance<this.MaxDiscordanceBeforeOutOfSync&&(this.performSyncAgainOnCompletion=!0);case 59:return this.syncStatus.syncOpInProgress=!1,this.syncStatus.current+=t.length,this.syncStatusDidChange(),this.setSyncToken(n.sync_token),this.setCursorToken(n.cursor_token),this.stopCheckingIfSyncIsTakingTooLong(),e.next=67,this.getCursorToken();case 67:if(e.sent||this.syncStatus.needsMoreSync)return e.abrupt("return",new Promise(function(e,t){setTimeout(function(){this.sync(r).then(e)}.bind(b),10)}));e.next=72;break;case 72:if(k)return this.performSyncAgainOnCompletion=!1,e.abrupt("return",new Promise(function(e,t){setTimeout(function(){b.sync(r).then(e)},10)}));e.next=77;break;case 77:return this.syncStatus.retrievedCount=0,this.syncStatus.current=0,this.syncStatus.total=0,this.syncStatusDidChange(),(this.allRetreivedItems.length>=this.majorDataChangeThreshold||v.length>=this.majorDataChangeThreshold||g&&g.length>=this.majorDataChangeThreshold||y&&y.length>=this.majorDataChangeThreshold)&&this.notifyEvent("major-data-change"),this.callQueuedCallbacks(n),this.notifyEvent("sync:completed",{retrievedItems:this.allRetreivedItems,savedItems:this.allSavedItems}),this.allRetreivedItems=[],this.allSavedItems=[],this.performSyncAgainOnCompletion&&(this.performSyncAgainOnCompletion=!1,setTimeout(function(){b.sync(r)},10)),e.abrupt("return",n);case 88:case"end":return e.stop()}},e,this,[[13,17,21,29],[22,,24,28]])})),function(e,t,n){return c.apply(this,arguments)})},{key:"handleSyncError",value:(s=z(regeneratorRuntime.mark(function e(t,n,r){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return console.log("Sync error: ",t),401==n&&this.notifyEvent("sync-session-invalid"),t?"string"==typeof t&&(t={error:{message:t}}):t={error:{message:"Could not connect to server."}},this.syncStatus.syncOpInProgress=!1,this.syncStatus.error=t.error,this.syncStatusDidChange(),this.writeItemsToLocalStorage(r,!1),this.modelManager.didSyncModelsOffline(r),this.stopCheckingIfSyncIsTakingTooLong(),this.notifyEvent("sync:error",t.error),this.callQueuedCallbacks({error:"Sync error"}),e.abrupt("return",t);case 12:case"end":return e.stop()}},e,this)})),function(e,t,n){return s.apply(this,arguments)})},{key:"handleItemsResponse",value:(o=z(regeneratorRuntime.mark(function e(t,n,r,i){var a,o,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.getActiveKeyInfo(i);case 2:return a=e.sent.keys,e.next=5,SFJS.itemTransformer.decryptMultipleItems(t,a);case 5:return e.next=7,this.modelManager.mapResponseItemsToLocalModelsOmittingFields(t,n,r);case 7:return o=e.sent,0<(s=o.filter(function(e){var t=e.errorDecryptingValueChanged;return e.errorDecryptingValueChanged=!1,t})).length&&this.writeItemsToLocalStorage(s,!1),e.abrupt("return",o);case 11:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return o.apply(this,arguments)})},{key:"refreshErroredItems",value:(a=z(regeneratorRuntime.mark(function e(){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(0<(t=this.modelManager.allNondummyItems.filter(function(e){return 1==e.errorDecrypting})).length)return e.abrupt("return",this.handleItemsResponse(t,null,Z.MappingSourceLocalRetrieved,O.KeyRequestLoadSaveAccount));e.next=3;break;case 3:case"end":return e.stop()}},e,this)})),function(){return a.apply(this,arguments)})},{key:"handleConflictsResponse",value:(i=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d,f,p,h,m,v,g,y,k,b,w,x,S,$,_,M,I,C,A,D,R,E,P;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&0!=t.length){e.next=2;break}return e.abrupt("return");case 2:this.loggingEnabled&&console.log("Handle Conflicted Items:",t),n={},i=!(r=!0),a=void 0,e.prev=7,o=t[Symbol.iterator]();case 9:if(r=(s=o.next()).done){e.next=21;break}if(c=s.value,u=c.server_item||c.unsaved_item,l=this.modelManager.findItem(u.uuid)){e.next=16;break}return n[u.uuid]={},e.abrupt("continue",18);case 16:d=l.getContentCopy(),n[u.uuid]={frozenContent:d,itemRef:l};case 18:r=!0,e.next=9;break;case 21:e.next=27;break;case 23:e.prev=23,e.t0=e.catch(7),i=!0,a=e.t0;case 27:e.prev=27,e.prev=28,r||null==o.return||o.return();case 30:if(e.prev=30,i)throw a;e.next=33;break;case 33:return e.finish(30);case 34:return e.finish(27);case 35:f=[],h=!(p=!0),m=void 0,e.prev=39,v=t[Symbol.iterator]();case 41:if(p=(g=v.next()).done){e.next=91;break}return y=g.value,k=y.server_item||y.unsaved_item,e.t1=SFJS.itemTransformer,e.t2=[k],e.next=48,this.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 48:return e.t3=e.sent.keys,e.next=51,e.t1.decryptMultipleItems.call(e.t1,e.t2,e.t3);case 51:if(b=n[k.uuid],w=b.frozenContent,x=b.itemRef){e.next=54;break}return e.abrupt("continue",88);case 54:if(f.push(x),"uuid_conflict"===y.type)return e.next=58,this.modelManager.alternateUUIDForItem(x);e.next=62;break;case 58:S=e.sent,f.push(S),e.next=88;break;case 62:if("sync_conflict"===y.type)return e.next=65,this.modelManager.createDuplicateItemFromResponseItem(k);e.next=86;break;case 65:if($=e.sent,_=this.modelManager.duplicateItemWithCustomContent({content:w,duplicateOf:x}),M=!_.isItemContentEqualWith($),I=!x.isItemContentEqualWith($),R=D=A=C=!1,k.deleted||x.deleted?R=!0:M?(20,(new Date-x.client_updated_at)/1e3<20?A=D=!0:R=C=!0):I?(E=!ce.AreItemContentsEqual({leftContent:x.content,rightContent:$.content,keysToIgnore:x.keysToIgnoreWhenCheckingContentEquality().concat(["references"]),appDataKeysToIgnore:x.appDataKeysToIgnoreWhenCheckingContentEquality()}),!E?D=!0:R=C=!0):R=!0,C)return e.next=77,this.modelManager.duplicateItemWithCustomContentAndAddAsConflict({content:w,duplicateOf:x});e.next=79;break;case 77:P=e.sent,f.push(P);case 79:if(A&&(this.modelManager.addDuplicatedItemAsConflict({duplicate:$,duplicateOf:x}),f.push($)),R)return e.next=83,this.modelManager.mapResponseItemsToLocalModelsOmittingFields([k],null,Z.MappingSourceRemoteRetrieved);e.next=83;break;case 83:D&&(x.updated_at=$.updated_at,x.setDirty(!0)),e.next=88;break;case 86:return console.error("Unsupported conflict type",y.type),e.abrupt("continue",88);case 88:p=!0,e.next=41;break;case 91:e.next=97;break;case 93:e.prev=93,e.t4=e.catch(39),h=!0,m=e.t4;case 97:e.prev=97,e.prev=98,p||null==v.return||v.return();case 100:if(e.prev=100,h)throw m;e.next=103;break;case 103:return e.finish(100);case 104:return e.finish(97);case 105:return e.abrupt("return",f);case 106:case"end":return e.stop()}},e,this,[[7,23,27,35],[28,,30,34],[39,93,97,105],[98,,100,104]])})),function(e){return i.apply(this,arguments)})},{key:"deprecated_handleUnsavedItemsResponse",value:(r=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&0!=t.length){e.next=2;break}return e.abrupt("return");case 2:this.loggingEnabled&&console.log("Handle Unsaved Items:",t),r=!(n=!0),i=void 0,e.prev=6,a=t[Symbol.iterator]();case 8:if(n=(o=a.next()).done){e.next=35;break}return s=o.value,c=s.item,e.t0=SFJS.itemTransformer,e.t1=[c],e.next=15,this.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 15:return e.t2=e.sent.keys,e.next=18,e.t0.decryptMultipleItems.call(e.t0,e.t1,e.t2);case 18:if(u=this.modelManager.findItem(c.uuid)){e.next=21;break}return e.abrupt("continue",32);case 21:if("uuid_conflict"===(l=s.error).tag)return e.next=25,this.modelManager.alternateUUIDForItem(u);e.next=27;break;case 25:e.next=32;break;case 27:if("sync_conflict"===l.tag)return e.next=30,this.modelManager.createDuplicateItemFromResponseItem(c);e.next=32;break;case 30:d=e.sent,c.deleted||u.isItemContentEqualWith(d)||this.modelManager.addDuplicatedItemAsConflict({duplicate:d,duplicateOf:u});case 32:n=!0,e.next=8;break;case 35:e.next=41;break;case 37:e.prev=37,e.t3=e.catch(6),r=!0,i=e.t3;case 41:e.prev=41,e.prev=42,n||null==a.return||a.return();case 44:if(e.prev=44,r)throw i;e.next=47;break;case 47:return e.finish(44);case 48:return e.finish(41);case 49:case"end":return e.stop()}},e,this,[[6,37,41,49],[42,,44,48]])})),function(e){return r.apply(this,arguments)})},{key:"stateless_downloadAllItems",value:function(e){var a=this,o=0<arguments.length&&void 0!==e?e:{};return new Promise(function(){var n=z(regeneratorRuntime.mark(function e(i,n){var t;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t={limit:o.limit||500,sync_token:o.syncToken,cursor_token:o.cursorToken,content_type:o.contentType,event:o.event,api:Y.getApiVersion()},e.prev=1,e.t0=a.httpManager,e.next=5,a.getSyncURL();case 5:e.t1=e.sent,e.t2=t,e.t3=function(){var t=z(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o.retrievedItems||(o.retrievedItems=[]),n=t.retrieved_items,e.next=4,a.getActiveKeyInfo(O.KeyRequestLoadSaveAccount);case 4:return r=e.sent.keys,e.next=7,SFJS.itemTransformer.decryptMultipleItems(n,r);case 7:o.retrievedItems=o.retrievedItems.concat(n.map(function(e){return a.modelManager.createItem(e)})),o.syncToken=t.sync_token,o.cursorToken=t.cursor_token,o.cursorToken?a.stateless_downloadAllItems(o).then(i):i(o.retrievedItems);case 11:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}(),e.t4=function(e,t){n(e)},e.t0.postAuthenticatedAbsolute.call(e.t0,e.t1,e.t2,e.t3,e.t4),e.next=16;break;case 12:e.prev=12,e.t5=e.catch(1),console.log("Download all items exception caught:",e.t5),n(e.t5);case 16:case"end":return e.stop()}},e,null,[[1,12]])}));return function(e,t){return n.apply(this,arguments)}}())}},{key:"resolveOutOfSync",value:(n=z(regeneratorRuntime.mark(function e(){var l=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.stateless_downloadAllItems({event:"resolve-out-of-sync"}).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n,r,i,a,o,s,c,u;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n=[],i=!(r=!0),a=void 0,e.prev=4,o=t[Symbol.iterator]();case 6:if(r=(s=o.next()).done){e.next=18;break}if(c=s.value,!(u=l.modelManager.findItem(c.uuid))){e.next=14;break}if(!c.isItemContentEqualWith(u))return e.next=14,l.modelManager.duplicateItemAndAddAsConflict(u);e.next=14;break;case 14:n.push(c);case 15:r=!0,e.next=6;break;case 18:e.next=24;break;case 20:e.prev=20,e.t0=e.catch(4),i=!0,a=e.t0;case 24:e.prev=24,e.prev=25,r||null==o.return||o.return();case 27:if(e.prev=27,i)throw a;e.next=30;break;case 30:return e.finish(27);case 31:return e.finish(24);case 32:return e.next=34,l.modelManager.mapResponseItemsToLocalModelsWithOptions({items:n,source:Z.MappingSourceRemoteRetrieved});case 34:return e.next=36,l.writeItemsToLocalStorage(l.modelManager.allNondummyItems);case 36:return e.abrupt("return",l.sync({performIntegrityCheck:!0}));case 37:case"end":return e.stop()}},e,null,[[4,20,24,32],[25,,27,31]])}));return function(e){return t.apply(this,arguments)}}()));case 1:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"handleSignout",value:(t=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.outOfSync=!1,this.loadLocalDataPromise=null,this.performSyncAgainOnCompletion=!1,this.syncStatus.syncOpInProgress=!1,this._queuedCallbacks=[],this.syncStatus={},e.abrupt("return",this.clearSyncToken());case 7:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"clearSyncToken",value:(e=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this._syncToken=null,this._cursorToken=null,e.abrupt("return",this.storageManager.removeItem("syncToken"));case 3:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"__setLocalDataNotLoaded",value:function(){this.loadLocalDataPromise=null,this._initialDataLoaded=!1}},{key:"queuedCallbacks",get:function(){return this._queuedCallbacks||(this._queuedCallbacks=[]),this._queuedCallbacks}}]),O}();we.SFSyncManager=se;var ce=function(){function o(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};V(this,o),this.content={},this.referencingObjects=[],this.updateFromJSON(e),this.uuid||"undefined"!=typeof SFJS&&SFJS.crypto.generateUUIDSync&&(this.uuid=SFJS.crypto.generateUUIDSync()),"object"!==H(this.content)||this.content.references||(this.content.references=[])}var e;return q(o,[{key:"initUUID",value:(e=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.uuid){e.next=4;break}return e.next=3,SFJS.crypto.generateUUID();case 3:this.uuid=e.sent;case 4:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})},{key:"updateFromJSON",value:function(e){if(e){this.deleted=e.deleted,this.uuid=e.uuid,this.enc_item_key=e.enc_item_key,this.auth_hash=e.auth_hash,this.auth_params=e.auth_params;for(var t=0,n=["errorDecrypting","dirty","dirtyCount","dirtiedDate","dummy"];t<n.length;t++){var r=n[t];void 0!==e[r]&&(this[r]=e[r])}if(this.dirtiedDate&&"string"==typeof this.dirtiedDate&&(this.dirtiedDate=new Date(this.dirtiedDate)),this.content_type||(this.content_type=e.content_type),e.errorDecrypting)this.content=e.content;else try{var i="string"==typeof e.content?JSON.parse(e.content):e.content;o.deepMerge(this.contentObject,i)}catch(e){console.log("Error while updating item from json",e)}e.created_at&&(this.created_at=e.created_at),e.updated_at&&(this.updated_at=e.updated_at),this.created_at?this.created_at=new Date(this.created_at):this.created_at=new Date,this.updated_at?this.updated_at=new Date(this.updated_at):this.updated_at=new Date(0),this._client_updated_at=null,e.content?this.mapContentToLocalProperties(this.contentObject):1==e.deleted&&this.handleDeletedContent()}}},{key:"mapContentToLocalProperties",value:function(){}},{key:"createContentJSONFromProperties",value:function(){var e=this.structureParams();return o.deepMerge(this.contentObject,e),e}},{key:"structureParams",value:function(){return this.getContentCopy()}},{key:"handleDeletedContent",value:function(){}},{key:"setDirty",value:function(e,t){this.dirty=e,this.dirtyCount||(this.dirtyCount=0),e?this.dirtyCount++:this.dirtyCount=0,this.dirtiedDate=new Date,e&&t?this.client_updated_at=new Date:this.hasRawClientUpdatedAtValue()||(this.client_updated_at=new Date(this.updated_at))}},{key:"updateLocalRelationships",value:function(){}},{key:"addItemAsRelationship",value:function(e){if(e.setIsBeingReferencedBy(this),!this.hasRelationshipWithItem(e)){var t=this.content.references||[];t.push({uuid:e.uuid,content_type:e.content_type}),this.content.references=t}}},{key:"removeItemAsRelationship",value:function(e){e.setIsNoLongerBeingReferencedBy(this),this.removeReferenceWithUuid(e.uuid)}},{key:"setIsBeingReferencedBy",value:function(e){_.find(this.referencingObjects,{uuid:e.uuid})||this.referencingObjects.push(e)}},{key:"setIsNoLongerBeingReferencedBy",value:function(e){_.remove(this.referencingObjects,{uuid:e.uuid}),this.hasRelationshipWithItem(e)&&(this.removeReferenceWithUuid(e.uuid),this.setDirty(!0))}},{key:"removeReferenceWithUuid",value:function(t){var e=this.content.references||[];e=e.filter(function(e){return e.uuid!=t}),this.content.references=e}},{key:"hasRelationshipWithItem",value:function(t){return null!=this.content.references.find(function(e){return e.uuid==t.uuid})}},{key:"isBeingRemovedLocally",value:function(){}},{key:"didFinishSyncing",value:function(){}},{key:"informReferencesOfUUIDChange",value:function(){}},{key:"potentialItemOfInterestHasChangedItsUUID",value:function(e,t,n){if(!this.errorDecrypting){var r=!0,i=!1,a=void 0;try{for(var o,s=this.content.references[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){var c=o.value;c.uuid==t&&(c.uuid=n,this.setDirty(!0))}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}}}},{key:"doNotEncrypt",value:function(){return!1}},{key:"setDomainDataItem",value:function(e,t,n){if(n){if(!this.errorDecrypting){this.content.appData||(this.content.appData={});var r=this.content.appData[n];(r=r||{})[e]=t,this.content.appData[n]=r}}else console.error("SFItem.AppDomain needs to be set.")}},{key:"getDomainDataItem",value:function(e,t){if(t){if(!this.errorDecrypting){this.content.appData||(this.content.appData={});var n=this.content.appData[t];return n?n[e]:null}}else console.error("SFItem.AppDomain needs to be set.")}},{key:"setAppDataItem",value:function(e,t){this.setDomainDataItem(e,t,o.AppDomain)}},{key:"getAppDataItem",value:function(e){return this.getDomainDataItem(e,o.AppDomain)}},{key:"hasRawClientUpdatedAtValue",value:function(){return null!=this.getAppDataItem("client_updated_at")}},{key:"keysToIgnoreWhenCheckingContentEquality",value:function(){return[]}},{key:"appDataKeysToIgnoreWhenCheckingContentEquality",value:function(){return["client_updated_at"]}},{key:"getContentCopy",value:function(){return JSON.parse(JSON.stringify(this.content))}},{key:"isItemContentEqualWith",value:function(e){return o.AreItemContentsEqual({leftContent:this.content,rightContent:e.content,keysToIgnore:this.keysToIgnoreWhenCheckingContentEquality(),appDataKeysToIgnore:this.appDataKeysToIgnoreWhenCheckingContentEquality()})}},{key:"satisfiesPredicate",value:function(e){return le.ItemSatisfiesPredicate(this,e)}},{key:"createdAtString",value:function(){return this.dateToLocalizedString(this.created_at)}},{key:"updatedAtString",value:function(){return this.dateToLocalizedString(this.client_updated_at)}},{key:"updatedAtTimestamp",value:function(){return this.updated_at.getTime()}},{key:"dateToLocalizedString",value:function(e){if("undefined"!=typeof Intl&&Intl.DateTimeFormat){if(!oe){var t=navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language;oe=new Intl.DateTimeFormat(t,{year:"numeric",month:"short",day:"2-digit",weekday:"long",hour:"2-digit",minute:"2-digit"})}return oe.format(e)}return e.toDateString()+" "+e.toLocaleTimeString()}},{key:"contentObject",get:function(){if(this.errorDecrypting)return this.content;if(!this.content)return this.content={},this.content;if(null!==this.content&&"object"===H(this.content))return this.content;try{var e=JSON.parse(this.content);return this.content=e,this.content}catch(e){return console.log("Error parsing json",e,this),this.content={},this.content}}},{key:"pinned",get:function(){return this.getAppDataItem("pinned")}},{key:"archived",get:function(){return this.getAppDataItem("archived")}},{key:"locked",get:function(){return this.getAppDataItem("locked")}},{key:"displayName",get:function(){return"Item"}},{key:"client_updated_at",get:function(){if(!this._client_updated_at){var e=this.getAppDataItem("client_updated_at");this._client_updated_at=e?new Date(e):new Date(this.updated_at)}return this._client_updated_at},set:function(e){this._client_updated_at=e,this.setAppDataItem("client_updated_at",e)}}],[{key:"deepMerge",value:function(e,t){return _.mergeWith(e,t,function(e,t){if(_.isArray(e))return t}),e}},{key:"AreItemContentsEqual",value:function(e){function t(e,t){if(!e)return e;var n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){delete e[a.value]}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}return e}var n=e.leftContent,r=e.rightContent,i=e.keysToIgnore,a=e.appDataKeysToIgnore;return(n=JSON.parse(JSON.stringify(n))).appData&&t(n.appData[o.AppDomain],a),n=t(n,i),(r=JSON.parse(JSON.stringify(r))).appData&&t(r.appData[o.AppDomain],a),r=t(r,i),JSON.stringify(n)===JSON.stringify(r)}}]),o}();we.SFItem=ce;var ue=function(){function r(e,t,n){if(V(this,r),this.item=e,this.keys=t,this.auth_params=n,this.keys&&!this.auth_params)throw"SFItemParams.auth_params must be supplied if supplying keys.";if(this.auth_params&&!this.auth_params.version)throw"SFItemParams.auth_params is missing version"}var e,t,n,i,a;return q(r,[{key:"paramsForExportFile",value:(a=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.forExportFile=!0,t)return e.abrupt("return",this.__params());e.next=5;break;case 5:return e.next=7,this.__params();case 7:return n=e.sent,e.abrupt("return",_.omit(n,["deleted"]));case 9:case"end":return e.stop()}},e,this)})),function(e){return a.apply(this,arguments)})},{key:"paramsForExtension",value:(i=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.paramsForExportFile());case 1:case"end":return e.stop()}},e,this)})),function(){return i.apply(this,arguments)})},{key:"paramsForLocalStorage",value:(n=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.additionalFields=["dirty","dirtiedDate","errorDecrypting"],this.forExportFile=!0,e.abrupt("return",this.__params());case 3:case"end":return e.stop()}},e,this)})),function(){return n.apply(this,arguments)})},{key:"paramsForSync",value:(t=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.__params());case 1:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"__params",value:(e=z(regeneratorRuntime.mark(function e(){var t,n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t={uuid:this.item.uuid,content_type:this.item.content_type,deleted:this.item.deleted,created_at:this.item.created_at,updated_at:this.item.updated_at},this.item.errorDecrypting){e.next=23;break}if(n=this.item.doNotEncrypt()&&!this.forExportFile,this.keys&&!n)return e.next=6,SFJS.itemTransformer.encryptItem(this.item,this.keys,this.auth_params);e.next=11;break;case 6:r=e.sent,_.merge(t,r),"001"!==this.auth_params.version&&(t.auth_hash=null),e.next=21;break;case 11:if(!this.forExportFile){e.next=15;break}e.t0=this.item.createContentJSONFromProperties(),e.next=19;break;case 15:return e.next=17,SFJS.crypto.base64(JSON.stringify(this.item.createContentJSONFromProperties()));case 17:e.t1=e.sent,e.t0="000"+e.t1;case 19:t.content=e.t0,this.forExportFile||(t.enc_item_key=null,t.auth_hash=null);case 21:e.next=26;break;case 23:t.content=this.item.content,t.enc_item_key=this.item.enc_item_key,t.auth_hash=this.item.auth_hash;case 26:return this.additionalFields&&_.merge(t,_.pick(this.item,this.additionalFields)),e.abrupt("return",t);case 28:case"end":return e.stop()}},e,this)})),function(){return e.apply(this,arguments)})}]),r}();we.SFItemParams=ue;var le=function(){function v(e,t,n){V(this,v),this.keypath=e,this.operator=t,this.value=n,v.IsRecursiveOperator(this.operator)&&(this.value=this.value.map(v.fromArray))}return q(v,null,[{key:"fromArray",value:function(e){return new v(e[0],e[1],e[2])}},{key:"ObjectSatisfiesPredicate",value:function(e,t){if(Array.isArray(t)&&(t=this.fromArray(t)),v.IsRecursiveOperator(t.operator)){if("and"===t.operator){var n=!0,r=!1,i=void 0;try{for(var a,o=t.value[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(!this.ObjectSatisfiesPredicate(e,s))return!1}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}return!0}if("or"===t.operator){var c=!0,u=!1,l=void 0;try{for(var d,f=t.value[Symbol.iterator]();!(c=(d=f.next()).done);c=!0){s=d.value;if(this.ObjectSatisfiesPredicate(e,s))return!0}}catch(e){u=!0,l=e}finally{try{c||null==f.return||f.return()}finally{if(u)throw l}}return!1}}var p=t.value;"string"==typeof p&&p.includes(".ago")&&(p=this.DateFromString(p));var h=t.keypath.split(".").reduce(function(e,t){return e&&e[t]},e),m=[!1,"",null,void 0,NaN];return null==h?"!="==t.operator?!m.includes(t.value):m.includes(t.value):"="==t.operator?Array.isArray(h)?JSON.stringify(h)==JSON.stringify(p):h==p:"!="==t.operator?Array.isArray(h)?JSON.stringify(h)!=JSON.stringify(p):h!==p:"<"==t.operator?h<p:">"==t.operator?p<h:"<="==t.operator?h<=p:">="==t.operator?p<=h:"startsWith"==t.operator?h.startsWith(p):"in"==t.operator?-1!=p.indexOf(h):"includes"==t.operator?this.resolveIncludesPredicate(h,p):"matches"==t.operator&&new RegExp(p).test(h)}},{key:"resolveIncludesPredicate",value:function(e,t){if("string"==typeof t)return e.includes(t);var n;n=Array.isArray(t)?v.fromArray(t):t;var r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done);r=!0){var c=o.value;if(this.ObjectSatisfiesPredicate(c,n))return!0}}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return!1}},{key:"ItemSatisfiesPredicate",value:function(e,t){return Array.isArray(t)&&(t=v.fromArray(t)),this.ObjectSatisfiesPredicate(e,t)}},{key:"ItemSatisfiesPredicates",value:function(e,t){var n=!0,r=!1,i=void 0;try{for(var a,o=t[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var s=a.value;if(!this.ItemSatisfiesPredicate(e,s))return!1}}catch(e){r=!0,i=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw i}}return!0}},{key:"DateFromString",value:function(e){var t=e.split("."),n=t[1],r=new Date,i=parseInt(t[0]);return"days"==n?r.setDate(r.getDate()-i):"hours"==n&&r.setHours(r.getHours()-i),r}},{key:"IsRecursiveOperator",value:function(e){return["and","or"].includes(e)}}]),v}();we.SFPredicate=le;var de=function(){function n(e){var t;return V(this,n),(t=F(this,L(n).call(this,e))).content.desktopPrivileges||(t.content.desktopPrivileges={}),t}return N(n,ce),q(n,null,[{key:"contentType",value:function(){return"SN|Privileges"}}]),q(n,[{key:"setCredentialsForAction",value:function(e,t){this.content.desktopPrivileges[e]=t}},{key:"getCredentialsForAction",value:function(e){return this.content.desktopPrivileges[e]||[]}},{key:"toggleCredentialForAction",value:function(e,t){this.isCredentialRequiredForAction(e,t)?this.removeCredentialForAction(e,t):this.addCredentialForAction(e,t)}},{key:"removeCredentialForAction",value:function(e,t){_.pull(this.content.desktopPrivileges[e],t)}},{key:"addCredentialForAction",value:function(e,t){var n=this.getCredentialsForAction(e);n.push(t),this.setCredentialsForAction(e,n)}},{key:"isCredentialRequiredForAction",value:function(e,t){return this.getCredentialsForAction(e).includes(t)}}]),n}();we.SFPrivileges=de;var fe=function(){function r(e){var n;return V(this,r),(n=F(this,L(r).call(this,e))).content.itemUUIDToItemHistoryMapping||(n.content.itemUUIDToItemHistoryMapping={}),Object.keys(n.content.itemUUIDToItemHistoryMapping).forEach(function(e){var t=n.content.itemUUIDToItemHistoryMapping[e];n.content.itemUUIDToItemHistoryMapping[e]=new pe(t)}),n}return N(r,ce),q(r,[{key:"addEntryForItem",value:function(e){return this.historyForItem(e).addHistoryEntryForItem(e)}},{key:"historyForItem",value:function(e){var t=this.content.itemUUIDToItemHistoryMapping[e.uuid];return t=t||(this.content.itemUUIDToItemHistoryMapping[e.uuid]=new pe)}},{key:"clearItemHistory",value:function(e){this.historyForItem(e).clear()}},{key:"clearAllHistory",value:function(){this.content.itemUUIDToItemHistoryMapping={}}},{key:"optimizeHistoryForItem",value:function(e){var t=this.historyForItem(e);t.entries.length>r.LargeItemEntryAmountThreshold&&t.optimize()}}]),r}();(we.SFHistorySession=fe).LargeItemEntryAmountThreshold=60;var pe=function(){function c(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};if(V(this,c),this.entries||(this.entries=[]),e.entries){var t=!0,n=!1,r=void 0;try{for(var i,a=e.entries[Symbol.iterator]();!(t=(i=a.next()).done);t=!0){var o=i.value,s=this.createEntryForItem(o.item);s.setPreviousEntry(this.getLastEntry()),this.entries.push(s)}}catch(e){n=!0,r=e}finally{try{t||null==a.return||a.return()}finally{if(n)throw r}}}}return q(c,[{key:"createEntryForItem",value:function(e){var t=c.HistoryEntryClassMapping&&c.HistoryEntryClassMapping[e.content_type];return new(t=t||he)(e)}},{key:"getLastEntry",value:function(){return this.entries[this.entries.length-1]}},{key:"addHistoryEntryForItem",value:function(e){var t=this.createEntryForItem(e),n=this.getLastEntry();if(t.setPreviousEntry(n),!t.isSameAsEntry(n))return this.entries.push(t),t}},{key:"clear",value:function(){this.entries.length=0}},{key:"optimize",value:function(){function i(e){return e.deltaSize()>c.LargeEntryDeltaThreshold}function r(e,t,n){if(n?o.push(e):-1!==(t=o.indexOf(e))&&o.splice(t,1),n&&i(e)&&-1==e.operationVector()){var r=a.entries[t-1];r&&o.push(r)}}var a=this,o=[];this.entries.forEach(function(e,t){if(0==t||t==a.entries.length-1)r(e,t,!0);else{var n=i(e);r(e,t,n)}}),this.entries=this.entries.filter(function(e,t){return-1!==o.indexOf(e)})}}]),c}();(we.SFItemHistory=pe).LargeEntryDeltaThreshold=15;var he=function(){function t(e){V(this,t),this.item=ce.deepMerge({},e),this.defaultContentKeyToDiffOn="text",this.textCharDiffLength=0,"string"==typeof this.item.updated_at&&(this.item.updated_at=new Date(this.item.updated_at))}return q(t,[{key:"setPreviousEntry",value:function(e){this.hasPreviousEntry=null!=e,this.item.content[this.defaultContentKeyToDiffOn]&&(this.textCharDiffLength=e?this.item.content[this.defaultContentKeyToDiffOn].length-e.item.content[this.defaultContentKeyToDiffOn].length:this.item.content[this.defaultContentKeyToDiffOn].length)}},{key:"operationVector",value:function(){return null!=this.textCharDiffLength?this.hasPreviousEntry&&0!=this.textCharDiffLength?this.textCharDiffLength<0?-1:1:0:1}},{key:"deltaSize",value:function(){return null!=this.textCharDiffLength?Math.abs(this.textCharDiffLength):1}},{key:"isSameAsEntry",value:function(e){if(!e)return!1;var t=new ce(this.item),n=new ce(e.item);return t.isItemContentEqualWith(n)}}]),t}();we.SFItemHistoryEntry=he;G="undefined"!=typeof window?window:void 0!==e?e:null;var me=function(){function e(){V(this,e),this.DefaultPBKDF2Length=768}var n,r,t,i,a,o,s,c,u,l,d,f,p,h,m;return q(e,[{key:"generateUUIDSync",value:function(){var e=G.crypto||G.msCrypto;if(e){var n=new Uint32Array(4);e.getRandomValues(n);var r=-1;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=n[++r>>3]>>r%8*4&15;return("x"==e?t:3&t|8).toString(16)})}var i=(new Date).getTime();return G.performance&&"function"==typeof G.performance.now&&(i+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=(i+16*Math.random())%16|0;return i=Math.floor(i/16),("x"==e?t:3&t|8).toString(16)})}},{key:"generateUUID",value:(m=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.generateUUIDSync());case 1:case"end":return e.stop()}},e,this)})),function(){return m.apply(this,arguments)})},{key:"timingSafeEqual",value:function(e,t){var n=String(e),r=String(t),i=n.length,a=0;i!==r.length&&(r=n,a=1);for(var o=0;o<i;o++)a|=n.charCodeAt(o)^r.charCodeAt(o);return 0===a}},{key:"decryptText",value:(h=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=(t=0<f.length&&void 0!==f[0]?f[0]:{}).ciphertextToAuth,r=t.contentCiphertext,i=t.encryptionKey,a=t.iv,o=t.authHash,s=t.authKey,(1<f.length?f[1]:void 0)&&!o)return console.error("Auth hash is required."),e.abrupt("return");e.next=5;break;case 5:if(o)return e.next=8,this.hmac256(n,s);e.next=12;break;case 8:if(c=e.sent,!1===this.timingSafeEqual(o,c))return console.error("Auth hash does not match, returning null."),e.abrupt("return",null);e.next=12;break;case 12:return u=C.enc.Hex.parse(i),l=C.enc.Hex.parse(a||""),d=C.AES.decrypt(r,u,{iv:l,mode:C.mode.CBC,padding:C.pad.Pkcs7}),e.abrupt("return",d.toString(C.enc.Utf8));case 16:case"end":return e.stop()}},e,this)})),function(){return h.apply(this,arguments)})},{key:"encryptText",value:(p=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=C.enc.Hex.parse(n),a=C.enc.Hex.parse(r||""),o=C.AES.encrypt(t,i,{iv:a,mode:C.mode.CBC,padding:C.pad.Pkcs7}),e.abrupt("return",o.toString());case 4:case"end":return e.stop()}},e)})),function(e,t,n){return p.apply(this,arguments)})},{key:"generateRandomKey",value:(f=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C.lib.WordArray.random(t/8).toString());case 1:case"end":return e.stop()}},e)})),function(e){return f.apply(this,arguments)})},{key:"generateItemEncryptionKey",value:(d=z(regeneratorRuntime.mark(function e(){var t,n,r,i;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=512,n=1,e.next=4,this.generateRandomKey(t);case 4:return r=e.sent,e.next=7,this.generateRandomKey(t);case 7:return i=e.sent,e.abrupt("return",this.pbkdf2(i,r,n,t));case 9:case"end":return e.stop()}},e,this)})),function(){return d.apply(this,arguments)})},{key:"firstHalfOfKey",value:(l=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.substring(0,t.length/2));case 1:case"end":return e.stop()}},e)})),function(e){return l.apply(this,arguments)})},{key:"secondHalfOfKey",value:(u=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t.substring(t.length/2,t.length));case 1:case"end":return e.stop()}},e)})),function(e){return u.apply(this,arguments)})},{key:"base64",value:(c=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",G.btoa(encodeURIComponent(t).replace(/%([0-9A-F]{2})/g,function(e,t){return String.fromCharCode("0x"+t)})));case 1:case"end":return e.stop()}},e)})),function(e){return c.apply(this,arguments)})},{key:"base64Decode",value:(s=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",G.atob(t));case 1:case"end":return e.stop()}},e)})),function(e){return s.apply(this,arguments)})},{key:"sha256",value:(o=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",C.SHA256(t).toString());case 1:case"end":return e.stop()}},e)})),function(e){return o.apply(this,arguments)})},{key:"hmac256",value:(a=z(regeneratorRuntime.mark(function e(t,n){var r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=C.enc.Hex.parse(n),i=C.enc.Utf8.parse(t),a=C.HmacSHA256(i,r).toString(),e.abrupt("return",a);case 4:case"end":return e.stop()}},e)})),function(e,t){return a.apply(this,arguments)})},{key:"generateSalt",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sha256([t,"SF",n,r,i].join(":"));case 2:return a=e.sent,e.abrupt("return",a);case 4:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return i.apply(this,arguments)})},{key:"generateSymmetricKeyPair",value:(t=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=(t=0<d.length&&void 0!==d[0]?d[0]:{}).password,r=t.pw_salt,i=t.pw_cost,e.next=3,this.pbkdf2(n,r,i,this.DefaultPBKDF2Length);case 3:return a=e.sent,o=a.length,s=o/3,c=a.slice(0,s),u=a.slice(s,2*s),l=a.slice(2*s,3*s),e.abrupt("return",[c,u,l]);case 10:case"end":return e.stop()}},e,this)})),function(){return t.apply(this,arguments)})},{key:"computeEncryptionKeysForUser",value:(r=z(regeneratorRuntime.mark(function e(t,n){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("003"!=n.version){e.next=9;break}if(n.identifier){e.next=4;break}return console.error("authParams is missing identifier."),e.abrupt("return");case 4:return e.next=6,this.generateSalt(n.identifier,n.version,n.pw_cost,n.pw_nonce);case 6:r=e.sent,e.next=10;break;case 9:r=n.pw_salt;case 10:return e.abrupt("return",this.generateSymmetricKeyPair({password:t,pw_salt:r,pw_cost:n.pw_cost}).then(function(e){return{pw:e[0],mk:e[1],ak:e[2]}}));case 11:case"end":return e.stop()}},e,this)})),function(e,t){return r.apply(this,arguments)})},{key:"generateInitialKeysAndAuthParamsForUser",value:(n=z(regeneratorRuntime.mark(function e(n,t){var r,i,a,o;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=this.SFJS.version,i=this.SFJS.defaultPasswordGenerationCost,e.next=4,this.generateRandomKey(256);case 4:return a=e.sent,e.next=7,this.generateSalt(n,r,i,a);case 7:return o=e.sent,e.abrupt("return",this.generateSymmetricKeyPair({password:t,pw_salt:o,pw_cost:i}).then(function(e){var t={pw_nonce:a,pw_cost:i,identifier:n,version:r};return{keys:{pw:e[0],mk:e[1],ak:e[2]},authParams:t}}));case 9:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)})}]),e}();we.SFAbstractCrypto=me;var ve=function(){function e(){return V(this,e),F(this,L(e).apply(this,arguments))}var i;return N(e,me),q(e,[{key:"pbkdf2",value:(i=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a={keySize:i/32,hasher:C.algo.SHA512,iterations:r},e.abrupt("return",C.PBKDF2(t,n,a).toString());case 2:case"end":return e.stop()}},e)})),function(e,t,n,r){return i.apply(this,arguments)})}]),e}();we.SFCryptoJS=ve;var ge=(G="undefined"!=typeof window?window:void 0!==e?e:null).crypto?G.crypto.subtle:null,ye=function(){function e(){return V(this,e),F(this,L(e).apply(this,arguments))}var t,n,r,i,a,o,s,c,u,l,d,f,p,h;return N(e,me),q(e,[{key:"pbkdf2",value:(h=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.webCryptoImportKey(t,"PBKDF2",["deriveBits"]);case 2:if(a=e.sent){e.next=6;break}return console.log("Key is null, unable to continue"),e.abrupt("return",null);case 6:return e.abrupt("return",this.webCryptoDeriveBits(a,n,r,i));case 7:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return h.apply(this,arguments)})},{key:"generateRandomKey",value:(p=z(regeneratorRuntime.mark(function e(t){var r=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return!0,e.abrupt("return",ge.generateKey({name:"AES-CBC",length:t},!0,["encrypt","decrypt"]).then(function(e){return ge.exportKey("raw",e).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.arrayBufferToHexString(new Uint8Array(t));case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){console.error("Error exporting key",e)})}).catch(function(e){console.error("Error generating key",e)}));case 2:case"end":return e.stop()}},e)})),function(e){return p.apply(this,arguments)})},{key:"generateItemEncryptionKey",value:(f=z(regeneratorRuntime.mark(function e(){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return 256,e.abrupt("return",Promise.all([this.generateRandomKey(256),this.generateRandomKey(256)]).then(function(e){return e.join("")}));case 2:case"end":return e.stop()}},e,this)})),function(){return f.apply(this,arguments)})},{key:"encryptText",value:(d=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o,s,c,u=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r)return e.next=3,this.hexStringToArrayBuffer(r);e.next=6;break;case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=new ArrayBuffer(16);case 7:return i=e.t0,a={name:"AES-CBC",iv:i},e.next=11,this.hexStringToArrayBuffer(n);case 11:return o=e.sent,e.next=14,this.webCryptoImportKey(o,a.name,["encrypt"]);case 14:return s=e.sent,e.next=17,this.stringToArrayBuffer(t);case 17:return c=e.sent,e.abrupt("return",crypto.subtle.encrypt(a,s,c).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,u.arrayBufferToBase64(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()));case 19:case"end":return e.stop()}},e,this)})),function(e,t,n){return d.apply(this,arguments)})},{key:"decryptText",value:(l=z(regeneratorRuntime.mark(function e(){var t,n,r,i,a,o,s,c,u,l,d,f,p,h=this,m=arguments;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=(t=0<m.length&&void 0!==m[0]?m[0]:{}).ciphertextToAuth,r=t.contentCiphertext,i=t.encryptionKey,a=t.iv,o=t.authHash,s=t.authKey,(1<m.length?m[1]:void 0)&&!o)return console.error("Auth hash is required."),e.abrupt("return");e.next=5;break;case 5:if(o)return e.next=8,this.hmac256(n,s);e.next=12;break;case 8:if(c=e.sent,!1===this.timingSafeEqual(o,c))return console.error("Auth hash does not match, returning null. ".concat(o," != ").concat(c)),e.abrupt("return",null);e.next=12;break;case 12:if(a)return e.next=15,this.hexStringToArrayBuffer(a);e.next=18;break;case 15:e.t0=e.sent,e.next=19;break;case 18:e.t0=new ArrayBuffer(16);case 19:return u=e.t0,l={name:"AES-CBC",iv:u},e.next=23,this.hexStringToArrayBuffer(i);case 23:return d=e.sent,e.next=26,this.webCryptoImportKey(d,l.name,["decrypt"]);case 26:return f=e.sent,e.next=29,this.base64ToArrayBuffer(r);case 29:return p=e.sent,e.abrupt("return",crypto.subtle.decrypt(l,f,p).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,h.arrayBufferToString(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){console.error("Error decrypting:",e)}));case 31:case"end":return e.stop()}},e,this)})),function(){return l.apply(this,arguments)})},{key:"hmac256",value:(u=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.hexStringToArrayBuffer(n);case 2:return r=e.sent,e.next=5,this.webCryptoImportKey(r,"HMAC",["sign"],{name:"SHA-256"});case 5:return i=e.sent,e.next=8,this.stringToArrayBuffer(t);case 8:return a=e.sent,e.abrupt("return",crypto.subtle.sign({name:"HMAC"},i,a).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.arrayBufferToHexString(t);case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){console.error("Error computing hmac",e)}));case 10:case"end":return e.stop()}},e,this)})),function(e,t){return u.apply(this,arguments)})},{key:"webCryptoImportKey",value:(c=z(regeneratorRuntime.mark(function e(t,n,r,i){var a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"==typeof t)return e.next=3,this.stringToArrayBuffer(t);e.next=6;break;case 3:e.t0=e.sent,e.next=7;break;case 6:e.t0=t;case 7:return a=e.t0,e.abrupt("return",ge.importKey("raw",a,{name:n,hash:i},!1,r).then(function(e){return e}).catch(function(e){return console.error(e),null}));case 9:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return c.apply(this,arguments)})},{key:"webCryptoDeriveBits",value:(s=z(regeneratorRuntime.mark(function e(t,n,r,i){var a,o=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.stringToArrayBuffer(n);case 2:return e.t0=e.sent,e.t1=r,e.t2={name:"SHA-512"},a={name:"PBKDF2",salt:e.t0,iterations:e.t1,hash:e.t2},e.abrupt("return",ge.deriveBits(a,t,i).then(function(){var t=z(regeneratorRuntime.mark(function e(t){var n;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.arrayBufferToHexString(new Uint8Array(t));case 2:return n=e.sent,e.abrupt("return",n);case 4:case"end":return e.stop()}},e)}));return function(e){return t.apply(this,arguments)}}()).catch(function(e){return console.error(e),null}));case 7:case"end":return e.stop()}},e,this)})),function(e,t,n,r){return s.apply(this,arguments)})},{key:"stringToArrayBuffer",value:(o=z(regeneratorRuntime.mark(function e(i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(t,e){var n=new Blob([i]),r=new FileReader;r.onload=function(e){t(e.target.result)},r.readAsArrayBuffer(n)}));case 1:case"end":return e.stop()}},e)})),function(e){return o.apply(this,arguments)})},{key:"arrayBufferToString",value:(a=z(regeneratorRuntime.mark(function e(i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(t,e){var n=new Blob([i]),r=new FileReader;r.onload=function(e){t(e.target.result)},r.readAsText(n)}));case 1:case"end":return e.stop()}},e)})),function(e){return a.apply(this,arguments)})},{key:"arrayBufferToHexString",value:(i=z(regeneratorRuntime.mark(function e(t){var n,r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(n=new Uint8Array(t),r="",a=0;a<n.byteLength;a++)(i=n[a].toString(16)).length<2&&(i="0"+i),r+=i;return e.abrupt("return",r);case 4:case"end":return e.stop()}},e)})),function(e){return i.apply(this,arguments)})},{key:"hexStringToArrayBuffer",value:(r=z(regeneratorRuntime.mark(function e(t){var n,r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(n=[],r=0;r<t.length;r+=2)n.push(parseInt(t.substr(r,2),16));return e.abrupt("return",new Uint8Array(n));case 2:case"end":return e.stop()}},e)})),function(e){return r.apply(this,arguments)})},{key:"base64ToArrayBuffer",value:(n=z(regeneratorRuntime.mark(function e(t){var n,r,i,a;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.base64Decode(t);case 2:for(n=e.sent,r=n.length,i=new Uint8Array(r),a=0;a<r;a++)i[a]=n.charCodeAt(a);return e.abrupt("return",i.buffer);case 7:case"end":return e.stop()}},e,this)})),function(e){return n.apply(this,arguments)})},{key:"arrayBufferToBase64",value:(t=z(regeneratorRuntime.mark(function e(i){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(n,e){var t=new Blob([i],{type:"application/octet-binary"}),r=new FileReader;r.onload=function(e){var t=e.target.result;n(t.substr(t.indexOf(",")+1))},r.readAsDataURL(t)}));case 1:case"end":return e.stop()}},e)})),function(e){return t.apply(this,arguments)})}]),e}();we.SFCryptoWeb=ye;var ke=function(){function t(e){V(this,t),this.crypto=e}var r,n,i,a;return q(t,[{key:"_private_encryptString",value:(a=z(regeneratorRuntime.mark(function e(t,n,r,i,a){var o,s,c,u,l,d;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("001"===a.version)return e.next=3,this.crypto.encryptText(t,n,null);e.next=7;break;case 3:s=e.sent,o=a.version+s,e.next=21;break;case 7:return e.next=9,this.crypto.generateRandomKey(128);case 9:return c=e.sent,e.next=12,this.crypto.encryptText(t,n,c);case 12:return s=e.sent,u=[a.version,i,c,s].join(":"),e.next=16,this.crypto.hmac256(u,r);case 16:return l=e.sent,e.next=19,this.crypto.base64(JSON.stringify(a));case 19:d=e.sent,o=[a.version,l,i,c,s,d].join(":");case 21:return e.abrupt("return",o);case 22:case"end":return e.stop()}},e,this)})),function(e,t,n,r,i){return a.apply(this,arguments)})},{key:"encryptItem",value:(i=z(regeneratorRuntime.mark(function e(t,n,r){var i,a,o,s,c,u;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i={},e.next=3,this.crypto.generateItemEncryptionKey();case 3:if(a=e.sent,"001"===r.version)return e.next=7,this.crypto.encryptText(a,n.mk,null);e.next=10;break;case 7:i.enc_item_key=e.sent,e.next=13;break;case 10:return e.next=12,this._private_encryptString(a,n.mk,n.ak,t.uuid,r);case 12:i.enc_item_key=e.sent;case 13:return e.next=15,this.crypto.firstHalfOfKey(a);case 15:return o=e.sent,e.next=18,this.crypto.secondHalfOfKey(a);case 18:return s=e.sent,e.next=21,this._private_encryptString(JSON.stringify(t.createContentJSONFromProperties()),o,s,t.uuid,r);case 21:if(c=e.sent,"001"===r.version)return e.next=25,this.crypto.hmac256(c,s);e.next=27;break;case 25:u=e.sent,i.auth_hash=u;case 27:return i.content=c,e.abrupt("return",i);case 29:case"end":return e.stop()}},e,this)})),function(e,t,n){return i.apply(this,arguments)})},{key:"encryptionComponentsFromString",value:function(e,t,n){var r=e.substring(0,3);if("001"===r)return{contentCiphertext:e.substring(3,e.length),encryptionVersion:r,ciphertextToAuth:e,iv:null,authHash:null,encryptionKey:t,authKey:n};var i=e.split(":");return{encryptionVersion:i[0],authHash:i[1],uuid:i[2],iv:i[3],contentCiphertext:i[4],authParams:i[5],ciphertextToAuth:[i[0],i[2],i[3],i[4]].join(":"),encryptionKey:t,authKey:n}}},{key:"decryptItem",value:(n=z(regeneratorRuntime.mark(function e(t,n){var r,i,a,o,s,c,u,l;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof t.content)return e.abrupt("return");e.next=2;break;case 2:if(t.content.startsWith("000"))return e.prev=3,e.t0=JSON,e.next=7,this.crypto.base64Decode(t.content.substring(3,t.content.length));e.next=14;break;case 7:e.t1=e.sent,t.content=e.t0.parse.call(e.t0,e.t1),e.next=13;break;case 11:e.prev=11,e.t2=e.catch(3);case 13:return e.abrupt("return");case 14:if(t.enc_item_key){e.next=17;break}return console.log("Missing item encryption key, skipping decryption."),e.abrupt("return");case 17:if(r=t.enc_item_key,i=!0,r.startsWith("002")||r.startsWith("003")||(r="001"+r,i=!1),(a=this.encryptionComponentsFromString(r,n.mk,n.ak)).uuid&&a.uuid!==t.uuid)return console.error("Item key params UUID does not match item UUID"),t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,e.abrupt("return");e.next=26;break;case 26:return e.next=28,this.crypto.decryptText(a,i);case 28:if(o=e.sent){e.next=34;break}return console.log("Error decrypting item",t),t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,e.abrupt("return");case 34:return e.next=36,this.crypto.firstHalfOfKey(o);case 36:return s=e.sent,e.next=39,this.crypto.secondHalfOfKey(o);case 39:return c=e.sent,u=this.encryptionComponentsFromString(t.content,s,c),e.prev=41,e.t3=JSON,e.next=45,this.crypto.base64Decode(u.authParams);case 45:e.t4=e.sent,t.auth_params=e.t3.parse.call(e.t3,e.t4),e.next=51;break;case 49:e.prev=49,e.t5=e.catch(41);case 51:if(u.uuid&&u.uuid!==t.uuid)return t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,e.abrupt("return");e.next=55;break;case 55:return u.authHash||(u.authHash=t.auth_hash),e.next=58,this.crypto.decryptText(u,!0);case 58:(l=e.sent)?(1==t.errorDecrypting&&(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!1,t.content=l):(t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0);case 60:case"end":return e.stop()}},e,this,[[3,11],[41,49]])})),function(e,t){return n.apply(this,arguments)})},{key:"decryptMultipleItems",value:(r=z(regeneratorRuntime.mark(function e(t,n,r){var i,a=this;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=function(){var t=z(regeneratorRuntime.mark(function e(t){return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:if(1==t.deleted&&null==t.content)return e.abrupt("return");e.next=4;break;case 4:if("string"==typeof t.content||t.content instanceof String)return e.prev=6,e.next=9,a.decryptItem(t,n);e.next=19;break;case 9:e.next=19;break;case 11:if(e.prev=11,e.t0=e.catch(6),t.errorDecrypting||(t.errorDecryptingValueChanged=!0),t.errorDecrypting=!0,r)throw e.t0;e.next=17;break;case 17:return console.error("Error decrypting item",t,e.t0),e.abrupt("return");case 19:case"end":return e.stop()}},e,null,[[6,11]])}));return function(e){return t.apply(this,arguments)}}(),e.abrupt("return",Promise.all(t.map(function(e){return i(e)})));case 2:case"end":return e.stop()}},e)})),function(e,t,n){return r.apply(this,arguments)})}]),t}();we.SFItemTransformer=ke;G="undefined"!=typeof window?window:void 0!==e?e:null;var be=function(){function t(e){V(this,t),G&&(!("undefined"!=typeof document&&document.documentMode||/Edge/.test(navigator.userAgent))&&G.crypto&&G.crypto.subtle?this.crypto=new ye:this.crypto=new ve);e&&(this.crypto=e),this.itemTransformer=new ke(this.crypto),this.crypto.SFJS={version:this.version(),defaultPasswordGenerationCost:this.defaultPasswordGenerationCost()}}return q(t,[{key:"version",value:function(){return"003"}},{key:"supportsPasswordDerivationCost",value:function(e){return!(5e3<e)||this.crypto instanceof ye}},{key:"supportedVersions",value:function(){return["001","002","003"]}},{key:"isVersionNewerThanLibraryVersion",value:function(e){var t=this.version();return parseInt(e)>parseInt(t)}},{key:"isProtocolVersionOutdated",value:function(e){var t={"001":Date.parse("2018-01-01"),"002":Date.parse("2020-01-01")}[e];return!!t&&new Date>t}},{key:"costMinimumForVersion",value:function(e){return{"001":3e3,"002":3e3,"003":11e4}[e]}},{key:"defaultPasswordGenerationCost",value:function(){return this.costMinimumForVersion(this.version())}}]),t}();if(we.StandardFile=be,G)try{G.StandardFile=be,G.SFJS=new be,G.SFCryptoWeb=ye,G.SFCryptoJS=ve,G.SFItemTransformer=ke,G.SFModelManager=Z,G.SFItem=ce,G.SFItemParams=ue,G.SFHttpManager=Y,G.SFStorageManager=ae,G.SFSyncManager=se,G.SFAuthManager=J,G.SFMigrationManager=X,G.SFAlertManager=W,G.SFPredicate=le,G.SFHistorySession=fe,G.SFSessionHistoryManager=re,G.SFItemHistory=pe,G.SFItemHistoryEntry=he,G.SFPrivilegesManager=Q,G.SFPrivileges=de,G.SFSingletonManager=ie}catch(e){console.log("Exception while exporting window variables",e)}}).call(this,void 0!==n?n:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]),angular.module("app").run(["$templateCache",function(e){"use strict";e.put("directives/account-menu.html","<div class='sn-component'>\n<div class='sk-panel' id='account-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Account</div>\n<a class='sk-a info close-button' ng-click='close()'>Close</a>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section sk-panel-hero' ng-if='!user &amp;&amp; !formData.showLogin &amp;&amp; !formData.showRegister &amp;&amp; !formData.mfa'>\n<div class='sk-panel-row'>\n<div class='sk-h1'>Sign in or register to enable sync and end-to-end encryption.</div>\n</div>\n<div class='sk-panel-row'>\n<div class='sk-button-group stretch'>\n<div class='sk-button info featured' ng-click='formData.showLogin = true'>\n<div class='sk-label'>Sign In</div>\n</div>\n<div class='sk-button info featured' ng-click='formData.showRegister = true'>\n<div class='sk-label'>Register</div>\n</div>\n</div>\n</div>\n<div class='sk-panel-row sk-p'>\nStandard Notes is free on every platform, and comes standard with sync and encryption.\n</div>\n</div>\n<div class='sk-panel-section' ng-if='formData.showLogin || formData.showRegister'>\n<div class='sk-panel-section-title'>\n{{formData.showLogin ? \"Sign In\" : \"Register\"}}\n</div>\n<form class='sk-panel-form' ng-submit='submitAuthForm()'>\n<div class='sk-panel-section'>\n<input class='sk-input contrast' name='email' ng-model-options='{allowInvalid: true}' ng-model='formData.email' placeholder='Email' required should-focus='true' sn-autofocus='true' spellcheck='false' type='email'>\n<input class='sk-input contrast' name='password' ng-model='formData.user_password' placeholder='Password' required sn-enter='submitAuthForm()' type='password'>\n<input class='sk-input contrast' name='password' ng-if='formData.showRegister' ng-model='formData.password_conf' placeholder='Confirm Password' required sn-enter='submitAuthForm()' type='password'>\n<div class='sk-panel-row'></div>\n<a class='sk-panel-row sk-bold' ng-click='formData.showAdvanced = !formData.showAdvanced'>\nAdvanced Options\n</a>\n</div>\n<div class='sk-notification unpadded contrast advanced-options sk-panel-row' ng-if='formData.showAdvanced'>\n<div class='sk-panel-column stretch'>\n<div class='sk-notification-title sk-panel-row padded-row'>Advanced Options</div>\n<div class='bordered-row padded-row'>\n<label class='sk-label'>Sync Server Domain</label>\n<input class='sk-input mt-5 sk-base' name='server' ng-model='formData.url' placeholder='Server URL' required type='text'>\n</div>\n<label class='sk-label padded-row' ng-if='formData.showLogin'>\n<input class='sk-input' ng-model='formData.strictSignin' type='checkbox'>\nUse strict sign in\n<span>\n<a class='info' href='https://standardnotes.org/help/security' rel='noopener' target='_blank'>(Learn more)</a>\n</span>\n</input>\n</label>\n</div>\n</div>\n<div class='sk-panel-section form-submit' ng-if='!formData.authenticating'>\n<div class='sk-button-group stretch'>\n<div class='sk-button info featured' ng-click='submitAuthForm()' ng-disabled='formData.authenticating'>\n<div class='sk-label'>{{formData.showLogin ? \"Sign In\" : \"Register\"}}</div>\n</div>\n</div>\n</div>\n<div class='sk-notification neutral' ng-if='formData.showRegister'>\n<div class='sk-notification-title'>No Password Reset.</div>\n<div class='sk-notification-text'>Because your notes are encrypted using your password, Standard Notes does not have a password reset option. You cannot forget your password.</div>\n</div>\n<div class='sk-panel-section no-bottom-pad' ng-if='formData.status'>\n<div class='sk-horizontal-group'>\n<div class='sk-spinner small neutral'></div>\n<div class='sk-label'>{{formData.status}}</div>\n</div>\n</div>\n<div class='sk-panel-section no-bottom-pad' ng-if='!formData.authenticating'>\n<label class='sk-panel-row justify-left'>\n<div class='sk-horizontal-group'>\n<input ng-false-value='true' ng-model='formData.ephemeral' ng-true-value='false' type='checkbox'>\nStay signed in\n</div>\n</label>\n<label class='sk-panel-row justify-left' ng-if='notesAndTagsCount() &gt; 0'>\n<div class='sk-panel-row'></div>\n<input ng-bind='true' ng-change='mergeLocalChanged()' ng-model='formData.mergeLocal' type='checkbox'>\nMerge local data ({{notesAndTagsCount()}} notes and tags)\n</label>\n</div>\n</form>\n</div>\n<div class='sk-panel-section' ng-if='formData.mfa'>\n<form class='sk-panel-form' ng-submit='submitMfaForm()'>\n<div class='sk-p sk-panel-row'>{{formData.mfa.message}}</div>\n<div class='sk-panel-row'>\n<input autofocus='true' class='sk-input contrast' name='mfa' ng-model='formData.userMfaCode' placeholder='Enter Code' required should-focus='true' sn-autofocus='true'>\n</div>\n<div class='sk-button-group stretch sk-panel-row form-submit' ng-if='!formData.status'>\n<button class='sk-button info featured' type='submit'>\n<div class='sk-label'>Sign In</div>\n</button>\n</div>\n</form>\n<div class='sk-panel-section no-bottom-pad' ng-if='formData.status'>\n<div class='sk-panel-row'></div>\n<div class='sk-panel-row'></div>\n<div class='sk-horizontal-group'>\n<div class='sk-spinner small neutral'></div>\n<div class='sk-label'>{{formData.status}}</div>\n</div>\n</div>\n</div>\n<div ng-if='!formData.showLogin &amp;&amp; !formData.showRegister &amp;&amp; !formData.mfa'>\n<div class='sk-panel-section' ng-if='user'>\n<div class='sk-notification danger' ng-if='syncStatus.error'>\n<div class='sk-notification-title'>Sync Unreachable</div>\n<div class='sk-notification-text'>Hmm...we can't seem to sync your account. The reason: {{syncStatus.error.message}}</div>\n<a class='sk-a info-contrast sk-bold sk-panel-row' href='https://standardnotes.org/help' rel='noopener' target='_blank'>Need help?</a>\n</div>\n<div class='sk-panel-row'>\n<div class='sk-panel-column'>\n<div class='sk-h1 sk-bold wrap'>{{user.email}}</div>\n<div class='sk-subtitle subtle normal'>{{server}}</div>\n</div>\n<div class='sk-horizontal-group' delay-hide='true' delay='1000' show='syncStatus.syncOpInProgress || syncStatus.needsMoreSync'>\n<div class='sk-spinner small info'></div>\n<div class='sk-sublabel'>\n{{\"Syncing\" + (syncStatus.total > 0 ? \":\" : \"\")}}\n<span ng-if='syncStatus.total &gt; 0'>{{syncStatus.current}}/{{syncStatus.total}}</span>\n</div>\n</div>\n</div>\n<div class='sk-panel-row'></div>\n<a class='sk-a info sk-panel-row condensed' ng-click='openPasswordWizard(&#39;change-pw&#39;)'>\nChange Password\n</a>\n<a class='sk-a info sk-panel-row condensed' ng-click='openPrivilegesModal(&#39;&#39;)' ng-show='user'>\nManage Privileges\n</a>\n<a class='sk-panel-row justify-left condensed success' ng-click='openPasswordWizard(&#39;upgrade-security&#39;)' ng-if='securityUpdateAvailable'>\n<div class='inline sk-circle small success mr-8'></div>\n<div class='inline'>Security Update Available</div>\n</a>\n</div>\n<div class='sk-panel-section'>\n<div class='sk-panel-section-title'>Encryption</div>\n<div class='sk-panel-section-subtitle info' ng-if='encryptionEnabled()'>\n{{encryptionStatusForNotes()}}\n</div>\n<p class='sk-p'>\n{{encryptionStatusString()}}\n</p>\n</div>\n<div class='sk-panel-section'>\n<div class='sk-panel-section-title'>Passcode Lock</div>\n<div ng-if='!hasPasscode()'>\n<div ng-if='canAddPasscode'>\n<div class='sk-panel-row' ng-if='!formData.showPasscodeForm'>\n<div class='sk-button info' ng-click='addPasscodeClicked(); $event.stopPropagation();'>\n<div class='sk-label'>Add Passcode</div>\n</div>\n</div>\n<p class='sk-p'>Add a passcode to lock the application and encrypt on-device key storage.</p>\n</div>\n<div ng-if='!canAddPasscode'>\n<p class='sk-p'>Adding a passcode is not supported in temporary sessions. Please sign out, then sign back in with the \"Stay signed in\" option checked.</p>\n</div>\n</div>\n<form class='sk-panel-form' ng-if='formData.showPasscodeForm' ng-submit='submitPasscodeForm()'>\n<div class='sk-panel-row'></div>\n<input class='sk-input contrast' ng-model='formData.passcode' placeholder='Passcode' should-focus='true' sn-autofocus='true' type='password'>\n<input class='sk-input contrast' ng-model='formData.confirmPasscode' placeholder='Confirm Passcode' type='password'>\n<div class='sk-button-group stretch sk-panel-row form-submit'>\n<button class='sk-button info' type='submit'>\n<div class='sk-label'>Set Passcode</div>\n</button>\n</div>\n<a class='neutral sk-a sk-panel-row' ng-click='formData.showPasscodeForm = false'>Cancel</a>\n</form>\n<div ng-if='hasPasscode() &amp;&amp; !formData.showPasscodeForm'>\n<div class='sk-p'>\nPasscode lock is enabled.\n</div>\n<div class='sk-notification contrast'>\n<div class='sk-notification-title'>Options</div>\n<div class='sk-notification-text'>\n<div class='sk-panel-row'>\n<div class='sk-horizontal-group'>\n<div class='sk-h4 sk-bold'>Autolock</div>\n<a class='sk-a info' ng-class='{&#39;boxed&#39; : option.value == selectedAutoLockInterval}' ng-click='selectAutoLockInterval(option.value)' ng-repeat='option in passcodeAutoLockOptions'>\n{{option.label}}\n</a>\n</div>\n</div>\n<div class='sk-p'>The autolock timer begins when the window or tab loses focus.</div>\n<div class='sk-panel-row'></div>\n<a class='sk-a info sk-panel-row condensed' ng-click='openPrivilegesModal(&#39;&#39;)' ng-show='!user'>Manage Privileges</a>\n<a class='sk-a info sk-panel-row condensed' ng-click='changePasscodePressed()'>Change Passcode</a>\n<a class='sk-a danger sk-panel-row condensed' ng-click='removePasscodePressed()'>Remove Passcode</a>\n</div>\n</div>\n</div>\n</div>\n<div class='sk-panel-section' ng-if='!importData.loading'>\n<div class='sk-panel-section-title'>Data Backups</div>\n<div class='sk-p'>\nDownload a backup of all your data.\n</div>\n<div class='sk-panel-row'></div>\n<form class='sk-panel-form sk-panel-row' ng-if='encryptedBackupsAvailable()'>\n<div class='sk-input-group'>\n<label>\n<input ng-change='archiveFormData.encrypted = true' ng-model='archiveFormData.encrypted' ng-value='true' type='radio'>\nEncrypted\n</label>\n<label>\n<input ng-change='archiveFormData.encrypted = false' ng-model='archiveFormData.encrypted' ng-value='false' type='radio'>\nDecrypted\n</label>\n</div>\n</form>\n<div class='sk-button-group sk-panel-row justify-left'>\n<div class='sk-button info' ng-click='downloadDataArchive()'>\n<div class='sk-label'>Download Backup</div>\n</div>\n<label class='sk-button info'>\n<input file-change='-&gt;' handler='importFileSelected(files)' style='display: none;' type='file'>\n<div class='sk-label'>Import Backup</div>\n</label>\n</div>\n<span ng-if='isDesktopApplication()'>Backups are automatically created on desktop and can be managed via the \"Backups\" top-level menu.</span>\n<div id='import-password-request' ng-if='importData.requestPassword'>\n<form class='sk-panel-form stretch' ng-submit='submitImportPassword()'>\n<p>Enter the account password associated with the import file.</p>\n<input autofocus='true' class='sk-input contrast mt-5' ng-model='importData.password' placeholder='Enter File Account Password' type='password'>\n<div class='sk-button-group stretch sk-panel-row form-submit'>\n<button class='sk-button info' type='submit'>\n<div class='sk-label'>Decrypt & Import</div>\n</button>\n</div>\n<p>\nImporting from backup will not overwrite existing data, but instead create a duplicate of any differing data.\n</p>\n<p>If you'd like to import only a selection of items instead of the whole file, please use the Batch Manager extension.</p>\n</form>\n</div>\n<div class='sk-panel-row'>\n<div class='sk-spinner small info' ng-if='importData.loading'></div>\n</div>\n</div>\n</div>\n</div>\n<div class='sk-panel-footer'>\n<div class='sk-panel-row'>\n<div class='sk-p left neutral faded'>{{appVersion}}</div>\n<a class='sk-a right' ng-click='formData.showLogin = false; formData.showRegister = false;' ng-if='formData.showLogin || formData.showRegister'>\nCancel\n</a>\n<a class='sk-a right danger' ng-click='destroyLocalData()' ng-if='!formData.showLogin &amp;&amp; !formData.showRegister'>\n"+'{{ user ? "Sign out and clear local data" : "Clear all local data" }}\n</a>\n</div>\n</div>\n</div>\n</div>\n'),e.put("directives/actions-menu.html","<div class='sn-component'>\n<div class='sk-menu-panel dropdown-menu'>\n<a class='no-decoration' href='https://standardnotes.org/extensions' ng-if='extensions.length == 0' rel='noopener' target='blank'>\n<menu-row label='&#39;Download Actions&#39;'></menu-row>\n</a>\n<div ng-repeat='extension in extensions'>\n<div class='sk-menu-panel-header' ng-click='extension.hide = !extension.hide; $event.stopPropagation();'>\n<div class='sk-menu-panel-column'>\n<div class='sk-menu-panel-header-title'>{{extension.name}}</div>\n<div class='sk-spinner small loading' ng-if='extension.loading'></div>\n<div ng-if='extension.hide'>…</div>\n</div>\n</div>\n<menu-row action='executeAction(action, extension);' label='action.label' ng-if='!extension.hide' ng-repeat='action in extension.actionsWithContextForItem(item)' spinner-class='action.running ? &#39;info&#39; : null' sub-rows='action.subrows' subtitle='action.desc'>\n<div class='sk-sublabel' ng-if='action.access_type'>\nUses\n<strong>{{action.access_type}}</strong>\naccess to this note.\n</div>\n</menu-row>\n<menu-row faded='true' label='&#39;No Actions Available&#39;' ng-if='extension.actionsWithContextForItem(item).length == 0'></menu-row>\n</div>\n</div>\n</div>\n"),e.put("directives/component-modal.html","<div class='sk-modal-background' ng-click='dismiss()'></div>\n<div class='sk-modal-content' ng-attr-id='component-content-outer-{{component.uuid}}'>\n<div class='sn-component'>\n<div class='sk-panel' ng-attr-id='component-content-inner-{{component.uuid}}'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>\n{{component.name}}\n</div>\n<a class='sk-a info close-button' ng-click='dismiss()'>Close</a>\n</div>\n<component-view class='component-view' component='component'></component-view>\n</div>\n</div>\n</div>\n"),e.put("directives/component-view.html","<div class='sn-component' ng-if='issueLoading'>\n<div class='sk-app-bar no-edges no-top-edge dynamic-height'>\n<div class='left'>\n<div class='sk-app-bar-item'>\n<div class='sk-label warning'>There was an issue loading {{component.name}}.</div>\n</div>\n</div>\n<div class='right'>\n<div class='sk-app-bar-item' ng-click='reloadComponent()'>\n<div class='sk-button info'>\n<div class='sk-label'>Reload</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n<div class='sn-component' ng-if='showNoThemesMessage'>\n<div class='sk-app-bar no-edges no-top-edge dynamic-height'>\n<div class='left'>\n<div class='sk-app-bar-item'>\n<div class='sk-label warning'>This extension does not support themes.</div>\n</div>\n</div>\n<div class='right'>\n<div class='sk-app-bar-item' ng-click='noThemesMessageDismiss()'>\n<div class='sk-label'>Dismiss</div>\n</div>\n<div class='sk-app-bar-item' ng-click='disableActiveTheme()'>\n<div class='sk-label'>Disable Active Theme</div>\n</div>\n</div>\n</div>\n</div>\n<div class='sn-component' ng-if='expired'>\n<div class='sk-app-bar no-edges no-top-edge dynamic-height'>\n<div class='left'>\n<div class='sk-app-bar-item'>\n<div class='sk-app-bar-item-column'>\n<div class='sk-circle danger small'></div>\n</div>\n<div class='sk-app-bar-item-column'>\n<div>\n<a class='sk-label sk-base' href='https://dashboard.standardnotes.org' rel='noopener' target='_blank'>\nYour Extended subscription expired on {{component.dateToLocalizedString(component.valid_until)}}.\n</a>\n<div class='sk-p'>\nExtensions are in a read-only state.\n</div>\n</div>\n</div>\n</div>\n</div>\n<div class='right'>\n<div class='sk-app-bar-item' ng-click='reloadComponent()'>\n<div class='sk-button info'>\n<div class='sk-label'>Reload</div>\n</div>\n</div>\n<div class='sk-app-bar-item'>\n<div class='sk-app-bar-item-column'>\n<div class='sk-button warning'>\n<a class='sk-label' href='https://standardnotes.org/help/41/expired' rel='noopener' target='_blank'>Help</a>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n<div class='sn-component' ng-if='error == &#39;offline-restricted&#39;'>\n<div class='sk-panel static'>\n<div class='sk-panel-content'>\n<div class='sk-panel-section stretch'>\n<div class='sk-panel-column'></div>\n<div class='sk-h1 sk-bold'>You have restricted this extension to be used offline only.</div>\n<div class='sk-subtitle'>Offline extensions are not available in the Web app.</div>\n<div class='sk-panel-row'></div>\n<div class='sk-panel-row'>\n<div class='sk-panel-column'>\n<div class='sk-p'>You can either:</div>\n<ul>\n<li class='sk-p'><strong>Enable the Hosted option</strong> for this extension by opening the 'Extensions' menu and toggling 'Use hosted when local is unavailable' under this extension's options. Then press Reload below.</li>\n<li class='sk-p'><strong>Use the Desktop application.</strong></li>\n</ul>\n</div>\n</div>\n<div class='sk-panel-row'>\n<div class='sk-button info' ng-click='reloadStatus()' ng-if='!reloading'>\n<div class='sk-label'>Reload</div>\n</div>\n<div class='sk-spinner info small' ng-if='reloading'></div>\n</div>\n</div>\n</div>\n</div>\n</div>\n<div class='sn-component' ng-if='error == &#39;url-missing&#39;'>\n<div class='sk-panel static'>\n<div class='sk-panel-content'>\n<div class='sk-panel-section stretch'>\n<div class='sk-panel-section-title'>This extension is not installed correctly.</div>\n<p>Please uninstall {{component.name}}, then re-install it.</p>\n<p>\nThis issue can occur if you access Standard Notes using an older version of the app.\nEnsure you are running at least version 2.1 on all platforms.\n</p>\n</div>\n</div>\n</div>\n</div>\n<iframe data-component-id='{{component.uuid}}' frameBorder='0' ng-attr-id='component-iframe-{{component.uuid}}' ng-if='component &amp;&amp; componentValid' ng-src='{{getUrl() | trusted}}' sandbox='allow-scripts allow-top-navigation-by-user-activation allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-modals allow-forms'>\nLoading\n</iframe>\n<div class='loading-overlay' ng-if='loading'></div>\n"),e.put("directives/conflict-resolution-modal.html","<div class='sn-component'>\n<div class='sk-modal large' id='conflict-resolution-modal'>\n<div class='sk-modal-background'></div>\n<div class='sk-modal-content'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<h1 class='sk-panel-header-title'>Conflicted items — choose which version to keep</h1>\n<div class='sk-horizontal-group'>\n<a class='sk-a info close-button' ng-click='keepItem1()'>Keep left</a>\n<a class='sk-a info close-button' ng-click='keepItem2()'>Keep right</a>\n<a class='sk-a info close-button' ng-click='keepBoth()'>Keep both</a>\n<a class='sk-a info close-button' ng-click='export()'>Export</a>\n<a class='sk-a info close-button' ng-click='dismiss(); $event.stopPropagation()'>Close</a>\n</div>\n</div>\n<div class='sk-panel-content selectable'>\n<div class='sk-panel-section'>\n<h3>\n<strong>Content type:</strong>\n{{contentType}}\n</h3>\n<p>You may wish to look at the \"created_at\" and \"updated_at\" fields of the items to gain better context in deciding which to keep.</p>\n</div>\n<div id='items'>\n<div class='sk-panel static item' id='item1'>\n<p class='normal' style='white-space: pre-wrap; font-size: 16px;'>{{item1Content}}</p>\n</div>\n<div class='border'></div>\n<div class='sk-panel static item' id='item2'>\n<p class='normal' style='white-space: pre-wrap; font-size: 16px;'>{{item2Content}}</p>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/editor-menu.html","<div class='sn-component'>\n<div class='sk-menu-panel dropdown-menu'>\n<div class='sk-menu-panel-section'>\n<div class='sk-menu-panel-header'>\n<div class='sk-menu-panel-header-title'>Note Editor</div>\n</div>\n<menu-row action='selectComponent(null)' circle='selectedEditor == null &amp;&amp; &#39;success&#39;' label='&#39;Plain Editor&#39;'></menu-row>\n<menu-row action='selectComponent(editor)' button-action='toggleDefaultForEditor(editor)' button-class='defaultEditor == editor ? &#39;warning&#39; : &#39;info&#39;' button-text='defaultEditor == editor ? &#39;Undefault&#39; : &#39;Set Default&#39;' circle='selectedEditor === editor &amp;&amp; &#39;success&#39;' has-button='selectedEditor == editor || defaultEditor == editor' label='editor.name' ng-repeat='editor in editors'>\n<div class='sk-menu-panel-column' ng-if='component.content.conflict_of || shouldDisplayRunningLocallyLabel(editor)'>\n<strong class='danger medium-text' ng-if='editor.content.conflict_of'>Conflicted copy</strong>\n<div class='sk-sublabel' ng-if='shouldDisplayRunningLocallyLabel(editor)'>Running Locally</div>\n</div>\n</menu-row>\n<a class='no-decoration' href='https://standardnotes.org/extensions' ng-if='editors.length == 0' rel='noopener' target='blank'>\n<menu-row label='&#39;Download More Editors&#39;'></menu-row>\n</a>\n</div>\n</div>\n</div>\n"),e.put("directives/input-modal.html","<div class='sn-component'>\n<div class='sk-modal small auto-height'>\n<div class='sk-modal-background'></div>\n<div class='sk-modal-content'>\n<div class='sn-component'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-h1 sk-panel-header-title'>{{title}}</div>\n<a class='sk-a info close-button' ng-click='dismiss()'>Close</a>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section'>\n<div class='sk-p sk-panel-row'>{{message}}</div>\n<div class='sk-panel-row'>\n<div class='sk-panel-column stretch'>\n<form ng-submit='submit()'>\n<input class='sk-input contrast' ng-model='formData.input' placeholder='{{placeholder}}' should-focus='true' sn-autofocus='true' type='{{type}}'>\n</form>\n</div>\n</div>\n</div>\n</div>\n<div class='sk-panel-footer'>\n<a class='sk-a info right' ng-click='submit()'>\nSubmit\n</a>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/item-preview-modal.html","<div class='modal medium' id='item-preview-modal'>\n<div class='content'>\n<div class='sn-component'>\n<div class='panel'>\n<div class='header'>\n<h1 class='title'>Preview</h1>\n<div class='horizontal-group'>\n<a class='close-button info' ng-click='restore(false)'>Restore</a>\n<a class='close-button info' ng-click='restore(true)'>Restore as copy</a>\n<a class='close-button info' ng-click='dismiss()'>Close</a>\n</div>\n</div>\n<div class='content selectable'>\n<h2>{{revision.content.title}}</h2>\n<p class='normal' style='white-space: pre-wrap; font-size: 16px;'>{{revision.content.text}}</p>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/menu-row.html","<div class='sk-menu-panel-row row' ng-attr-title='{{desc}}' ng-click='onClick($event)'>\n<div class='sk-menu-panel-column'>\n<div class='left'>\n<div class='sk-menu-panel-column' ng-if='circle &amp;&amp; (!circleAlign || circleAlign == &#39;left&#39;)'>\n<div class='sk-circle small' ng-class='circle'></div>\n</div>\n<div class='sk-menu-panel-column' ng-class='{&#39;faded&#39; : faded || disabled}'>\n<div class='sk-label' ng-class='stylekitClass'>\n{{label}}\n</div>\n<div class='sk-sublabel' ng-if='subtitle'>\n{{subtitle}}\n</div>\n<ng-transclude></ng-transclude>\n</div>\n</div>\n<div class='sk-menu-panel-subrows' ng-if='subRows &amp;&amp; subRows.length &gt; 0'>\n<menu-row action='row.onClick()' label='row.label' ng-repeat='row in subRows' spinner-class='row.spinnerClass' subtitle='row.subtitle'></menu-row>\n</div>\n</div>\n<div class='sk-menu-panel-column' ng-if='circle &amp;&amp; circleAlign == &#39;right&#39;'>\n<div class='sk-circle small' ng-class='circle'></div>\n</div>\n<div class='sk-menu-panel-column' ng-if='hasButton'>\n<div class='sk-button' ng-class='buttonClass' ng-click='clickButton($event)'>\n<div class='sk-label'>{{buttonText}}</div>\n</div>\n</div>\n<div class='sk-menu-panel-column' ng-if='spinnerClass'>\n<div class='sk-spinner small' ng-class='spinnerClass'></div>\n</div>\n</div>\n"),e.put("directives/panel-resizer.html","<div class='panel-resizer-column'></div>\n"),e.put("directives/password-wizard.html","<div class='sn-component'>\n<div class='sk-modal small auto-height' id='password-wizard'>\n<div class='sk-modal-background'></div>\n<div class='sk-modal-content'>\n<div class='sn-component'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>{{title}}</div>\n<a class='sk-a info close-button' ng-click='dismiss()'>Close</a>\n</div>\n<div class='sk-panel-content'>\n<div ng-if='step == 0'>\n<div ng-if='changePassword'>\n<p class='sk-p sk-panel-row'>\nChanging your password involves changing your encryption key, which requires your data to be re-encrypted and synced.\nIf you have many items, syncing your data can take several minutes.\n</p>\n<p class='sk-p sk-panel-row'>You must keep the application window open during this process.</p>\n</div>\n<div ng-if='securityUpdate'>\n<p class='sk-p sk-panel-row'>\nA new update is available for your account. Updates address improvements and enhancements to our security specification.\nThis process will guide you through the update, and perform the steps necessary with your supervision.\n</p>\n<div class='sk-panel-row'>\n<div class='sk-panel-column'>\n<p class='sk-p'>For more information about security updates, please visit</p>\n<a class='sk-a info' href='https://standardnotes.org/help/security' rel='noopener' target='_blank'>standardnotes.org/help/security.</a>\n</div>\n</div>\n</div>\n<p class='sk-panel-row sk-p'>\n<div class='info'>Press Continue to proceed.</div>\n</p>\n</div>\n<div class='sk-panel-section' ng-if='step &gt; 0'>\n<div class='sk-panel-section-title'>Step {{step}} — {{titleForStep(step)}}</div>\n<div ng-if='step == 1'>\n<p class='sk-panel-row sk-p'>\nAs a result of this process, the entirety of your data will be re-encrypted and synced to your account. This is a generally safe process,\nbut unforeseen factors like poor network connectivity or a sudden shutdown of your computer may cause this process to fail.\nIt's best to be on the safe side before large operations such as this one.\n</p>\n<div class='sk-panel-row'></div>\n<div class='sk-panel-row'>\n<div class='sk-button-group'>\n<div class='sk-button info' ng-click='downloadBackup(true)'>\n<div class='sk-label'>Download Encrypted Backup</div>\n</div>\n<div class='sk-button info' ng-click='downloadBackup(false)'>\n<div class='sk-label'>Download Decrypted Backup</div>\n</div>\n</div>\n</div>\n</div>\n<div ng-if='step == 2'>\n<p class='sk-p sk-panel-row'>\nAs a result of this process, your encryption keys will change.\nAny device on which you use Standard Notes will need to end its session. After this process completes, you will be asked to sign back in.\n</p>\n<p class='sk-p bold sk-panel-row info-i'>Please sign out of all applications (excluding this one), including:</p>\n<ul>\n<li class='sk-p'>Desktop</li>\n<li class='sk-p'>Web (Chrome, Firefox, Safari)</li>\n<li class='sk-p'>Mobile (iOS and Android)</li>\n</ul>\n<p class='sk-p sk-panel-row'>\nIf you do not currently have access to a device you're signed in on, you may proceed,\nbut must make signing out and back in the first step upon gaining access to that device.\n</p>\n<p class='sk-p sk-panel-row'>Press Continue only when you have completed signing out of all your devices.</p>\n</div>\n<div ng-if='step == 3'>\n<div ng-if='changePassword'></div>\n<div ng-if='securityUpdate'>\n<p class='sk-panel-row'>Enter your current password. We'll run this through our encryption scheme to generate strong new encryption keys.</p>\n</div>\n<div class='sk-panel-row'></div>\n<div class='sk-panel-row'>\n<div class='sk-panel-column stretch'>\n<form class='sk-panel-form'>\n<input class='sk-input contrast' ng-model='formData.currentPassword' placeholder='Current Password' should-focus='true' sn-autofocus='true' type='password'>\n<input class='sk-input contrast' ng-if='changePassword' ng-model='formData.newPassword' placeholder='New Password' type='password'>\n<input class='sk-input contrast' ng-if='changePassword' ng-model='formData.newPasswordConfirmation' placeholder='Confirm New Password' type='password'>\n</form>\n</div>\n</div>\n</div>\n<div ng-if='step == 4'>\n<p class='sk-panel-row'>\nYour data is being re-encrypted with your new keys and synced to your account.\n</p>\n<p class='sk-panel-row danger' ng-if='lockContinue'>\nDo not close this window until this process completes.\n</p>\n<div class='sk-panel-row'>\n<div class='sk-panel-column'>\n<div class='sk-spinner small inline info mr-5' ng-if='formData.processing'></div>\n<div class='inline bold' ng-class='{&#39;info&#39; : !formData.statusError, &#39;error&#39; : formData.statusError}'>\n{{formData.status}}\n</div>\n</div>\n<div class='sk-panel-column' delay-hide='true' delay='1000' show='syncStatus.syncOpInProgress || syncStatus.needsMoreSync'>\n<p class='info'>\nSyncing {{syncStatus.current}}/{{syncStatus.total}}\n</p>\n</div>\n</div>\n</div>\n<div ng-if='step == 5'>\n<div ng-if='changePassword'>\n<p class='sk-p sk-panel-row info-i'>Your password has been successfully changed.</p>\n</div>\n<div ng-if='securityUpdate'>\n<p class='sk-p sk-panel-row info-i'>\nThe security update has been successfully applied to your account.\n</p>\n</div>\n<p class='sk-p sk-panel-row'>\nPlease ensure you are running the latest version of Standard Notes on all platforms to ensure maximum compatibility.\n</p>\n<p class='sk-p sk-panel-row'>You may now sign back in on all your devices and close this window.</p>\n</div>\n</div>\n</div>\n<div class='sk-panel-footer'>\n<div class='empty'></div>\n<a class='sk-a info right' ng-class='{&#39;disabled&#39; : lockContinue}' ng-click='continue()' ng-disabled='lockContinue'>\n<div class='sk-spinner small inline info mr-5' ng-if='showSpinner'></div>\n{{continueTitle}}\n</a>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/permissions-modal.html","<div class='sk-modal-background' ng-click='deny()'></div>\n<div class='sk-modal-content' id='permissions-modal'>\n<div class='sn-component'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Activate Extension</div>\n<a class='sk-a info close-button' ng-click='deny()'>Cancel</a>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section'>\n<div class='sk-panel-row'>\n<div class='sk-h2'>\n<strong>{{component.name}}</strong>\nwould like to interact with your\n{{permissionsString}}\n</div>\n</div>\n<div class='sk-panel-row'>\n<p class='sk-p'>\nExtensions use an offline messaging system to communicate. Learn more at\n<a class='sk-a info' href='https://standardnotes.org/permissions' rel='noopener' target='_blank'>https://standardnotes.org/permissions.</a>\n</p>\n</div>\n</div>\n</div>\n<div class='sk-panel-footer'>\n<div class='sk-button info big block bold' ng-click='accept()'>\n<div class='sk-label'>Continue</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/privileges-auth-modal.html","<div class='sk-modal-background' ng-click='cancel()'></div>\n<div class='sk-modal-content' id='privileges-modal'>\n<div class='sn-component'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Authentication Required</div>\n<a class='close-button info' ng-click='cancel()'>Cancel</a>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section'>\n<div ng-repeat='credential in requiredCredentials'>\n<div class='sk-p sk-bold sk-panel-row'>\n<strong>{{promptForCredential(credential)}}</strong>\n</div>\n<div class='sk-panel-row'>\n<input class='sk-input contrast' ng-model='authenticationParameters[credential]' should-focus='$index == 0' sn-autofocus='true' sn-enter='submit()' type='password'>\n</div>\n<div class='sk-panel-row'>\n<label class='sk-label danger' ng-if='isCredentialInFailureState(credential)'>Invalid authentication. Please try again.</label>\n</div>\n</div>\n<div class='sk-panel-row'></div>\n<div class='sk-panel-row'>\n<div class='sk-horizontal-group'>\n<div class='sk-p sk-bold'>Remember For</div>\n<a class='sk-a info' ng-class='{&#39;boxed&#39; : option.value == selectedSessionLength}' ng-click='selectSessionLength(option.value)' ng-repeat='option in sessionLengthOptions'>\n{{option.label}}\n</a>\n</div>\n</div>\n</div>\n</div>\n<div class='sk-panel-footer extra-padding'>\n<div class='sk-button info big block bold' ng-click='submit()'>\n<div class='sk-label'>Submit</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/privileges-management-modal.html","<div class='sk-modal-background' ng-click='cancel()'></div>\n<div class='sk-modal-content' id='privileges-modal'>\n<div class='sn-component'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Manage Privileges</div>\n<a class='sk-a close-button info' ng-click='cancel()'>Done</a>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section'>\n<table class='sk-table'>\n<thead>\n<tr>\n<th></th>\n<th ng-repeat='cred in availableCredentials'>\n<div class='priv-header'>\n<strong>{{credentialDisplayInfo[cred].label}}</strong>\n<div class='sk-p font-small' ng-show='!credentialDisplayInfo[cred].availability' style='margin-top: 2px'>Not Configured</div>\n</div>\n</th>\n</tr>\n</thead>\n<tbody>\n<tr ng-repeat='action in availableActions'>\n<td>\n<div class='sk-p'>{{displayInfoForAction(action)}}</div>\n</td>\n<th ng-repeat='credential in availableCredentials'>\n<input ng-checked='isCredentialRequiredForAction(action, credential)' ng-click='checkboxValueChanged(action, credential)' ng-disabled='!credentialDisplayInfo[credential].availability' type='checkbox'>\n</th>\n</tr>\n</tbody>\n</table>\n</div>\n<div class='sk-panel-section' ng-if='sessionExpirey &amp;&amp; !sessionExpired'>\n<div class='sk-p sk-panel-row'>You will not be asked to authenticate until {{sessionExpirey}}.</div>\n<a class='sk-a sk-panel-row info' ng-click='clearSession()'>Clear Session</a>\n</div>\n</div>\n<div class='sk-panel-footer'>\n<div class='sk-h2 sk-bold'>About Privileges</div>\n<div class='sk-panel-section no-bottom-pad'>\n<div class='sk-panel-row'>\n<div class='text-content'>\n<div class='sk-p'>\nPrivileges represent interface level authentication for accessing certain items and features.\nNote that when your application is unlocked, your data exists in temporary memory in an unencrypted state.\nPrivileges are meant to protect against unwanted access in the event of an unlocked application, but do not affect data encryption state.\n</div>\n<p class='sk-p'>\nPrivileges sync across your other devices; however, note that if you require\na \"Local Passcode\" privilege, and another device does not have a local passcode set up, the local passcode\nrequirement will be ignored on that device.\n</p>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/revision-preview-modal.html","<div class='sn-component'>\n<div class='sk-modal medium' id='item-preview-modal'>\n<div class='sk-modal-background'></div>\n<div class='sk-modal-content'>\n<div class='sn-component'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Preview</div>\n<div class='sk-horizontal-group'>\n<a class='sk-a info close-button' ng-click='restore(false)'>Restore</a>\n<a class='sk-a info close-button' ng-click='restore(true)'>Restore as copy</a>\n<a class='sk-a info close-button' ng-click='dismiss(); $event.stopPropagation()'>Close</a>\n</div>\n</div>\n<div class='sk-panel-content selectable' ng-if='!editor'>\n<div class='sk-h2'>{{content.title}}</div>\n<p class='normal sk-p' style='white-space: pre-wrap; font-size: 16px;'>{{content.text}}</p>\n</div>\n<component-view class='component-view' component='editor' ng-if='editor'></component-view>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("directives/session-history-menu.html","<div class='sn-component' id='session-history-menu'>\n<div class='sk-menu-panel dropdown-menu'>\n<div class='sk-menu-panel-header'>\n<div class='sk-menu-panel-header-title'>{{history.entries.length || 'No'}} revisions</div>\n<a class='sk-a info sk-h5' ng-click='showOptions = !showOptions; $event.stopPropagation();'>Options</a>\n</div>\n<div ng-if='showOptions'>\n<menu-row action='clearItemHistory()' label='&#39;Clear note local history&#39;'></menu-row>\n<menu-row action='clearAllHistory()' label='&#39;Clear all local history&#39;'></menu-row>\n<menu-row action='toggleAutoOptimize()' label='(autoOptimize ? &#39;Disable&#39; : &#39;Enable&#39;) + &#39; auto cleanup&#39;'>\n<div class='sk-sublabel'>\nAutomatically cleans up small revisions to conserve space.\n</div>\n</menu-row>\n<menu-row action='toggleDiskSaving()' label='(diskEnabled ? &#39;Disable&#39; : &#39;Enable&#39;) + &#39; saving history to disk&#39;'>\n<div class='sk-sublabel'>\nSaving to disk is not recommended. Decreases performance and increases app loading time and memory footprint.\n</div>\n</menu-row>\n</div>\n<menu-row action='openRevision(revision);' label='revision.previewTitle()' ng-repeat='revision in entries'>\n<div class='sk-sublabel opaque' ng-class='classForRevision(revision)'>\n{{revision.previewSubTitle()}}\n</div>\n</menu-row>\n</div>\n</div>\n"),e.put("directives/sync-resolution-menu.html","<div class='sn-component'>\n<div class='sk-panel sk-panel-right' id='sync-resolution-menu'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Out of Sync</div>\n<a class='sk-a info close-button' ng-click='close()'>Close</a>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section'>\n<div class='sk-panel-row sk-p'>\nWe've detected that the data on the server may not match the data in the current application session.\n</div>\n<div class='sk-p sk-panel-row'>\n<div class='sk-panel-column'>\n<strong class='sk-panel-row'>Option 1 — Restart App:</strong>\n<div class='sk-p'>Quit the application and re-open it. Sometimes, this may resolve the issue.</div>\n</div>\n</div>\n<div class='sk-p sk-panel-row'>\n<div class='sk-panel-column'>\n<strong class='sk-panel-row'>Option 2 (recommended) — Sign Out:</strong>\n<div class='sk-p'>Sign out of your account, then sign back in. This will ensure your data is consistent with the server.</div>\nBe sure to download a backup of your data before doing so.\n</div>\n</div>\n<div class='sk-p sk-panel-row'>\n<div class='sk-panel-column'>\n<strong class='sk-panel-row'>Option 3 — Sync Resolution:</strong>\n<div class='sk-p'>\nWe can attempt to reconcile changes by downloading all data from the server.\n</div>\nNo existing data will be overwritten. If the local contents of an item differ from what the server has,\na conflicted copy will be created.\n</div>\n</div>\n<div ng-if='!status.backupFinished'>\n<div class='sk-p sk-panel-row'>\nPlease download a backup before we attempt to perform a full account sync resolution.\n</div>\n<div class='sk-panel-row'>\n<div class='sk-button-group'>\n<div class='sk-button info' ng-click='downloadBackup(true)'>\n<div class='sk-label'>Encrypted</div>\n</div>\n<div class='sk-button info' ng-click='downloadBackup(false)'>\n<div class='sk-label'>Decrypted</div>\n</div>\n<div class='sk-button danger' ng-click='skipBackup()'>\n<div class='sk-label'>Skip</div>\n</div>\n</div>\n</div>\n</div>\n<div ng-if='status.backupFinished'>\n<div class='sk-panel-row' ng-if='!status.resolving &amp;&amp; !status.attemptedResolution'>\n<div class='sk-button info' ng-click='performSyncResolution()'>\n<div class='sk-label'>Perform Sync Resolution</div>\n</div>\n</div>\n<div class='sk-panel-row justify-left' ng-if='status.resolving'>\n<div class='sk-horizontal-group'>\n<div class='sk-spinner small info'></div>\n<div class='sk-label'>Attempting sync resolution...</div>\n</div>\n</div>\n<div class='sk-panel-column' ng-if='status.fail'>\n<div class='sk-panel-row sk-label danger'>Sync Resolution Failed</div>\n<div class='sk-p sk-panel-row'>\nWe attempted to reconcile local content and server content, but were unable to do so.\nAt this point, we recommend signing out of your account and signing back in. You may\nwish to download a data backup before doing so.\n</div>\n</div>\n<div class='sk-panel-column' ng-if='status.success'>\n<div class='sk-panel-row sk-label success'>Sync Resolution Success</div>\n<div class='sk-p sk-panel-row'>\nYour local data is now in sync with the server. You may close this window.\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("editor.html","<div aria-label='Note' class='section editor sn-component' id='editor-column'>\n<div class='sn-component'>\n<div class='sk-app-bar no-edges' ng-if='ctrl.note.locked' ng-init='ctrl.lockText = &#39;Note Locked&#39;' ng-mouseleave='ctrl.lockText = &#39;Note Locked&#39;' ng-mouseover='ctrl.lockText = &#39;Unlock&#39;'>\n<div class='left'>\n<div class='sk-app-bar-item' ng-click='ctrl.toggleLockNote()'>\n<div class='sk-label warning'>\n<i class='icon ion-locked'></i>\n{{ctrl.lockText}}\n</div>\n</div>\n</div>\n</div>\n</div>\n<div class='section-title-bar' id='editor-title-bar' ng-class='{&#39;locked&#39; : ctrl.note.locked }' ng-show='ctrl.note &amp;&amp; !ctrl.note.errorDecrypting'>\n<div class='title'>\n<input class='input' id='note-title-editor' ng-blur='ctrl.onNameBlur()' ng-change='ctrl.onTitleChange()' ng-disabled='ctrl.note.locked' ng-focus='ctrl.onNameFocus()' ng-keyup='$event.keyCode == 13 &amp;&amp; ctrl.onTitleEnter($event)' ng-model='ctrl.note.title' select-on-click='true' spellcheck='false'>\n</div>\n<div id='save-status'>\n<div class='message' ng-class='{&#39;warning sk-bold&#39;: ctrl.syncTakingTooLong, &#39;danger sk-bold&#39;: ctrl.saveError}'>{{ctrl.noteStatus.message}}</div>\n<div class='desc' ng-show='ctrl.noteStatus.desc'>{{ctrl.noteStatus.desc}}</div>\n</div>\n<div class='editor-tags'>\n<div id='note-tags-component-container' ng-if='ctrl.tagsComponent'>\n<component-view class='component-view' component='ctrl.tagsComponent' ng-class='{&#39;locked&#39; : ctrl.note.locked }' ng-style='ctrl.note.locked &amp;&amp; {&#39;pointer-events&#39; : &#39;none&#39;}'></component-view>\n</div>\n<input class='tags-input' ng-blur='ctrl.updateTagsFromTagsString($event, ctrl.tagsString)' ng-disabled='ctrl.note.locked' ng-if='!(ctrl.tagsComponent &amp;&amp; ctrl.tagsComponent.active)' ng-keyup='$event.keyCode == 13 &amp;&amp; $event.target.blur();' ng-model='ctrl.tagsString' placeholder='#tags' spellcheck='false' type='text'>\n</div>\n</div>\n<div class='sn-component' ng-if='ctrl.note'>\n<div class='sk-app-bar no-edges' id='editor-menu-bar'>\n<div class='left'>\n<div class='sk-app-bar-item' click-outside='ctrl.showMenu = false;' is-open='ctrl.showMenu' ng-class='{&#39;selected&#39; : ctrl.showMenu}' ng-click='ctrl.toggleMenu(&#39;showMenu&#39;)'>\n<div class='sk-label'>Options</div>\n<div class='sk-menu-panel dropdown-menu' ng-if='ctrl.showMenu'>\n<div class='sk-menu-panel-section'>\n<div class='sk-menu-panel-header'>\n<div class='sk-menu-panel-header-title'>Note Options</div>\n</div>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.togglePin()' desc='&#39;Pin or unpin a note from the top of your list&#39;' label='ctrl.note.pinned ? &#39;Unpin&#39; : &#39;Pin&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleArchiveNote()' desc='&#39;Archive or unarchive a note from your Archived system tag&#39;' label='ctrl.note.archived ? &#39;Unarchive&#39; : &#39;Archive&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleLockNote()' desc='&#39;Locking notes prevents unintentional editing&#39;' label='ctrl.note.locked ? &#39;Unlock&#39; : &#39;Lock&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleProtectNote()' desc='&#39;Protecting a note will require credentials to view it (Manage Privileges via Account menu)&#39;' label='ctrl.note.content.protected ? &#39;Unprotect&#39; : &#39;Protect&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleNotePreview()' circle-align='&#39;right&#39;' circle='ctrl.note.content.hidePreview ? &#39;danger&#39; : &#39;success&#39;' desc='&#39;Hide or unhide the note preview from the list of notes&#39;' label='&#39;Preview&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.deleteNote()' desc='&#39;Send this note to the trash&#39;' label='&#39;Move to Trash&#39;' ng-show='!ctrl.altKeyDown &amp;&amp; !ctrl.note.content.trashed &amp;&amp; !ctrl.note.errorDecrypting' stylekit-class='&#39;warning&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.deleteNotePermanantely()' desc='&#39;Delete this note permanently from all your devices&#39;' label='&#39;Delete Permanently&#39;' ng-show='!ctrl.note.content.trashed &amp;&amp; ctrl.note.errorDecrypting' stylekit-class='&#39;danger&#39;'></menu-row>\n</div>\n<div ng-if='ctrl.note.content.trashed || ctrl.altKeyDown'>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.restoreTrashedNote()' desc='&#39;Undelete this note and restore it back into your notes&#39;' label='&#39;Restore&#39;' ng-show='ctrl.note.content.trashed' stylekit-class='&#39;info&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.deleteNotePermanantely()' desc='&#39;Delete this note permanently from all your devices&#39;' label='&#39;Delete Permanently&#39;' stylekit-class='&#39;danger&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.emptyTrash()' desc='&#39;Permanently delete all notes in the trash&#39;' label='&#39;Empty Trash&#39;' ng-show='ctrl.note.content.trashed || !ctrl.altKeyDown' stylekit-class='&#39;danger&#39;' subtitle='ctrl.getTrashCount() + &#39; notes in trash&#39;'></menu-row>\n</div>\n<div class='sk-menu-panel-section'>\n<div class='sk-menu-panel-header'>\n<div class='sk-menu-panel-header-title'>Global Display</div>\n</div>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleKey(&#39;monospaceFont&#39;)' circle='ctrl.monospaceFont ? &#39;success&#39; : &#39;neutral&#39;' desc='&#39;Toggles the font style for the default editor&#39;' disabled='ctrl.selectedEditor' label='&#39;Monospace Font&#39;' subtitle='ctrl.selectedEditor ? &#39;Not available with editor extensions&#39; : null'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleKey(&#39;spellcheck&#39;)' circle='ctrl.spellcheck ? &#39;success&#39; : &#39;neutral&#39;' desc='&#39;Toggles spellcheck for the default editor&#39;' disabled='ctrl.selectedEditor' label='&#39;Spellcheck&#39;' subtitle='ctrl.selectedEditor ? &#39;Not available with editor extensions&#39; : (ctrl.isDesktop ? &#39;May degrade editor performance&#39; : null)'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(true); ctrl.toggleKey(&#39;marginResizersEnabled&#39;)' circle='ctrl.marginResizersEnabled ? &#39;success&#39; : &#39;neutral&#39;' desc='&#39;Allows for editor left and right margins to be resized&#39;' faded='!ctrl.marginResizersEnabled' label='&#39;Margin Resizers&#39;'></menu-row>\n</div>\n</div>\n</div>\n<div class='sk-app-bar-item' click-outside='ctrl.showEditorMenu = false;' is-open='ctrl.showEditorMenu' ng-class='{&#39;selected&#39; : ctrl.showEditorMenu}' ng-click='ctrl.toggleMenu(&#39;showEditorMenu&#39;)'>\n<div class='sk-label'>Editor</div>\n<editor-menu callback='ctrl.editorMenuOnSelect' current-item='ctrl.note' ng-if='ctrl.showEditorMenu' selected-editor='ctrl.selectedEditor'></editor-menu>\n</div>\n<div class='sk-app-bar-item' click-outside='ctrl.showExtensions = false;' is-open='ctrl.showExtensions' ng-class='{&#39;selected&#39; : ctrl.showExtensions}' ng-click='ctrl.toggleMenu(&#39;showExtensions&#39;)'>\n<div class='sk-label'>Actions</div>\n<actions-menu item='ctrl.note' ng-if='ctrl.showExtensions'></actions-menu>\n</div>\n<div class='sk-app-bar-item' click-outside='ctrl.showSessionHistory = false;' is-open='ctrl.showSessionHistory' ng-click='ctrl.toggleMenu(&#39;showSessionHistory&#39;)'>\n<div class='sk-label'>Session History</div>\n<session-history-menu item='ctrl.note' ng-if='ctrl.showSessionHistory'></session-history-menu>\n</div>\n</div>\n</div>\n</div>\n<div class='editor-content' id='editor-content' ng-if='ctrl.noteReady &amp;&amp; !ctrl.note.errorDecrypting'>\n<panel-resizer class='left' control='ctrl.leftResizeControl' hoverable='true' min-width='300' ng-if='ctrl.marginResizersEnabled' on-resize-finish='ctrl.onPanelResizeFinish' panel-id='&#39;editor-content&#39;' property='&#39;left&#39;'></panel-resizer>\n<component-view class='component-view' component='ctrl.selectedEditor' ng-if='ctrl.selectedEditor' on-load='ctrl.onEditorLoad'></component-view>\n<textarea class='editable' dir='auto' id='note-text-editor' ng-attr-spellcheck='{{ctrl.spellcheck}}' ng-change='ctrl.contentChanged()' ng-click='ctrl.clickedTextArea()' ng-focus='ctrl.onContentFocus()' ng-if='!ctrl.selectedEditor' ng-model-options='{ debounce: ctrl.EditorNgDebounce }' ng-model='ctrl.note.text' ng-readonly='ctrl.note.locked' ng-trim='false'>{{ctrl.onSystemEditorLoad()}}</textarea>\n<panel-resizer control='ctrl.rightResizeControl' hoverable='true' min-width='300' ng-if='ctrl.marginResizersEnabled' on-resize-finish='ctrl.onPanelResizeFinish' panel-id='&#39;editor-content&#39;' property='&#39;right&#39;'></panel-resizer>\n</div>\n<div class='section' ng-show='ctrl.note.errorDecrypting'>\n<p class='medium-padding' style='padding-top: 0 !important;'>There was an error decrypting this item. Ensure you are running the latest version of this app, then sign out and sign back in to try again.</p>\n</div>\n<div id='editor-pane-component-stack' ng-show='ctrl.note'>\n<div class='sk-app-bar no-edges' id='component-stack-menu-bar' ng-if='ctrl.componentStack.length'>\n<div class='left'>\n<div class='sk-app-bar-item' ng-click='ctrl.toggleStackComponentForCurrentItem(component)' ng-repeat='component in ctrl.componentStack'>\n<div class='sk-app-bar-item-column'>\n<div class='sk-circle small' ng-class='{&#39;info&#39; : !component.hidden &amp;&amp; component.active, &#39;neutral&#39; : component.hidden || !component.active}'></div>\n</div>\n<div class='sk-app-bar-item-column'>\n<div class='sk-label'>{{component.name}}</div>\n</div>\n</div>\n</div>\n</div>\n<div class='sn-component'>\n<component-view class='component-view component-stack-item' component='component' manual-dealloc='true' ng-if='component.active' ng-repeat='component in ctrl.componentStack' ng-show='!component.hidden'></component-view>\n</div>\n</div>\n</div>\n"),e.put("footer.html","<div class='sn-component'>\n<div class='sk-app-bar no-edges no-bottom-edge' id='footer-bar'>\n<div class='left'>\n<div class='sk-app-bar-item' click-outside='ctrl.clickOutsideAccountMenu()' is-open='ctrl.showAccountMenu' ng-click='ctrl.accountMenuPressed()'>\n<div class='sk-app-bar-item-column'>\n<div class='sk-circle small' ng-class='ctrl.error ? &#39;danger&#39; : (ctrl.getUser() ? &#39;info&#39; : &#39;neutral&#39;)'></div>\n</div>\n<div class='sk-app-bar-item-column'>\n<div class='sk-label title' ng-class='{red: ctrl.error}'>Account</div>\n</div>\n<account-menu close-function='ctrl.closeAccountMenu' ng-click='$event.stopPropagation()' ng-if='ctrl.showAccountMenu' on-successful-auth='ctrl.onAuthSuccess'></account-menu>\n</div>\n<div class='sk-app-bar-item'>\n<a class='no-decoration sk-label title' href='https://standardnotes.org/help' rel='noopener' target='_blank'>\nHelp\n</a>\n</div>\n<div class='sk-app-bar-item border'></div>\n<div class='sk-app-bar-item' ng-repeat='room in ctrl.rooms track by room.uuid'>\n<div class='sk-app-bar-item-column' ng-click='ctrl.selectRoom(room)'>\n<div class='sk-label'>{{room.name}}</div>\n</div>\n<component-modal component='room' ng-if='room.showRoom' on-dismiss='ctrl.onRoomDismiss'></component-modal>\n</div>\n</div>\n<div class='center'>\n<div class='sk-app-bar-item' ng-show='ctrl.arbitraryStatusMessage'>\n<div class='sk-app-bar-item-column'>\n<span class='neutral sk-label'>{{ctrl.arbitraryStatusMessage}}</span>\n</div>\n</div>\n</div>\n<div class='right'>\n<div class='sk-app-bar-item' ng-click='ctrl.openSecurityUpdate()' ng-show='ctrl.securityUpdateAvailable'>\n<span class='success sk-label'>Security update available.</span>\n</div>\n<div class='sk-app-bar-item' ng-click='ctrl.clickedNewUpdateAnnouncement()' ng-show='ctrl.newUpdateAvailable == true'>\n<span class='info sk-label'>New update available.</span>\n</div>\n<div class='sk-app-bar-item no-pointer' ng-if='ctrl.lastSyncDate &amp;&amp; !ctrl.isRefreshing'>\n<div class='sk-label subtle'>\nLast refreshed {{ctrl.lastSyncDate | appDateTime}}\n</div>\n</div>\n<div class='sk-app-bar-item' ng-click='ctrl.toggleSyncResolutionMenu()' ng-if='(ctrl.outOfSync &amp;&amp; !ctrl.isRefreshing) || ctrl.showSyncResolution'>\n<div class='sk-label warning' ng-if='ctrl.outOfSync'>Potentially Out of Sync</div>\n<sync-resolution-menu close-function='ctrl.toggleSyncResolutionMenu' ng-click='$event.stopPropagation();' ng-if='ctrl.showSyncResolution'></sync-resolution-menu>\n</div>\n<div class='sk-app-bar-item' ng-if='ctrl.lastSyncDate &amp;&amp; ctrl.isRefreshing'>\n<div class='sk-spinner small'></div>\n</div>\n<div class='sk-app-bar-item' ng-if='ctrl.offline'>\n<div class='sk-label'>Offline</div>\n</div>\n<div class='sk-app-bar-item' ng-click='ctrl.refreshData()' ng-if='!ctrl.offline'>\n<div class='sk-label'>Refresh</div>\n</div>\n<div class='sk-app-bar-item border' ng-if='ctrl.dockShortcuts.length &gt; 0'></div>\n<div class='sk-app-bar-item dock-shortcut' ng-repeat='shortcut in ctrl.dockShortcuts'>\n<div class='sk-app-bar-item-column' ng-class='{&#39;underline&#39;: shortcut.component.active}' ng-click='ctrl.selectShortcut(shortcut)'>\n<div class='div' ng-if='shortcut.icon.type == &#39;circle&#39;' title='{{shortcut.name}}'>\n<div class='sk-circle small' ng-style='{&#39;background-color&#39;: shortcut.icon.background_color, &#39;border-color&#39;: shortcut.icon.border_color}'></div>\n</div>\n<div class='div' ng-if='shortcut.icon.type == &#39;svg&#39;' title='{{shortcut.name}}'>\n<div class='svg-item' elem-ready='ctrl.initSvgForShortcut(shortcut)' ng-attr-id='dock-svg-{{shortcut.component.uuid}}'></div>\n</div>\n</div>\n</div>\n<div class='sk-app-bar-item border' ng-if='ctrl.hasPasscode()'></div>\n<div class='sk-app-bar-item' id='lock-item' ng-click='ctrl.lockApp()' ng-if='ctrl.hasPasscode()' title='Locks application and wipes unencrypted data from memory.'>\n<div class='sk-label'>\n<i class='icon ion-locked' id='footer-lock-icon'></i>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("frontend/directives/account-menu.html","<div class='panel panel-default panel-right account-data-menu'>\n <div class='panel-body large-padding'>\n <div ng-if='!user'>\n <div class='mb-10'>\n <div class='step-one' ng-if='!formData.showLogin &amp;&amp; !formData.showRegister'>\n <h3>Sign in or register to enable sync and encryption.</h3>\n <div class='small-v-space'></div>\n <div class='button-group mt-5'>\n <button class='ui-button half-button' ng-click='formData.showLogin = true'>\n <span>Sign In</span>\n </button>\n <button class='ui-button half-button' ng-click='formData.showRegister = true'>\n <span>Register</span>\n </button>\n </div>\n </div>\n <div class='step-two' ng-if='formData.showLogin || formData.showRegister'>\n <div class='float-group h20'>\n <h3 class='pull-left'>{{formData.showLogin ? \"Sign In\" : \"Register (free)\"}}</h3>\n <a class='pull-right pt-5' ng-click='formData.showLogin = false; formData.showRegister = false;'>Cancel</a>\n </div>\n <form class='mt-5'>\n <input autofocus='autofocus' class='form-control mt-10' name='email' ng-model='formData.email' placeholder='Email' required type='email'>\n <input class='form-control' name='password' ng-model='formData.user_password' placeholder='Password' required type='password'>\n <input class='form-control' name='password' ng-if='formData.showRegister' ng-model='formData.password_conf' placeholder='Confirm Password' required type='password'>\n <a class='block' ng-click='formData.showAdvanced = !formData.showAdvanced'>Advanced Options</a>\n <div class='advanced-options mt-10' ng-if='formData.showAdvanced'>\n <div class='float-group'>\n <label class='pull-left'>Sync Server Domain</label>\n </div>\n <input class='form-control mt-5' name='server' ng-model='formData.url' placeholder='Server URL' required type='text'>\n </div>\n <div class='checkbox mt-10' ng-if='localNotesCount() &gt; 0'>\n <p>\n <input ng-bind='true' ng-change='mergeLocalChanged()' ng-model='formData.mergeLocal' type='checkbox'>\n Merge local notes ({{localNotesCount()}} notes)\n </input>\n </p>\n </div>\n <button class='ui-button block mt-10' ng-click='submitAuthForm()'>{{formData.showLogin ? \"Sign In\" : \"Register\"}}</button>\n </form>\n </div>\n <div class='mt-15' ng-if='formData.showRegister'>\n <h3>No Password Reset.</h3>\n <p class='mt-5'>Because your notes are encrypted using your password, Standard Notes does not have a password reset option. You cannot forget your password.</p>\n </div>\n <em class='block center-align mt-10' ng-if='formData.status' style='font-size: 14px;'>{{formData.status}}</em>\n </div>\n </div>\n <div ng-if='user'>\n <h2>{{user.email}}</h2>\n <p>{{server}}</p>\n <div class='bold mt-10 blue' delay-hide='true' delay='1000' show='syncStatus.syncOpInProgress || syncStatus.needsMoreSync'>\n <div class='spinner inline mr-5 blue'></div>\n {{\"Syncing\" + (syncStatus.total > 0 ? \":\" : \"\")}}\n <span ng-if='syncStatus.total &gt; 0'>{{syncStatus.current}}/{{syncStatus.total}}</span>\n </div>\n <p class='bold mt-10 red block' ng-if='syncStatus.error'>Error syncing: {{syncStatus.error.message}}</p>\n <a class='block mt-15' href='{{dashboardURL()}}' target='_blank'>Data Dashboard</a>\n <a class='block mt-5' ng-click='showCredentials = !showCredentials'>Show Credentials</a>\n <section class='gray-bg mt-10 medium-padding' ng-if='showCredentials'>\n <label class='block'>\n Encryption key:\n <div class='wrap normal mt-1 selectable'>{{encryptionKey()}}</div>\n </label>\n <label class='block mt-5 mb-0'>\n Server password:\n <div class='wrap normal mt-1 selectable'>{{serverPassword() ? serverPassword() : 'Not available. Sign out then sign back in to compute.'}}</div>\n </label>\n </section>\n <a class='block mt-5' ng-click='newPasswordData.changePassword = !newPasswordData.changePassword'>Change Password</a>\n <section class='gray-bg mt-10 medium-padding' ng-if='newPasswordData.changePassword'>\n <p class='bold'>Change Password (Beta)</p>\n <p class='mt-10'>Since your encryption key is based on your password, changing your password requires all your notes and tags to be re-encrypted using your new key.</p>\n <p class='mt-5'>If you have thousands of items, this can take several minutes — you must keep the application window open during this process.</p>\n <p class='mt-5'>After changing your password, you must log out of all other applications currently signed in to your account.</p>\n <p class='bold mt-5'>It is highly recommended you download a backup of your data before proceeding.</p>\n <div class='mt-10' ng-if='!newPasswordData.status'>\n <a class='red mr-5' ng-click='showPasswordChangeForm()' ng-if='!newPasswordData.showForm'>Continue</a>\n <a ng-click='newPasswordData.changePassword = false; newPasswordData.showForm = false'>Cancel</a>\n <div class='mt-10' ng-if='newPasswordData.showForm'>\n <form>\n <input class='form-control' ng-model='newPasswordData.newPassword' placeholder='Enter new password' type='text'>\n <input class='form-control' ng-model='newPasswordData.newPasswordConfirmation' placeholder='Confirm new password' type='text'>\n <button class='ui-button block' ng-click='submitPasswordChange()'>Submit</button>\n </form>\n </div>\n </div>\n <p class='italic mt-10' ng-if='newPasswordData.status'>{{newPasswordData.status}}</p>\n </section>\n <div class='medium-v-space'></div>\n <h4>Local Encryption</h4>\n <p>Notes are encrypted locally before being sent to the server. Neither the server owner nor an intrusive entity can decrypt your locally encrypted notes.</p>\n <div class='mt-5'>\n <label>Status:</label>\n {{encryptionStatusForNotes()}}\n </div>\n </div>\n <div class='mt-25' ng-if='!importData.loading'>\n <h4>Data Archives</h4>\n <div class='mt-5' ng-if='user'>\n <label class='normal inline' ng-if='user'>\n <input ng-change='archiveFormData.encrypted = true' ng-model='archiveFormData.encrypted' ng-value='true' type='radio'>\n Encrypted\n </label>\n <label class='normal inline'>\n <input ng-change='archiveFormData.encrypted = false' ng-model='archiveFormData.encrypted' ng-value='false' type='radio'>\n Decrypted\n </label>\n </div>\n <a class='block mt-5' ng-class=\"{'mt-5' : !user}\" ng-click='downloadDataArchive()'>Download Data Archive</a>\n <label class='block mt-5'>\n <input file-change='-&gt;' handler='importFileSelected(files)' style='display: none;' type='file'>\n <div class='fake-link'>Import Data from Archive</div>\n </label>\n <div ng-if='importData.requestPassword'>\n Enter the account password associated with the import file.\n <input ng-model='importData.password' type='text'>\n <button ng-click='submitImportPassword()'>Decrypt & Import</button>\n </div>\n <p class='mt-5' ng-if='user'>Notes are downloaded in the Standard File format, which allows you to re-import back into this app easily. To download as plain text files, choose \"Decrypted\".</p>\n </div>\n <div class='spinner mt-10' ng-if='importData.loading'></div>\n <div class='mt-25'>\n <h4>Analytics</h4>\n <p>\n Help Standard Notes improve by sending anonymous data on general usage.\n <a href='https://standardnotes.org/philosophy' target='_blank'>Learn more.</a>\n </p>\n <div class='mt-5'>\n <label>Status:</label>\n"+' {{analyticsManager.enabled ? "Enabled" : "Disabled"}}\n <a ng-click=\'analyticsManager.toggleStatus()\'>{{analyticsManager.enabled ? "Disable" : "Enable"}}</a>\n </div>\n </div>\n <a class=\'block mt-25 red\' ng-click=\'destroyLocalData()\'>{{ user ? "Sign out and clear local data" : "Clear all local data" }}</a>\n </div>\n</div>\n'),e.put("frontend/directives/contextual-menu.html","<ul class='dropdown-menu sectioned-menu'>\n <div class='extension' ng-repeat='extension in extensions'>\n <div class='header' ng-click='extension.hide = !extension.hide'>\n <div class='title'>{{extension.name}}</div>\n <div class='subtitle'>\n Will submit your note\n <strong>{{accessTypeForExtension(extension)}}</strong>\n </div>\n <div class='spinner loading' ng-if='extension.loading'></div>\n <div ng-if='extension.hide'>…</div>\n </div>\n <ul ng-if='!extension.hide'>\n <li class='menu-item' ng-class=\"{'faded' : !isActionEnabled(action, extension)}\" ng-click='executeAction(action, extension);' ng-repeat='action in extension.actionsWithContextForItem(item)'>\n <div class='menu-item-title'>{{action.label}}</div>\n <div class='menu-item-subtitle'>{{action.desc}}</div>\n <div class='small normal' ng-if='!isActionEnabled(action, extension)'>\n Requires {{action.access_type}} access to this note.\n </div>\n <div ng-if='action.showNestedActions'>\n <ul class='mt-10'>\n <li class='menu-item white-bg nested-hover' ng-click='executeAction(subaction, extension, action); $event.stopPropagation();' ng-repeat='subaction in action.subactions' style='margin-top: -1px;'>\n <div class='menu-item-title'>{{subaction.label}}</div>\n <div class='menu-item-subtitle'>{{subaction.desc}}</div>\n <span ng-if='subaction.running'>\n <div class='spinner' style='margin-top: 3px;'></div>\n </span>\n </li>\n </ul>\n </div>\n <span ng-if='action.running'>\n <div class='spinner' style='margin-top: 3px;'></div>\n </span>\n </li>\n </ul>\n </div>\n</ul>\n<div class='extension-render-modal' ng-click='renderData.showRenderModal = false' ng-if='renderData.showRenderModal'>\n <div class='content'>\n <h2>{{renderData.title}}</h2>\n <p class='normal' style='white-space: pre-wrap; font-family: monospace; font-size: 16px;'>{{renderData.text}}</p>\n </div>\n</div>\n"),e.put("frontend/directives/editor-menu.html","<ul class='dropdown-menu sectioned-menu'>\n <div class='header'>\n <div class='title'>System Editors</div>\n </div>\n <ul>\n <li class='menu-item' ng-click='selectEditor($event, editor)' ng-repeat='editor in editorManager.systemEditors'>\n <span class='pull-left mr-10' ng-if='selectedEditor === editor'>✓</span>\n <div class='menu-item-title pull-left'>{{editor.name}}</div>\n </li>\n </ul>\n <div ng-if='editorManager.externalEditors.length &gt; 0'>\n <div class='header'>\n <div class='title'>External Editors</div>\n <div class='subtitle'>Can access your current note decrypted.</div>\n </div>\n <ul>\n <li class='menu-item' ng-click='selectEditor($event, editor)' ng-repeat='editor in editorManager.externalEditors'>\n <strong class='red medium' ng-if='editor.conflict_of'>Conflicted copy</strong>\n <div class='menu-item-title'>\n {{editor.name}}\n <span class='inline blue' ng-if='selectedEditor === editor' style='margin-left: 8px;'>✓</span>\n </div>\n </li>\n </ul>\n </div>\n</ul>\n"),e.put("frontend/directives/global-extensions-menu.html","<div class='panel panel-default account-panel panel-right' id='global-ext-menu'>\n <div class='panel-body'>\n <div class='container'>\n <div class='float-group h20'>\n <h1 class='blue pull-left'>Extensions</h1>\n <a class='block pull-right dashboard-link' href='https://dashboard.standardnotes.org' target='_blank'>Open Dashboard</a>\n </div>\n <div class='clear' ng-if='!extensionManager.extensions.length &amp;&amp; !themeManager.themes.length &amp;&amp; !editorManager.externalEditors.length'>\n <p>Customize your experience with editors, themes, and actions.</p>\n <div class='blue-box mt-10'>\n <h3>Available as part of the Extended subscription.</h3>\n <p class='mt-5'>Note history</p>\n <p class='mt-5'>Automated backups</p>\n <p class='mt-5'>All editors, themes, and actions</p>\n <a href='https://standardnotes.org/extensions' target='_blank'>\n <button class='mt-10'>\n <h3>Learn More</h3>\n </button>\n </a>\n </div>\n </div>\n </div>\n <div ng-if='themeManager.themes.length &gt; 0'>\n <div class='container no-bottom section-margin'>\n <h2>Themes</h2>\n </div>\n <ul>\n <li ng-click='theme.showDetails = !theme.showDetails' ng-repeat='theme in themeManager.themes'>\n <div class='container'>\n <h3>{{theme.name}}</h3>\n <a ng-click='themeManager.activateTheme(theme); $event.stopPropagation();' ng-if='!themeManager.isThemeActive(theme)'>Activate</a>\n <a ng-click='themeManager.deactivateTheme(theme); $event.stopPropagation();' ng-if='themeManager.isThemeActive(theme)'>Deactivate</a>\n <div ng-if='theme.showDetails'>\n <div class='link-group'>\n <a class='red' ng-click='deleteTheme(theme); $event.stopPropagation();'>Delete</a>\n <a ng-click='theme.showLink = !theme.showLink; $event.stopPropagation();'>Show Link</a>\n <p class='small selectable wrap' ng-if='theme.showLink'>\n {{theme.url}}\n </p>\n </div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div ng-if='editorManager.externalEditors.length &gt; 0'>\n <div class='container no-bottom section-margin'>\n <h2>Editors</h2>\n <p style='margin-top: 3px;'>Choose \"Editor\" in the note menu to use an editor for a specific note.</p>\n </div>\n <ul>\n <li ng-click='editor.showDetails = !editor.showDetails' ng-repeat='editor in editorManager.externalEditors'>\n <div class='container'>\n <strong class='red medium' ng-if='editor.conflict_of'>Conflicted copy</strong>\n <h3>{{editor.name}}</h3>\n <div class='mt-5' ng-if='editor.showDetails'>\n <div class='link-group'>\n <a ng-click='setDefaultEditor(editor); $event.stopPropagation();' ng-if='!editor.default'>Make Default</a>\n <a class='blue' ng-click='removeDefaultEditor(editor); $event.stopPropagation();' ng-if='editor.default'>Remove as Default</a>\n <a ng-click='editor.showUrl = !editor.showUrl; $event.stopPropagation();'>Show Link</a>\n <a class='red' ng-click='deleteEditor(editor); $event.stopPropagation();'>Delete</a>\n </div>\n <div class='wrap mt-5 selectable' ng-if='editor.showUrl'>{{editor.url}}</div>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div ng-if='extensionManager.extensions.length'>\n <div class='container no-bottom section-margin'>\n <h2>Actions</h2>\n <p style='margin-top: 3px;'>Choose \"Actions\" in the note editor to use installed actions.</p>\n </div>\n <ul>\n <li ng-click='extension.showDetails = !extension.showDetails' ng-init='extension.formData = {}' ng-repeat=\"extension in extensionManager.extensions | orderBy: 'name'\">\n <div class='container'>\n <h3>{{extension.name}}</h3>\n <p class='small' ng-if='extension.description'>{{extension.description}}</p>\n <div ng-if='extension.showDetails'>\n <div class='mt-10'>\n <label class='block'>Access Type</label>\n <label class='normal block'>\n <input ng-change='changeExtensionEncryptionFormat(true, extension)' ng-model='extension.encrypted' ng-value='true' type='radio'>\n Encrypted\n </label>\n <label class='normal block'>\n <input ng-change='changeExtensionEncryptionFormat(false, extension)' ng-model='extension.encrypted' ng-value='false' type='radio'>\n Decrypted\n </label>\n </div>\n <div class='small-v-space'></div>\n <ul ng-repeat='action in extension.actionsInGlobalContext()'>\n <li>\n <label class='block'>{{action.label}}</label>\n <em style='font-style: italic;'>{{action.desc}}</em>\n <em ng-if=\"action.repeat_mode == 'watch'\">\n Repeats when a change is made to your items.\n </em>\n <em ng-if=\"action.repeat_mode == 'loop'\">\n Repeats at most once every {{action.repeat_timeout}} seconds\n </em>\n <div>\n <a ng-click='action.showPermissions = !action.showPermissions'>{{action.showPermissions ? \"Hide permissions\" : \"Show permissions\"}}</a>\n <div ng-if='action.showPermissions'>\n {{action.permissionsString()}}\n <label class='block normal'>{{action.encryptionModeString()}}</label>\n </div>\n </div>\n <div>\n <div class='mt-5' ng-if='action.repeat_mode'>\n <button class='light' ng-click='extensionManager.disableRepeatAction(action, extension); $event.stopPropagation();' ng-if='extensionManager.isRepeatActionEnabled(action)'>Disable</button>\n <button class='light' ng-click='extensionManager.enableRepeatAction(action, extension); $event.stopPropagation();' ng-if='!extensionManager.isRepeatActionEnabled(action)'>Enable</button>\n </div>\n <button class='light mt-10' ng-click='selectedAction(action, extension); $event.stopPropagation();' ng-if='!action.running &amp;&amp; !action.repeat_mode'>\n Perform Action\n </button>\n <div class='spinner mb-5 block' ng-if='action.running'></div>\n </div>\n <p class='mb-5 mt-5 small' ng-if='!action.error &amp;&amp; action.lastExecuted &amp;&amp; !action.running'>\n Last run {{action.lastExecuted | appDateTime}}\n </p>\n <label class='red' ng-if='action.error'>\n Error performing action.\n </label>\n </li>\n </ul>\n <a class='block mt-5' ng-click='extension.showURL = !extension.showURL; $event.stopPropagation();'>Show Link</a>\n <p class='wrap selectable small' ng-if='extension.showURL'>{{extension.url}}</p>\n <a class='block mt-5' ng-click='deleteActionExtension(extension); $event.stopPropagation();'>Remove extension</a>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <div class='container section-margin'>\n <h2 class='blue'>Install</h2>\n <p class='faded'>Enter an install link</p>\n <form class='mt-10 mb-10'>\n <input autocomplete='off' autofocus='autofocus' class='form-control' name='url' ng-keyup='$event.keyCode == 13 &amp;&amp; submitInstallLink();' ng-model='formData.installLink' required type='url'>\n </form>\n <p class='blue' ng-if='formData.successfullyInstalled'>Successfully installed extension.</p>\n </div>\n </div>\n</div>\n"),e.put("frontend/editor.html","<div class='section editor' ng-class=\"{'fullscreen' : ctrl.fullscreen}\">\n <div class='section-title-bar' id='editor-title-bar' ng-class=\"{'fullscreen' : ctrl.fullscreen }\" ng-if='ctrl.note'>\n <div class='title'>\n <input class='input' id='note-title-editor' ng-change='ctrl.nameChanged()' ng-focus='ctrl.onNameFocus()' ng-keyup='$event.keyCode == 13 &amp;&amp; ctrl.saveTitle($event)' ng-model='ctrl.note.title' select-on-click='true'>\n </div>\n <div id='save-status' ng-bind-html='ctrl.noteStatus' ng-class=\"{'red bold': ctrl.saveError, 'orange bold': ctrl.syncTakingTooLong}\"></div>\n <div class='editor-tags'>\n <input class='tags-input' ng-blur='ctrl.updateTagsFromTagsString($event, ctrl.tagsString)' ng-keyup='$event.keyCode == 13 &amp;&amp; $event.target.blur();' ng-model='ctrl.tagsString' placeholder='#tags' type='text'>\n </div>\n </div>\n <ul class='section-menu-bar' ng-if='ctrl.note'>\n <li click-outside='ctrl.showMenu = false;' is-open='ctrl.showMenu' ng-class=\"{'selected' : ctrl.showMenu}\">\n <label ng-click='ctrl.showMenu = !ctrl.showMenu; ctrl.showExtensions = false; ctrl.showEditorMenu = false;'>Menu</label>\n <ul class='dropdown-menu' ng-if='ctrl.showMenu'>\n <li>\n <label ng-click='ctrl.selectedMenuItem($event); ctrl.toggleFullScreen()'>Toggle Fullscreen</label>\n </li>\n <li>\n <label ng-click='ctrl.selectedMenuItem($event); ctrl.deleteNote()'>Delete Note</label>\n </li>\n </ul>\n </li>\n <li click-outside='ctrl.showEditorMenu = false;' is-open='ctrl.showEditorMenu' ng-class=\"{'selected' : ctrl.showEditorMenu}\">\n <label ng-click='ctrl.showEditorMenu = !ctrl.showEditorMenu; ctrl.showMenu = false; ctrl.showExtensions = false;'>Editor</label>\n <editor-menu callback='ctrl.selectedEditor' ng-if='ctrl.showEditorMenu' selected-editor='ctrl.editor'></editor-menu>\n </li>\n <li click-outside='ctrl.showExtensions = false;' is-open='ctrl.showExtensions' ng-class=\"{'selected' : ctrl.showExtensions}\" ng-if='ctrl.hasAvailableExtensions()'>\n <label ng-click='ctrl.showExtensions = !ctrl.showExtensions; ctrl.showMenu = false; ctrl.showEditorMenu = false;'>Actions</label>\n <contextual-extensions-menu item='ctrl.note' ng-if='ctrl.showExtensions'></contextual-extensions-menu>\n </li>\n </ul>\n <div class='editor-content' ng-class=\"{'fullscreen' : ctrl.fullscreen }\" ng-if='ctrl.noteReady'>\n <iframe frameBorder='0' id='editor-iframe' ng-if='ctrl.editor &amp;&amp; !ctrl.editor.systemEditor' ng-src='{{ctrl.editor.url | trusted}}' style='width: 100%;'></iframe>\n <textarea class='editable' id='note-text-editor' ng-change='ctrl.contentChanged()' ng-class=\"{'fullscreen' : ctrl.fullscreen }\" ng-click='ctrl.clickedTextArea()' ng-focus='ctrl.onContentFocus()' ng-if='!ctrl.editor || ctrl.editor.systemEditor' ng-model='ctrl.note.text'></textarea>\n </div>\n</div>\n"),e.put("frontend/header.html","<div id='footer-bar'>\n <div class='pull-left'>\n <div class='footer-bar-link' click-outside='ctrl.showAccountMenu = false;' is-open='ctrl.showAccountMenu'>\n <a ng-class='{red: ctrl.error}' ng-click='ctrl.accountMenuPressed()'>Account</a>\n <account-menu ng-if='ctrl.showAccountMenu'></account-menu>\n </div>\n <div class='footer-bar-link' click-outside='ctrl.showExtensionsMenu = false;' is-open='ctrl.showExtensionsMenu'>\n <a ng-click='ctrl.toggleExtensions()'>Extensions</a>\n <global-extensions-menu ng-if='ctrl.showExtensionsMenu'></global-extensions-menu>\n </div>\n <div class='footer-bar-link'>\n <a href='https://standardnotes.org/help' target='_blank'>\n Help\n </a>\n </div>\n </div>\n <div class='pull-right'>\n <div class='footer-bar-link' style='margin-right: 5px;'>\n <div ng-if='ctrl.lastSyncDate' style='float: left; font-weight: normal; margin-right: 8px;'>\n <span ng-if='!ctrl.isRefreshing'>\n Last refreshed {{ctrl.lastSyncDate | appDateTime}}\n </span>\n <span ng-if='ctrl.isRefreshing'>\n <div class='spinner' style='margin-top: 2px;'></div>\n </span>\n </div>\n <strong ng-if='ctrl.offline'>Offline</strong>\n <a ng-click='ctrl.refreshData()' ng-if='!ctrl.offline'>Refresh</a>\n </div>\n </div>\n</div>\n"),e.put("frontend/home.html","<div class='main-ui-view'>\n <div class='app'>\n <tags-section add-new='tagsAddNew' all-tag='allTag' remove-tag='removeTag' save='tagsSave' selection-made='tagsSelectionMade' tags='tags' will-select='tagsWillMakeSelection'></tags-section>\n <notes-section add-new='notesAddNew' selection-made='notesSelectionMade' tag='selectedTag'></notes-section>\n <editor-section note='selectedNote' remove='deleteNote' save='saveNote' update-tags='updateTagsForNote'></editor-section>\n </div>\n <header></header>\n</div>\n"),e.put("frontend/notes.html","<div class='section notes'>\n <div class='content'>\n <div class='section-title-bar' id='notes-title-bar'>\n <div class='title'>{{ctrl.tag.title}} notes</div>\n <div class='add-button' id='notes-add-button' ng-click='ctrl.createNewNote()'>+</div>\n <br>\n <div class='filter-section'>\n <input class='filter-bar' lowercase='true' ng-change='ctrl.filterTextChanged()' ng-model='ctrl.noteFilter.text' placeholder='Search' select-on-click='true'>\n </div>\n <ul class='section-menu-bar' id='tag-menu-bar'>\n <li ng-class=\"{'selected' : ctrl.showMenu}\">\n <label ng-click='ctrl.showMenu = !ctrl.showMenu'>Sort</label>\n <ul class='dropdown-menu' ng-if='ctrl.showMenu'>\n <li>\n <label ng-click='ctrl.selectedMenuItem($event); ctrl.selectedSortByCreated()'>\n <span class='top mt-5 mr-5' ng-if=\"ctrl.sortBy == 'created_at'\">✓</span>\n By date added\n </label>\n </li>\n <li>\n <label ng-click='ctrl.selectedMenuItem($event); ctrl.selectedSortByUpdated()'>\n <span class='top mt-5 mr-5' ng-if=\"ctrl.sortBy == 'updated_at'\">✓</span>\n By date modified\n </label>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n <div class='scrollable'>\n <div can-load='true' class='infinite-scroll' infinite-scroll='ctrl.paginate()' threshold='200'>\n <div class='note' ng-class=\"{'selected' : ctrl.selectedNote == note}\" ng-click='ctrl.selectNote(note)' ng-repeat='note in (ctrl.sortedNotes = (ctrl.tag.notes | filter: ctrl.filterNotes | orderBy: ctrl.sortBy:true | limitTo:ctrl.notesToDisplay))'>\n <strong class='red medium' ng-if='note.conflict_of'>Conflicted copy</strong>\n <div class='name' ng-if='note.title'>\n {{note.title}}\n </div>\n <div class='note-preview'>\n {{note.text}}\n </div>\n <div class='date'>{{(note.created_at | appDateTime) || 'Now'}}</div>\n </div>\n </div>\n </div>\n </div>\n</div>\n"),e.put("frontend/tags.html","<div class='section tags'>\n <div class='content' id='tags-content'>\n <div class='section-title-bar' id='tags-title-bar'>\n <div class='title'>Tags</div>\n <div class='add-button' id='tag-add-button' ng-click='ctrl.clickedAddNewTag()'>+</div>\n {{ctrl.test}}\n </div>\n <div class='scrollable'>\n <div class='tag' ng-class=\"{'selected' : ctrl.selectedTag == ctrl.allTag}\" ng-click='ctrl.selectTag(ctrl.allTag)' ng-if='ctrl.allTag'>\n <div class='info'>\n <input class='title' ng-disabled='true' ng-model='ctrl.allTag.title'>\n <div class='count'>{{ctrl.noteCount(ctrl.allTag)}}</div>\n </div>\n </div>\n <div class='tag' ng-class=\"{'selected' : ctrl.selectedTag == tag}\" ng-click='ctrl.selectTag(tag)' ng-repeat='tag in ctrl.tags'>\n <div class='info'>\n <input class='title' mb-autofocus='true' ng-attr-id='tag-{{tag.uuid}}' ng-blur='ctrl.saveTag($event, tag)' ng-change='ctrl.tagTitleDidChange(tag)' ng-click='ctrl.selectTag(tag)' ng-keyup='$event.keyCode == 13 &amp;&amp; ctrl.saveTag($event, tag)' ng-model='tag.title' should-focus='ctrl.newTag || ctrl.editingTag == tag' spellcheck='false'>\n <div class='count'>{{ctrl.noteCount(tag)}}</div>\n </div>\n <div class='red small bold' ng-if='tag.conflict_of'>Conflicted copy</div>\n <div class='menu' ng-if='ctrl.selectedTag == tag'>\n <a class='item' ng-click='ctrl.selectedRenameTag($event, tag)' ng-if='!ctrl.editingTag'>Rename</a>\n <a class='item' ng-click='ctrl.saveTag($event, tag)' ng-if='ctrl.editingTag'>Save</a>\n <a class='item' ng-click='ctrl.selectedDeleteTag(tag)'>Delete</a>\n </div>\n </div>\n </div>\n </div>\n</div>\n"),e.put("home.html","<div class='main-ui-view' ng-class='platform'>\n<lock-screen ng-if='needsUnlock' on-success='onSuccessfulUnlock'></lock-screen>\n<div class='app' id='app' ng-class='appClass' ng-if='!needsUnlock'>\n<tags-section add-new='tagsAddNew' remove-tag='removeTag' save='tagsSave' selection-made='tagsSelectionMade'></tags-section>\n<notes-section add-new='notesAddNew' selection-made='notesSelectionMade' tag='selectedTag'></notes-section>\n<editor-section note='selectedNote' remove='deleteNote' update-tags='updateTagsForNote'></editor-section>\n</div>\n<footer ng-if='!needsUnlock'></footer>\n</div>\n"),e.put("lock-screen.html","<div class='sn-component' id='lock-screen'>\n<div class='sk-panel'>\n<div class='sk-panel-header'>\n<div class='sk-panel-header-title'>Passcode Required</div>\n</div>\n<div class='sk-panel-content'>\n<div class='sk-panel-section'>\n<form class='sk-panel-form sk-panel-row' ng-submit='submitPasscodeForm()'>\n<div class='sk-panel-column stretch'>\n<input autocomplete='new-password' autofocus='true' class='center-text sk-input contrast' id='passcode-input' ng-model='formData.passcode' placeholder='Enter Passcode' should-focus='true' sn-autofocus='true' type='password'>\n<div class='sk-button-group stretch sk-panel-row form-submit'>\n<button class='sk-button info' type='submit'>\n<div class='sk-label'>Unlock</div>\n</button>\n</div>\n</div>\n</form>\n</div>\n</div>\n<div class='sk-panel-footer'>\n<div id='passcode-reset'>\n<a class='sk-a neutral' ng-click='forgotPasscode()' ng-if='!formData.showRecovery'>Forgot?</a>\n<div ng-if='formData.showRecovery'>\n<div class='sk-p'>\nIf you forgot your local passcode, your only option is to clear your local data from this device\nand sign back in to your account.\n</div>\n<div class='sk-panel-row'></div>\n<a class='sk-a danger center-text' ng-click='beginDeleteData()'>Delete Local Data</a>\n</div>\n</div>\n</div>\n</div>\n</div>\n"),e.put("notes.html","<div aria-label='Notes' class='sn-component section notes' id='notes-column'>\n<div class='content'>\n<div class='section-title-bar' id='notes-title-bar'>\n<div class='padded'>\n<div class='section-title-bar-header'>\n<div class='title'>{{ctrl.panelTitle}}</div>\n<div class='sk-button contrast wide' ng-click='ctrl.createNewNote()' title='Create a new note in the selected tag'>\n<div class='sk-label'>\n<i class='icon ion-plus add-button'></i>\n</div>\n</div>\n</div>\n<div class='filter-section' role='search'>\n<input class='filter-bar' id='search-bar' lowercase='true' ng-blur='ctrl.onFilterEnter()' ng-change='ctrl.filterTextChanged()' ng-keyup='$event.keyCode == 13 &amp;&amp; ctrl.onFilterEnter();' ng-model='ctrl.noteFilter.text' placeholder='Search' select-on-click='true' title='Searches notes in the currently selected tag'>\n<div id='search-clear-button' ng-click='ctrl.clearFilterText();' ng-show='ctrl.noteFilter.text'>✕</div>\n</input>\n</div>\n</div>\n<div class='sn-component' id='notes-menu-bar'>\n<div class='sk-app-bar no-edges'>\n<div class='left'>\n<div class='sk-app-bar-item' ng-class='{&#39;selected&#39; : ctrl.showMenu}' ng-click='ctrl.showMenu = !ctrl.showMenu'>\n<div class='sk-app-bar-item-column'>\n<div class='sk-label'>\nOptions\n</div>\n</div>\n<div class='sk-app-bar-item-column'>\n<div class='sk-sublabel'>{{ctrl.optionsSubtitle()}}</div>\n</div>\n</div>\n<div class='sk-menu-panel dropdown-menu' id='notes-options-menu' ng-show='ctrl.showMenu'>\n<div class='sk-menu-panel-header'>\n<div class='sk-menu-panel-header-title'>Sort By</div>\n<a class='info sk-h5' ng-click='ctrl.toggleReverseSort()'>\n{{ctrl.sortReverse === true ? 'Disable Reverse Sort' : 'Enable Reverse Sort'}}\n</a>\n</div>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.selectedSortByCreated()' circle='ctrl.sortBy == &#39;created_at&#39; &amp;&amp; &#39;success&#39;' desc='&#39;Sort notes by newest first&#39;' label='&#39;Date Added&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.selectedSortByUpdated()' circle='ctrl.sortBy == &#39;client_updated_at&#39; &amp;&amp; &#39;success&#39;' desc='&#39;Sort notes with the most recently updated first&#39;' label='&#39;Date Modified&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.selectedSortByTitle()' circle='ctrl.sortBy == &#39;title&#39; &amp;&amp; &#39;success&#39;' desc='&#39;Sort notes alphabetically by their title&#39;' label='&#39;Title&#39;'></menu-row>\n<div class='sk-menu-panel-section'>\n<div class='sk-menu-panel-header'>\n<div class='sk-menu-panel-header-title'>Display</div>\n</div>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.togglePrefKey(&#39;showArchived&#39;)' circle='ctrl.showArchived ? &#39;success&#39; : &#39;danger&#39;' desc='&#39;Archived notes are usually hidden. You can explicitly show them with this option.&#39;' faded='!ctrl.showArchived' label='&#39;Archived Notes&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.togglePrefKey(&#39;hidePinned&#39;)' circle='ctrl.hidePinned ? &#39;danger&#39; : &#39;success&#39;' desc='&#39;Pinned notes always appear on top. You can hide them temporarily with this option so you can focus on other notes in the list.&#39;' faded='ctrl.hidePinned' label='&#39;Pinned Notes&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.togglePrefKey(&#39;hideNotePreview&#39;)' circle='ctrl.hideNotePreview ? &#39;danger&#39; : &#39;success&#39;' desc='&#39;Hide the note preview for a more condensed list of notes&#39;' faded='ctrl.hideNotePreview' label='&#39;Note Preview&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.togglePrefKey(&#39;hideDate&#39;)' circle='ctrl.hideDate ? &#39;danger&#39; : &#39;success&#39;' desc='&#39;Hide the date displayed in each row&#39;' faded='ctrl.hideDate' label='&#39;Date&#39;'></menu-row>\n<menu-row action='ctrl.selectedMenuItem(); ctrl.togglePrefKey(&#39;hideTags&#39;)' circle='ctrl.hideTags ? &#39;danger&#39; : &#39;success&#39;' desc='&#39;Hide the list of tags associated with each note&#39;' faded='ctrl.hideTags' label='&#39;Tags&#39;'></menu-row>\n</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n<div class='scrollable'>\n<div can-load='true' class='infinite-scroll' id='notes-scrollable' infinite-scroll='ctrl.paginate()' threshold='200'>\n<div class='note' ng-class='{&#39;selected&#39; : ctrl.selectedNote == note}' ng-click='ctrl.selectNote(note, true)' ng-repeat='note in (ctrl.renderedNotes = (ctrl.notes | limitTo:ctrl.notesToDisplay)) track by note.uuid'>\n<div class='note-flags' ng-show='note.flags.length &gt; 0'>\n<div class='flag' ng-class='flag.class' ng-repeat='flag in note.flags'>\n<div class='label'>{{flag.text}}</div>\n</div>\n</div>\n<div class='name' ng-show='note.title'>\n{{note.title}}\n</div>\n<div class='note-preview' ng-if='!ctrl.hideNotePreview &amp;&amp; !note.content.hidePreview &amp;&amp; !note.content.protected'>\n<div class='html-preview' ng-bind-html='note.content.preview_html' ng-show='note.content.preview_html'></div>\n<div class='plain-preview' ng-show='!note.content.preview_html &amp;&amp; note.content.preview_plain'>{{note.content.preview_plain}}</div>\n<div class='default-preview' ng-show='!note.content.preview_html &amp;&amp; !note.content.preview_plain'>{{note.text}}</div>\n</div>\n<div class='date faded' ng-show='!ctrl.hideDate'>\n<span ng-show='ctrl.sortBy == &#39;client_updated_at&#39;'>Modified {{note.cachedUpdatedAtString || 'Now'}}</span>\n<span ng-show='ctrl.sortBy != &#39;client_updated_at&#39;'>{{note.cachedCreatedAtString || 'Now'}}</span>\n</div>\n<div class='tags-string' ng-show='note.shouldShowTags'>\n<div class='faded'>{{note.savedTagsString || note.tagsString()}}</div>\n</div>\n</div>\n</div>\n</div>\n</div>\n<panel-resizer collapsable='true' control='ctrl.panelController' default-width='300' hoverable='true' on-resize-finish='ctrl.onPanelResize' panel-id='&#39;notes-column&#39;'></panel-resizer>\n</div>\n"),e.put("tags.html","<div aria-label='Tags' class='sn-component section tags' id='tags-column'>\n<div class='component-view-container' ng-if='ctrl.component.active'>\n<component-view class='component-view' component='ctrl.component'></component-view>\n</div>\n<div class='content' id='tags-content' ng-if='!(ctrl.component &amp;&amp; ctrl.component.active)'>\n<div class='tags-title-section section-title-bar'>\n<div class='section-title-bar-header'>\n<div class='sk-h3 title'>\n<span class='sk-bold'>Views</span>\n</div>\n<div class='sk-button sk-secondary-contrast wide' ng-click='ctrl.clickedAddNewTag()' title='Create a new tag'>\n<div class='sk-label'>\n<i class='icon ion-plus add-button'></i>\n</div>\n</div>\n</div>\n</div>\n<div class='scrollable'>\n<div class='infinite-scroll'>\n<div class='tag' ng-class='{&#39;selected&#39; : ctrl.selectedTag == tag, &#39;faded&#39; : !tag.content.isAllTag}' ng-click='ctrl.selectTag(tag)' ng-repeat='tag in ctrl.smartTags'>\n<div class='tag-info'>\n<input class='title' ng-disabled='true' ng-model='tag.title'>\n<div class='count' ng-show='tag.content.isAllTag'>{{tag.cachedNoteCount}}</div>\n</div>\n</div>\n<div class='tags-title-section section-title-bar'>\n<div class='section-title-bar-header'>\n<div class='sk-h3 title'>\n<span class='sk-bold'>Tags</span>\n</div>\n</div>\n</div>\n<div class='tag' ng-class='{&#39;selected&#39; : ctrl.selectedTag == tag}' ng-click='ctrl.selectTag(tag)' ng-repeat='tag in ctrl.tags track by tag.uuid'>\n<div class='tag-info'>\n<div class='tag-icon'>#</div>\n<input class='title' ng-attr-id='tag-{{tag.uuid}}' ng-blur='ctrl.saveTag($event, tag)' ng-change='ctrl.tagTitleDidChange(tag)' ng-class='{&#39;editing&#39; : ctrl.editingTag == tag}' ng-click='ctrl.selectTag(tag)' ng-keyup='$event.keyCode == 13 &amp;&amp; $event.target.blur()' ng-model='tag.title' should-focus='ctrl.newTag || ctrl.editingTag == tag' sn-autofocus='true' spellcheck='false'>\n<div class='count'>{{tag.cachedNoteCount}}</div>\n</div>\n<div class='danger small-text bold' ng-show='tag.content.conflict_of'>Conflicted Copy</div>\n<div class='danger small-text bold' ng-show='tag.errorDecrypting'>Missing Keys</div>\n<div class='menu' ng-show='ctrl.selectedTag == tag'>\n<a class='item' ng-click='ctrl.selectedRenameTag($event, tag)' ng-show='!ctrl.editingTag'>Rename</a>\n<a class='item' ng-click='ctrl.saveTag($event, tag)' ng-show='ctrl.editingTag'>Save</a>\n<a class='item' ng-click='ctrl.selectedDeleteTag(tag)'>Delete</a>\n</div>\n</div>\n<div class='no-tags-placeholder' ng-show='ctrl.tags.length == 0'>\nNo tags. Create one using the add button above.\n</div>\n</div>\n</div>\n</div>\n<panel-resizer collapsable='true' control='ctrl.panelController' default-width='150' hoverable='true' on-resize-finish='ctrl.onPanelResize' panel-id='&#39;tags-column&#39;'></panel-resizer>\n</div>\n")}]);