openpgp
Version:
OpenPGP.js is a Javascript implementation of the OpenPGP protocol. This is defined in RFC 4880.
2 lines • 381 kB
JavaScript
/*! OpenPGP.js v6.1.0 - 2025-01-30 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */
"use strict";const e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};var t=require("module"),r=require("node:crypto"),n="undefined"!=typeof document?document.currentScript:null;function i(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}function s(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(r){if("default"!==r&&!(r in e)){var n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,n.get?n:{enumerable:!0,get:function(){return t[r]}})}}))})),Object.freeze(e)}var a=/*#__PURE__*/i(r);const o=Symbol("doneWritingPromise"),c=Symbol("doneWritingResolve"),h=Symbol("doneWritingReject"),u=Symbol("readingIndex");class l extends Array{constructor(){super(),Object.setPrototypeOf(this,l.prototype),this[o]=new Promise(((e,t)=>{this[c]=e,this[h]=t})),this[o].catch((()=>{}))}}function y(e){return e&&e.getReader&&Array.isArray(e)}function f(e){if(!y(e)){const t=e.getWriter(),r=t.releaseLock;return t.releaseLock=()=>{t.closed.catch((function(){})),r.call(t)},t}this.stream=e}function g(t){if(y(t))return"array";if(e.ReadableStream&&e.ReadableStream.prototype.isPrototypeOf(t))return"web";if(t&&!(e.ReadableStream&&t instanceof e.ReadableStream)&&"function"==typeof t._read&&"object"==typeof t._readableState)throw Error("Native Node streams are no longer supported: please manually convert the stream to a WebStream, using e.g. `stream.Readable.toWeb`");return!(!t||!t.getReader)&&"web-like"}function p(e){return Uint8Array.prototype.isPrototypeOf(e)}function d(e){if(1===e.length)return e[0];let t=0;for(let r=0;r<e.length;r++){if(!p(e[r]))throw Error("concatUint8Array: Data must be in the form of a Uint8Array");t+=e[r].length}const r=new Uint8Array(t);let n=0;return e.forEach((function(e){r.set(e,n),n+=e.length})),r}l.prototype.getReader=function(){return void 0===this[u]&&(this[u]=0),{read:async()=>(await this[o],this[u]===this.length?{value:void 0,done:!0}:{value:this[this[u]++],done:!1})}},l.prototype.readToEnd=async function(e){await this[o];const t=e(this.slice(this[u]));return this.length=0,t},l.prototype.clone=function(){const e=new l;return e[o]=this[o].then((()=>{e.push(...this)})),e},f.prototype.write=async function(e){this.stream.push(e)},f.prototype.close=async function(){this.stream[c]()},f.prototype.abort=async function(e){return this.stream[h](e),e},f.prototype.releaseLock=function(){},"object"==typeof e.process&&e.process.versions;const A=new WeakSet,w=Symbol("externalBuffer");function m(e){if(this.stream=e,e[w]&&(this[w]=e[w].slice()),y(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{},void(this._cancel=()=>{})}if(g(e)){const t=e.getReader();return this._read=t.read.bind(t),this._releaseLock=()=>{t.closed.catch((function(){})),t.releaseLock()},void(this._cancel=t.cancel.bind(t))}let t=!1;this._read=async()=>t||A.has(e)?{value:void 0,done:!0}:(t=!0,{value:e,done:!1}),this._releaseLock=()=>{if(t)try{A.add(e)}catch(e){}}}function b(e){return g(e)?e:new ReadableStream({start(t){t.enqueue(e),t.close()}})}function k(e){if(g(e))return e;const t=new l;return(async()=>{const r=M(t);await r.write(e),await r.close()})(),t}function E(e){return e.some((e=>g(e)&&!y(e)))?function(e){e=e.map(b);const t=B((async function(e){await Promise.all(n.map((t=>R(t,e))))}));let r=Promise.resolve();const n=e.map(((n,i)=>K(n,((n,s)=>(r=r.then((()=>v(n,t.writable,{preventClose:i!==e.length-1}))),r)))));return t.readable}(e):e.some((e=>y(e)))?function(e){const t=new l;let r=Promise.resolve();return e.forEach(((n,i)=>(r=r.then((()=>v(n,t,{preventClose:i!==e.length-1}))),r))),t}(e):"string"==typeof e[0]?e.join(""):d(e)}async function v(e,t,{preventClose:r=!1,preventAbort:n=!1,preventCancel:i=!1}={}){if(g(e)&&!y(e)){e=b(e);try{if(e[w]){const r=M(t);for(let t=0;t<e[w].length;t++)await r.ready,await r.write(e[w][t]);r.releaseLock()}await e.pipeTo(t,{preventClose:r,preventAbort:n,preventCancel:i})}catch(e){}return}const s=L(e=k(e)),a=M(t);try{for(;;){await a.ready;const{done:e,value:t}=await s.read();if(e){r||await a.close();break}await a.write(t)}}catch(e){n||await a.abort(e)}finally{s.releaseLock(),a.releaseLock()}}function I(e,t){const r=new TransformStream(t);return v(e,r.writable),r.readable}function B(e){let t,r,n,i=!1,s=!1;return{readable:new ReadableStream({start(e){n=e},pull(){t?t():i=!0},async cancel(t){s=!0,e&&await e(t),r&&r(t)}},{highWaterMark:0}),writable:new WritableStream({write:async function(e){if(s)throw Error("Stream is cancelled");n.enqueue(e),i?i=!1:(await new Promise(((e,n)=>{t=e,r=n})),t=null,r=null)},close:n.close.bind(n),abort:n.error.bind(n)})}}function S(e,t=()=>{},r=()=>{}){if(y(e)){const n=new l;return(async()=>{const i=M(n);try{const n=await Q(e),s=t(n),a=r();let o;o=void 0!==s&&void 0!==a?E([s,a]):void 0!==s?s:a,await i.write(o),await i.close()}catch(e){await i.abort(e)}})(),n}if(g(e))return I(e,{async transform(e,r){try{const n=await t(e);void 0!==n&&r.enqueue(n)}catch(e){r.error(e)}},async flush(e){try{const t=await r();void 0!==t&&e.enqueue(t)}catch(t){e.error(t)}}});const n=t(e),i=r();return void 0!==n&&void 0!==i?E([n,i]):void 0!==n?n:i}function K(e,t){if(g(e)&&!y(e)){let r;const n=new TransformStream({start(e){r=e}}),i=v(e,n.writable),s=B((async function(e){r.error(e),await i,await new Promise(setTimeout)}));return t(n.readable,s.writable),s.readable}e=k(e);const r=new l;return t(e,r),r}function C(e,t){let r;const n=K(e,((e,i)=>{const s=L(e);s.remainder=()=>(s.releaseLock(),v(e,i),n),r=t(s)}));return r}function D(e){if(y(e))return e.clone();if(g(e)){const t=function(e){if(y(e))throw Error("ArrayStream cannot be tee()d, use clone() instead");if(g(e)){const t=b(e).tee();return t[0][w]=t[1][w]=e[w],t}return[x(e),x(e)]}(e);return P(e,t[0]),t[1]}return x(e)}function U(e){return y(e)?D(e):g(e)?new ReadableStream({start(t){const r=K(e,(async(e,r)=>{const n=L(e),i=M(r);try{for(;;){await i.ready;const{done:e,value:r}=await n.read();if(e){try{t.close()}catch(e){}return void await i.close()}try{t.enqueue(r)}catch(e){}await i.write(r)}}catch(e){t.error(e),await i.abort(e)}}));P(e,r)}}):x(e)}function P(e,t){Object.entries(Object.getOwnPropertyDescriptors(e.constructor.prototype)).forEach((([r,n])=>{"constructor"!==r&&(n.value?n.value=n.value.bind(t):n.get=n.get.bind(t),Object.defineProperty(e,r,n))}))}function x(e,t=0,r=1/0){if(y(e))throw Error("Not implemented");if(g(e)){if(t>=0&&r>=0){let n=0;return I(e,{transform(e,i){n<r?(n+e.length>=t&&i.enqueue(x(e,Math.max(t-n,0),r-n)),n+=e.length):i.terminate()}})}if(t<0&&(r<0||r===1/0)){let n=[];return S(e,(e=>{e.length>=-t?n=[e]:n.push(e)}),(()=>x(E(n),t,r)))}if(0===t&&r<0){let n;return S(e,(e=>{const i=n?E([n,e]):e;if(i.length>=-r)return n=x(i,r),x(i,t,r);n=i}))}return console.warn(`stream.slice(input, ${t}, ${r}) not implemented efficiently.`),T((async()=>x(await Q(e),t,r)))}return e[w]&&(e=E(e[w].concat([e]))),p(e)?e.subarray(t,r===1/0?e.length:r):e.slice(t,r)}async function Q(e,t=E){return y(e)?e.readToEnd(t):g(e)?L(e).readToEnd(t):e}async function R(e,t){if(g(e)){if(e.cancel){const r=await e.cancel(t);return await new Promise(setTimeout),r}if(e.destroy)return e.destroy(t),await new Promise(setTimeout),t}}function T(e){const t=new l;return(async()=>{const r=M(t);try{await r.write(await e()),await r.close()}catch(e){await r.abort(e)}})(),t}function L(e){return new m(e)}function M(e){return new f(e)}m.prototype.read=async function(){if(this[w]&&this[w].length){return{done:!1,value:this[w].shift()}}return this._read()},m.prototype.releaseLock=function(){this[w]&&(this.stream[w]=this[w]),this._releaseLock()},m.prototype.cancel=function(e){return this._cancel(e)},m.prototype.readLine=async function(){let e,t=[];for(;!e;){let{done:r,value:n}=await this.read();if(n+="",r)return t.length?E(t):void 0;const i=n.indexOf("\n")+1;i&&(e=E(t.concat(n.substr(0,i))),t=[]),i!==n.length&&t.push(n.substr(i))}return this.unshift(...t),e},m.prototype.readByte=async function(){const{done:e,value:t}=await this.read();if(e)return;const r=t[0];return this.unshift(x(t,1)),r},m.prototype.readBytes=async function(e){const t=[];let r=0;for(;;){const{done:n,value:i}=await this.read();if(n)return t.length?E(t):void 0;if(t.push(i),r+=i.length,r>=e){const r=E(t);return this.unshift(x(r,e)),x(r,0,e)}}},m.prototype.peekBytes=async function(e){const t=await this.readBytes(e);return this.unshift(t),t},m.prototype.unshift=function(...e){this[w]||(this[w]=[]),1===e.length&&p(e[0])&&this[w].length&&e[0].length&&this[w][0].byteOffset>=e[0].length?this[w][0]=new Uint8Array(this[w][0].buffer,this[w][0].byteOffset-e[0].length,this[w][0].byteLength+e[0].length):this[w].unshift(...e.filter((e=>e&&e.length)))},m.prototype.readToEnd=async function(e=E){const t=[];for(;;){const{done:e,value:r}=await this.read();if(e)break;t.push(r)}return e(t)};const N=Symbol("byValue");var F={curve:{nistP256:"nistP256",p256:"nistP256",nistP384:"nistP384",p384:"nistP384",nistP521:"nistP521",p521:"nistP521",secp256k1:"secp256k1",ed25519Legacy:"ed25519Legacy",ed25519:"ed25519Legacy",curve25519Legacy:"curve25519Legacy",curve25519:"curve25519Legacy",brainpoolP256r1:"brainpoolP256r1",brainpoolP384r1:"brainpoolP384r1",brainpoolP512r1:"brainpoolP512r1"},s2k:{simple:0,salted:1,iterated:3,argon2:4,gnu:101},publicKey:{rsaEncryptSign:1,rsaEncrypt:2,rsaSign:3,elgamal:16,dsa:17,ecdh:18,ecdsa:19,eddsaLegacy:22,aedh:23,aedsa:24,x25519:25,x448:26,ed25519:27,ed448:28},symmetric:{idea:1,tripledes:2,cast5:3,blowfish:4,aes128:7,aes192:8,aes256:9,twofish:10},compression:{uncompressed:0,zip:1,zlib:2,bzip2:3},hash:{md5:1,sha1:2,ripemd:3,sha256:8,sha384:9,sha512:10,sha224:11,sha3_256:12,sha3_512:14},webHash:{"SHA-1":2,"SHA-256":8,"SHA-384":9,"SHA-512":10},aead:{eax:1,ocb:2,gcm:3,experimentalGCM:100},packet:{publicKeyEncryptedSessionKey:1,signature:2,symEncryptedSessionKey:3,onePassSignature:4,secretKey:5,publicKey:6,secretSubkey:7,compressedData:8,symmetricallyEncryptedData:9,marker:10,literalData:11,trust:12,userID:13,publicSubkey:14,userAttribute:17,symEncryptedIntegrityProtectedData:18,modificationDetectionCode:19,aeadEncryptedData:20,padding:21},literal:{binary:98,text:116,utf8:117,mime:109},signature:{binary:0,text:1,standalone:2,certGeneric:16,certPersona:17,certCasual:18,certPositive:19,certRevocation:48,subkeyBinding:24,keyBinding:25,key:31,keyRevocation:32,subkeyRevocation:40,timestamp:64,thirdParty:80},signatureSubpacket:{signatureCreationTime:2,signatureExpirationTime:3,exportableCertification:4,trustSignature:5,regularExpression:6,revocable:7,keyExpirationTime:9,placeholderBackwardsCompatibility:10,preferredSymmetricAlgorithms:11,revocationKey:12,issuerKeyID:16,notationData:20,preferredHashAlgorithms:21,preferredCompressionAlgorithms:22,keyServerPreferences:23,preferredKeyServer:24,primaryUserID:25,policyURI:26,keyFlags:27,signersUserID:28,reasonForRevocation:29,features:30,signatureTarget:31,embeddedSignature:32,issuerFingerprint:33,preferredAEADAlgorithms:34,preferredCipherSuites:39},keyFlags:{certifyKeys:1,signData:2,encryptCommunication:4,encryptStorage:8,splitPrivateKey:16,authentication:32,sharedPrivateKey:128},armor:{multipartSection:0,multipartLast:1,signed:2,message:3,publicKey:4,privateKey:5,signature:6},reasonForRevocation:{noReason:0,keySuperseded:1,keyCompromised:2,keyRetired:3,userIDInvalid:32},features:{modificationDetection:1,aead:2,v5Keys:4,seipdv2:8},write:function(e,t){if("number"==typeof t&&(t=this.read(e,t)),void 0!==e[t])return e[t];throw Error("Invalid enum value.")},read:function(e,t){if(e[N]||(e[N]=[],Object.entries(e).forEach((([t,r])=>{e[N][r]=t}))),void 0!==e[N][t])return e[N][t];throw Error("Invalid enum value.")}},O={preferredHashAlgorithm:F.hash.sha512,preferredSymmetricAlgorithm:F.symmetric.aes256,preferredCompressionAlgorithm:F.compression.uncompressed,aeadProtect:!1,parseAEADEncryptedV4KeysAsLegacy:!1,preferredAEADAlgorithm:F.aead.gcm,aeadChunkSizeByte:12,v6Keys:!1,enableParsingV5Entities:!1,s2kType:F.s2k.iterated,s2kIterationCountByte:224,s2kArgon2Params:{passes:3,parallelism:4,memoryExponent:16},allowUnauthenticatedMessages:!1,allowUnauthenticatedStream:!1,minRSABits:2047,passwordCollisionCheck:!1,allowInsecureDecryptionWithSigningKeys:!1,allowInsecureVerificationWithReformattedKeys:!1,allowMissingKeyFlags:!1,constantTimePKCS1Decryption:!1,constantTimePKCS1DecryptionSupportedSymmetricAlgorithms:new Set([F.symmetric.aes128,F.symmetric.aes192,F.symmetric.aes256]),ignoreUnsupportedPackets:!0,ignoreMalformedPackets:!1,additionalAllowedPackets:[],showVersion:!1,showComment:!1,versionString:"OpenPGP.js 6.1.0",commentString:"https://openpgpjs.org",maxUserIDLength:5120,knownNotations:[],nonDeterministicSignaturesViaNotation:!0,useEllipticFallback:!0,rejectHashAlgorithms:new Set([F.hash.md5,F.hash.ripemd]),rejectMessageHashAlgorithms:new Set([F.hash.md5,F.hash.ripemd,F.hash.sha1]),rejectPublicKeyAlgorithms:new Set([F.publicKey.elgamal,F.publicKey.dsa]),rejectCurves:new Set([F.curve.secp256k1])};const H=(()=>{try{return"development"===process.env.NODE_ENV}catch(e){}return!1})(),z={isString:function(e){return"string"==typeof e||e instanceof String},nodeRequire:t.createRequire("undefined"==typeof document?require("url").pathToFileURL(__filename).href:n&&"SCRIPT"===n.tagName.toUpperCase()&&n.src||new URL("openpgp.min.cjs",document.baseURI).href),isArray:function(e){return e instanceof Array},isUint8Array:p,isStream:g,getNobleCurve:async(e,t)=>{if(!O.useEllipticFallback)throw Error("This curve is only supported in the full build of OpenPGP.js");const{nobleCurves:r}=await Promise.resolve().then((function(){return yl}));switch(e){case F.publicKey.ecdh:case F.publicKey.ecdsa:{const e=r.get(t);if(!e)throw Error("Unsupported curve");return e}case F.publicKey.x448:return r.get("x448");case F.publicKey.ed448:return r.get("ed448");default:throw Error("Unsupported curve")}},readNumber:function(e){let t=0;for(let r=0;r<e.length;r++)t+=256**r*e[e.length-1-r];return t},writeNumber:function(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e>>8*(t-n-1)&255;return r},readDate:function(e){const t=z.readNumber(e);return new Date(1e3*t)},writeDate:function(e){const t=Math.floor(e.getTime()/1e3);return z.writeNumber(t,4)},normalizeDate:function(e=Date.now()){return null===e||e===1/0?e:new Date(1e3*Math.floor(+e/1e3))},readMPI:function(e){const t=(e[0]<<8|e[1])+7>>>3;return z.readExactSubarray(e,2,2+t)},readExactSubarray:function(e,t,r){if(e.length<r-t)throw Error("Input array too short");return e.subarray(t,r)},leftPad(e,t){if(e.length>t)throw Error("Input array too long");const r=new Uint8Array(t),n=t-e.length;return r.set(e,n),r},uint8ArrayToMPI:function(e){const t=z.uint8ArrayBitLength(e);if(0===t)throw Error("Zero MPI");const r=e.subarray(e.length-Math.ceil(t/8)),n=new Uint8Array([(65280&t)>>8,255&t]);return z.concatUint8Array([n,r])},uint8ArrayBitLength:function(e){let t;for(t=0;t<e.length&&0===e[t];t++);if(t===e.length)return 0;const r=e.subarray(t);return 8*(r.length-1)+z.nbits(r[0])},hexToUint8Array:function(e){const t=new Uint8Array(e.length>>1);for(let r=0;r<e.length>>1;r++)t[r]=parseInt(e.substr(r<<1,2),16);return t},uint8ArrayToHex:function(e){const t="0123456789abcdef";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),r},stringToUint8Array:function(e){return S(e,(e=>{if(!z.isString(e))throw Error("stringToUint8Array: Data must be in the form of a string");const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}))},uint8ArrayToString:function(e){const t=[],r=16384,n=(e=new Uint8Array(e)).length;for(let i=0;i<n;i+=r)t.push(String.fromCharCode.apply(String,e.subarray(i,i+r<n?i+r:n)));return t.join("")},encodeUTF8:function(e){const t=new TextEncoder("utf-8");function r(e,r=!1){return t.encode(e,{stream:!r})}return S(e,r,(()=>r("",!0)))},decodeUTF8:function(e){const t=new TextDecoder("utf-8");function r(e,r=!1){return t.decode(e,{stream:!r})}return S(e,r,(()=>r(new Uint8Array,!0)))},concat:E,concatUint8Array:d,equalsUint8Array:function(e,t){if(!z.isUint8Array(e)||!z.isUint8Array(t))throw Error("Data must be in the form of a Uint8Array");if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0},writeChecksum:function(e){let t=0;for(let r=0;r<e.length;r++)t=t+e[r]&65535;return z.writeNumber(t,2)},printDebug:function(e){H&&console.log("[OpenPGP.js debug]",e)},printDebugError:function(e){H&&console.error("[OpenPGP.js debug]",e)},nbits:function(e){let t=1,r=e>>>16;return 0!==r&&(e=r,t+=16),r=e>>8,0!==r&&(e=r,t+=8),r=e>>4,0!==r&&(e=r,t+=4),r=e>>2,0!==r&&(e=r,t+=2),r=e>>1,0!==r&&(e=r,t+=1),t},double:function(e){const t=new Uint8Array(e.length),r=e.length-1;for(let n=0;n<r;n++)t[n]=e[n]<<1^e[n+1]>>7;return t[r]=e[r]<<1^135*(e[0]>>7),t},shiftRight:function(e,t){if(t)for(let r=e.length-1;r>=0;r--)e[r]>>=t,r>0&&(e[r]|=e[r-1]<<8-t);return e},getWebCrypto:function(){const t=void 0!==e&&e.crypto&&e.crypto.subtle||this.getNodeCrypto()?.webcrypto.subtle;if(!t)throw Error("The WebCrypto API is not available");return t},getNodeCrypto:function(){return this.nodeRequire("crypto")},getNodeZlib:function(){return this.nodeRequire("zlib")},getNodeBuffer:function(){return(this.nodeRequire("buffer")||{}).Buffer},getHardwareConcurrency:function(){if("undefined"!=typeof navigator)return navigator.hardwareConcurrency||1;return this.nodeRequire("os").cpus().length},isEmailAddress:function(e){if(!z.isString(e))return!1;return/^[^\p{C}\p{Z}@<>\\]+@[^\p{C}\p{Z}@<>\\]+[^\p{C}\p{Z}\p{P}]$/u.test(e)},canonicalizeEOL:function(e){let t=!1;return S(e,(e=>{let r;t&&(e=z.concatUint8Array([new Uint8Array([13]),e])),13===e[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;const n=[];for(let t=0;r=e.indexOf(10,t)+1,r;t=r)13!==e[r-2]&&n.push(r);if(!n.length)return e;const i=new Uint8Array(e.length+n.length);let s=0;for(let t=0;t<n.length;t++){const r=e.subarray(n[t-1]||0,n[t]);i.set(r,s),s+=r.length,i[s-1]=13,i[s]=10,s++}return i.set(e.subarray(n[n.length-1]||0),s),i}),(()=>t?new Uint8Array([13]):void 0))},nativeEOL:function(e){let t=!1;return S(e,(e=>{let r;13===(e=t&&10!==e[0]?z.concatUint8Array([new Uint8Array([13]),e]):new Uint8Array(e))[e.length-1]?(t=!0,e=e.subarray(0,-1)):t=!1;let n=0;for(let t=0;t!==e.length;t=r){r=e.indexOf(13,t)+1,r||(r=e.length);const i=r-(10===e[r]?1:0);t&&e.copyWithin(n,t,i),n+=i-t}return e.subarray(0,n)}),(()=>t?new Uint8Array([13]):void 0))},removeTrailingSpaces:function(e){return e.split("\n").map((e=>{let t=e.length-1;for(;t>=0&&(" "===e[t]||"\t"===e[t]||"\r"===e[t]);t--);return e.substr(0,t+1)})).join("\n")},wrapError:function(e,t){if(!t)return Error(e);try{t.message=e+": "+t.message}catch(e){}return t},constructAllowedPackets:function(e){const t={};return e.forEach((e=>{if(!e.tag)throw Error("Invalid input: expected a packet class");t[e.tag]=e})),t},anyPromise:function(e){return new Promise((async(t,r)=>{let n;await Promise.all(e.map((async e=>{try{t(await e)}catch(e){n=e}}))),r(n)}))},selectUint8Array:function(e,t,r){const n=Math.max(t.length,r.length),i=new Uint8Array(n);let s=0;for(let n=0;n<i.length;n++)i[n]=t[n]&256-e|r[n]&255+e,s+=e&n<t.length|1-e&n<r.length;return i.subarray(0,s)},selectUint8:function(e,t,r){return t&256-e|r&255+e},isAES:function(e){return e===F.symmetric.aes128||e===F.symmetric.aes192||e===F.symmetric.aes256}},G=z.getNodeBuffer();let _,j;function q(e){let t=new Uint8Array;return S(e,(e=>{t=z.concatUint8Array([t,e]);const r=[],n=Math.floor(t.length/45),i=45*n,s=_(t.subarray(0,i));for(let e=0;e<n;e++)r.push(s.substr(60*e,60)),r.push("\n");return t=t.subarray(i),r.join("")}),(()=>t.length?_(t)+"\n":""))}function V(e){let t="";return S(e,(e=>{t+=e;let r=0;const n=[" ","\t","\r","\n"];for(let e=0;e<n.length;e++){const i=n[e];for(let e=t.indexOf(i);-1!==e;e=t.indexOf(i,e+1))r++}let i=t.length;for(;i>0&&(i-r)%4!=0;i--)n.includes(t[i])&&r--;const s=j(t.substr(0,i));return t=t.substr(i),s}),(()=>j(t)))}function J(e){return V(e.replace(/-/g,"+").replace(/_/g,"/"))}function Y(e,t){let r=q(e).replace(/[\r\n]/g,"");return r=r.replace(/[+]/g,"-").replace(/[/]/g,"_").replace(/[=]/g,""),r}function Z(e){const t=e.match(/^-----BEGIN PGP (MESSAGE, PART \d+\/\d+|MESSAGE, PART \d+|SIGNED MESSAGE|MESSAGE|PUBLIC KEY BLOCK|PRIVATE KEY BLOCK|SIGNATURE)-----$/m);if(!t)throw Error("Unknown ASCII armor type");return/MESSAGE, PART \d+\/\d+/.test(t[1])?F.armor.multipartSection:/MESSAGE, PART \d+/.test(t[1])?F.armor.multipartLast:/SIGNED MESSAGE/.test(t[1])?F.armor.signed:/MESSAGE/.test(t[1])?F.armor.message:/PUBLIC KEY BLOCK/.test(t[1])?F.armor.publicKey:/PRIVATE KEY BLOCK/.test(t[1])?F.armor.privateKey:/SIGNATURE/.test(t[1])?F.armor.signature:void 0}function W(e,t){let r="";return t.showVersion&&(r+="Version: "+t.versionString+"\n"),t.showComment&&(r+="Comment: "+t.commentString+"\n"),e&&(r+="Comment: "+e+"\n"),r+="\n",r}function $(e){const t=function(e){let t=13501623;return S(e,(e=>{const r=ee?Math.floor(e.length/4):0,n=new Uint32Array(e.buffer,e.byteOffset,r);for(let e=0;e<r;e++)t^=n[e],t=X[0][t>>24&255]^X[1][t>>16&255]^X[2][t>>8&255]^X[3][255&t];for(let n=4*r;n<e.length;n++)t=t>>8^X[0][255&t^e[n]]}),(()=>new Uint8Array([t,t>>8,t>>16])))}(e);return q(t)}G?(_=e=>G.from(e).toString("base64"),j=e=>{const t=G.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}):(_=e=>btoa(z.uint8ArrayToString(e)),j=e=>z.stringToUint8Array(atob(e)));const X=[Array(255),Array(255),Array(255),Array(255)];for(let e=0;e<=255;e++){let t=e<<16;for(let e=0;e<8;e++)t=t<<1^(8388608&t?8801531:0);X[0][e]=(16711680&t)>>16|65280&t|(255&t)<<16}for(let e=0;e<=255;e++)X[1][e]=X[0][e]>>8^X[0][255&X[0][e]];for(let e=0;e<=255;e++)X[2][e]=X[1][e]>>8^X[0][255&X[1][e]];for(let e=0;e<=255;e++)X[3][e]=X[2][e]>>8^X[0][255&X[2][e]];const ee=function(){const e=new ArrayBuffer(2);return new DataView(e).setInt16(0,255,!0),255===new Int16Array(e)[0]}();function te(e){for(let t=0;t<e.length;t++)/^([^\s:]|[^\s:][^:]*[^\s:]): .+$/.test(e[t])||z.printDebugError(Error("Improperly formatted armor header: "+e[t])),/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(e[t])||z.printDebugError(Error("Unknown header: "+e[t]))}function re(e){let t=e;const r=e.lastIndexOf("=");return r>=0&&r!==e.length-1&&(t=e.slice(0,r)),t}function ne(e){return new Promise((async(t,r)=>{try{const n=/^-----[^-]+-----$/m,i=/^[ \f\r\t\u00a0\u2000-\u200a\u202f\u205f\u3000]*$/;let s;const a=[];let o,c,h=a,u=[];const l=V(K(e,(async(e,y)=>{const f=L(e);try{for(;;){let e=await f.readLine();if(void 0===e)throw Error("Misformed armored text");if(e=z.removeTrailingSpaces(e.replace(/[\r\n]/g,"")),s)if(o)c||s!==F.armor.signed||(n.test(e)?(u=u.join("\r\n"),c=!0,te(h),h=[],o=!1):u.push(e.replace(/^- /,"")));else if(n.test(e)&&r(Error("Mandatory blank line missing between armor headers and armor data")),i.test(e)){if(te(h),o=!0,c||s!==F.armor.signed){t({text:u,data:l,headers:a,type:s});break}}else h.push(e);else n.test(e)&&(s=Z(e))}}catch(e){return void r(e)}const g=M(y);try{for(;;){await g.ready;const{done:e,value:t}=await f.read();if(e)throw Error("Misformed armored text");const r=t+"";if(-1!==r.indexOf("=")||-1!==r.indexOf("-")){let e=await f.readToEnd();e.length||(e=""),e=r+e,e=z.removeTrailingSpaces(e.replace(/\r/g,""));const t=e.split(n);if(1===t.length)throw Error("Misformed armored text");const i=re(t[0].slice(0,-1));await g.write(i);break}await g.write(r)}await g.ready,await g.close()}catch(e){await g.abort(e)}})))}catch(e){r(e)}})).then((async e=>(y(e.data)&&(e.data=await Q(e.data)),e)))}function ie(e,t,r,n,i,s=!1,a=O){let o,c;e===F.armor.signed&&(o=t.text,c=t.hash,t=t.data);const h=s&&U(t),u=[];switch(e){case F.armor.multipartSection:u.push("-----BEGIN PGP MESSAGE, PART "+r+"/"+n+"-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP MESSAGE, PART "+r+"/"+n+"-----\n");break;case F.armor.multipartLast:u.push("-----BEGIN PGP MESSAGE, PART "+r+"-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP MESSAGE, PART "+r+"-----\n");break;case F.armor.signed:u.push("-----BEGIN PGP SIGNED MESSAGE-----\n"),u.push(c?`Hash: ${c}\n\n`:"\n"),u.push(o.replace(/^-/gm,"- -")),u.push("\n-----BEGIN PGP SIGNATURE-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP SIGNATURE-----\n");break;case F.armor.message:u.push("-----BEGIN PGP MESSAGE-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP MESSAGE-----\n");break;case F.armor.publicKey:u.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP PUBLIC KEY BLOCK-----\n");break;case F.armor.privateKey:u.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP PRIVATE KEY BLOCK-----\n");break;case F.armor.signature:u.push("-----BEGIN PGP SIGNATURE-----\n"),u.push(W(i,a)),u.push(q(t)),h&&u.push("=",$(h)),u.push("-----END PGP SIGNATURE-----\n")}return z.concat(u)}const se=BigInt(0),ae=BigInt(1);function oe(e){const t="0123456789ABCDEF";let r="";return e.forEach((e=>{r+=t[e>>4]+t[15&e]})),BigInt("0x0"+r)}function ce(e,t){const r=e%t;return r<se?r+t:r}function he(e,t,r){if(r===se)throw Error("Modulo cannot be zero");if(r===ae)return BigInt(0);if(t<se)throw Error("Unsopported negative exponent");let n=t,i=e;i%=r;let s=BigInt(1);for(;n>se;){const e=n&ae;n>>=ae;s=e?s*i%r:s,i=i*i%r}return s}function ue(e){return e>=se?e:-e}function le(e,t){const{gcd:r,x:n}=function(e,t){let r=BigInt(0),n=BigInt(1),i=BigInt(1),s=BigInt(0),a=ue(e),o=ue(t);const c=e<se,h=t<se;for(;o!==se;){const e=a/o;let t=r;r=i-e*r,i=t,t=n,n=s-e*n,s=t,t=o,o=a%o,a=t}return{x:c?-i:i,y:h?-s:s,gcd:a}}(e,t);if(r!==ae)throw Error("Inverse does not exist");return ce(n+t,t)}function ye(e){const t=Number(e);if(t>Number.MAX_SAFE_INTEGER)throw Error("Number can only safely store up to 53 bits");return t}function fe(e,t){return(e>>BigInt(t)&ae)===se?0:1}function ge(e){const t=e<se?BigInt(-1):se;let r=1,n=e;for(;(n>>=ae)!==t;)r++;return r}function pe(e){const t=e<se?BigInt(-1):se,r=BigInt(8);let n=1,i=e;for(;(i>>=r)!==t;)n++;return n}function de(e,t="be",r){let n=e.toString(16);n.length%2==1&&(n="0"+n);const i=n.length/2,s=new Uint8Array(r||i),a=r?r-i:0;let o=0;for(;o<i;)s[o+a]=parseInt(n.slice(2*o,2*o+2),16),o++;return"be"!==t&&s.reverse(),s}const Ae=z.getNodeCrypto();function we(e){const t="undefined"!=typeof crypto?crypto:Ae?.webcrypto;if(t?.getRandomValues){const r=new Uint8Array(e);return t.getRandomValues(r)}throw Error("No secure random number generator available.")}function me(e,t){if(t<e)throw Error("Illegal parameter value: max <= min");const r=t-e;return ce(oe(we(pe(r)+8)),r)+e}const be=BigInt(1);function ke(e,t,r){const n=BigInt(30),i=be<<BigInt(e-1),s=[1,6,5,4,3,2,1,4,3,2,1,2,1,4,3,2,1,2,1,4,3,2,1,6,5,4,3,2,1,2];let a=me(i,i<<be),o=ye(ce(a,n));do{a+=BigInt(s[o]),o=(o+s[o])%s.length,ge(a)>e&&(a=ce(a,i<<be),a+=i,o=ye(ce(a,n)))}while(!Ee(a,t,r));return a}function Ee(e,t,r){return(!t||function(e,t){let r=e,n=t;for(;n!==se;){const e=n;n=r%n,r=e}return r}(e-be,t)===be)&&(!!function(e){const t=BigInt(0);return ve.every((r=>ce(e,r)!==t))}(e)&&(!!function(e,t=BigInt(2)){return he(t,e-be,e)===be}(e)&&!!function(e,t){const r=ge(e);t||(t=Math.max(1,r/48|0));const n=e-be;let i=0;for(;!fe(n,i);)i++;const s=e>>BigInt(i);for(;t>0;t--){let t,r=he(me(BigInt(2),n),s,e);if(r!==be&&r!==n){for(t=1;t<i;t++){if(r=ce(r*r,e),r===be)return!1;if(r===n)break}if(t===i)return!1}}return!0}(e,r)))}const ve=[7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999].map((e=>BigInt(e)));const Ie=z.getWebCrypto(),Be=z.getNodeCrypto(),Se=Be&&Be.getHashes();function Ke(e){if(Be&&Se.includes(e))return async function(t){const r=Be.createHash(e);return S(t,(e=>{r.update(e)}),(()=>new Uint8Array(r.digest())))}}function Ce(e,t){const r=async()=>{const{nobleHashes:t}=await Promise.resolve().then((function(){return Ml})),r=t.get(e);if(!r)throw Error("Unsupported hash");return r};return async function(e){if(y(e)&&(e=await Q(e)),z.isStream(e)){const t=(await r()).create();return S(e,(e=>{t.update(e)}),(()=>t.digest()))}if(Ie&&t)return new Uint8Array(await Ie.digest(t,e));return(await r())(e)}}const De=Ke("md5")||Ce("md5"),Ue=Ke("sha1")||Ce("sha1","SHA-1"),Pe=Ke("sha224")||Ce("sha224"),xe=Ke("sha256")||Ce("sha256","SHA-256"),Qe=Ke("sha384")||Ce("sha384","SHA-384"),Re=Ke("sha512")||Ce("sha512","SHA-512"),Te=Ke("ripemd160")||Ce("ripemd160"),Le=Ke("sha3-256")||Ce("sha3_256"),Me=Ke("sha3-512")||Ce("sha3_512");function Ne(e,t){switch(e){case F.hash.md5:return De(t);case F.hash.sha1:return Ue(t);case F.hash.ripemd:return Te(t);case F.hash.sha256:return xe(t);case F.hash.sha384:return Qe(t);case F.hash.sha512:return Re(t);case F.hash.sha224:return Pe(t);case F.hash.sha3_256:return Le(t);case F.hash.sha3_512:return Me(t);default:throw Error("Unsupported hash function")}}function Fe(e){switch(e){case F.hash.md5:return 16;case F.hash.sha1:case F.hash.ripemd:return 20;case F.hash.sha256:return 32;case F.hash.sha384:return 48;case F.hash.sha512:return 64;case F.hash.sha224:return 28;case F.hash.sha3_256:return 32;case F.hash.sha3_512:return 64;default:throw Error("Invalid hash algorithm.")}}const Oe=[];function He(e,t){const r=e.length;if(r>t-11)throw Error("Message too long");const n=function(e){const t=new Uint8Array(e);let r=0;for(;r<e;){const n=we(e-r);for(let e=0;e<n.length;e++)0!==n[e]&&(t[r++]=n[e])}return t}(t-r-3),i=new Uint8Array(t);return i[1]=2,i.set(n,2),i.set(e,t-r),i}function ze(e,t){let r=2,n=1;for(let t=r;t<e.length;t++)n&=0!==e[t],r+=n;const i=r-2,s=e.subarray(r+1),a=0===e[0]&2===e[1]&i>=8&!n;if(t)return z.selectUint8Array(a,s,t);if(a)return s;throw Error("Decryption error")}function Ge(e,t,r){let n;if(t.length!==Fe(e))throw Error("Invalid hash length");const i=new Uint8Array(Oe[e].length);for(n=0;n<Oe[e].length;n++)i[n]=Oe[e][n];const s=i.length+t.length;if(r<s+11)throw Error("Intended encoded message length too short");const a=new Uint8Array(r-s-3).fill(255),o=new Uint8Array(r);return o[1]=1,o.set(a,2),o.set(i,r-s),o.set(t,r-t.length),o}Oe[1]=[48,32,48,12,6,8,42,134,72,134,247,13,2,5,5,0,4,16],Oe[2]=[48,33,48,9,6,5,43,14,3,2,26,5,0,4,20],Oe[3]=[48,33,48,9,6,5,43,36,3,2,1,5,0,4,20],Oe[8]=[48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32],Oe[9]=[48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48],Oe[10]=[48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64],Oe[11]=[48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28];const _e=z.getWebCrypto(),je=z.getNodeCrypto(),qe=BigInt(1);async function Ve(e,t,r,n,i,s,a,o,c){if(Fe(e)>=r.length)throw Error("Digest size cannot exceed key modulus size");if(t&&!z.isStream(t))if(z.getWebCrypto())try{return await async function(e,t,r,n,i,s,a,o){const c=await We(r,n,i,s,a,o),h={name:"RSASSA-PKCS1-v1_5",hash:{name:e}},u=await _e.importKey("jwk",c,h,!1,["sign"]);return new Uint8Array(await _e.sign("RSASSA-PKCS1-v1_5",u,t))}(F.read(F.webHash,e),t,r,n,i,s,a,o)}catch(e){z.printDebugError(e)}else if(z.getNodeCrypto())return async function(e,t,r,n,i,s,a,o){const c=je.createSign(F.read(F.hash,e));c.write(t),c.end();const h=await We(r,n,i,s,a,o);return new Uint8Array(c.sign({key:h,format:"jwk",type:"pkcs1"}))}(e,t,r,n,i,s,a,o);return async function(e,t,r,n){t=oe(t);const i=oe(Ge(e,n,pe(t)));return r=oe(r),de(he(i,r,t),"be",pe(t))}(e,r,i,c)}async function Je(e,t,r,n,i,s){if(t&&!z.isStream(t))if(z.getWebCrypto())try{return await async function(e,t,r,n,i){const s=$e(n,i),a=await _e.importKey("jwk",s,{name:"RSASSA-PKCS1-v1_5",hash:{name:e}},!1,["verify"]);return _e.verify("RSASSA-PKCS1-v1_5",a,r,t)}(F.read(F.webHash,e),t,r,n,i)}catch(e){z.printDebugError(e)}else if(z.getNodeCrypto())return async function(e,t,r,n,i){const s=$e(n,i),a={key:s,format:"jwk",type:"pkcs1"},o=je.createVerify(F.read(F.hash,e));o.write(t),o.end();try{return o.verify(a,r)}catch(e){return!1}}(e,t,r,n,i);return async function(e,t,r,n,i){if(r=oe(r),t=oe(t),n=oe(n),t>=r)throw Error("Signature size cannot exceed modulus size");const s=de(he(t,n,r),"be",pe(r)),a=Ge(e,i,pe(r));return z.equalsUint8Array(s,a)}(e,r,n,i,s)}async function Ye(e,t,r){return z.getNodeCrypto()?async function(e,t,r){const n=$e(t,r),i={key:n,format:"jwk",type:"pkcs1",padding:je.constants.RSA_PKCS1_PADDING};return new Uint8Array(je.publicEncrypt(i,e))}(e,t,r):async function(e,t,r){if(t=oe(t),e=oe(He(e,pe(t))),r=oe(r),e>=t)throw Error("Message size cannot exceed modulus size");return de(he(e,r,t),"be",pe(t))}(e,t,r)}async function Ze(e,t,r,n,i,s,a,o){if(z.getNodeCrypto()&&!o)try{return await async function(e,t,r,n,i,s,a){const o=await We(t,r,n,i,s,a),c={key:o,format:"jwk",type:"pkcs1",padding:je.constants.RSA_PKCS1_PADDING};try{return new Uint8Array(je.privateDecrypt(c,e))}catch(e){throw Error("Decryption error")}}(e,t,r,n,i,s,a)}catch(e){z.printDebugError(e)}return async function(e,t,r,n,i,s,a,o){if(e=oe(e),t=oe(t),r=oe(r),n=oe(n),i=oe(i),s=oe(s),a=oe(a),e>=t)throw Error("Data too large.");const c=ce(n,s-qe),h=ce(n,i-qe),u=me(BigInt(2),t),l=he(le(u,t),r,t);e=ce(e*l,t);const y=he(e,h,i),f=he(e,c,s),g=ce(a*(f-y),s);let p=g*i+y;return p=ce(p*u,t),ze(de(p,"be",pe(t)),o)}(e,t,r,n,i,s,a,o)}async function We(e,t,r,n,i,s){const a=oe(n),o=oe(i),c=oe(r);let h=ce(c,o-qe),u=ce(c,a-qe);return u=de(u),h=de(h),{kty:"RSA",n:Y(e),e:Y(t),d:Y(r),p:Y(i),q:Y(n),dp:Y(h),dq:Y(u),qi:Y(s),ext:!0}}function $e(e,t){return{kty:"RSA",n:Y(e),e:Y(t),ext:!0}}function Xe(e,t){return{n:J(e.n),e:de(t),d:J(e.d),p:J(e.q),q:J(e.p),u:J(e.qi)}}const et=BigInt(1);const tt=a&&"object"==typeof a&&"webcrypto"in a?a.webcrypto:void 0,rt={};var nt=function(e){var t,r=new Float64Array(16);if(e)for(t=0;t<e.length;t++)r[t]=e[t];return r},it=function(){throw Error("no PRNG")},st=new Uint8Array(32);st[0]=9;var at=nt(),ot=nt([1]),ct=nt([56129,1]),ht=nt([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),ut=nt([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),lt=nt([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),yt=nt([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),ft=nt([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function gt(e,t,r,n){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r,e[t+4]=n>>24&255,e[t+5]=n>>16&255,e[t+6]=n>>8&255,e[t+7]=255&n}function pt(e,t,r,n){return function(e,t,r,n,i){var s,a=0;for(s=0;s<i;s++)a|=e[t+s]^r[n+s];return(1&a-1>>>8)-1}(e,t,r,n,32)}function dt(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function At(e){var t,r,n=1;for(t=0;t<16;t++)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function wt(e,t,r){for(var n,i=~(r-1),s=0;s<16;s++)n=i&(e[s]^t[s]),e[s]^=n,t[s]^=n}function mt(e,t){var r,n,i,s=nt(),a=nt();for(r=0;r<16;r++)a[r]=t[r];for(At(a),At(a),At(a),n=0;n<2;n++){for(s[0]=a[0]-65517,r=1;r<15;r++)s[r]=a[r]-65535-(s[r-1]>>16&1),s[r-1]&=65535;s[15]=a[15]-32767-(s[14]>>16&1),i=s[15]>>16&1,s[14]&=65535,wt(a,s,1-i)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function bt(e,t){var r=new Uint8Array(32),n=new Uint8Array(32);return mt(r,e),mt(n,t),pt(r,0,n,0)}function kt(e){var t=new Uint8Array(32);return mt(t,e),1&t[0]}function Et(e,t){var r;for(r=0;r<16;r++)e[r]=t[2*r]+(t[2*r+1]<<8);e[15]&=32767}function vt(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]+r[n]}function It(e,t,r){for(var n=0;n<16;n++)e[n]=t[n]-r[n]}function Bt(e,t,r){var n,i,s=0,a=0,o=0,c=0,h=0,u=0,l=0,y=0,f=0,g=0,p=0,d=0,A=0,w=0,m=0,b=0,k=0,E=0,v=0,I=0,B=0,S=0,K=0,C=0,D=0,U=0,P=0,x=0,Q=0,R=0,T=0,L=r[0],M=r[1],N=r[2],F=r[3],O=r[4],H=r[5],z=r[6],G=r[7],_=r[8],j=r[9],q=r[10],V=r[11],J=r[12],Y=r[13],Z=r[14],W=r[15];s+=(n=t[0])*L,a+=n*M,o+=n*N,c+=n*F,h+=n*O,u+=n*H,l+=n*z,y+=n*G,f+=n*_,g+=n*j,p+=n*q,d+=n*V,A+=n*J,w+=n*Y,m+=n*Z,b+=n*W,a+=(n=t[1])*L,o+=n*M,c+=n*N,h+=n*F,u+=n*O,l+=n*H,y+=n*z,f+=n*G,g+=n*_,p+=n*j,d+=n*q,A+=n*V,w+=n*J,m+=n*Y,b+=n*Z,k+=n*W,o+=(n=t[2])*L,c+=n*M,h+=n*N,u+=n*F,l+=n*O,y+=n*H,f+=n*z,g+=n*G,p+=n*_,d+=n*j,A+=n*q,w+=n*V,m+=n*J,b+=n*Y,k+=n*Z,E+=n*W,c+=(n=t[3])*L,h+=n*M,u+=n*N,l+=n*F,y+=n*O,f+=n*H,g+=n*z,p+=n*G,d+=n*_,A+=n*j,w+=n*q,m+=n*V,b+=n*J,k+=n*Y,E+=n*Z,v+=n*W,h+=(n=t[4])*L,u+=n*M,l+=n*N,y+=n*F,f+=n*O,g+=n*H,p+=n*z,d+=n*G,A+=n*_,w+=n*j,m+=n*q,b+=n*V,k+=n*J,E+=n*Y,v+=n*Z,I+=n*W,u+=(n=t[5])*L,l+=n*M,y+=n*N,f+=n*F,g+=n*O,p+=n*H,d+=n*z,A+=n*G,w+=n*_,m+=n*j,b+=n*q,k+=n*V,E+=n*J,v+=n*Y,I+=n*Z,B+=n*W,l+=(n=t[6])*L,y+=n*M,f+=n*N,g+=n*F,p+=n*O,d+=n*H,A+=n*z,w+=n*G,m+=n*_,b+=n*j,k+=n*q,E+=n*V,v+=n*J,I+=n*Y,B+=n*Z,S+=n*W,y+=(n=t[7])*L,f+=n*M,g+=n*N,p+=n*F,d+=n*O,A+=n*H,w+=n*z,m+=n*G,b+=n*_,k+=n*j,E+=n*q,v+=n*V,I+=n*J,B+=n*Y,S+=n*Z,K+=n*W,f+=(n=t[8])*L,g+=n*M,p+=n*N,d+=n*F,A+=n*O,w+=n*H,m+=n*z,b+=n*G,k+=n*_,E+=n*j,v+=n*q,I+=n*V,B+=n*J,S+=n*Y,K+=n*Z,C+=n*W,g+=(n=t[9])*L,p+=n*M,d+=n*N,A+=n*F,w+=n*O,m+=n*H,b+=n*z,k+=n*G,E+=n*_,v+=n*j,I+=n*q,B+=n*V,S+=n*J,K+=n*Y,C+=n*Z,D+=n*W,p+=(n=t[10])*L,d+=n*M,A+=n*N,w+=n*F,m+=n*O,b+=n*H,k+=n*z,E+=n*G,v+=n*_,I+=n*j,B+=n*q,S+=n*V,K+=n*J,C+=n*Y,D+=n*Z,U+=n*W,d+=(n=t[11])*L,A+=n*M,w+=n*N,m+=n*F,b+=n*O,k+=n*H,E+=n*z,v+=n*G,I+=n*_,B+=n*j,S+=n*q,K+=n*V,C+=n*J,D+=n*Y,U+=n*Z,P+=n*W,A+=(n=t[12])*L,w+=n*M,m+=n*N,b+=n*F,k+=n*O,E+=n*H,v+=n*z,I+=n*G,B+=n*_,S+=n*j,K+=n*q,C+=n*V,D+=n*J,U+=n*Y,P+=n*Z,x+=n*W,w+=(n=t[13])*L,m+=n*M,b+=n*N,k+=n*F,E+=n*O,v+=n*H,I+=n*z,B+=n*G,S+=n*_,K+=n*j,C+=n*q,D+=n*V,U+=n*J,P+=n*Y,x+=n*Z,Q+=n*W,m+=(n=t[14])*L,b+=n*M,k+=n*N,E+=n*F,v+=n*O,I+=n*H,B+=n*z,S+=n*G,K+=n*_,C+=n*j,D+=n*q,U+=n*V,P+=n*J,x+=n*Y,Q+=n*Z,R+=n*W,b+=(n=t[15])*L,a+=38*(E+=n*N),o+=38*(v+=n*F),c+=38*(I+=n*O),h+=38*(B+=n*H),u+=38*(S+=n*z),l+=38*(K+=n*G),y+=38*(C+=n*_),f+=38*(D+=n*j),g+=38*(U+=n*q),p+=38*(P+=n*V),d+=38*(x+=n*J),A+=38*(Q+=n*Y),w+=38*(R+=n*Z),m+=38*(T+=n*W),s=(n=(s+=38*(k+=n*M))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s=(n=(s+=i-1+37*(i-1))+(i=1)+65535)-65536*(i=Math.floor(n/65536)),a=(n=a+i+65535)-65536*(i=Math.floor(n/65536)),o=(n=o+i+65535)-65536*(i=Math.floor(n/65536)),c=(n=c+i+65535)-65536*(i=Math.floor(n/65536)),h=(n=h+i+65535)-65536*(i=Math.floor(n/65536)),u=(n=u+i+65535)-65536*(i=Math.floor(n/65536)),l=(n=l+i+65535)-65536*(i=Math.floor(n/65536)),y=(n=y+i+65535)-65536*(i=Math.floor(n/65536)),f=(n=f+i+65535)-65536*(i=Math.floor(n/65536)),g=(n=g+i+65535)-65536*(i=Math.floor(n/65536)),p=(n=p+i+65535)-65536*(i=Math.floor(n/65536)),d=(n=d+i+65535)-65536*(i=Math.floor(n/65536)),A=(n=A+i+65535)-65536*(i=Math.floor(n/65536)),w=(n=w+i+65535)-65536*(i=Math.floor(n/65536)),m=(n=m+i+65535)-65536*(i=Math.floor(n/65536)),b=(n=b+i+65535)-65536*(i=Math.floor(n/65536)),s+=i-1+37*(i-1),e[0]=s,e[1]=a,e[2]=o,e[3]=c,e[4]=h,e[5]=u,e[6]=l,e[7]=y,e[8]=f,e[9]=g,e[10]=p,e[11]=d,e[12]=A,e[13]=w,e[14]=m,e[15]=b}function St(e,t){Bt(e,t,t)}function Kt(e,t){var r,n=nt();for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)St(n,n),2!==r&&4!==r&&Bt(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function Ct(e,t,r){var n,i,s=new Uint8Array(32),a=new Float64Array(80),o=nt(),c=nt(),h=nt(),u=nt(),l=nt(),y=nt();for(i=0;i<31;i++)s[i]=t[i];for(s[31]=127&t[31]|64,s[0]&=248,Et(a,r),i=0;i<16;i++)c[i]=a[i],u[i]=o[i]=h[i]=0;for(o[0]=u[0]=1,i=254;i>=0;--i)wt(o,c,n=s[i>>>3]>>>(7&i)&1),wt(h,u,n),vt(l,o,h),It(o,o,h),vt(h,c,u),It(c,c,u),St(u,l),St(y,o),Bt(o,h,o),Bt(h,c,l),vt(l,o,h),It(o,o,h),St(c,o),It(h,u,y),Bt(o,h,ct),vt(o,o,u),Bt(h,h,o),Bt(o,u,y),Bt(u,c,a),St(c,l),wt(o,c,n),wt(h,u,n);for(i=0;i<16;i++)a[i+16]=o[i],a[i+32]=h[i],a[i+48]=c[i],a[i+64]=u[i];var f=a.subarray(32),g=a.subarray(16);return Kt(f,f),Bt(g,g,f),mt(e,g),0}function Dt(e,t){return Ct(e,t,st)}var Ut=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Pt(e,t,r,n){for(var i,s,a,o,c,h,u,l,y,f,g,p,d,A,w,m,b,k,E,v,I,B,S,K,C,D,U=new Int32Array(16),P=new Int32Array(16),x=e[0],Q=e[1],R=e[2],T=e[3],L=e[4],M=e[5],N=e[6],F=e[7],O=t[0],H=t[1],z=t[2],G=t[3],_=t[4],j=t[5],q=t[6],V=t[7],J=0;n>=128;){for(E=0;E<16;E++)v=8*E+J,U[E]=r[v+0]<<24|r[v+1]<<16|r[v+2]<<8|r[v+3],P[E]=r[v+4]<<24|r[v+5]<<16|r[v+6]<<8|r[v+7];for(E=0;E<80;E++)if(i=x,s=Q,a=R,o=T,c=L,h=M,u=N,F,y=O,f=H,g=z,p=G,d=_,A=j,w=q,V,S=65535&(B=V),K=B>>>16,C=65535&(I=F),D=I>>>16,S+=65535&(B=(_>>>14|L<<18)^(_>>>18|L<<14)^(L>>>9|_<<23)),K+=B>>>16,C+=65535&(I=(L>>>14|_<<18)^(L>>>18|_<<14)^(_>>>9|L<<23)),D+=I>>>16,S+=65535&(B=_&j^~_&q),K+=B>>>16,C+=65535&(I=L&M^~L&N),D+=I>>>16,I=Ut[2*E],S+=65535&(B=Ut[2*E+1]),K+=B>>>16,C+=65535&I,D+=I>>>16,I=U[E%16],K+=(B=P[E%16])>>>16,C+=65535&I,D+=I>>>16,C+=(K+=(S+=65535&B)>>>16)>>>16,S=65535&(B=k=65535&S|K<<16),K=B>>>16,C=65535&(I=b=65535&C|(D+=C>>>16)<<16),D=I>>>16,S+=65535&(B=(O>>>28|x<<4)^(x>>>2|O<<30)^(x>>>7|O<<25)),K+=B>>>16,C+=65535&(I=(x>>>28|O<<4)^(O>>>2|x<<30)^(O>>>7|x<<25)),D+=I>>>16,K+=(B=O&H^O&z^H&z)>>>16,C+=65535&(I=x&Q^x&R^Q&R),D+=I>>>16,l=65535&(C+=(K+=(S+=65535&B)>>>16)>>>16)|(D+=C>>>16)<<16,m=65535&S|K<<16,S=65535&(B=p),K=B>>>16,C=65535&(I=o),D=I>>>16,K+=(B=k)>>>16,C+=65535&(I=b),D+=I>>>16,Q=i,R=s,T=a,L=o=65535&(C+=(K+=(S+=65535&B)>>>16)>>>16)|(D+=C>>>16)<<16,M=c,N=h,F=u,x=l,H=y,z=f,G=g,_=p=65535&S|K<<16,j=d,q=A,V=w,O=m,E%16==15)for(v=0;v<16;v++)I=U[v],S=65535&(B=P[v]),K=B>>>16,C=65535&I,D=I>>>16,I=U[(v+9)%16],S+=65535&(B=P[(v+9)%16]),K+=B>>>16,C+=65535&I,D+=I>>>16,b=U[(v+1)%16],S+=65535&(B=((k=P[(v+1)%16])>>>1|b<<31)^(k>>>8|b<<24)^(k>>>7|b<<25)),K+=B>>>16,C+=65535&(I=(b>>>1|k<<31)^(b>>>8|k<<24)^b>>>7),D+=I>>>16,b=U[(v+14)%16],K+=(B=((k=P[(v+14)%16])>>>19|b<<13)^(b>>>29|k<<3)^(k>>>6|b<<26))>>>16,C+=65535&(I=(b>>>19|k<<13)^(k>>>29|b<<3)^b>>>6),D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,U[v]=65535&C|D<<16,P[v]=65535&S|K<<16;S=65535&(B=O),K=B>>>16,C=65535&(I=x),D=I>>>16,I=e[0],K+=(B=t[0])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[0]=x=65535&C|D<<16,t[0]=O=65535&S|K<<16,S=65535&(B=H),K=B>>>16,C=65535&(I=Q),D=I>>>16,I=e[1],K+=(B=t[1])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[1]=Q=65535&C|D<<16,t[1]=H=65535&S|K<<16,S=65535&(B=z),K=B>>>16,C=65535&(I=R),D=I>>>16,I=e[2],K+=(B=t[2])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[2]=R=65535&C|D<<16,t[2]=z=65535&S|K<<16,S=65535&(B=G),K=B>>>16,C=65535&(I=T),D=I>>>16,I=e[3],K+=(B=t[3])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[3]=T=65535&C|D<<16,t[3]=G=65535&S|K<<16,S=65535&(B=_),K=B>>>16,C=65535&(I=L),D=I>>>16,I=e[4],K+=(B=t[4])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[4]=L=65535&C|D<<16,t[4]=_=65535&S|K<<16,S=65535&(B=j),K=B>>>16,C=65535&(I=M),D=I>>>16,I=e[5],K+=(B=t[5])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[5]=M=65535&C|D<<16,t[5]=j=65535&S|K<<16,S=65535&(B=q),K=B>>>16,C=65535&(I=N),D=I>>>16,I=e[6],K+=(B=t[6])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[6]=N=65535&C|D<<16,t[6]=q=65535&S|K<<16,S=65535&(B=V),K=B>>>16,C=65535&(I=F),D=I>>>16,I=e[7],K+=(B=t[7])>>>16,C+=65535&I,D+=I>>>16,D+=(C+=(K+=(S+=65535&B)>>>16)>>>16)>>>16,e[7]=F=65535&C|D<<16,t[7]=V=65535&S|K<<16,J+=128,n-=128}return n}function xt(e,t,r){var n,i=new Int32Array(8),s=new Int32Array(8),a=new Uint8Array(256),o=r;for(i[0]=1779033703,i[1]=3144134277,i[2]=1013904242,i[3]=2773480762,i[4]=1359893119,i[5]=2600822924,i[6]=528734635,i[7]=1541459225,s[0]=4089235720,s[1]=2227873595,s[2]=4271175723,s[3]=1595750129,s[4]=2917565137,s[5]=725511199,s[6]=4215389547,s[7]=327033209,Pt(i,s,t,r),r%=128,n=0;n<r;n++)a[n]=t[o-r+n];for(a[r]=128,a[(r=256-128*(r<112?1:0))-9]=0,gt(a,r-8,o/536870912|0,o<<3),Pt(i,s,a,r),n=0;n<8;n++)gt(e,8*n,i[n],s[n]);return 0}function Qt(e,t){var r=nt(),n=nt(),i=nt(),s=nt(),a=nt(),o=nt(),c=nt(),h=nt(),u=nt();It(r,e[1],e[0]),It(u,t[1],t[0]),Bt(r,r,u),vt(n,e[0],e[1]),vt(u,t[0],t[1]),Bt(n,n,u),Bt(i,e[3],t[3]),Bt(i,i,ut),Bt(s,e[2],t[2]),vt(s,s,s),It(a,n,r),It(o,s,i),vt(c,s,i),vt(h,n,r),Bt(e[0],a,o),Bt(e[1],h,c),Bt(e[2],c,o),Bt(e[3],a,h)}function Rt(e,t,r){var n;for(n=0;n<4;n++)wt(e[n],t[n],r)}function Tt(e,t){var r=nt(),n=nt(),i=nt();Kt(i,t[2]),Bt(r,t[0],i),Bt(n,t[1],i),mt(e,n),e[31]^=kt(r)<<7}function Lt(e,t,r){var n,i;for(dt(e[0],at),dt(e[1],ot),dt(e[2],ot),dt(e[3],at),i=255;i>=0;--i)Rt(e,t,n=r[i/8|0]>>(7&i)&1),Qt(t,e),Qt(e,e),Rt(e,t,n)}function Mt(e,t){var r=[nt(),nt(),nt(),nt()];dt(r[0],lt),dt(r[1],yt),dt(r[2],ot),Bt(r[3],lt,yt),Lt(e,r,t)}function Nt(e,t,r){var n,i=new Uint8Array(64),s=[nt(),nt(),nt(),nt()];for(r||it(t,32),xt(i,t,32),i[0]&=248,i[31]&=127,i[31]|=64,Mt(s,i),Tt(e,s),n=0;n<32;n++)t[n+32]=e[n];re