>>0?1:0))+nt+((Z+=it)>>>0>>0?1:0))+lt+((Z+=ht)>>>0 >>0?1:0),V.high=q,V.low=Z}var ft,ut=I&W^~I&j,dt=T&L^~T&N,pt=z&D^z&R^D&R,yt=M&E^M&P^E&P,vt=(z>>>28|M<<4)^(z<<30|M>>>2)^(z<<25|M>>>7),_t=(M>>>28|z<<4)^(M<<30|z>>>2)^(M<<25|z>>>7),gt=(I>>>14|T<<18)^(I>>>18|T<<14)^(I<<23|T>>>9),wt=(T>>>14|I<<18)^(T>>>18|I<<14)^(T<<23|I>>>9),Bt=c[X],mt=Bt.high,xt=Bt.low,kt=U+gt+((ft=K+wt)>>>0 >>0?1:0),bt=_t+yt;U=j,K=N,j=W,N=L,W=I,L=T,I=F+(kt=(kt=(kt=kt+ut+((ft+=dt)>>>0 >>0?1:0))+mt+((ft+=xt)>>>0 >>0?1:0))+q+((ft+=Z)>>>0 >>0?1:0))+((T=O+ft|0)>>>0 >>0?1:0)|0,F=R,O=P,R=D,P=E,D=z,E=M,z=kt+(vt+pt+(bt>>>0<_t>>>0?1:0))+((M=ft+bt|0)>>>0 >>0?1:0)|0}p=n.low=p+M,n.high=d+z+(p>>>0 >>0?1:0),v=i.low=v+E,i.high=y+D+(v>>>0 >>0?1:0),g=o.low=g+P,o.high=_+R+(g>>>0 >>0?1:0),B=s.low=B+O,s.high=w+F+(B>>>0
>>0?1:0),x=a.low=x+T,a.high=m+I+(x>>>0 >>0?1:0),b=h.low=b+L,h.high=k+W+(b>>>0 >>0?1:0),C=f.low=C+N,f.high=S+j+(C>>>0 >>0?1:0),H=u.low=H+K,u.high=A+U+(H>>>0 >>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),n.SHA512)},function(t,e,r){"use strict";var n=this&&this.__awaiter||function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{c(n.next(t))}catch(t){o(t)}}function a(t){try{c(n.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}c((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const i=r(11),o=r(12),s=r(13);function a(t,e){return function(t,e,r){let n=e+"0000000000000000";return n=n.substr(0,16),e=s.enc.Utf8.parse(n),console.log("Encrypt use key->",e),r=e,s.AES.encrypt(t,e,{iv:r,mode:s.mode.CBC,padding:s.pad.Pkcs7}).toString()}(t,e,"joplinCryptoJS")}function c(t,e){var r=function(t,e,r){let n=e+"0000000000000000";n=n.substr(0,16),e=s.enc.Utf8.parse(n),console.log("Decryption use key->",n),console.log("Decryption data->",t),r=e;var i=s.AES.decrypt(t,e,{iv:r,mode:s.mode.CBC,padding:s.pad.Pkcs7});return console.log("Decryption->",i),i.toString(s.enc.Utf8)}(t,e,"joplinCryptoJS");return console.log("Daes",t),console.log("Daes",r),r}i.default.plugins.register({onStart:function(){return n(this,void 0,void 0,(function*(){console.log("File encryption runing");(yield i.default.workspace.selectedNote()).try_number=0;let t=(new Date).valueOf();yield i.default.commands.register({name:"fileEncry",label:"fileEncry",iconName:"fas fa-lock",execute:()=>n(this,void 0,void 0,(function*(){const t=yield i.default.workspace.selectedNote();t.try_number=0,t.is_change=0,l(t,"commands")}))}),yield i.default.views.toolbarButtons.create("fileEncry","fileEncry",o.ToolbarButtonLocation.NoteToolbar),yield i.default.workspace.onNoteSelectionChange(t=>n(this,void 0,void 0,(function*(){try{const t=yield i.default.workspace.selectedNote();console.log("note->",t),t.is_change=0,t.try_number=0,l(t,"onNoteSelectionChange")}catch(t){console.log("error")}}))),yield i.default.workspace.onNoteChange(e=>n(this,void 0,void 0,(function*(){const e=yield i.default.workspace.selectedNote();e.try_number=0,e.is_change||(e.is_change=0),(new Date).valueOf()>t&&(e.is_change+=1),(new Date).valueOf()-t<500||l(e,"onNoteChange")})));const e=i.default.views.dialogs,r=yield e.create("password");yield e.setHtml(r,'\n\t\t Input Your PassWord:
\n\t\t\n\t\t'),yield e.setButtons(r,[{id:"Encrypt"},{id:"Cancel"}]);const s=yield e.create("passwordDecryption");function l(o,l){return n(this,void 0,void 0,(function*(){let n=o.try_number;for(;;)if(o.body.startsWith("[[crypted]]
")){if(0!=o.is_change){for(let t=0;t")[1],r=c(e,t.formData.password.password);if(console.log("aes_body->",e),console.log("key->",t.formData.password.password),r){yield i.default.commands.execute("textSelectAll"),yield i.default.commands.execute("textCut"),yield i.default.commands.execute("insertText",r),console.log("Dbody note->",o),o.is_change=0;break}n+=1;continue}}else{if("commands"!=l)break;let n=yield e.open(r);if("Cancel"==n.id)break;if("Encrypt"==n.id){console.log(n.id,n.formData.password.password);let e=a(o.body,n.formData.password.password);yield i.default.commands.execute("textSelectAll"),yield i.default.commands.execute("textCut"),yield i.default.commands.execute("insertText","[[crypted]]
"+e),console.log("ency->",o),t=(new Date).valueOf();break}}}))}yield e.setHtml(s,'\n\t\tInput Your PassWord:
\n\t\t\n\t\t'),yield e.setButtons(s,[{id:"Decryption"},{id:"Cancel"}])}))}})},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=joplin},function(t,e,r){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ContentScriptType=e.SettingItemType=e.ToolbarButtonLocation=e.isContextMenuItemLocation=e.MenuItemLocation=e.ImportModuleOutputFormat=e.FileSystemItem=void 0,function(t){t.File="file",t.Directory="directory"}(e.FileSystemItem||(e.FileSystemItem={})),function(t){t.Markdown="md",t.Html="html"}(e.ImportModuleOutputFormat||(e.ImportModuleOutputFormat={})),function(t){t.File="file",t.Edit="edit",t.View="view",t.Note="note",t.Tools="tools",t.Help="help",t.Context="context",t.NoteListContextMenu="noteListContextMenu",t.EditorContextMenu="editorContextMenu",t.FolderContextMenu="folderContextMenu",t.TagContextMenu="tagContextMenu"}(n=e.MenuItemLocation||(e.MenuItemLocation={})),e.isContextMenuItemLocation=function(t){return[n.Context,n.NoteListContextMenu,n.EditorContextMenu,n.FolderContextMenu,n.TagContextMenu].includes(t)},function(t){t.NoteToolbar="noteToolbar",t.EditorToolbar="editorToolbar"}(e.ToolbarButtonLocation||(e.ToolbarButtonLocation={})),function(t){t[t.Int=1]="Int",t[t.String=2]="String",t[t.Bool=3]="Bool",t[t.Array=4]="Array",t[t.Object=5]="Object",t[t.Button=6]="Button"}(e.SettingItemType||(e.SettingItemType={})),function(t){t.MarkdownItPlugin="markdownItPlugin",t.CodeMirrorPlugin="codeMirrorPlugin"}(e.ContentScriptType||(e.ContentScriptType={}))},function(t,e,r){var n;t.exports=(n=r(0),r(5),r(15),r(16),r(3),r(4),r(6),r(8),r(17),r(9),r(18),r(19),r(20),r(7),r(21),r(2),r(1),r(22),r(23),r(24),r(25),r(26),r(27),r(28),r(29),r(30),r(31),r(32),r(33),r(34),r(35),r(36),r(37),n)},function(t,e){t.exports=require("crypto")},function(t,e,r){var n;t.exports=(n=r(0),function(){if("function"==typeof ArrayBuffer){var t=n.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,n=[],i=0;i>>2]|=t[i]<<24-i%4*8;e.call(this,n,r)}else e.apply(this,arguments)}).prototype=t}}(),n.lib.WordArray)},function(t,e,r){var n;t.exports=(n=r(0),function(){var t=n,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i >>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var r=t.length,n=[],i=0;i >>1]|=t.charCodeAt(i)<<16-i%2*16;return e.create(n,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o >>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o >>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),n.enc.Utf16)},function(t,e,r){var n,i,o,s,a,c;t.exports=(c=r(0),r(8),i=(n=c).lib.WordArray,o=n.algo,s=o.SHA256,a=o.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=4,t}}),n.SHA224=s._createHelper(a),n.HmacSHA224=s._createHmacHelper(a),c.SHA224)},function(t,e,r){var n,i,o,s,a,c,l,h;t.exports=(h=r(0),r(5),r(9),i=(n=h).x64,o=i.Word,s=i.WordArray,a=n.algo,c=a.SHA512,l=a.SHA384=c.extend({_doReset:function(){this._hash=new s.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=c._doFinalize.call(this);return t.sigBytes-=16,t}}),n.SHA384=c._createHelper(l),n.HmacSHA384=c._createHmacHelper(l),h.SHA384)},function(t,e,r){var n;t.exports=(n=r(0),r(5),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.x64.Word,a=e.algo,c=[],l=[],h=[];!function(){for(var t=1,e=0,r=0;r<24;r++){c[t+5*e]=(r+1)*(r+2)/2%64;var n=(2*t+3*e)%5;t=e%5,e=n}for(t=0;t<5;t++)for(e=0;e<5;e++)l[t+5*e]=e+(2*t+3*e)%5*5;for(var i=1,o=0;o<24;o++){for(var a=0,f=0,u=0;u<7;u++){if(1&i){var d=(1<>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(H=r[i]).high^=s,H.low^=o}for(var a=0;a<24;a++){for(var u=0;u<5;u++){for(var d=0,p=0,y=0;y<5;y++)d^=(H=r[u+5*y]).high,p^=H.low;var v=f[u];v.high=d,v.low=p}for(u=0;u<5;u++){var _=f[(u+4)%5],g=f[(u+1)%5],w=g.high,B=g.low;for(d=_.high^(w<<1|B>>>31),p=_.low^(B<<1|w>>>31),y=0;y<5;y++)(H=r[u+5*y]).high^=d,H.low^=p}for(var m=1;m<25;m++){var x=(H=r[m]).high,k=H.low,b=c[m];b<32?(d=x<>>32-b,p=k<>>32-b):(d=k< >>64-b,p=x< >>64-b);var S=f[l[m]];S.high=d,S.low=p}var C=f[0],A=r[0];for(C.high=A.high,C.low=A.low,u=0;u<5;u++)for(y=0;y<5;y++){var H=r[m=u+5*y],z=f[m],M=f[(u+1)%5+5*y],D=f[(u+2)%5+5*y];H.high=z.high^~M.high&D.high,H.low=z.low^~M.low&D.low}H=r[0];var E=h[a];H.high^=E.high,H.low^=E.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,l=[],h=0;h >>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,a)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=o._createHelper(u),e.HmacSHA3=o._createHmacHelper(u)}(Math),n.SHA3)},function(t,e,r){var n;t.exports=(n=r(0), 2 | /** @preserve 3 | (c) 2012 by Cédric Mesnil. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | */ 12 | function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),h=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=s.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,s,d,B,m,x,k,b,S,C,A,H=this._hash.words,z=f.words,M=u.words,D=a.words,E=c.words,R=l.words,P=h.words;for(x=o=H[0],k=s=H[1],b=d=H[2],S=B=H[3],C=m=H[4],r=0;r<80;r+=1)A=o+t[e+D[r]]|0,A+=r<16?p(s,d,B)+z[0]:r<32?y(s,d,B)+z[1]:r<48?v(s,d,B)+z[2]:r<64?_(s,d,B)+z[3]:g(s,d,B)+z[4],A=(A=w(A|=0,R[r]))+m|0,o=m,m=B,B=w(d,10),d=s,s=A,A=x+t[e+E[r]]|0,A+=r<16?g(k,b,S)+M[0]:r<32?_(k,b,S)+M[1]:r<48?v(k,b,S)+M[2]:r<64?y(k,b,S)+M[3]:p(k,b,S)+M[4],A=(A=w(A|=0,P[r]))+C|0,x=C,C=S,S=w(b,10),b=k,k=A;A=H[1]+d+S|0,H[1]=H[2]+B+C|0,H[2]=H[3]+m+x|0,H[3]=H[4]+o+k|0,H[4]=H[0]+s+b|0,H[0]=A},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var i=this._hash,o=i.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function p(t,e,r){return t^e^r}function y(t,e,r){return t&e|~t&r}function v(t,e,r){return(t|~e)^r}function _(t,e,r){return t&r|e&~r}function g(t,e,r){return t^(e|~r)}function w(t,e){return t< >>32-e}e.RIPEMD160=o._createHelper(d),e.HmacRIPEMD160=o._createHmacHelper(d)}(Math),n.RIPEMD160)},function(t,e,r){var n,i,o,s,a,c,l,h,f;t.exports=(f=r(0),r(6),r(7),i=(n=f).lib,o=i.Base,s=i.WordArray,a=n.algo,c=a.SHA1,l=a.HMAC,h=a.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=l.create(r.hasher,t),i=s.create(),o=s.create([1]),a=i.words,c=o.words,h=r.keySize,f=r.iterations;a.length >24&255)){var e=t>>16&255,r=t>>8&255,n=255&t;255===e?(e=0,255===r?(r=0,255===n?n=0:++n):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=n}else t+=1<<24;return t}var r=t.Encryptor=t.extend({processBlock:function(t,r){var n=this._cipher,i=n.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),function(t){0===(t[0]=e(t[0]))&&(t[1]=e(t[1]))}(s);var a=s.slice(0);n.encryptBlock(a,0);for(var c=0;c>>2]|=i<<24-o%4*8,t.sigBytes+=i},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Ansix923)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Iso10126)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.Iso97971={pad:function(t,e){t.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(t,e)},unpad:function(t){n.pad.ZeroPadding.unpad(t),t.sigBytes--}},n.pad.Iso97971)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;r>=0;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},n.pad.ZeroPadding)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},function(t,e,r){var n,i,o,s;t.exports=(s=r(0),r(1),i=(n=s).lib.CipherParams,o=n.enc.Hex,n.format.Hex={stringify:function(t){return t.ciphertext.toString(o)},parse:function(t){var e=o.parse(t);return i.create({ciphertext:e})}},s.format.Hex)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.BlockCipher,r=t.algo,i=[],o=[],s=[],a=[],c=[],l=[],h=[],f=[],u=[],d=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,n=0;for(e=0;e<256;e++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var y=t[r],v=t[y],_=t[v],g=257*t[p]^16843008*p;s[r]=g<<24|g>>>8,a[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,l[r]=g,g=16843009*_^65537*v^257*y^16843008*r,h[p]=g<<24|g>>>8,f[p]=g<<16|g>>>16,u[p]=g<<8|g>>>24,d[p]=g,r?(r=y^t[t[t[_^y]]],n^=t[t[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],y=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s 6&&s%r==4&&(l=i[l>>>24]<<24|i[l>>>16&255]<<16|i[l>>>8&255]<<8|i[255&l]):(l=i[(l=l<<8|l>>>24)>>>24]<<24|i[l>>>16&255]<<16|i[l>>>8&255]<<8|i[255&l],l^=p[s/r|0]<<24),o[s]=o[s-r]^l);for(var a=this._invKeySchedule=[],c=0;c >>24]]^f[i[l>>>16&255]]^u[i[l>>>8&255]]^d[i[255&l]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,a,c,l,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,f,u,d,o),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var c=this._nRounds,l=t[e]^r[0],h=t[e+1]^r[1],f=t[e+2]^r[2],u=t[e+3]^r[3],d=4,p=1;p >>24]^i[h>>>16&255]^o[f>>>8&255]^s[255&u]^r[d++],v=n[h>>>24]^i[f>>>16&255]^o[u>>>8&255]^s[255&l]^r[d++],_=n[f>>>24]^i[u>>>16&255]^o[l>>>8&255]^s[255&h]^r[d++],g=n[u>>>24]^i[l>>>16&255]^o[h>>>8&255]^s[255&f]^r[d++];l=y,h=v,f=_,u=g}y=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^r[d++],v=(a[h>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&l])^r[d++],_=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^r[d++],g=(a[u>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&f])^r[d++],t[e]=y,t[e+1]=v,t[e+2]=_,t[e+3]=g},keySize:8});t.AES=e._createHelper(y)}(),n.AES)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib,r=e.WordArray,i=e.BlockCipher,o=t.algo,s=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=o.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var n=s[r]-1;e[r]=t[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var l=i[o]=[],h=c[o];for(r=0;r<24;r++)l[r/6|0]|=e[(a[r]-1+h)%28]<<31-r%6,l[4+(r/6|0)]|=e[28+(a[r+24]-1+h)%28]<<31-r%6;for(l[0]=l[0]<<1|l[0]>>>31,r=1;r<7;r++)l[r]=l[r]>>>4*(r-1)+3;l[7]=l[7]<<5|l[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=i[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,s=this._rBlock,a=0,c=0;c<8;c++)a|=l[c][((s^i[c])&h[c])>>>0];this._lBlock=s,this._rBlock=o^a}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r< >>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r< 192.");var e=t.slice(0,2),n=t.length<4?t.slice(0,2):t.slice(2,4),i=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=f.createEncryptor(r.create(e)),this._des2=f.createEncryptor(r.create(n)),this._des3=f.createEncryptor(r.create(i))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(p)}(),n.TripleDES)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,n=this._S=[],i=0;i<256;i++)n[i]=i;i=0;for(var o=0;i<256;i++){var s=i%r,a=e[s>>>2]>>>24-s%4*8&255;o=(o+n[i]+a)%256;var c=n[i];n[i]=n[o],n[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,n|=t[(t[e]+t[r])%256]<<24-8*i}return this._i=e,this._j=r,n}t.RC4=e._createHelper(i);var s=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(s)}(),n.RC4)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=[],o=[],s=[],a=r.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=0;r<4;r++)t[r]=16711935&(t[r]<<8|t[r]>>>24)|4278255360&(t[r]<<24|t[r]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)c.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(e){var o=e.words,s=o[0],a=o[1],l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=l>>>16|4294901760&h,u=h<<16|65535&l;for(i[0]^=l,i[1]^=f,i[2]^=h,i[3]^=u,i[4]^=l,i[5]^=f,i[6]^=h,i[7]^=u,r=0;r<4;r++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0 >>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0 >>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0 >>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0 >>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0 >>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0 >>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0 >>0?1:0)|0,this._b=e[7]>>>0 >>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,c=((i*i>>>17)+i*a>>>15)+a*a,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=c^l}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.Rabbit=e._createHelper(a)}(),n.Rabbit)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=[],o=[],s=[],a=r.RabbitLegacy=e.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)c.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(e){var o=e.words,s=o[0],a=o[1],l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=l>>>16|4294901760&h,u=h<<16|65535&l;for(n[0]^=l,n[1]^=f,n[2]^=h,n[3]^=u,n[4]^=l,n[5]^=f,n[6]^=h,n[7]^=u,i=0;i<4;i++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0 >>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0 >>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0 >>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0 >>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0 >>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0 >>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0 >>0?1:0)|0,this._b=e[7]>>>0 >>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,c=((i*i>>>17)+i*a>>>15)+a*a,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=c^l}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.RabbitLegacy=e._createHelper(a)}(),n.RabbitLegacy)}]); -------------------------------------------------------------------------------- /dist/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 1, 3 | "id": "joplin-plugin-file-encryption", 4 | "app_min_version": "1.6", 5 | "version": "1.0.0", 6 | "name": "File encryption", 7 | "description": "File encryption", 8 | "author": "CaptainZXX", 9 | "homepage_url": "", 10 | "repository_url": "", 11 | "keywords": [] 12 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "joplin-plugin-file-encryption", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "dist": "webpack --joplin-plugin-config buildMain && webpack --joplin-plugin-config buildExtraScripts && webpack --joplin-plugin-config createArchive", 6 | "prepare": "npm run dist", 7 | "update": "npm install -g generator-joplin && yo joplin --update" 8 | }, 9 | "license": "MIT", 10 | "keywords": [ 11 | "joplin-plugin" 12 | ], 13 | "devDependencies": { 14 | "@types/node": "^14.0.14", 15 | "chalk": "^4.1.0", 16 | "copy-webpack-plugin": "^6.1.0", 17 | "fs-extra": "^9.0.1", 18 | "glob": "^7.1.6", 19 | "on-build-webpack": "^0.1.0", 20 | "tar": "^6.0.5", 21 | "ts-loader": "^7.0.5", 22 | "typescript": "^3.9.3", 23 | "webpack": "^4.43.0", 24 | "webpack-cli": "^3.3.11", 25 | "yargs": "^16.2.0" 26 | }, 27 | "dependencies": { 28 | "crypto-js": "^4.0.0", 29 | "sql.js": "^1.4.0" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /plugin.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "extraScripts": [] 3 | } -------------------------------------------------------------------------------- /publish/joplin-plugin-file-encryption.jpl: -------------------------------------------------------------------------------- 1 | index.js 000644 0000160233 14007207101 007346 0 ustar 00 000000 000000 !function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=10)}([function(t,e,r){var n;t.exports=(n=n||function(t,e){var n;if("undefined"!=typeof window&&window.crypto&&(n=window.crypto),!n&&"undefined"!=typeof window&&window.msCrypto&&(n=window.msCrypto),!n&&"undefined"!=typeof global&&global.crypto&&(n=global.crypto),!n)try{n=r(14)}catch(t){}var i=function(){if(n){if("function"==typeof n.getRandomValues)try{return n.getRandomValues(new Uint32Array(1))[0]}catch(t){}if("function"==typeof n.randomBytes)try{return n.randomBytes(4).readInt32LE()}catch(t){}}throw new Error("Native crypto module could not be used to get secure random number.")},o=Object.create||function(){function t(){}return function(e){var r;return t.prototype=e,r=new t,t.prototype=null,r}}(),s={},a=s.lib={},c=a.Base={extend:function(t){var e=o(this);return t&&e.mixIn(t),e.hasOwnProperty("init")&&this.init!==e.init||(e.init=function(){e.$super.init.apply(this,arguments)}),e.init.prototype=e,e.$super=this,e},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},l=a.WordArray=c.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||f).stringify(this)},concat:function(t){var e=this.words,r=t.words,n=this.sigBytes,i=t.sigBytes;if(this.clamp(),n%4)for(var o=0;o>>2]>>>24-o%4*8&255;e[n+o>>>2]|=s<<24-(n+o)%4*8}else for(o=0;o>>2]=r[o>>>2];return this.sigBytes+=i,this},clamp:function(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=t.ceil(r/4)},clone:function(){var t=c.clone.call(this);return t.words=this.words.slice(0),t},random:function(t){for(var e=[],r=0;r >>2]>>>24-i%4*8&255;n.push((o>>>4).toString(16)),n.push((15&o).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n >>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new l.init(r,e/2)}},u=h.Latin1={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i >>2]>>>24-i%4*8&255;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var e=t.length,r=[],n=0;n >>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new l.init(r,e)}},d=h.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},p=a.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new l.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=d.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var r,n=this._data,i=n.words,o=n.sigBytes,s=this.blockSize,a=o/(4*s),c=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*s,h=t.min(4*c,o);if(c){for(var f=0;f >>2];t.sigBytes-=e}},o.BlockCipher=u.extend({cfg:u.cfg.extend({mode:y,padding:v}),reset:function(){var t;u.reset.call(this);var e=this.cfg,r=e.iv,n=e.mode;this._xformMode==this._ENC_XFORM_MODE?t=n.createEncryptor:(t=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==t?this._mode.init(this,r&&r.words):(this._mode=t.call(n,this,r&&r.words),this._mode.__creator=t)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t,e=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(e.pad(this._data,this.blockSize),t=this._process(!0)):(t=this._process(!0),e.unpad(t)),t},blockSize:4}),_=o.CipherParams=s.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}}),g=(i.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,r=t.salt;return(r?a.create([1398893684,1701076831]).concat(r).concat(e):e).toString(h)},parse:function(t){var e,r=h.parse(t),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(e=a.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),_.create({ciphertext:r,salt:e})}},w=o.SerializableCipher=s.extend({cfg:s.extend({format:g}),encrypt:function(t,e,r,n){n=this.cfg.extend(n);var i=t.createEncryptor(r,n),o=i.finalize(e),s=i.cfg;return _.create({ciphertext:o,key:r,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,r,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(r,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),B=(i.kdf={}).OpenSSL={execute:function(t,e,r,n){n||(n=a.random(8));var i=f.create({keySize:e+r}).compute(t,n),o=a.create(i.words.slice(e),4*r);return i.sigBytes=4*e,_.create({key:i,iv:o,salt:n})}},m=o.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:B}),encrypt:function(t,e,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,t.keySize,t.ivSize);n.iv=i.iv;var o=w.encrypt.call(this,t,e,i.key,n);return o.mixIn(i),o},decrypt:function(t,e,r,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var i=n.kdf.execute(r,t.keySize,t.ivSize,e.salt);return n.iv=i.iv,w.decrypt.call(this,t,e,i.key,n)}}))))},function(t,e,r){var n,i,o,s,a,c,l,h;t.exports=(h=r(0),r(6),r(7),i=(n=h).lib,o=i.Base,s=i.WordArray,a=n.algo,c=a.MD5,l=a.EvpKDF=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r,n=this.cfg,i=n.hasher.create(),o=s.create(),a=o.words,c=n.keySize,l=n.iterations;a.length >>2]>>>24-o%4*8&255)<<16|(e[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|e[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;a<4&&o+.75*a >>6*(3-a)&63));var c=n.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(t){var e=t.length,r=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o >>6-s%4*2,l=a|c;n[o>>>2]|=l<<24-o%4*8,o++}return i.create(n,o)}(t,e,n)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="},o.enc.Base64)},function(t,e,r){var n;t.exports=(n=r(0),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=[];!function(){for(var e=0;e<64;e++)a[e]=4294967296*t.abs(t.sin(e+1))|0}();var c=s.MD5=o.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o=this._hash.words,s=t[e+0],c=t[e+1],d=t[e+2],p=t[e+3],y=t[e+4],v=t[e+5],_=t[e+6],g=t[e+7],w=t[e+8],B=t[e+9],m=t[e+10],x=t[e+11],k=t[e+12],b=t[e+13],S=t[e+14],C=t[e+15],A=o[0],H=o[1],z=o[2],M=o[3];A=l(A,H,z,M,s,7,a[0]),M=l(M,A,H,z,c,12,a[1]),z=l(z,M,A,H,d,17,a[2]),H=l(H,z,M,A,p,22,a[3]),A=l(A,H,z,M,y,7,a[4]),M=l(M,A,H,z,v,12,a[5]),z=l(z,M,A,H,_,17,a[6]),H=l(H,z,M,A,g,22,a[7]),A=l(A,H,z,M,w,7,a[8]),M=l(M,A,H,z,B,12,a[9]),z=l(z,M,A,H,m,17,a[10]),H=l(H,z,M,A,x,22,a[11]),A=l(A,H,z,M,k,7,a[12]),M=l(M,A,H,z,b,12,a[13]),z=l(z,M,A,H,S,17,a[14]),A=h(A,H=l(H,z,M,A,C,22,a[15]),z,M,c,5,a[16]),M=h(M,A,H,z,_,9,a[17]),z=h(z,M,A,H,x,14,a[18]),H=h(H,z,M,A,s,20,a[19]),A=h(A,H,z,M,v,5,a[20]),M=h(M,A,H,z,m,9,a[21]),z=h(z,M,A,H,C,14,a[22]),H=h(H,z,M,A,y,20,a[23]),A=h(A,H,z,M,B,5,a[24]),M=h(M,A,H,z,S,9,a[25]),z=h(z,M,A,H,p,14,a[26]),H=h(H,z,M,A,w,20,a[27]),A=h(A,H,z,M,b,5,a[28]),M=h(M,A,H,z,d,9,a[29]),z=h(z,M,A,H,g,14,a[30]),A=f(A,H=h(H,z,M,A,k,20,a[31]),z,M,v,4,a[32]),M=f(M,A,H,z,w,11,a[33]),z=f(z,M,A,H,x,16,a[34]),H=f(H,z,M,A,S,23,a[35]),A=f(A,H,z,M,c,4,a[36]),M=f(M,A,H,z,y,11,a[37]),z=f(z,M,A,H,g,16,a[38]),H=f(H,z,M,A,m,23,a[39]),A=f(A,H,z,M,b,4,a[40]),M=f(M,A,H,z,s,11,a[41]),z=f(z,M,A,H,p,16,a[42]),H=f(H,z,M,A,_,23,a[43]),A=f(A,H,z,M,B,4,a[44]),M=f(M,A,H,z,k,11,a[45]),z=f(z,M,A,H,C,16,a[46]),A=u(A,H=f(H,z,M,A,d,23,a[47]),z,M,s,6,a[48]),M=u(M,A,H,z,g,10,a[49]),z=u(z,M,A,H,S,15,a[50]),H=u(H,z,M,A,v,21,a[51]),A=u(A,H,z,M,k,6,a[52]),M=u(M,A,H,z,p,10,a[53]),z=u(z,M,A,H,m,15,a[54]),H=u(H,z,M,A,c,21,a[55]),A=u(A,H,z,M,w,6,a[56]),M=u(M,A,H,z,C,10,a[57]),z=u(z,M,A,H,_,15,a[58]),H=u(H,z,M,A,b,21,a[59]),A=u(A,H,z,M,y,6,a[60]),M=u(M,A,H,z,x,10,a[61]),z=u(z,M,A,H,d,15,a[62]),H=u(H,z,M,A,B,21,a[63]),o[0]=o[0]+A|0,o[1]=o[1]+H|0,o[2]=o[2]+z|0,o[3]=o[3]+M|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;r[i>>>5]|=128<<24-i%32;var o=t.floor(n/4294967296),s=n;r[15+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),r[14+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,l=0;l<4;l++){var h=c[l];c[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return a},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function l(t,e,r,n,i,o,s){var a=t+(e&r|~e&n)+i+s;return(a< >>32-o)+e}function h(t,e,r,n,i,o,s){var a=t+(e&n|r&~n)+i+s;return(a< >>32-o)+e}function f(t,e,r,n,i,o,s){var a=t+(e^r^n)+i+s;return(a< >>32-o)+e}function u(t,e,r,n,i,o,s){var a=t+(r^(e|~n))+i+s;return(a< >>32-o)+e}e.MD5=o._createHelper(c),e.HmacMD5=o._createHmacHelper(c)}(Math),n.MD5)},function(t,e,r){var n,i,o,s,a,c;t.exports=(c=r(0),i=(n=c).lib,o=i.Base,s=i.WordArray,(a=n.x64={}).Word=o.extend({init:function(t,e){this.high=t,this.low=e}}),a.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:8*t.length},toX32:function(){for(var t=this.words,e=t.length,r=[],n=0;n >>31}var f=(n<<5|n>>>27)+a+c[l];f+=l<20?1518500249+(i&o|~i&s):l<40?1859775393+(i^o^s):l<60?(i&o|i&s|o&s)-1894007588:(i^o^s)-899497514,a=s,s=o,o=i<<30|i>>>2,i=n,n=f}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),e[15+(n+64>>>9<<4)]=r,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=s.clone.call(this);return t._hash=this._hash.clone(),t}}),n.SHA1=s._createHelper(l),n.HmacSHA1=s._createHmacHelper(l),h.SHA1)},function(t,e,r){var n,i,o,s;t.exports=(n=r(0),o=(i=n).lib.Base,s=i.enc.Utf8,void(i.algo.HMAC=o.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=s.parse(e));var r=t.blockSize,n=4*r;e.sigBytes>n&&(e=t.finalize(e)),e.clamp();for(var i=this._oKey=e.clone(),o=this._iKey=e.clone(),a=i.words,c=o.words,l=0;l >>7)^(p<<14|p>>>18)^p>>>3,v=l[d-2],_=(v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10;l[d]=y+l[d-7]+_+l[d-16]}var g=n&i^n&o^i&o,w=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),B=u+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&h^~a&f)+c[d]+l[d];u=f,f=h,h=a,a=s+B|0,s=o,o=i,i=n,n=B+(w+g)|0}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+o|0,r[3]=r[3]+s|0,r[4]=r[4]+a|0,r[5]=r[5]+h|0,r[6]=r[6]+f|0,r[7]=r[7]+u|0},_doFinalize:function(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[14+(i+64>>>9<<4)]=t.floor(n/4294967296),r[15+(i+64>>>9<<4)]=n,e.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(h),e.HmacSHA256=o._createHmacHelper(h)}(Math),n.SHA256)},function(t,e,r){var n;t.exports=(n=r(0),r(5),function(){var t=n,e=t.lib.Hasher,r=t.x64,i=r.Word,o=r.WordArray,s=t.algo;function a(){return i.create.apply(i,arguments)}var c=[a(1116352408,3609767458),a(1899447441,602891725),a(3049323471,3964484399),a(3921009573,2173295548),a(961987163,4081628472),a(1508970993,3053834265),a(2453635748,2937671579),a(2870763221,3664609560),a(3624381080,2734883394),a(310598401,1164996542),a(607225278,1323610764),a(1426881987,3590304994),a(1925078388,4068182383),a(2162078206,991336113),a(2614888103,633803317),a(3248222580,3479774868),a(3835390401,2666613458),a(4022224774,944711139),a(264347078,2341262773),a(604807628,2007800933),a(770255983,1495990901),a(1249150122,1856431235),a(1555081692,3175218132),a(1996064986,2198950837),a(2554220882,3999719339),a(2821834349,766784016),a(2952996808,2566594879),a(3210313671,3203337956),a(3336571891,1034457026),a(3584528711,2466948901),a(113926993,3758326383),a(338241895,168717936),a(666307205,1188179964),a(773529912,1546045734),a(1294757372,1522805485),a(1396182291,2643833823),a(1695183700,2343527390),a(1986661051,1014477480),a(2177026350,1206759142),a(2456956037,344077627),a(2730485921,1290863460),a(2820302411,3158454273),a(3259730800,3505952657),a(3345764771,106217008),a(3516065817,3606008344),a(3600352804,1432725776),a(4094571909,1467031594),a(275423344,851169720),a(430227734,3100823752),a(506948616,1363258195),a(659060556,3750685593),a(883997877,3785050280),a(958139571,3318307427),a(1322822218,3812723403),a(1537002063,2003034995),a(1747873779,3602036899),a(1955562222,1575990012),a(2024104815,1125592928),a(2227730452,2716904306),a(2361852424,442776044),a(2428436474,593698344),a(2756734187,3733110249),a(3204031479,2999351573),a(3329325298,3815920427),a(3391569614,3928383900),a(3515267271,566280711),a(3940187606,3454069534),a(4118630271,4000239992),a(116418474,1914138554),a(174292421,2731055270),a(289380356,3203993006),a(460393269,320620315),a(685471733,587496836),a(852142971,1086792851),a(1017036298,365543100),a(1126000580,2618297676),a(1288033470,3409855158),a(1501505948,4234509866),a(1607167915,987167468),a(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=a()}();var h=s.SHA512=e.extend({_doReset:function(){this._hash=new o.init([new i.init(1779033703,4089235720),new i.init(3144134277,2227873595),new i.init(1013904242,4271175723),new i.init(2773480762,1595750129),new i.init(1359893119,2917565137),new i.init(2600822924,725511199),new i.init(528734635,4215389547),new i.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var r=this._hash.words,n=r[0],i=r[1],o=r[2],s=r[3],a=r[4],h=r[5],f=r[6],u=r[7],d=n.high,p=n.low,y=i.high,v=i.low,_=o.high,g=o.low,w=s.high,B=s.low,m=a.high,x=a.low,k=h.high,b=h.low,S=f.high,C=f.low,A=u.high,H=u.low,z=d,M=p,D=y,E=v,R=_,P=g,F=w,O=B,I=m,T=x,W=k,L=b,j=S,N=C,U=A,K=H,X=0;X<80;X++){var Z,q,V=l[X];if(X<16)q=V.high=0|t[e+2*X],Z=V.low=0|t[e+2*X+1];else{var G=l[X-15],J=G.high,Y=G.low,$=(J>>>1|Y<<31)^(J>>>8|Y<<24)^J>>>7,Q=(Y>>>1|J<<31)^(Y>>>8|J<<24)^(Y>>>7|J<<25),tt=l[X-2],et=tt.high,rt=tt.low,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^et>>>6,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^(rt>>>6|et<<26),ot=l[X-7],st=ot.high,at=ot.low,ct=l[X-16],lt=ct.high,ht=ct.low;q=(q=(q=$+st+((Z=Q+at)>>>0 >>0?1:0))+nt+((Z+=it)>>>0>>0?1:0))+lt+((Z+=ht)>>>0 >>0?1:0),V.high=q,V.low=Z}var ft,ut=I&W^~I&j,dt=T&L^~T&N,pt=z&D^z&R^D&R,yt=M&E^M&P^E&P,vt=(z>>>28|M<<4)^(z<<30|M>>>2)^(z<<25|M>>>7),_t=(M>>>28|z<<4)^(M<<30|z>>>2)^(M<<25|z>>>7),gt=(I>>>14|T<<18)^(I>>>18|T<<14)^(I<<23|T>>>9),wt=(T>>>14|I<<18)^(T>>>18|I<<14)^(T<<23|I>>>9),Bt=c[X],mt=Bt.high,xt=Bt.low,kt=U+gt+((ft=K+wt)>>>0 >>0?1:0),bt=_t+yt;U=j,K=N,j=W,N=L,W=I,L=T,I=F+(kt=(kt=(kt=kt+ut+((ft+=dt)>>>0 >>0?1:0))+mt+((ft+=xt)>>>0 >>0?1:0))+q+((ft+=Z)>>>0 >>0?1:0))+((T=O+ft|0)>>>0 >>0?1:0)|0,F=R,O=P,R=D,P=E,D=z,E=M,z=kt+(vt+pt+(bt>>>0<_t>>>0?1:0))+((M=ft+bt|0)>>>0 >>0?1:0)|0}p=n.low=p+M,n.high=d+z+(p>>>0 >>0?1:0),v=i.low=v+E,i.high=y+D+(v>>>0 >>0?1:0),g=o.low=g+P,o.high=_+R+(g>>>0 >>0?1:0),B=s.low=B+O,s.high=w+F+(B>>>0
>>0?1:0),x=a.low=x+T,a.high=m+I+(x>>>0 >>0?1:0),b=h.low=b+L,h.high=k+W+(b>>>0 >>0?1:0),C=f.low=C+N,f.high=S+j+(C>>>0 >>0?1:0),H=u.low=H+K,u.high=A+U+(H>>>0 >>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(r/4294967296),e[31+(n+128>>>10<<5)]=r,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=e.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});t.SHA512=e._createHelper(h),t.HmacSHA512=e._createHmacHelper(h)}(),n.SHA512)},function(t,e,r){"use strict";var n=this&&this.__awaiter||function(t,e,r,n){return new(r||(r=Promise))((function(i,o){function s(t){try{c(n.next(t))}catch(t){o(t)}}function a(t){try{c(n.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}c((n=n.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0});const i=r(11),o=r(12),s=r(13);function a(t,e){return function(t,e,r){let n=e+"0000000000000000";return n=n.substr(0,16),e=s.enc.Utf8.parse(n),console.log("Encrypt use key->",e),r=e,s.AES.encrypt(t,e,{iv:r,mode:s.mode.CBC,padding:s.pad.Pkcs7}).toString()}(t,e,"joplinCryptoJS")}function c(t,e){var r=function(t,e,r){let n=e+"0000000000000000";n=n.substr(0,16),e=s.enc.Utf8.parse(n),console.log("Decryption use key->",n),console.log("Decryption data->",t),r=e;var i=s.AES.decrypt(t,e,{iv:r,mode:s.mode.CBC,padding:s.pad.Pkcs7});return console.log("Decryption->",i),i.toString(s.enc.Utf8)}(t,e,"joplinCryptoJS");return console.log("Daes",t),console.log("Daes",r),r}i.default.plugins.register({onStart:function(){return n(this,void 0,void 0,(function*(){console.log("File encryption runing");(yield i.default.workspace.selectedNote()).try_number=0;let t=(new Date).valueOf();yield i.default.commands.register({name:"fileEncry",label:"fileEncry",iconName:"fas fa-lock",execute:()=>n(this,void 0,void 0,(function*(){const t=yield i.default.workspace.selectedNote();t.try_number=0,t.is_change=0,l(t,"commands")}))}),yield i.default.views.toolbarButtons.create("fileEncry","fileEncry",o.ToolbarButtonLocation.NoteToolbar),yield i.default.workspace.onNoteSelectionChange(t=>n(this,void 0,void 0,(function*(){try{const t=yield i.default.workspace.selectedNote();console.log("note->",t),t.is_change=0,t.try_number=0,l(t,"onNoteSelectionChange")}catch(t){console.log("error")}}))),yield i.default.workspace.onNoteChange(e=>n(this,void 0,void 0,(function*(){const e=yield i.default.workspace.selectedNote();e.try_number=0,e.is_change||(e.is_change=0),(new Date).valueOf()>t&&(e.is_change+=1),(new Date).valueOf()-t<500||l(e,"onNoteChange")})));const e=i.default.views.dialogs,r=yield e.create("password");yield e.setHtml(r,'\n\t\t Input Your PassWord:
\n\t\t\n\t\t'),yield e.setButtons(r,[{id:"Encrypt"},{id:"Cancel"}]);const s=yield e.create("passwordDecryption");function l(o,l){return n(this,void 0,void 0,(function*(){let n=o.try_number;for(;;)if(o.body.startsWith("[[crypted]]
")){if(0!=o.is_change){for(let t=0;t")[1],r=c(e,t.formData.password.password);if(console.log("aes_body->",e),console.log("key->",t.formData.password.password),r){yield i.default.commands.execute("textSelectAll"),yield i.default.commands.execute("textCut"),yield i.default.commands.execute("insertText",r),console.log("Dbody note->",o),o.is_change=0;break}n+=1;continue}}else{if("commands"!=l)break;let n=yield e.open(r);if("Cancel"==n.id)break;if("Encrypt"==n.id){console.log(n.id,n.formData.password.password);let e=a(o.body,n.formData.password.password);yield i.default.commands.execute("textSelectAll"),yield i.default.commands.execute("textCut"),yield i.default.commands.execute("insertText","[[crypted]]
"+e),console.log("ency->",o),t=(new Date).valueOf();break}}}))}yield e.setHtml(s,'\n\t\tInput Your PassWord:
\n\t\t\n\t\t'),yield e.setButtons(s,[{id:"Decryption"},{id:"Cancel"}])}))}})},function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=joplin},function(t,e,r){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ContentScriptType=e.SettingItemType=e.ToolbarButtonLocation=e.isContextMenuItemLocation=e.MenuItemLocation=e.ImportModuleOutputFormat=e.FileSystemItem=void 0,function(t){t.File="file",t.Directory="directory"}(e.FileSystemItem||(e.FileSystemItem={})),function(t){t.Markdown="md",t.Html="html"}(e.ImportModuleOutputFormat||(e.ImportModuleOutputFormat={})),function(t){t.File="file",t.Edit="edit",t.View="view",t.Note="note",t.Tools="tools",t.Help="help",t.Context="context",t.NoteListContextMenu="noteListContextMenu",t.EditorContextMenu="editorContextMenu",t.FolderContextMenu="folderContextMenu",t.TagContextMenu="tagContextMenu"}(n=e.MenuItemLocation||(e.MenuItemLocation={})),e.isContextMenuItemLocation=function(t){return[n.Context,n.NoteListContextMenu,n.EditorContextMenu,n.FolderContextMenu,n.TagContextMenu].includes(t)},function(t){t.NoteToolbar="noteToolbar",t.EditorToolbar="editorToolbar"}(e.ToolbarButtonLocation||(e.ToolbarButtonLocation={})),function(t){t[t.Int=1]="Int",t[t.String=2]="String",t[t.Bool=3]="Bool",t[t.Array=4]="Array",t[t.Object=5]="Object",t[t.Button=6]="Button"}(e.SettingItemType||(e.SettingItemType={})),function(t){t.MarkdownItPlugin="markdownItPlugin",t.CodeMirrorPlugin="codeMirrorPlugin"}(e.ContentScriptType||(e.ContentScriptType={}))},function(t,e,r){var n;t.exports=(n=r(0),r(5),r(15),r(16),r(3),r(4),r(6),r(8),r(17),r(9),r(18),r(19),r(20),r(7),r(21),r(2),r(1),r(22),r(23),r(24),r(25),r(26),r(27),r(28),r(29),r(30),r(31),r(32),r(33),r(34),r(35),r(36),r(37),n)},function(t,e){t.exports=require("crypto")},function(t,e,r){var n;t.exports=(n=r(0),function(){if("function"==typeof ArrayBuffer){var t=n.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,n=[],i=0;i>>2]|=t[i]<<24-i%4*8;e.call(this,n,r)}else e.apply(this,arguments)}).prototype=t}}(),n.lib.WordArray)},function(t,e,r){var n;t.exports=(n=r(0),function(){var t=n,e=t.lib.WordArray,r=t.enc;function i(t){return t<<8&4278255360|t>>>8&16711935}r.Utf16=r.Utf16BE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],i=0;i >>2]>>>16-i%4*8&65535;n.push(String.fromCharCode(o))}return n.join("")},parse:function(t){for(var r=t.length,n=[],i=0;i >>1]|=t.charCodeAt(i)<<16-i%2*16;return e.create(n,2*r)}},r.Utf16LE={stringify:function(t){for(var e=t.words,r=t.sigBytes,n=[],o=0;o >>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var r=t.length,n=[],o=0;o >>1]|=i(t.charCodeAt(o)<<16-o%2*16);return e.create(n,2*r)}}}(),n.enc.Utf16)},function(t,e,r){var n,i,o,s,a,c;t.exports=(c=r(0),r(8),i=(n=c).lib.WordArray,o=n.algo,s=o.SHA256,a=o.SHA224=s.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=4,t}}),n.SHA224=s._createHelper(a),n.HmacSHA224=s._createHmacHelper(a),c.SHA224)},function(t,e,r){var n,i,o,s,a,c,l,h;t.exports=(h=r(0),r(5),r(9),i=(n=h).x64,o=i.Word,s=i.WordArray,a=n.algo,c=a.SHA512,l=a.SHA384=c.extend({_doReset:function(){this._hash=new s.init([new o.init(3418070365,3238371032),new o.init(1654270250,914150663),new o.init(2438529370,812702999),new o.init(355462360,4144912697),new o.init(1731405415,4290775857),new o.init(2394180231,1750603025),new o.init(3675008525,1694076839),new o.init(1203062813,3204075428)])},_doFinalize:function(){var t=c._doFinalize.call(this);return t.sigBytes-=16,t}}),n.SHA384=c._createHelper(l),n.HmacSHA384=c._createHmacHelper(l),h.SHA384)},function(t,e,r){var n;t.exports=(n=r(0),r(5),function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.x64.Word,a=e.algo,c=[],l=[],h=[];!function(){for(var t=1,e=0,r=0;r<24;r++){c[t+5*e]=(r+1)*(r+2)/2%64;var n=(2*t+3*e)%5;t=e%5,e=n}for(t=0;t<5;t++)for(e=0;e<5;e++)l[t+5*e]=e+(2*t+3*e)%5*5;for(var i=1,o=0;o<24;o++){for(var a=0,f=0,u=0;u<7;u++){if(1&i){var d=(1<>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(H=r[i]).high^=s,H.low^=o}for(var a=0;a<24;a++){for(var u=0;u<5;u++){for(var d=0,p=0,y=0;y<5;y++)d^=(H=r[u+5*y]).high,p^=H.low;var v=f[u];v.high=d,v.low=p}for(u=0;u<5;u++){var _=f[(u+4)%5],g=f[(u+1)%5],w=g.high,B=g.low;for(d=_.high^(w<<1|B>>>31),p=_.low^(B<<1|w>>>31),y=0;y<5;y++)(H=r[u+5*y]).high^=d,H.low^=p}for(var m=1;m<25;m++){var x=(H=r[m]).high,k=H.low,b=c[m];b<32?(d=x<>>32-b,p=k<>>32-b):(d=k< >>64-b,p=x< >>64-b);var S=f[l[m]];S.high=d,S.low=p}var C=f[0],A=r[0];for(C.high=A.high,C.low=A.low,u=0;u<5;u++)for(y=0;y<5;y++){var H=r[m=u+5*y],z=f[m],M=f[(u+1)%5+5*y],D=f[(u+2)%5+5*y];H.high=z.high^~M.high&D.high,H.low=z.low^~M.low&D.low}H=r[0];var E=h[a];H.high^=E.high,H.low^=E.low}},_doFinalize:function(){var e=this._data,r=e.words,n=(this._nDataBytes,8*e.sigBytes),o=32*this.blockSize;r[n>>>5]|=1<<24-n%32,r[(t.ceil((n+1)/o)*o>>>5)-1]|=128,e.sigBytes=4*r.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,l=[],h=0;h >>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),l.push(d),l.push(u)}return new i.init(l,a)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),r=0;r<25;r++)e[r]=e[r].clone();return t}});e.SHA3=o._createHelper(u),e.HmacSHA3=o._createHmacHelper(u)}(Math),n.SHA3)},function(t,e,r){var n;t.exports=(n=r(0), 2 | /** @preserve 3 | (c) 2012 by Cédric Mesnil. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 11 | */ 12 | function(t){var e=n,r=e.lib,i=r.WordArray,o=r.Hasher,s=e.algo,a=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),c=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),l=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),h=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=i.create([0,1518500249,1859775393,2400959708,2840853838]),u=i.create([1352829926,1548603684,1836072691,2053994217,0]),d=s.RIPEMD160=o.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var r=0;r<16;r++){var n=e+r,i=t[n];t[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var o,s,d,B,m,x,k,b,S,C,A,H=this._hash.words,z=f.words,M=u.words,D=a.words,E=c.words,R=l.words,P=h.words;for(x=o=H[0],k=s=H[1],b=d=H[2],S=B=H[3],C=m=H[4],r=0;r<80;r+=1)A=o+t[e+D[r]]|0,A+=r<16?p(s,d,B)+z[0]:r<32?y(s,d,B)+z[1]:r<48?v(s,d,B)+z[2]:r<64?_(s,d,B)+z[3]:g(s,d,B)+z[4],A=(A=w(A|=0,R[r]))+m|0,o=m,m=B,B=w(d,10),d=s,s=A,A=x+t[e+E[r]]|0,A+=r<16?g(k,b,S)+M[0]:r<32?_(k,b,S)+M[1]:r<48?v(k,b,S)+M[2]:r<64?y(k,b,S)+M[3]:p(k,b,S)+M[4],A=(A=w(A|=0,P[r]))+C|0,x=C,C=S,S=w(b,10),b=k,k=A;A=H[1]+d+S|0,H[1]=H[2]+B+C|0,H[2]=H[3]+m+x|0,H[3]=H[4]+o+k|0,H[4]=H[0]+s+b|0,H[0]=A},_doFinalize:function(){var t=this._data,e=t.words,r=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),t.sigBytes=4*(e.length+1),this._process();for(var i=this._hash,o=i.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return i},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});function p(t,e,r){return t^e^r}function y(t,e,r){return t&e|~t&r}function v(t,e,r){return(t|~e)^r}function _(t,e,r){return t&r|e&~r}function g(t,e,r){return t^(e|~r)}function w(t,e){return t< >>32-e}e.RIPEMD160=o._createHelper(d),e.HmacRIPEMD160=o._createHmacHelper(d)}(Math),n.RIPEMD160)},function(t,e,r){var n,i,o,s,a,c,l,h,f;t.exports=(f=r(0),r(6),r(7),i=(n=f).lib,o=i.Base,s=i.WordArray,a=n.algo,c=a.SHA1,l=a.HMAC,h=a.PBKDF2=o.extend({cfg:o.extend({keySize:4,hasher:c,iterations:1}),init:function(t){this.cfg=this.cfg.extend(t)},compute:function(t,e){for(var r=this.cfg,n=l.create(r.hasher,t),i=s.create(),o=s.create([1]),a=i.words,c=o.words,h=r.keySize,f=r.iterations;a.length >24&255)){var e=t>>16&255,r=t>>8&255,n=255&t;255===e?(e=0,255===r?(r=0,255===n?n=0:++n):++r):++e,t=0,t+=e<<16,t+=r<<8,t+=n}else t+=1<<24;return t}var r=t.Encryptor=t.extend({processBlock:function(t,r){var n=this._cipher,i=n.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),function(t){0===(t[0]=e(t[0]))&&(t[1]=e(t[1]))}(s);var a=s.slice(0);n.encryptBlock(a,0);for(var c=0;c>>2]|=i<<24-o%4*8,t.sigBytes+=i},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Ansix923)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.Iso10126={pad:function(t,e){var r=4*e,i=r-t.sigBytes%r;t.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},n.pad.Iso10126)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.Iso97971={pad:function(t,e){t.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(t,e)},unpad:function(t){n.pad.ZeroPadding.unpad(t),t.sigBytes--}},n.pad.Iso97971)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.ZeroPadding={pad:function(t,e){var r=4*e;t.clamp(),t.sigBytes+=r-(t.sigBytes%r||r)},unpad:function(t){var e=t.words,r=t.sigBytes-1;for(r=t.sigBytes-1;r>=0;r--)if(e[r>>>2]>>>24-r%4*8&255){t.sigBytes=r+1;break}}},n.pad.ZeroPadding)},function(t,e,r){var n;t.exports=(n=r(0),r(1),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)},function(t,e,r){var n,i,o,s;t.exports=(s=r(0),r(1),i=(n=s).lib.CipherParams,o=n.enc.Hex,n.format.Hex={stringify:function(t){return t.ciphertext.toString(o)},parse:function(t){var e=o.parse(t);return i.create({ciphertext:e})}},s.format.Hex)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.BlockCipher,r=t.algo,i=[],o=[],s=[],a=[],c=[],l=[],h=[],f=[],u=[],d=[];!function(){for(var t=[],e=0;e<256;e++)t[e]=e<128?e<<1:e<<1^283;var r=0,n=0;for(e=0;e<256;e++){var p=n^n<<1^n<<2^n<<3^n<<4;p=p>>>8^255&p^99,i[r]=p,o[p]=r;var y=t[r],v=t[y],_=t[v],g=257*t[p]^16843008*p;s[r]=g<<24|g>>>8,a[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,l[r]=g,g=16843009*_^65537*v^257*y^16843008*r,h[p]=g<<24|g>>>8,f[p]=g<<16|g>>>16,u[p]=g<<8|g>>>24,d[p]=g,r?(r=y^t[t[t[_^y]]],n^=t[t[n]]):r=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],y=r.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,r=t.sigBytes/4,n=4*((this._nRounds=r+6)+1),o=this._keySchedule=[],s=0;s 6&&s%r==4&&(l=i[l>>>24]<<24|i[l>>>16&255]<<16|i[l>>>8&255]<<8|i[255&l]):(l=i[(l=l<<8|l>>>24)>>>24]<<24|i[l>>>16&255]<<16|i[l>>>8&255]<<8|i[255&l],l^=p[s/r|0]<<24),o[s]=o[s-r]^l);for(var a=this._invKeySchedule=[],c=0;c >>24]]^f[i[l>>>16&255]]^u[i[l>>>8&255]]^d[i[255&l]]}}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,s,a,c,l,i)},decryptBlock:function(t,e){var r=t[e+1];t[e+1]=t[e+3],t[e+3]=r,this._doCryptBlock(t,e,this._invKeySchedule,h,f,u,d,o),r=t[e+1],t[e+1]=t[e+3],t[e+3]=r},_doCryptBlock:function(t,e,r,n,i,o,s,a){for(var c=this._nRounds,l=t[e]^r[0],h=t[e+1]^r[1],f=t[e+2]^r[2],u=t[e+3]^r[3],d=4,p=1;p >>24]^i[h>>>16&255]^o[f>>>8&255]^s[255&u]^r[d++],v=n[h>>>24]^i[f>>>16&255]^o[u>>>8&255]^s[255&l]^r[d++],_=n[f>>>24]^i[u>>>16&255]^o[l>>>8&255]^s[255&h]^r[d++],g=n[u>>>24]^i[l>>>16&255]^o[h>>>8&255]^s[255&f]^r[d++];l=y,h=v,f=_,u=g}y=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^r[d++],v=(a[h>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&l])^r[d++],_=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^r[d++],g=(a[u>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&f])^r[d++],t[e]=y,t[e+1]=v,t[e+2]=_,t[e+3]=g},keySize:8});t.AES=e._createHelper(y)}(),n.AES)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib,r=e.WordArray,i=e.BlockCipher,o=t.algo,s=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],c=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],l=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=o.DES=i.extend({_doReset:function(){for(var t=this._key.words,e=[],r=0;r<56;r++){var n=s[r]-1;e[r]=t[n>>>5]>>>31-n%32&1}for(var i=this._subKeys=[],o=0;o<16;o++){var l=i[o]=[],h=c[o];for(r=0;r<24;r++)l[r/6|0]|=e[(a[r]-1+h)%28]<<31-r%6,l[4+(r/6|0)]|=e[28+(a[r+24]-1+h)%28]<<31-r%6;for(l[0]=l[0]<<1|l[0]>>>31,r=1;r<7;r++)l[r]=l[r]>>>4*(r-1)+3;l[7]=l[7]<<5|l[7]>>>27}var f=this._invSubKeys=[];for(r=0;r<16;r++)f[r]=i[15-r]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(t,e,r){this._lBlock=t[e],this._rBlock=t[e+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var n=0;n<16;n++){for(var i=r[n],o=this._lBlock,s=this._rBlock,a=0,c=0;c<8;c++)a|=l[c][((s^i[c])&h[c])>>>0];this._lBlock=s,this._rBlock=o^a}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),t[e]=this._lBlock,t[e+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function u(t,e){var r=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=r,this._lBlock^=r< >>t^this._lBlock)&e;this._lBlock^=r,this._rBlock^=r< 192.");var e=t.slice(0,2),n=t.length<4?t.slice(0,2):t.slice(2,4),i=t.length<6?t.slice(0,2):t.slice(4,6);this._des1=f.createEncryptor(r.create(e)),this._des2=f.createEncryptor(r.create(n)),this._des3=f.createEncryptor(r.create(i))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});t.TripleDES=i._createHelper(p)}(),n.TripleDES)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=r.RC4=e.extend({_doReset:function(){for(var t=this._key,e=t.words,r=t.sigBytes,n=this._S=[],i=0;i<256;i++)n[i]=i;i=0;for(var o=0;i<256;i++){var s=i%r,a=e[s>>>2]>>>24-s%4*8&255;o=(o+n[i]+a)%256;var c=n[i];n[i]=n[o],n[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=o.call(this)},keySize:8,ivSize:0});function o(){for(var t=this._S,e=this._i,r=this._j,n=0,i=0;i<4;i++){r=(r+t[e=(e+1)%256])%256;var o=t[e];t[e]=t[r],t[r]=o,n|=t[(t[e]+t[r])%256]<<24-8*i}return this._i=e,this._j=r,n}t.RC4=e._createHelper(i);var s=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)o.call(this)}});t.RC4Drop=e._createHelper(s)}(),n.RC4)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=[],o=[],s=[],a=r.Rabbit=e.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,r=0;r<4;r++)t[r]=16711935&(t[r]<<8|t[r]>>>24)|4278255360&(t[r]<<24|t[r]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],i=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];for(this._b=0,r=0;r<4;r++)c.call(this);for(r=0;r<8;r++)i[r]^=n[r+4&7];if(e){var o=e.words,s=o[0],a=o[1],l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=l>>>16|4294901760&h,u=h<<16|65535&l;for(i[0]^=l,i[1]^=f,i[2]^=h,i[3]^=u,i[4]^=l,i[5]^=f,i[6]^=h,i[7]^=u,r=0;r<4;r++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0 >>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0 >>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0 >>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0 >>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0 >>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0 >>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0 >>0?1:0)|0,this._b=e[7]>>>0 >>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,c=((i*i>>>17)+i*a>>>15)+a*a,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=c^l}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.Rabbit=e._createHelper(a)}(),n.Rabbit)},function(t,e,r){var n;t.exports=(n=r(0),r(3),r(4),r(2),r(1),function(){var t=n,e=t.lib.StreamCipher,r=t.algo,i=[],o=[],s=[],a=r.RabbitLegacy=e.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,r=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)c.call(this);for(i=0;i<8;i++)n[i]^=r[i+4&7];if(e){var o=e.words,s=o[0],a=o[1],l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),f=l>>>16|4294901760&h,u=h<<16|65535&l;for(n[0]^=l,n[1]^=f,n[2]^=h,n[3]^=u,n[4]^=l,n[5]^=f,n[6]^=h,n[7]^=u,i=0;i<4;i++)c.call(this)}},_doProcessBlock:function(t,e){var r=this._X;c.call(this),i[0]=r[0]^r[5]>>>16^r[3]<<16,i[1]=r[2]^r[7]>>>16^r[5]<<16,i[2]=r[4]^r[1]>>>16^r[7]<<16,i[3]=r[6]^r[3]>>>16^r[1]<<16;for(var n=0;n<4;n++)i[n]=16711935&(i[n]<<8|i[n]>>>24)|4278255360&(i[n]<<24|i[n]>>>8),t[e+n]^=i[n]},blockSize:4,ivSize:2});function c(){for(var t=this._X,e=this._C,r=0;r<8;r++)o[r]=e[r];for(e[0]=e[0]+1295307597+this._b|0,e[1]=e[1]+3545052371+(e[0]>>>0 >>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0 >>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0 >>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0 >>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0 >>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0 >>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0 >>0?1:0)|0,this._b=e[7]>>>0 >>0?1:0,r=0;r<8;r++){var n=t[r]+e[r],i=65535&n,a=n>>>16,c=((i*i>>>17)+i*a>>>15)+a*a,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[r]=c^l}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}t.RabbitLegacy=e._createHelper(a)}(),n.RabbitLegacy)}]); manifest.json 000644 0000000422 14007207101 010373 0 ustar 00 000000 000000 { 19 | "manifest_version": 1, 20 | "id": "joplin-plugin-file-encryption", 21 | "app_min_version": "1.6", 22 | "version": "1.0.0", 23 | "name": "File encryption", 24 | "description": "File encryption", 25 | "author": "CaptainZXX", 26 | "homepage_url": "", 27 | "repository_url": "", 28 | "keywords": [] 29 | } -------------------------------------------------------------------------------- /publish/joplin-plugin-file-encryption.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 1, 3 | "id": "joplin-plugin-file-encryption", 4 | "app_min_version": "1.6", 5 | "version": "1.0.0", 6 | "name": "File encryption", 7 | "description": "File encryption", 8 | "author": "CaptainZXX", 9 | "homepage_url": "", 10 | "repository_url": "", 11 | "keywords": [], 12 | "_publish_hash": "sha256:b883d750dc5b01b21df49d2d213c01f15c0a89f6860bda69e15ce440d4e64888", 13 | "_publish_commit": "master:a8f2456b231efa1da0c6471baf7068815edd38e2" 14 | } -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import joplin from 'api'; 2 | import { ToolbarButtonLocation } from 'api/types'; 3 | 4 | /********************************************************* 5 | * 6 | 7 | joplin Api文档: https://joplinapp.org/api/references/plugin_api/classes/joplin.html 8 | 想做一个joplin的文件加密功能,实现思路 9 | 1. 注册一个工具栏的按钮 10 | 2. 点击按钮弹出对话框,询问密码 11 | 3. 检查这个文件本来有没有密码 12 | 1) 读取joplin的自定义设置 13 | 2) 检查这个note.id 是否有对应的值,有就校验密码,解密;没有就设置密码 14 | 4. 加密使用 crypto-js对纯文本的Markdown内容进行加密 https://www.jianshu.com/p/a47477e8126a 15 | 5. 同一个文件必须使用同一个密码否则解密失败 16 | 6. 给一个清楚所有密码重新输入的按钮(在密码框里输入特定的指令) 17 | ALTER TABLE Production ADD COLUMN NEW Text 18 | *********************************************************/ 19 | // AES 纯文本加密 20 | const CryptoJS = require("crypto-js") 21 | 22 | function getAesString(data, key, iv) {//加密 23 | let use_key = key + "0000000000000000" 24 | use_key = use_key.substr(0, 16) 25 | var key = CryptoJS.enc.Utf8.parse(use_key); 26 | console.log("Encrypt use key->", key); 27 | var iv = key; 28 | var encrypted = CryptoJS.AES.encrypt(data, key, 29 | { 30 | iv: iv, 31 | mode: CryptoJS.mode.CBC, 32 | padding: CryptoJS.pad.Pkcs7 33 | }).toString(); 34 | // let encData = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(encrypted)); 35 | return encrypted; //返回的是base64格式的密文 36 | } 37 | function getDAesString(encrypted, key, iv) {//解密 38 | let use_key = key + "0000000000000000" 39 | use_key = use_key.substr(0, 16) 40 | var key = CryptoJS.enc.Utf8.parse(use_key); 41 | console.log("Decryption use key->", use_key); 42 | console.log("Decryption data->", encrypted); 43 | var iv = key; 44 | // let decData = CryptoJS.enc.Base64.parse(encrypted).toString(CryptoJS.enc.Utf8); 45 | var decrypted = CryptoJS.AES.decrypt(encrypted, key, 46 | { 47 | iv: iv, 48 | mode: CryptoJS.mode.CBC, 49 | padding: CryptoJS.pad.Pkcs7 50 | }); 51 | console.log("Decryption->", decrypted); 52 | return decrypted.toString(CryptoJS.enc.Utf8); 53 | // return decrypted; 54 | } 55 | 56 | function getAES(data, key) { //加密 57 | var iv = 'joplinCryptoJS'; 58 | var encrypted = getAesString(data, key, iv); //密文 59 | // var encrypted1 =CryptoJS.enc.Utf8.parse(encrypted); 60 | return encrypted; 61 | } 62 | 63 | function getDAes(data, key) {//解密 64 | var iv = 'joplinCryptoJS'; 65 | var decryptedStr = getDAesString(data, key, iv); 66 | console.log("Daes", data); 67 | console.log("Daes", decryptedStr); 68 | return decryptedStr; 69 | } 70 | 71 | joplin.plugins.register({ 72 | onStart: async function () { 73 | console.log("File encryption runing"); 74 | const note = await joplin.workspace.selectedNote(); 75 | note.try_number = 0; 76 | // 上一次加密的时间戳 77 | let encrypt_time = (new Date()).valueOf(); 78 | await joplin.commands.register({ 79 | name: 'fileEncry', 80 | label: 'fileEncry', 81 | iconName: 'fas fa-lock', 82 | execute: async () => { 83 | const note = await joplin.workspace.selectedNote(); 84 | note.try_number = 0; 85 | note.is_change = 0; 86 | fileEncryption(note, "commands"); 87 | }, 88 | 89 | }); 90 | // 加一个按钮 91 | await joplin.views.toolbarButtons.create('fileEncry', 'fileEncry', ToolbarButtonLocation.NoteToolbar); 92 | // await joplin.views.toolbarButtons.create('fileEncry', 'fileEncry', ToolbarButtonLocation.EditorToolbar); 93 | await joplin.workspace.onNoteSelectionChange(async (event: any) => { 94 | // 当前选中的文件 95 | try { 96 | const note = await joplin.workspace.selectedNote(); 97 | console.log("note->", note); 98 | note.is_change = 0; 99 | note.try_number = 0; 100 | fileEncryption(note, "onNoteSelectionChange"); 101 | } catch { 102 | console.log("error"); 103 | } 104 | 105 | }); 106 | await joplin.workspace.onNoteChange(async (event: any) => { 107 | const note = await joplin.workspace.selectedNote(); 108 | note.try_number = 0; 109 | if (!note.is_change) note.is_change = 0; 110 | if ((new Date()).valueOf() > encrypt_time) { 111 | note.is_change += 1; 112 | } 113 | if ((new Date()).valueOf() - encrypt_time < 500) return; 114 | fileEncryption(note, "onNoteChange"); 115 | }); 116 | 117 | // 对话框 118 | const dialogs = joplin.views.dialogs; 119 | // 询问密码的弹窗 120 | const password = await dialogs.create('password'); 121 | await dialogs.setHtml(password, ` 122 | Input Your PassWord:
123 | 126 | `); 127 | await dialogs.setButtons(password, [ 128 | { 129 | id: 'Encrypt', 130 | }, 131 | { 132 | id: 'Cancel', 133 | } 134 | ]); 135 | 136 | const passwordDecryption = await dialogs.create('passwordDecryption'); 137 | await dialogs.setHtml(passwordDecryption, ` 138 |Input Your PassWord:
139 | 142 | `); 143 | await dialogs.setButtons(passwordDecryption, [ 144 | { 145 | id: 'Decryption', 146 | }, 147 | { 148 | id: 'Cancel', 149 | }, 150 | ]); 151 | 152 | 153 | async function fileEncryption(note, itFrom) { 154 | // 尝试次数 155 | let try_number = note.try_number; 156 | while (true) { 157 | if (note.body.startsWith("[[crypted]]
")) { 158 | //文件是加密的 159 | if (note.is_change != 0) { 160 | //如果有改动加密文件,则先执行undo,利用这个阻止修改加密文件,但是在没有安装该插件的软件中是可以修改的 161 | //不确定修改后能不能解密成功 162 | for (let i = 0; i < note.is_change + 1; i++) { 163 | await joplin.commands.execute("editor.undo") 164 | } 165 | note.is_change = 0; 166 | } 167 | // 解密过程,弹出解密弹窗 168 | let password_result = await dialogs.open(passwordDecryption); 169 | if (password_result.id == "Cancel") { 170 | break; 171 | } else if (password_result.id == "Decryption") { 172 | // 有密码且不为空,则解密 173 | let aes_body = note.body.split("
")[1] 174 | let Dbody = getDAes(aes_body, password_result.formData.password.password) 175 | console.log("aes_body->", aes_body); 176 | console.log("key->", password_result.formData.password.password); 177 | if (Dbody) { 178 | // await joplin.data.put(["notes", note.id], null, { body: Dbody }) 179 | // 发现一个新的api可以直接改变note的内容 180 | // await joplin.commands.execute("editor.setText", Dbody) 181 | await joplin.commands.execute("textSelectAll"); 182 | await joplin.commands.execute("textCut"); 183 | await joplin.commands.execute("insertText", Dbody); 184 | console.log("Dbody note->", note); 185 | note.is_change = 0; 186 | break; 187 | } else { 188 | // 解密失败,继续弹窗 189 | try_number += 1; 190 | continue; 191 | } 192 | } 193 | 194 | } else { 195 | // 文件不是加密的,判断调用函数的来源 196 | if (itFrom != "commands") break; 197 | //来源于按钮,则弹出弹窗 198 | 199 | let password_result = await dialogs.open(password); 200 | if (password_result.id == "Cancel") { 201 | //如果点击取消 202 | break; 203 | } else if (password_result.id == "Encrypt") { 204 | //点击加密按钮 205 | // 没有密码,或者密码为空,则弹出弹窗设置密码,并用密码加密文本 206 | console.log(password_result.id, password_result.formData.password.password); 207 | let aes_body = getAES(note.body, password_result.formData.password.password); 208 | // await joplin.data.put(["notes", note.id], null, { body: "[[crypted]]
" + aes_body }); 209 | // note.body = "[[crypted]]
" + aes_body; 210 | // 发现一个新的api可以直接改变note的内容 211 | await joplin.commands.execute("textSelectAll"); 212 | await joplin.commands.execute("textCut"); 213 | await joplin.commands.execute("insertText", "[[crypted]]
" + aes_body); 214 | // await joplin.commands.execute("editor.setText","[[crypted]]
" + aes_body) 215 | console.log("ency->", note); 216 | 217 | encrypt_time = (new Date()).valueOf(); 218 | break; 219 | } 220 | } 221 | } 222 | } 223 | }, 224 | }); 225 | 226 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 1, 3 | "id": "joplin-plugin-file-encryption", 4 | "app_min_version": "1.6", 5 | "version": "1.0.0", 6 | "name": "File encryption", 7 | "description": "File encryption", 8 | "author": "CaptainZXX", 9 | "homepage_url": "", 10 | "repository_url": "", 11 | "keywords": [] 12 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "./dist/", 4 | "module": "commonjs", 5 | "target": "es2015", 6 | "jsx": "react", 7 | "allowJs": true, 8 | "baseUrl": "." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | // ----------------------------------------------------------------------------- 2 | // This file is used to build the plugin file (.jpl) and plugin info (.json). It 3 | // is recommended not to edit this file as it would be overwritten when updating 4 | // the plugin framework. If you do make some changes, consider using an external 5 | // JS file and requiring it here to minimize the changes. That way when you 6 | // update, you can easily restore the functionality you've added. 7 | // ----------------------------------------------------------------------------- 8 | 9 | const path = require("path"); 10 | const crypto = require("crypto"); 11 | const fs = require("fs-extra"); 12 | const chalk = require("chalk"); 13 | const CopyPlugin = require("copy-webpack-plugin"); 14 | const WebpackOnBuildPlugin = require("on-build-webpack"); 15 | const tar = require("tar"); 16 | const glob = require("glob"); 17 | const execSync = require("child_process").execSync; 18 | 19 | const rootDir = path.resolve(__dirname); 20 | const userConfigFilename = "./plugin.config.json"; 21 | const userConfigPath = path.resolve(rootDir, userConfigFilename); 22 | const distDir = path.resolve(rootDir, "dist"); 23 | const srcDir = path.resolve(rootDir, "src"); 24 | const publishDir = path.resolve(rootDir, "publish"); 25 | 26 | const userConfig = Object.assign( 27 | {}, 28 | { 29 | extraScripts: [], 30 | }, 31 | fs.pathExistsSync(userConfigPath) ? require(userConfigFilename) : {} 32 | ); 33 | 34 | const manifestPath = `${srcDir}/manifest.json`; 35 | const packageJsonPath = `${rootDir}/package.json`; 36 | const manifest = readManifest(manifestPath); 37 | const pluginArchiveFilePath = path.resolve(publishDir, `${manifest.id}.jpl`); 38 | const pluginInfoFilePath = path.resolve(publishDir, `${manifest.id}.json`); 39 | 40 | function validatePackageJson() { 41 | const content = JSON.parse(fs.readFileSync(packageJsonPath, "utf8")); 42 | if (!content.name || content.name.indexOf("joplin-plugin-") !== 0) { 43 | console.warn( 44 | chalk.yellow( 45 | `WARNING: To publish the plugin, the package name should start with "joplin-plugin-" (found "${content.name}") in ${packageJsonPath}` 46 | ) 47 | ); 48 | } 49 | 50 | if (!content.keywords || content.keywords.indexOf("joplin-plugin") < 0) { 51 | console.warn( 52 | chalk.yellow( 53 | `WARNING: To publish the plugin, the package keywords should include "joplin-plugin" (found "${JSON.stringify( 54 | content.keywords 55 | )}") in ${packageJsonPath}` 56 | ) 57 | ); 58 | } 59 | 60 | if (content.scripts && content.scripts.postinstall) { 61 | console.warn( 62 | chalk.yellow( 63 | `WARNING: package.json contains a "postinstall" script. It is recommended to use a "prepare" script instead so that it is executed before publish. In ${packageJsonPath}` 64 | ) 65 | ); 66 | } 67 | } 68 | 69 | function fileSha256(filePath) { 70 | const content = fs.readFileSync(filePath); 71 | return crypto.createHash("sha256").update(content).digest("hex"); 72 | } 73 | 74 | function currentGitInfo() { 75 | try { 76 | let branch = execSync("git rev-parse --abbrev-ref HEAD", { stdio: "pipe" }) 77 | .toString() 78 | .trim(); 79 | const commit = execSync("git rev-parse HEAD", { stdio: "pipe" }) 80 | .toString() 81 | .trim(); 82 | if (branch === "HEAD") branch = "master"; 83 | return `${branch}:${commit}`; 84 | } catch (error) { 85 | const messages = error.message ? error.message.split("\n") : [""]; 86 | console.info( 87 | chalk.cyan( 88 | "Could not get git commit (not a git repo?):", 89 | messages[0].trim() 90 | ) 91 | ); 92 | console.info( 93 | chalk.cyan("Git information will not be stored in plugin info file") 94 | ); 95 | return ""; 96 | } 97 | } 98 | 99 | function readManifest(manifestPath) { 100 | const content = fs.readFileSync(manifestPath, "utf8"); 101 | const output = JSON.parse(content); 102 | if (!output.id) 103 | throw new Error(`Manifest plugin ID is not set in ${manifestPath}`); 104 | return output; 105 | } 106 | 107 | function createPluginArchive(sourceDir, destPath) { 108 | const distFiles = glob 109 | .sync(`${sourceDir}/**/*`, { nodir: true }) 110 | .map((f) => f.substr(sourceDir.length + 1)); 111 | 112 | if (!distFiles.length) 113 | throw new Error( 114 | 'Plugin archive was not created because the "dist" directory is empty' 115 | ); 116 | fs.removeSync(destPath); 117 | 118 | tar.create( 119 | { 120 | strict: true, 121 | portable: true, 122 | file: destPath, 123 | cwd: sourceDir, 124 | sync: true, 125 | }, 126 | distFiles 127 | ); 128 | 129 | console.info(chalk.cyan(`Plugin archive has been created in ${destPath}`)); 130 | } 131 | 132 | function createPluginInfo(manifestPath, destPath, jplFilePath) { 133 | const contentText = fs.readFileSync(manifestPath, "utf8"); 134 | const content = JSON.parse(contentText); 135 | content._publish_hash = `sha256:${fileSha256(jplFilePath)}`; 136 | content._publish_commit = currentGitInfo(); 137 | fs.writeFileSync(destPath, JSON.stringify(content, null, "\t"), "utf8"); 138 | } 139 | 140 | function onBuildCompleted() { 141 | try { 142 | fs.removeSync(path.resolve(publishDir, "index.js")); 143 | createPluginArchive(distDir, pluginArchiveFilePath); 144 | createPluginInfo(manifestPath, pluginInfoFilePath, pluginArchiveFilePath); 145 | validatePackageJson(); 146 | } catch (error) { 147 | console.error(chalk.red(error.message)); 148 | } 149 | } 150 | 151 | const baseConfig = { 152 | mode: "production", 153 | target: "node", 154 | stats: "errors-only", 155 | module: { 156 | rules: [ 157 | { 158 | test: /\.tsx?$/, 159 | use: "ts-loader", 160 | exclude: /node_modules/, 161 | }, 162 | ], 163 | }, 164 | }; 165 | 166 | const pluginConfig = Object.assign({}, baseConfig, { 167 | entry: "./src/index.ts", 168 | resolve: { 169 | alias: { 170 | api: path.resolve(__dirname, "api"), 171 | }, 172 | extensions: [".tsx", ".ts", ".js"], 173 | }, 174 | output: { 175 | filename: "index.js", 176 | path: distDir, 177 | }, 178 | plugins: [ 179 | new CopyPlugin({ 180 | patterns: [ 181 | { 182 | from: "**/*", 183 | context: path.resolve(__dirname, "src"), 184 | to: path.resolve(__dirname, "dist"), 185 | globOptions: { 186 | ignore: [ 187 | // All TypeScript files are compiled to JS and 188 | // already copied into /dist so we don't copy them. 189 | "**/*.ts", 190 | "**/*.tsx", 191 | ], 192 | }, 193 | }, 194 | ], 195 | }), 196 | ], 197 | }); 198 | 199 | const extraScriptConfig = Object.assign({}, baseConfig, { 200 | resolve: { 201 | alias: { 202 | api: path.resolve(__dirname, "api"), 203 | }, 204 | extensions: [".tsx", ".ts", ".js"], 205 | }, 206 | }); 207 | 208 | const createArchiveConfig = { 209 | stats: "errors-only", 210 | entry: "./dist/index.js", 211 | output: { 212 | filename: "index.js", 213 | path: publishDir, 214 | }, 215 | plugins: [new WebpackOnBuildPlugin(onBuildCompleted)], 216 | }; 217 | 218 | function resolveExtraScriptPath(name) { 219 | const relativePath = `./src/${name}`; 220 | 221 | const fullPath = path.resolve(`${rootDir}/${relativePath}`); 222 | if (!fs.pathExistsSync(fullPath)) 223 | throw new Error(`Could not find extra script: "${name}" at "${fullPath}"`); 224 | 225 | const s = name.split("."); 226 | s.pop(); 227 | const nameNoExt = s.join("."); 228 | 229 | return { 230 | entry: relativePath, 231 | output: { 232 | filename: `${nameNoExt}.js`, 233 | path: distDir, 234 | library: "default", 235 | libraryTarget: "commonjs", 236 | libraryExport: "default", 237 | }, 238 | }; 239 | } 240 | 241 | function buildExtraScriptConfigs(userConfig) { 242 | if (!userConfig.extraScripts.length) return []; 243 | 244 | const output = []; 245 | 246 | for (const scriptName of userConfig.extraScripts) { 247 | const scriptPaths = resolveExtraScriptPath(scriptName); 248 | output.push( 249 | Object.assign({}, extraScriptConfig, { 250 | entry: scriptPaths.entry, 251 | output: scriptPaths.output, 252 | }) 253 | ); 254 | } 255 | 256 | return output; 257 | } 258 | 259 | function main(processArgv) { 260 | const yargs = require("yargs/yargs"); 261 | const argv = yargs(processArgv).argv; 262 | 263 | const configName = argv["joplin-plugin-config"]; 264 | if (!configName) 265 | throw new Error( 266 | "A config file must be specified via the --joplin-plugin-config flag" 267 | ); 268 | 269 | // Webpack configurations run in parallel, while we need them to run in 270 | // sequence, and to do that it seems the only way is to run webpack multiple 271 | // times, with different config each time. 272 | 273 | const configs = { 274 | // Builds the main src/index.ts and copy the extra content from /src to 275 | // /dist including scripts, CSS and any other asset. 276 | buildMain: [pluginConfig], 277 | 278 | // Builds the extra scripts as defined in plugin.config.json. When doing 279 | // so, some JavaScript files that were copied in the previous might be 280 | // overwritten here by the compiled version. This is by design. The 281 | // result is that JS files that don't need compilation, are simply 282 | // copied to /dist, while those that do need it are correctly compiled. 283 | buildExtraScripts: buildExtraScriptConfigs(userConfig), 284 | 285 | // Ths config is for creating the .jpl, which is done via the plugin, so 286 | // it doesn't actually need an entry and output, however webpack won't 287 | // run without this. So we give it an entry that we know is going to 288 | // exist and output in the publish dir. Then the plugin will delete this 289 | // temporary file before packaging the plugin. 290 | createArchive: [createArchiveConfig], 291 | }; 292 | 293 | // If we are running the first config step, we clean up and create the build 294 | // directories. 295 | if (configName === "buildMain") { 296 | fs.removeSync(distDir); 297 | fs.removeSync(publishDir); 298 | fs.mkdirpSync(publishDir); 299 | } 300 | 301 | return configs[configName]; 302 | } 303 | 304 | let exportedConfigs = []; 305 | 306 | try { 307 | exportedConfigs = main(process.argv); 308 | } catch (error) { 309 | console.error(chalk.red(error.message)); 310 | process.exit(1); 311 | } 312 | 313 | if (!exportedConfigs.length) { 314 | // Nothing to do - for example where there are no external scripts to 315 | // compile. 316 | process.exit(0); 317 | } 318 | 319 | module.exports = exportedConfigs; 320 | --------------------------------------------------------------------------------