Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

friendly-challenge

Package Overview
Dependencies
Maintainers
2
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

friendly-challenge - npm Package Compare versions

Comparing version 0.9.16 to 0.9.17

17

index.js

@@ -54,3 +54,3 @@ // Adapted from the base64-arraybuffer package implementation

var css = '.frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:px;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;min-width:250px;max-width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.frc-rtl{direction:rtl}.frc-rtl .frc-content{margin:4px 0 0 6px}.frc-banner.frc-rtl{left:6px;right:auto}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}';
var css = '.frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:0;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;min-width:250px;max-width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.frc-rtl{direction:rtl}.frc-rtl .frc-content{margin:4px 0 0 6px}.frc-banner.frc-rtl{left:6px;right:auto}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}';

@@ -226,3 +226,3 @@ // This is not an enum to save some bytes in the output bundle.

try {
const response = await fetchAndRetryWithBackoff(urls[i] + "?sitekey=" + siteKey, { headers: [["x-frc-client", "js-0.9.16"]], mode: "cors" }, 2);
const response = await fetchAndRetryWithBackoff(urls[i] + "?sitekey=" + siteKey, { headers: [["x-frc-client", "js-0.9.17"]], mode: "cors" }, 2);
if (response.ok) {

@@ -849,3 +849,3 @@ const json = await response.json();

var workerString = "!function(){\"use strict\";const A=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",I=\"=\".charCodeAt(0),g=new Uint8Array(256);for(let I=0;I<A.length;I++)g[A.charCodeAt(I)]=I;function C(A){const I={},g=A.exports,C=g.memory,Q=g.__alloc,t=g.__retain,B=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(B+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),o=I.length,i=Q(o<<e,0),r=Q(12,A),n=new Uint32Array(C.buffer);n[r+0>>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<o;++A)s[(i>>>e)+A]=t(I[A]);else s.set(I,i>>>e);return r},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const Q=A[C],t=C.split(\".\")[0];\"function\"==typeof Q&&Q!==g?(I[t]=(...A)=>(g(A.length),Q(...A))).original=Q:I[t]=Q}return I}(g,I)}class Q{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function t(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function B(A,I,g,C,Q,t,B,e){const o=I[B],i=I[B+1],r=I[e],n=I[e+1];let E,s,w,c,a=A[g],D=A[g+1],h=A[C],f=A[C+1],y=A[Q],l=A[Q+1],u=A[t],N=A[t+1];E=a+h,s=(a&h|(a|h)&~E)>>>31,a=E,D=D+f+s,E=a+o,s=(a&o|(a|o)&~E)>>>31,a=E,D=D+i+s,w=u^a,c=N^D,u=c,N=w,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=h^y,c=f^l,h=w>>>24^c<<8,f=c>>>24^w<<8,E=a+h,s=(a&h|(a|h)&~E)>>>31,a=E,D=D+f+s,E=a+r,s=(a&r|(a|r)&~E)>>>31,a=E,D=D+n+s,w=u^a,c=N^D,u=w>>>16^c<<16,N=c>>>16^w<<16,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=h^y,c=f^l,h=c>>>31^w<<1,f=w>>>31^c<<1,A[g]=a,A[g+1]=D,A[C]=h,A[C+1]=f,A[Q]=y,A[Q+1]=l,A[t]=u,A[t+1]=N}const e=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],o=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function i(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=e[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=t(A.b,4*I);for(let A=0;A<12;A++)B(g,C,0,8,16,24,o[16*A+0],o[16*A+1]),B(g,C,2,10,18,26,o[16*A+2],o[16*A+3]),B(g,C,4,12,20,28,o[16*A+4],o[16*A+5]),B(g,C,6,14,22,30,o[16*A+6],o[16*A+7]),B(g,C,0,10,20,30,o[16*A+8],o[16*A+9]),B(g,C,2,12,22,24,o[16*A+10],o[16*A+11]),B(g,C,4,14,16,26,o[16*A+12],o[16*A+13]),B(g,C,6,8,18,28,o[16*A+14],o[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function r(A,I){for(let I=0;I<16;I++)A.h[I]=e[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function n(){return(A,I,g=4294967295)=>{const C=function(A,I,g){if(128!=A.length)throw Error(\"Invalid input\");const C=A.buffer,t=new DataView(C),B=new Q(32);B.t=128;const e=t.getUint32(124,!0),o=e+g;for(let g=e;g<o;g++)if(t.setUint32(124,g,!0),r(B,A),i(B,!0),B.h[0]<I)return 0==ASC_TARGET?new Uint8Array(B.h.buffer):Uint8Array.wrap(B.h.buffer);return new Uint8Array(0)}(A,I,g);return[A,C]}}let E,s;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,\"slice\",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const w=new Promise((A=>s=A));self.onerror=A=>{self.postMessage({type:\"error\",message:JSON.stringify(A)})},self.onmessage=async A=>{const Q=A.data;try{if(\"solver\"===Q.type){if(Q.forceJS){E=1;const A=await n();s(A)}else try{E=2;const A=WebAssembly.compile(function(A){const C=A.length;let Q=3*C>>>2;A.charCodeAt(C-1)===I&&Q--,A.charCodeAt(C-2)===I&&Q--;const t=new Uint8Array(Q);for(let I=0,Q=0;I<C;I+=4){const C=g[A.charCodeAt(I+0)],B=g[A.charCodeAt(I+1)],e=g[A.charCodeAt(I+2)],o=g[A.charCodeAt(I+3)];t[Q++]=C<<2|B>>4,t[Q++]=(15&B)<<4|e>>2,t[Q++]=(3&e)<<6|63&o}return t}(\"AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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\")),Q=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error(\"Wasm aborted\")}}};return{exports:C(await WebAssembly.instantiate(A,I))}}(A),g=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let Q=I.exports.__getUint8Array(g);return(A,C,t=4294967295)=>{Q.set(A);const B=I.exports.solveBlake2b(g,C,t);Q=I.exports.__getUint8Array(g);const e=I.exports.__getUint8Array(B);return I.exports.__release(B),[Q,e]}}(await A);s(Q)}catch(A){console.log(\"FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: \"+A.toString()),E=1;const I=await n();s(I)}self.postMessage({type:\"ready\",solver:E})}else if(\"start\"===Q.type){const A=await w;self.postMessage({type:\"started\"});let I,g=0;for(let C=0;C<256;C++){Q.puzzleSolverInput[123]=C;const[t,B]=A(Q.puzzleSolverInput,Q.threshold);if(0!==B.length){I=t;break}console.warn(\"FC: Internal error or no solution found\"),g+=Math.pow(2,32)-1}g+=new DataView(I.slice(-4).buffer).getUint32(0,!0),self.postMessage({type:\"done\",solution:I.slice(-8),h:g,puzzleIndex:Q.puzzleIndex,puzzleNumber:Q.puzzleNumber})}}catch(A){setTimeout((()=>{throw A}))}}}();";
var workerString = "!function(){\"use strict\";const A=\"=\".charCodeAt(0),I=new Uint8Array(256);for(let A=0;A<64;A++)I[\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".charCodeAt(A)]=A;function g(A){const I={},g=A.exports,C=g.memory,Q=g.__alloc,t=g.__retain,B=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(B+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),o=I.length,i=Q(o<<e,0),r=Q(12,A),n=new Uint32Array(C.buffer);n[r+0>>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<o;++A)s[(i>>>e)+A]=t(I[A]);else s.set(I,i>>>e);return r},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const Q=A[C],t=C.split(\".\")[0];\"function\"==typeof Q&&Q!==g?(I[t]=(...A)=>(g(A.length),Q(...A))).original=Q:I[t]=Q}return I}(g,I)}class C{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function Q(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function t(A,I,g,C,Q,t,B,e){const o=I[B],i=I[B+1],r=I[e],n=I[e+1];let E,s,w,a,c=A[g],D=A[g+1],f=A[C],h=A[C+1],y=A[Q],l=A[Q+1],u=A[t],N=A[t+1];E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+o,s=(c&o|(c|o)&~E)>>>31,c=E,D=D+i+s,w=u^c,a=N^D,u=a,N=w,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=f^y,a=h^l,f=w>>>24^a<<8,h=a>>>24^w<<8,E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+r,s=(c&r|(c|r)&~E)>>>31,c=E,D=D+n+s,w=u^c,a=N^D,u=w>>>16^a<<16,N=a>>>16^w<<16,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=f^y,a=h^l,f=a>>>31^w<<1,h=w>>>31^a<<1,A[g]=c,A[g+1]=D,A[C]=f,A[C+1]=h,A[Q]=y,A[Q+1]=l,A[t]=u,A[t+1]=N}const B=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],e=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function o(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=B[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=Q(A.b,4*I);for(let A=0;A<12;A++)t(g,C,0,8,16,24,e[16*A+0],e[16*A+1]),t(g,C,2,10,18,26,e[16*A+2],e[16*A+3]),t(g,C,4,12,20,28,e[16*A+4],e[16*A+5]),t(g,C,6,14,22,30,e[16*A+6],e[16*A+7]),t(g,C,0,10,20,30,e[16*A+8],e[16*A+9]),t(g,C,2,12,22,24,e[16*A+10],e[16*A+11]),t(g,C,4,14,16,26,e[16*A+12],e[16*A+13]),t(g,C,6,8,18,28,e[16*A+14],e[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function i(A,I){for(let I=0;I<16;I++)A.h[I]=B[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function r(){return(A,I,g=4294967295)=>{const Q=function(A,I,g){if(128!=A.length)throw Error(\"Invalid input\");const Q=A.buffer,t=new DataView(Q),B=new C(32);B.t=128;const e=t.getUint32(124,!0),r=e+g;for(let g=e;g<r;g++)if(t.setUint32(124,g,!0),i(B,A),o(B,!0),B.h[0]<I)return 0==ASC_TARGET?new Uint8Array(B.h.buffer):Uint8Array.wrap(B.h.buffer);return new Uint8Array(0)}(A,I,g);return[A,Q]}}let n,E;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,\"slice\",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const s=new Promise((A=>E=A));self.onerror=A=>{self.postMessage({type:\"error\",message:JSON.stringify(A)})},self.onmessage=async C=>{const Q=C.data;try{if(\"solver\"===Q.type){if(Q.forceJS){n=1;const A=await r();E(A)}else try{n=2;const C=WebAssembly.compile(function(g){let C=3285;g.charCodeAt(4379)===A&&C--,g.charCodeAt(4378)===A&&C--;const Q=new Uint8Array(C);for(let A=0,C=0;A<4380;A+=4){const t=I[g.charCodeAt(A+0)],B=I[g.charCodeAt(A+1)],e=I[g.charCodeAt(A+2)],o=I[g.charCodeAt(A+3)];Q[C++]=t<<2|B>>4,Q[C++]=(15&B)<<4|e>>2,Q[C++]=(3&e)<<6|63&o}return Q}(\"AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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\")),Q=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error(\"Wasm aborted\")}}};return{exports:g(await WebAssembly.instantiate(A,I))}}(A),C=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let Q=I.exports.__getUint8Array(C);return(A,g,t=4294967295)=>{Q.set(A);const B=I.exports.solveBlake2b(C,g,t);Q=I.exports.__getUint8Array(C);const e=I.exports.__getUint8Array(B);return I.exports.__release(B),[Q,e]}}(await C);E(Q)}catch(A){console.log(\"FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: \"+A.toString()),n=1;const I=await r();E(I)}self.postMessage({type:\"ready\",solver:n})}else if(\"start\"===Q.type){const A=await s;self.postMessage({type:\"started\"});let I,g=0;for(let C=0;C<256;C++){Q.puzzleSolverInput[123]=C;const[t,B]=A(Q.puzzleSolverInput,Q.threshold);if(0!==B.length){I=t;break}console.warn(\"FC: Internal error or no solution found\"),g+=Math.pow(2,32)-1}g+=new DataView(I.slice(-4).buffer).getUint32(0,!0),self.postMessage({type:\"done\",solution:I.slice(-8),h:g,puzzleIndex:Q.puzzleIndex,puzzleNumber:Q.puzzleNumber})}}catch(A){setTimeout((()=>{throw A}))}}}();";

@@ -872,2 +872,3 @@ // Defensive init to make it easier to integrate with Gatsby and friends.

this.solverType = 1;
this.readyPromise = new Promise(() => { });
this.readyCount = 0;

@@ -885,2 +886,4 @@ this.startCount = 0;

this.totalHashes = 0;
let setReady;
this.readyPromise = new Promise((resolve) => (setReady = resolve));
this.readyCount = 0;

@@ -903,2 +906,3 @@ this.startCount = 0;

if (this.readyCount == this.workers.length) {
setReady();
this.readyCallback();

@@ -961,3 +965,4 @@ }

}
start(puzzle) {
async start(puzzle) {
await this.readyPromise;
this.puzzleSolverInputs = getPuzzleSolverInputs(puzzle.buffer, puzzle.n);

@@ -1068,3 +1073,3 @@ this.solutionBuffer = new Uint8Array(8 * puzzle.n);

let l = localizations[langCode];
if (l === undefined && langCode[2] === '-') {
if (l === undefined && langCode[2] === "-") {
// Language has a locale '-' separator, remove it and try again

@@ -1189,3 +1194,3 @@ langCode = langCode.substring(0, 2);

}
this.workerGroup.start(this.puzzle);
await this.workerGroup.start(this.puzzle);
}

@@ -1192,0 +1197,0 @@ /**

{
"name": "friendly-challenge",
"version": "0.9.16",
"version": "0.9.17",
"description": "The client code used for FriendlyCaptcha (widget script, html, styling and webworker solvers)",

@@ -41,5 +41,6 @@ "keywords": [

"devDependencies": {
"@babel/cli": "^7.14.5",
"@babel/cli": "^7.24.7",
"@babel/core": "^7.10.4",
"@babel/plugin-transform-block-scoped-functions": "^7.10.4",
"@babel/plugin-transform-class-properties": "^7.24.7",
"@babel/plugin-transform-runtime": "^7.10.4",

@@ -54,3 +55,2 @@ "@babel/preset-env": "^7.10.4",

"babel-plugin-class-properties": "^1.0.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",

@@ -57,0 +57,0 @@ "babel-plugin-transform-hoist-nested-functions": "^1.2.0",

@@ -1,1 +0,1 @@

!function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function r(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}!function(){var e=".frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:px;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;min-width:250px;max-width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.frc-rtl{direction:rtl}.frc-rtl .frc-content{margin:4px 0 0 6px}.frc-banner.frc-rtl{left:6px;right:auto}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}",o='<circle cx="12" cy="12" r="8" stroke-width="3" stroke-dasharray="15 10" fill="none" stroke-linecap="round" transform="rotate(0 12 12)"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="0.9s" values="0 12 12;360 12 12"/></circle>',i='<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>';function a(t,e,r,n,o,i,a){var A=arguments.length>7&&void 0!==arguments[7]&&arguments[7],s=arguments.length>8?arguments[8]:void 0,c=arguments.length>9?arguments[9]:void 0;return'<div class="frc-container'.concat(c?" "+c:"").concat(e?" frc-rtl":"",'">\n<svg class="frc-icon"').concat(n?' aria-hidden="true"':"",' role="img" xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 24 24">').concat(r,'</svg>\n<div class="frc-content">\n <span class="frc-text" ').concat(s?'data-debug="'.concat(s,'"'):"",">").concat(o,"</span>\n ").concat(a?'<button type="button" class="frc-button">'.concat(a,"</button>"):"","\n ").concat(A?'<progress class="frc-progress" value="0">0%</progress>':"",'\n</div>\n</div><span class="frc-banner').concat(e?" frc-rtl":"",'"><a lang="en" href="https://friendlycaptcha.com/" rel="noopener" target="_blank"><b>Friendly</b>Captcha ⇗</a></span>\n').concat("-"===t?"":'<input name="'.concat(t,'" class="frc-captcha-solution" type="hidden" value="').concat(i,'">'))}function A(t,e,r){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return a(t,e.rtl,i,!0,"<b>".concat(e.text_error,"</b><br>").concat(r),o?".HEADLESS_ERROR":".ERROR",n?e.button_retry:void 0)}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!document.querySelector("#frc-style")){var r=document.createElement("style");r.id="frc-style",r.innerHTML=e,t&&r.setAttribute("nonce",t),document.head.appendChild(r)}}for(var c,u,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h="=".charCodeAt(0),f=new Uint8Array(256),g=0;g<l.length;g++)f[l.charCodeAt(g)]=g;function d(t){for(var e=t.length,r="",n=0;n<e;n+=3){var o=t[n+0],i=t[n+1],a=t[n+2],A="";A+=l.charAt(o>>>2),A+=l.charAt((3&o)<<4|i>>>4),A+=l.charAt((15&i)<<2|a>>>6),r+=A+=l.charAt(63&a)}return e%3==2?r=r.substring(0,r.length-1)+"=":e%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function p(t,e,r){return new Promise((function(o,i){var a,A,s;function c(){var t,e=(t=s(),function(t){if(Array.isArray(t))return t}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var e=[],r=!0,n=!1,o=void 0;try{for(var i,a=t[Symbol.iterator]();!(r=(i=a.next()).done)&&(e.push(i.value),1!==e.length);r=!0);}catch(A){n=!0,o=A}finally{try{r||null==a.return||a.return()}finally{if(n)throw o}}return e}}(t)||function(t){if(t){if("string"==typeof t)return n(t,1);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?n(t,1):void 0}}(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return e++,u.bind(this,e)}function u(t){if(s=function(){return[t]},!(t<a.length))return[1];var n=function(e){try{var n;throw console.error("[FRC Fetch]:",e),(n=new Error("".concat(r.text_fetch_error,' <a class="frc-err-url" href="').concat(a[t],'">').concat(a[t],"</a>"))).rawError=e,n}catch(o){return i(o)}};try{var A;return Promise.resolve(_(a[t]+"?sitekey="+e,{headers:[["x-frc-client","js-0.9.16"]],mode:"cors"},2)).then(function(e){try{var r=function(){return function(){try{return c}catch(t){return i(t)}}()};if((A=e).ok)return Promise.resolve(A.json()).then((function(t){try{return o(t.data.puzzle)}catch(e){return n(e)}}),n);var s,u=function(){try{if(s&&s.errors&&"endpoint_not_enabled"===s.errors[0])throw Error("Endpoint not allowed (".concat(A.status,")"));if(t===a.length-1)throw Error("Response status ".concat(A.status," ").concat(A.statusText," ").concat(s?s.errors:""));return r.call(this)}catch(e){return n(e)}}.bind(this),l=function(){try{return u()}catch(t){return n(t)}};try{return Promise.resolve(A.json()).then((function(t){try{return s=t,u()}catch(e){return l()}}),l)}catch(h){l()}return r.call(this)}catch(f){return n(f)}}.bind(this),n)}catch(u){n(u)}}return a=t.split(","),(A=function(t){for(;t;){if(t.then)return void t.then(A,i);try{if(t.pop){if(t.length)return t.pop()?l.call(this):t;t=c}else t=t.call(this)}catch(e){return i(e)}}}.bind(this))(u.bind(this,0));function l(){return i(Error("Internal error"))}}))}function _(t,e,r){return new Promise((function(n){var o=1e3;return n(fetch(t,e).catch((function(n){return new Promise((function(i,a){return 0===r?a(n):Promise.resolve(new Promise((function(t){return setTimeout(t,o)}))).then((function(){try{return o*=4,i(_(t,e,r-1))}catch(n){return a(n)}}),a)}))})))}))}"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&(c=navigator,u=c.userAgent.toLowerCase());var x,m={text_init:" Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klikk for å starte verifiseringen",text_fetching:"Henter data",text_solving:"Sjekker at du er et menneske...",text_completed:"Jeg er et menneske",text_completed_sr:"Automatisk spam-sjekk fullført",text_expired:"Verifisering kunne ikke fullføres",button_restart:"Omstart",text_error:"Bekreftelsen mislyktes",button_retry:"Prøv på nytt",text_fetch_error:"Tilkoblingen mislyktes"},v={en:{text_init:"Initializing...",text_ready:"Anti-Robot Verification",button_start:"Click to start verification",text_fetching:"Fetching Challenge",text_solving:"Verifying you are human...",text_completed:"I am human",text_completed_sr:"Automatic spam check completed",text_expired:"Anti-Robot verification expired",button_restart:"Restart",text_error:"Verification failed",button_retry:"Retry",text_fetch_error:"Failed to connect to"},de:{text_init:"Initialisierung...",text_ready:"Anti-Roboter-Verifizierung",button_start:"Hier klicken",text_fetching:"Herausforderung laden...",text_solving:"Verifizierung, dass Sie ein Mensch sind...",text_completed:"Ich bin ein Mensch",text_completed_sr:"Automatische Spamprüfung abgeschlossen",text_expired:"Verifizierung abgelaufen",button_restart:"Erneut starten",text_error:"Verifizierung fehlgeschlagen",button_retry:"Erneut versuchen",text_fetch_error:"Verbindungsproblem mit"},nl:{text_init:"Initializeren...",text_ready:"Anti-robotverificatie",button_start:"Klik om te starten",text_fetching:"Aan het laden...",text_solving:"Anti-robotverificatie bezig...",text_completed:"Ik ben een mens",text_completed_sr:"Automatische anti-spamcheck voltooid",text_expired:"Verificatie verlopen",button_restart:"Opnieuw starten",text_error:"Verificatie mislukt",button_retry:"Opnieuw proberen",text_fetch_error:"Verbinding mislukt met"},fr:{text_init:"Chargement...",text_ready:"Vérification Anti-Robot",button_start:"Clique ici pour vérifier",text_fetching:"Chargement du défi",text_solving:"Nous vérifions que vous n'êtes pas un robot...",text_completed:"Je ne suis pas un robot",text_completed_sr:"Vérification automatique des spams terminée",text_expired:"Vérification anti-robot expirée",button_restart:"Redémarrer",text_error:"Échec de la vérification",button_retry:"Recommencer",text_fetch_error:"Problème de connexion avec"},it:{text_init:"Inizializzazione...",text_ready:"Verifica Anti-Robot",button_start:"Clicca per iniziare",text_fetching:"Caricamento...",text_solving:"Verificando che sei umano...",text_completed:"Non sono un robot",text_completed_sr:"Controllo automatico dello spam completato",text_expired:"Verifica Anti-Robot scaduta",button_restart:"Ricomincia",text_error:"Verifica fallita",button_retry:"Riprova",text_fetch_error:"Problema di connessione con"},pt:{text_init:"Inicializando...",text_ready:"Verificação Anti-Robô",button_start:"Clique para iniciar verificação",text_fetching:"Carregando...",text_solving:"Verificando se você é humano...",text_completed:"Eu sou humano",text_completed_sr:"Verificação automática de spam concluída",text_expired:"Verificação Anti-Robô expirada",button_restart:"Reiniciar",text_error:"Verificação falhou",button_retry:"Tentar novamente",text_fetch_error:"Falha de conexão com"},es:{text_init:"Inicializando...",text_ready:"Verificación Anti-Robot",button_start:"Haga clic para iniciar la verificación",text_fetching:"Cargando desafío",text_solving:"Verificando que eres humano...",text_completed:"Soy humano",text_completed_sr:"Verificación automática de spam completada",text_expired:"Verificación Anti-Robot expirada",button_restart:"Reiniciar",text_error:"Ha fallado la verificación",button_retry:"Intentar de nuevo",text_fetch_error:"Error al conectarse a"},ca:{text_init:"Inicialitzant...",text_ready:"Verificació Anti-Robot",button_start:"Fes clic per començar la verificació",text_fetching:"Carregant repte",text_solving:"Verificant que ets humà...",text_completed:"Soc humà",text_completed_sr:"Verificació automàtica de correu brossa completada",text_expired:"La verificació Anti-Robot ha expirat",button_restart:"Reiniciar",text_error:"Ha fallat la verificació",button_retry:"Tornar a provar",text_fetch_error:"Error connectant a"},ja:{text_init:"開始しています...",text_ready:"アンチロボット認証",button_start:"クリックして認証を開始",text_fetching:"ロードしています",text_solving:"認証中...",text_completed:"私はロボットではありません",text_completed_sr:"自動スパムチェックが完了しました",text_expired:"認証の期限が切れています",button_restart:"再度認証を行う",text_error:"認証にエラーが発生しました",button_retry:"再度認証を行う",text_fetch_error:"接続ができませんでした"},da:{text_init:"Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klik for at starte verifikationen",text_fetching:"Henter data",text_solving:"Kontrollerer at du er et menneske...",text_completed:"Jeg er et menneske.",text_completed_sr:"Automatisk spamkontrol gennemført",text_expired:"Verifikationen kunne ikke fuldføres",button_restart:"Genstart",text_error:"Bekræftelse mislykkedes",button_retry:"Prøv igen",text_fetch_error:"Forbindelsen mislykkedes"},ru:{text_init:"Инициализация...",text_ready:"АнтиРобот проверка",button_start:"Нажмите, чтобы начать проверку",text_fetching:"Получаю задачу",text_solving:"Проверяю, что вы человек...",text_completed:"Я человек",text_completed_sr:"Aвтоматическая проверка на спам завершена",text_expired:"Срок АнтиРоботной проверки истёк",button_restart:"Начать заново",text_error:"Ошибка проверки",button_retry:"Повторить ещё раз",text_fetch_error:"Ошибка подключения"},sv:{text_init:"Aktiverar...",text_ready:"Jag är inte en robot",button_start:"Klicka för att verifiera",text_fetching:"Hämtar data",text_solving:"Kontrollerar att du är människa...",text_completed:"Jag är en människa",text_completed_sr:"Automatisk spamkontroll slutförd",text_expired:"Anti-robot-verifieringen har löpt ut",button_restart:"Börja om",text_error:"Verifiering kunde inte slutföras",button_retry:"Omstart",text_fetch_error:"Verifiering misslyckades"},tr:{text_init:"Başlatılıyor...",text_ready:"Anti-Robot Doğrulaması",button_start:"Doğrulamayı başlatmak için tıklayın",text_fetching:"Yükleniyor",text_solving:"Robot olmadığınız doğrulanıyor...",text_completed:"Ben bir insanım",text_completed_sr:"Otomatik spam kontrolü tamamlandı",text_expired:"Anti-Robot doğrulamasının süresi doldu",button_restart:"Yeniden başlat",text_error:"Doğrulama başarısız oldu",button_retry:"Tekrar dene",text_fetch_error:"Bağlantı başarısız oldu"},el:{text_init:"Προετοιμασία...",text_ready:"Anti-Robot Επαλήθευση",button_start:" Κάντε κλικ για να ξεκινήσει η επαλήθευση",text_fetching:" Λήψη πρόκλησης",text_solving:" Επιβεβαίωση ανθρώπου...",text_completed:"Είμαι άνθρωπος",text_completed_sr:" Ο αυτόματος έλεγχος ανεπιθύμητου περιεχομένου ολοκληρώθηκε",text_expired:" Η επαλήθευση Anti-Robot έληξε",button_restart:" Επανεκκίνηση",text_error:" Η επαλήθευση απέτυχε",button_retry:" Δοκιμάστε ξανά",text_fetch_error:" Αποτυχία σύνδεσης με"},uk:{text_init:"Ініціалізація...",text_ready:"Антиробот верифікація",button_start:"Натисніть, щоб розпочати верифікацію",text_fetching:"З’єднання",text_solving:"Перевірка, що ви не робот...",text_completed:"Я не робот",text_completed_sr:"Автоматична перевірка спаму завершена",text_expired:"Час вичерпано",button_restart:"Почати знову",text_error:"Верифікація не вдалась",button_retry:"Спробувати знову",text_fetch_error:"Не вдалось з’єднатись"},bg:{text_init:"Инициализиране...",text_ready:"Анти-робот проверка",button_start:"Щракнете, за да започнете проверката",text_fetching:"Предизвикателство",text_solving:"Проверяваме дали си човек...",text_completed:"Аз съм човек",text_completed_sr:"Автоматичната проверка за спам е завършена",text_expired:"Анти-Робот проверката изтече",button_restart:"Рестартирайте",text_error:"Неуспешна проверка",button_retry:"Опитайте пак",text_fetch_error:"Неуспешно свързване с"},cs:{text_init:"Inicializace...",text_ready:"Ověření proti robotům",button_start:"Klikněte pro ověření",text_fetching:"Problém při načítání",text_solving:"Ověření, že jste člověk...",text_completed:"Jsem člověk",text_completed_sr:"Automatická kontrola spamu dokončena",text_expired:"Ověření proti robotům vypršelo",button_restart:"Restartovat",text_error:"Ověření se nezdařilo",button_retry:"Zkusit znovu",text_fetch_error:"Připojení se nezdařilo"},sk:{text_init:"Inicializácia...",text_ready:"Overenie proti robotom",button_start:"Kliknite pre overenie",text_fetching:"Problém pri načítaní",text_solving:"Overenie, že ste človek...",text_completed:"Som človek",text_completed_sr:"Automatická kontrola spamu dokončená",text_expired:"Overenie proti robotom vypršalo",button_restart:"Reštartovať",text_error:"Overenie sa nepodarilo",button_retry:"Skúsiť znova",text_fetch_error:"Pripojenie sa nepodarilo"},no:m,fi:{text_init:"Aktivoidaan...",text_ready:"En ole robotti",button_start:"Aloita vahvistus klikkaamalla",text_fetching:"Haetaan tietoja",text_solving:"Tarkistaa, että olet ihminen...",text_completed:"Olen ihminen",text_completed_sr:"Automaattinen roskapostin tarkistus suoritettu",text_expired:"Vahvistusta ei voitu suorittaa loppuun",button_restart:"Uudelleenkäynnistys",text_error:"Vahvistus epäonnistui",button_retry:"Yritä uudelleen",text_fetch_error:"Yhteys epäonnistui"},lv:{text_init:"Notiek inicializēšana...",text_ready:"Verifikācija, ka neesat robots",button_start:"Noklikšķiniet, lai sāktu verifikāciju",text_fetching:"Notiek drošības uzdevuma izgūšana",text_solving:"Notiek pārbaude, vai esat cilvēks...",text_completed:"Es esmu cilvēks",text_completed_sr:"Automātiska surogātpasta pārbaude pabeigta",text_expired:"Verifikācijas, ka neesat robots, derīgums beidzies",button_restart:"Restartēt",text_error:"Verifikācija neizdevās",button_retry:"Mēģināt vēlreiz",text_fetch_error:"Neizdevās izveidot savienojumu ar"},lt:{text_init:"Inicijuojama...",text_ready:"Patikrinimas, ar nesate robotas",button_start:"Spustelėkite patikrinimui pradėti",text_fetching:"Gavimo iššūkis",text_solving:"Tikrinama, ar esate žmogus...",text_completed:"Esu žmogus",text_completed_sr:"Automatinė patikra dėl pašto šiukšlių atlikta",text_expired:"Patikrinimas, ar nesate robotas, baigė galioti",button_restart:"Pradėti iš naujo",text_error:"Patikrinimas nepavyko",button_retry:"Kartoti",text_fetch_error:"Nepavyko prisijungti prie"},pl:{text_init:"Inicjowanie...",text_ready:"Weryfikacja antybotowa",button_start:"Kliknij, aby rozpocząć weryfikację",text_fetching:"Pobieranie",text_solving:"Weryfikacja, czy nie jesteś robotem...",text_completed:"Nie jestem robotem",text_completed_sr:"Zakończono automatyczne sprawdzanie spamu",text_expired:"Weryfikacja antybotowa wygasła",button_restart:"Uruchom ponownie",text_error:"Weryfikacja nie powiodła się",button_retry:"Spróbuj ponownie",text_fetch_error:"Nie udało się połączyć z"},et:{text_init:"Initsialiseerimine...",text_ready:"Robotivastane kinnitus",button_start:"Kinnitamisega alustamiseks klõpsake",text_fetching:"Väljakutse toomine",text_solving:"Kinnitatakse, et sa oled inimene...",text_completed:"Ma olen inimene",text_completed_sr:"Automaatne rämpsposti kontroll on lõpetatud",text_expired:"Robotivastane kinnitus aegus",button_restart:"Taaskäivita",text_error:"Kinnitamine nurjus",button_retry:"Proovi uuesti",text_fetch_error:"Ühenduse loomine nurjus"},hr:{text_init:"Početno postavljanje...",text_ready:"Provjera protiv robota",button_start:"Kliknite za početak provjere",text_fetching:"Dohvaćanje izazova",text_solving:"Provjeravamo jeste li čovjek...",text_completed:"Nisam robot",text_completed_sr:"Automatska provjera je završena",text_expired:"Vrijeme za provjeru protiv robota je isteklo",button_restart:"Osvježi",text_error:"Provjera nije uspjlela",button_retry:" Ponovo pokreni",text_fetch_error:"Nije moguće uspostaviti vezu"},sr:{text_init:"Pokretanje...",text_ready:"Anti-Robot Verifikacija",button_start:"Kliknite da biste započeli verifikaciju",text_fetching:"Učitavanje izazova",text_solving:"Verifikacija da ste čovek...",text_completed:"Ja sam čovek",text_completed_sr:"Automatska provera neželjene pošte je završena",text_expired:"Anti-Robot verifikacija je istekla",button_restart:"Ponovo pokrenuti",text_error:"Verifikacija nije uspela",button_retry:"Pokušajte ponovo",text_fetch_error:"Neuspelo povezivanje sa..."},sl:{text_init:"Inicializiranje...",text_ready:"Preverjanje robotov",button_start:"Kliknite za začetek preverjanja",text_fetching:"Prenašanje izziva",text_solving:"Preverjamo, ali ste človek",text_completed:"Nisem robot",text_completed_sr:"Avtomatsko preverjanje je zaključeno",text_expired:"Preverjanje robotov je poteklo",button_restart:"Osveži",text_error:"Preverjanje ni uspelo",button_retry:"Poskusi ponovno",text_fetch_error:"Povezave ni bilo mogoče vzpostaviti"},hu:{text_init:"Inicializálás...",text_ready:"Robotellenes ellenőrzés",button_start:"Kattintson az ellenőrzés megkezdéséhez",text_fetching:"Feladvány lekérése",text_solving:"Annak igazolása, hogy Ön nem robot...",text_completed:"Nem vagyok robot",text_completed_sr:"Automatikus spam ellenőrzés befejeződött",text_expired:"Robotellenes ellenőrzés lejárt",button_restart:"Újraindítás",text_error:"Az ellenőrzés nem sikerült",button_retry:"Próbálja újra",text_fetch_error:"Nem sikerült csatlakozni"},ro:{text_init:"Se inițializează...",text_ready:"Verificare anti-robot",button_start:"Click pentru a începe verificarea",text_fetching:"Downloading",text_solving:"Verificare că ești om...",text_completed:"Sunt om",text_completed_sr:"Verificarea automată a spam-ului a fost finalizată",text_expired:"Verificarea anti-robot a expirat",button_restart:"Restart",text_error:"Verificare eșuată",button_retry:"Reîncearcă",text_fetch_error:"Nu s-a putut conecta"},zh:{text_init:"初始化中……",text_ready:"人机验证",button_start:"点击开始",text_fetching:"正在加载",text_solving:"人机校验中……",text_completed:"我不是机器人",text_completed_sr:"人机验证完成",text_expired:"验证已过期",button_restart:"重新开始",text_error:"校验失败",button_retry:"重试",text_fetch_error:"无法连接到"},zh_tw:{text_init:"正在初始化……",text_ready:"反機器人驗證",button_start:"點擊開始驗證",text_fetching:"載入中",text_solving:"反機器人驗證中……",text_completed:"我不是機器人",text_completed_sr:"驗證完成",text_expired:"驗證超時",button_restart:"重新開始",text_error:"驗證失敗",button_retry:"重試",text_fetch_error:"無法連線到"},vi:{text_init:"Đang khởi tạo...",text_ready:"Xác minh chống Robot",button_start:"Bấm vào đây để xác minh",text_fetching:"Tìm nạp và xử lý thử thách",text_solving:"Xác minh bạn là người...",text_completed:"Bạn là con người",text_completed_sr:"Xác minh hoàn tất",text_expired:"Xác minh đã hết hạn",button_restart:"Khởi động lại",text_error:"Xác minh thất bại",button_retry:"Thử lại",text_fetch_error:"Không kết nối được"},he:{text_init:"בביצוע...",text_ready:"אימות אנוש",button_start:"צריך ללחוץ להתחלת האימות",text_fetching:"אתגר המענה בהכנה",text_solving:"מתבצע אימות אנוש...",text_completed:"אני לא רובוט",text_completed_sr:"בדיקת הספאם האוטומטית הסתיימה",text_expired:"פג תוקף אימות האנוש",button_restart:"להתחיל שוב",text_error:"אימות האנוש נכשל",button_retry:"לנסות שוב",text_fetch_error:"נכשל החיבור אל",rtl:!0},th:{text_init:"การเริ่มต้น...",text_ready:" การตรวจสอบต่อต้านหุ่นยนต์",button_start:"คลิกเพื่อเริ่มการตรวจสอบ",text_fetching:"การดึงความท้าทาย",text_solving:"ยืนยันว่าคุณเป็นมนุษย์...",text_completed:"ฉันเป็นมนุษย์",text_completed_sr:"การตรวจสอบสแปมอัตโนมัติเสร็จสมบูรณ์",text_expired:"การตรวจสอบ ต่อต้านหุ่นยนต์ หมดอายุ",button_restart:"รีสตาร์ท",text_error:"การยืนยันล้มเหลว",button_retry:"ลองใหม่",text_fetch_error:"ไม่สามารถเชื่อมต่อได้"},kr:{text_init:"초기화 중",text_ready:"Anti-Robot 검증",button_start:"검증을 위해 클릭해 주세요",text_fetching:"검증 준비 중",text_solving:"검증 중",text_completed:"검증이 완료되었습니다",text_completed_sr:"자동 스팸 확인 완료",text_expired:"Anti-Robot 검증 만료",button_restart:"다시 시작합니다",text_error:"검증 실패",button_retry:"다시 시도해 주세요",text_fetch_error:"연결하지 못했습니다"},nb:m};"undefined"!=typeof window&&(x=window.URL||window.webkitURL);var y=function(){function e(){t(this,e),this.workers=[],this.puzzleNumber=0,this.numPuzzles=0,this.threshold=0,this.startTime=0,this.progress=0,this.totalHashes=0,this.puzzleSolverInputs=[],this.puzzleIndex=0,this.solutionBuffer=new Uint8Array(0),this.solverType=1,this.readyCount=0,this.startCount=0,this.progressCallback=function(){return 0},this.readyCallback=function(){return 0},this.startedCallback=function(){return 0},this.doneCallback=function(){return 0},this.errorCallback=function(){return 0}}return r(e,[{key:"init",value:function(){var t=this;this.terminateWorkers(),this.progress=0,this.totalHashes=0,this.readyCount=0,this.startCount=0,this.workers=new Array(4);for(var e=new Blob(['!function(){function A(A,r){return function(A){if(Array.isArray(A))return A}(A)||function(A,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(A)){var r=[],n=!0,e=!1,o=void 0;try{for(var i,g=A[Symbol.iterator]();!(n=(i=g.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(I){e=!0,o=I}finally{try{n||null==g.return||g.return()}finally{if(e)throw o}}return r}}(A,r)||function(A,r){if(A){if("string"==typeof A)return t(A,r);var n=Object.prototype.toString.call(A).slice(8,-1);return"Object"===n&&A.constructor&&(n=A.constructor.name),"Map"===n||"Set"===n?Array.from(A):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(A,r):void 0}}(A,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(A,t){(null==t||t>A.length)&&(t=A.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=A[r];return n}!function(){"use strict";var A,t=[];function r(){for(;t.length;)t[0](),t.shift()}function n(A){this.a=e,this.b=void 0,this.f=[];var t=this;try{A((function(A){i(t,A)}),(function(A){g(t,A)}))}catch(r){g(t,r)}}A=function(){setTimeout(r)};var e=2;function o(A){return new n((function(t){t(A)}))}function i(A,t){if(A.a==e){if(t==A)throw new TypeError;var r=!1;try{var n=t&&t.then;if(null!=t&&"object"==typeof t&&"function"==typeof n)return void n.call(t,(function(t){r||i(A,t),r=!0}),(function(t){r||g(A,t),r=!0}))}catch(o){return void(r||g(A,o))}A.a=0,A.b=t,I(A)}}function g(A,t){if(A.a==e){if(t==A)throw new TypeError;A.a=1,A.b=t,I(A)}}function I(r){!function(r){t.push(r),1==t.length&&A()}((function(){if(r.a!=e)for(;r.f.length;){var A=(o=r.f.shift())[0],t=o[1],n=o[2],o=o[3];try{0==r.a?n("function"==typeof A?A.call(void 0,r.b):r.b):1==r.a&&("function"==typeof t?n(t.call(void 0,r.b)):o(r.b))}catch(i){o(i)}}}))}n.prototype.g=function(A){return this.c(void 0,A)},n.prototype.c=function(A,t){var r=this;return new n((function(n,e){r.f.push([A,t,n,e]),I(r)}))},self.Promise||(self.Promise=n,self.Promise.resolve=o,self.Promise.reject=function(A){return new n((function(t,r){r(A)}))},self.Promise.race=function(A){return new n((function(t,r){for(var n=0;n<A.length;n+=1)o(A[n]).c(t,r)}))},self.Promise.all=function(A){return new n((function(t,r){function n(r){return function(n){i[r]=n,(e+=1)==A.length&&t(i)}}var e=0,i=[];0==A.length&&t(i);for(var g=0;g<A.length;g+=1)o(A[g]).c(n(g),r)}))},self.Promise.prototype.then=n.prototype.c,self.Promise.prototype.catch=n.prototype.g)}(),function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="=".charCodeAt(0),n=new Uint8Array(256),e=0;e<t.length;e++)n[t.charCodeAt(e)]=e;var o=function A(t){!function(A,t){if(!(A instanceof t))throw new TypeError("Cannot call a class as a function")}(this,A),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=t};function i(A,t){return A[t]^A[t+1]<<8^A[t+2]<<16^A[t+3]<<24}function g(A,t,r,n,e,o,i,g){var I,C,Q,c=t[i],a=t[i+1],B=t[g],f=t[g+1],u=A[r],s=A[r+1],E=A[n],h=A[n+1],w=A[e],l=A[e+1],y=A[o],D=A[o+1];Q=D^(s=(s=s+h+((u&E|(u|E)&~(I=u+E))>>>31))+a+(((u=I)&c|(u|c)&~(I=u+c))>>>31)),E=(Q=(h=(Q=h^(l=l+(D=C=y^(u=I))+((w&(y=Q)|(w|y)&~(I=w+y))>>>31)))>>>24^(C=E^(w=I))<<8)^(l=l+(D=(Q=D^(s=(s=s+h+((u&(E=C>>>24^Q<<8)|(u|E)&~(I=u+E))>>>31))+f+(((u=I)&B|(u|B)&~(I=u+B))>>>31)))>>>16^(C=y^(u=I))<<16)+((w&(y=C>>>16^Q<<16)|(w|y)&~(I=w+y))>>>31)))>>>31^(C=E^(w=I))<<1,h=C>>>31^Q<<1,A[r]=u,A[r+1]=s,A[n]=E,A[n+1]=h,A[e]=w,A[e+1]=l,A[o]=y,A[o+1]=D}var I,C,Q=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],c=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function a(A,t){for(var r=A.v,n=A.m,e=0;e<16;e++)r[e]=A.h[e],r[e+16]=Q[e];r[24]=r[24]^A.t,r[25]=r[25]^A.t/4294967296,t&&(r[28]=~r[28],r[29]=~r[29]);for(var o=0;o<32;o++)n[o]=i(A.b,4*o);for(var I=0;I<12;I++)g(r,n,0,8,16,24,c[16*I+0],c[16*I+1]),g(r,n,2,10,18,26,c[16*I+2],c[16*I+3]),g(r,n,4,12,20,28,c[16*I+4],c[16*I+5]),g(r,n,6,14,22,30,c[16*I+6],c[16*I+7]),g(r,n,0,10,20,30,c[16*I+8],c[16*I+9]),g(r,n,2,12,22,24,c[16*I+10],c[16*I+11]),g(r,n,4,14,16,26,c[16*I+12],c[16*I+13]),g(r,n,6,8,18,28,c[16*I+14],c[16*I+15]);for(var C=0;C<16;C++)A.h[C]=A.h[C]^r[C]^r[C+16]}function B(A,t){for(var r=0;r<16;r++)A.h[r]=Q[r];A.b.set(t),A.h[0]^=16842752^A.outlen}function f(A,t,r){if(128!=A.length)throw Error("Invalid input");var n=A.buffer,e=new DataView(n),i=new o(32);i.t=128;for(var g=e.getUint32(124,!0),I=g+r,C=g;C<I;C++)if(e.setUint32(124,C,!0),B(i,A),a(i,!0),i.h[0]<t)return 0==ASC_TARGET?new Uint8Array(i.h.buffer):Uint8Array.wrap(i.h.buffer);return new Uint8Array(0)}function u(){return new Promise((function(A){return A((function(A,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295,n=f(A,t,r);return[A,n]}))}))}Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,t){return new Uint8Array(Array.prototype.slice.call(this,A,t))}}),self.ASC_TARGET=0;var s=new Promise((function(A){return C=A}));self.onerror=function(A){self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=function(t){return new Promise((function(e,o){var i;i=t.data;var g=function(){try{return e()}catch(A){return o(A)}},Q=function(A){try{return setTimeout((function(){throw A})),g()}catch(t){return o(t)}};try{var c=function(){return g()};if("solver"!==i.type){var a,B,f,E,h=function(){return c.call(this)};return"start"===i.type?Promise.resolve(s).then(function(t){try{a=t,self.postMessage({type:"started"}),B=0;for(var r=0;r<256;r++){i.puzzleSolverInput[123]=r;var n=A(a(i.puzzleSolverInput,i.threshold),2),e=n[0];if(0!==n[1].length){f=e;break}console.warn("FC: Internal error or no solution found"),B+=Math.pow(2,32)-1}return E=new DataView(f.slice(-4).buffer),B+=E.getUint32(0,!0),self.postMessage({type:"done",solution:f.slice(-8),h:B,puzzleIndex:i.puzzleIndex,puzzleNumber:i.puzzleNumber}),h.call(this)}catch(o){return Q(o)}}.bind(this),Q):h.call(this)}var w=function(){return self.postMessage({type:"ready",solver:I}),c.call(this)};if(i.forceJS)return I=1,Promise.resolve(u()).then(function(A){try{return C(A),w.call(this)}catch(t){return Q(t)}}.bind(this),Q);var l=function(){try{return w.call(this)}catch(A){return Q(A)}}.bind(this),y=function(A){try{return console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),I=1,Promise.resolve(u()).then((function(A){try{return C(A),l()}catch(t){return Q(t)}}),Q)}catch(t){return Q(t)}};try{var D;return I=2,D=WebAssembly.compile(function(A){var t=A.length,e=3*t>>>2;A.charCodeAt(t-1)===r&&e--,A.charCodeAt(t-2)===r&&e--;for(var o=new Uint8Array(e),i=0,g=0;i<t;i+=4){var I=n[A.charCodeAt(i+0)],C=n[A.charCodeAt(i+1)],Q=n[A.charCodeAt(i+2)],c=n[A.charCodeAt(i+3)];o[g++]=I<<2|C>>4,o[g++]=(15&C)<<4|Q>>2,o[g++]=(3&Q)<<6|63&c}return o}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Promise.resolve(D).then((function(A){try{return Promise.resolve(function(A){return new Promise((function(t,r){var n,e,o;return Promise.resolve(function(A){return new Promise((function(t,r){var n,e;return n={env:{abort:function(){throw Error("Wasm aborted")}}},Promise.resolve(WebAssembly.instantiate(A,n)).then((function(A){try{return e=function(A){var t={},r=A.exports,n=r.memory,e=r.__alloc,o=r.__retain,i=r.__rtti_base||-1;return t.__allocArray=function(A,t){var r=function(A){return new Uint32Array(n.buffer)[(i+4>>>2)+2*A]}(A),g=31-Math.clz32(r>>>6&31),I=t.length,C=e(I<<g,0),Q=e(12,A),c=new Uint32Array(n.buffer);c[Q+0>>>2]=o(C),c[Q+4>>>2]=C,c[Q+8>>>2]=I<<g;var a=n.buffer,B=new Uint8Array(a);if(16384&r)for(var f=0;f<I;++f)B[(C>>>g)+f]=o(t[f]);else B.set(t,C>>>g);return Q},t.__getUint8Array=function(A){var t=new Uint32Array(n.buffer),r=t[A+4>>>2];return new Uint8Array(n.buffer,r,t[r-4>>>2]>>>0)},function(A){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=A.__argumentsLength?function(t){A.__argumentsLength.value=t}:A.__setArgumentsLength||A.__setargc||function(){return{}},n=function(n){if(!Object.prototype.hasOwnProperty.call(A,n))return"continue";var e=A[n],o=n.split(".")[0];"function"==typeof e&&e!==r?(t[o]=function(){return r(arguments.length),e.apply(void 0,arguments)}).original=e:t[o]=e};for(var e in A)n(e);return t}(r,t)}(A),t({exports:e})}catch(n){return r(n)}}),r)}))}(A)).then((function(A){try{return e=(n=A).exports.__retain(n.exports.__allocArray(n.exports.Uint8Array_ID,new Uint8Array(128))),o=n.exports.__getUint8Array(e),t((function(A,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295;o.set(A);var i=n.exports.solveBlake2b(e,t,r);o=n.exports.__getUint8Array(e);var g=n.exports.__getUint8Array(i);return n.exports.__release(i),[o,g]}))}catch(i){return r(i)}}),r)}))}(A)).then((function(A){try{return C(A),l()}catch(t){return y(t)}}),y)}catch(t){return y(t)}}),y)}catch(v){y(v)}}catch(v){Q(v)}}))}}()}("undefined"==typeof frcWorker?frcWorker={}:frcWorker);'],{type:"text/javascript"}),r=function(r){t.workers[r]=new Worker(x.createObjectURL(e)),t.workers[r].onerror=function(e){return t.errorCallback(e)},t.workers[r].onmessage=function(e){var n,o,i,a,A=e.data;if(A)if("ready"===A.type)t.readyCount++,t.solverType=A.solver,t.readyCount==t.workers.length&&t.readyCallback();else if("started"===A.type)t.startCount++,1==t.startCount&&(t.startTime=Date.now(),t.startedCallback());else if("done"===A.type){if(A.puzzleNumber!==t.puzzleNumber)return;if(t.puzzleIndex<t.puzzleSolverInputs.length&&(t.workers[r].postMessage({type:"start",puzzleSolverInput:t.puzzleSolverInputs[t.puzzleIndex],threshold:t.threshold,puzzleIndex:t.puzzleIndex,puzzleNumber:t.puzzleNumber}),t.puzzleIndex++),t.progress++,t.totalHashes+=A.h,t.progressCallback({n:t.numPuzzles,h:t.totalHashes,t:(Date.now()-t.startTime)/1e3,i:t.progress}),t.solutionBuffer.set(A.solution,8*A.puzzleIndex),t.progress==t.numPuzzles){var s=(Date.now()-t.startTime)/1e3;t.doneCallback({solution:t.solutionBuffer,h:t.totalHashes,t:s,diagnostics:(n=t.solverType,o=s,i=new Uint8Array(3),a=new DataView(i.buffer),a.setUint8(0,n),a.setUint16(1,o),i),solver:t.solverType})}}else"error"===A.type&&t.errorCallback(A)}},n=0;n<this.workers.length;n++)r(n)}},{key:"setupSolver",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e={type:"solver",forceJS:t},r=0;r<this.workers.length;r++)this.workers[r].postMessage(e)}},{key:"start",value:function(t){this.puzzleSolverInputs=function(t,e){for(var r=[],n=0;n<e;n++){var o=new Uint8Array(128);o.set(t),o[120]=n,r.push(o)}return r}(t.buffer,t.n),this.solutionBuffer=new Uint8Array(8*t.n),this.numPuzzles=t.n,this.threshold=t.threshold,this.puzzleIndex=0,this.puzzleNumber++;for(var e=0;e<this.workers.length&&this.puzzleIndex!==this.puzzleSolverInputs.length;e++)this.workers[e].postMessage({type:"start",puzzleSolverInput:this.puzzleSolverInputs[e],threshold:this.threshold,puzzleIndex:this.puzzleIndex,puzzleNumber:this.puzzleNumber}),this.puzzleIndex++}},{key:"terminateWorkers",value:function(){if(0!=this.workers.length){for(var t=0;t<this.workers.length;t++)this.workers[t].terminate();this.workers=[]}}}]),e}(),b="https://api.friendlycaptcha.com/api/v1/puzzle",I=function(){function e(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,e),this.workerGroup=new y,this.valid=!1,this.needsReInit=!1,this.hasBeenStarted=!1,this.hasBeenDestroyed=!1,this.opts=Object.assign({forceJSFallback:!1,skipStyleInjection:!1,startMode:"focus",puzzleEndpoint:r.dataset.puzzleEndpoint||b,startedCallback:function(){return 0},readyCallback:function(){return 0},doneCallback:function(){return 0},errorCallback:function(){return 0},sitekey:r.dataset.sitekey||"",language:r.dataset.lang||"en",solutionFieldName:r.dataset.solutionFieldName||"frc-captcha-solution",styleNonce:null},n),this.e=r,this.e.friendlyChallengeWidget=this,this.loadLanguage(),r.innerText=this.lang.text_init,this.opts.skipStyleInjection||s(this.opts.styleNonce),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start)}return r(e,[{key:"init",value:function(t){var e,r=this;if(this.hasBeenDestroyed)console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");else if(this.initWorkerGroup(),t)this.start();else if("none"!==this.e.dataset.start&&("focus"===this.opts.startMode||"focus"===this.e.dataset.start)){var n=function(t){for(;"FORM"!==t.tagName;)if(!(t=t.parentElement))return null;return t}(this.e);n?(e=function(){return r.start()},n.addEventListener("focusin",e,{once:!0,passive:!0})):console.log("FriendlyCaptcha div seems not to be contained in a form, autostart will not work")}}},{key:"loadLanguage",value:function(t){if(void 0!==t?this.opts.language=t:this.e.dataset.lang&&(this.opts.language=this.e.dataset.lang),"string"==typeof this.opts.language){var e=this.opts.language.toLowerCase(),r=v[e];void 0===r&&"-"===e[2]&&(e=e.substring(0,2),r=v[e]),void 0===r&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),r=v.en),this.lang=r}else this.lang=Object.assign(Object.assign({},v.en),this.opts.language)}},{key:"makeButtonStart",value:function(){var t=this,e=this.e.querySelector("button");e&&(e.addEventListener("click",(function(){return t.start()}),{once:!0,passive:!0}),e.addEventListener("touchstart",(function(){return t.start()}),{once:!0,passive:!0}))}},{key:"onWorkerError",value:function(t){this.hasBeenStarted=!1,this.needsReInit=!0,this.expiryTimeout&&clearTimeout(this.expiryTimeout),console.error("[FRC]",t),this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,"Background worker error "+t.message),this.makeButtonStart(),this.opts.forceJSFallback=!0}},{key:"initWorkerGroup",value:function(){var t=this;this.workerGroup.progressCallback=function(e){var r,n,o;r=e,n=t.e.querySelector(".frc-progress"),o=(r.i+1)/r.n,n&&(n.value=o,n.innerText=(100*o).toFixed(1)+"%",n.title=r.i+1+"/"+r.n+" ("+(r.h/r.t*.001).toFixed(0)+"K/s)")},this.workerGroup.readyCallback=function(){var e;t.e.innerHTML=a(t.opts.solutionFieldName,(e=t.lang).rtl,'<path d="M17,11c0.34,0,0.67,0.04,1,0.09V6.27L10.5,3L3,6.27v4.91c0,4.54,3.2,8.79,7.5,9.82c0.55-0.13,1.08-0.32,1.6-0.55 C11.41,19.47,11,18.28,11,17C11,13.69,13.69,11,17,11z"/><path d="M17,13c-2.21,0-4,1.79-4,4c0,2.21,1.79,4,4,4s4-1.79,4-4C21,14.79,19.21,13,17,13z M17,14.38"/>',!0,e.text_ready,".UNSTARTED",e.button_start,!1),t.makeButtonStart(),t.opts.readyCallback()},this.workerGroup.startedCallback=function(){var e;t.e.innerHTML=a(t.opts.solutionFieldName,(e=t.lang).rtl,o,!0,e.text_solving,".UNFINISHED",void 0,!0),t.opts.startedCallback()},this.workerGroup.doneCallback=function(e){var r=t.handleDone(e);t.opts.doneCallback(r);var n=t.e.dataset.callback;n&&window[n](r)},this.workerGroup.errorCallback=function(e){t.onWorkerError(e)},this.workerGroup.init(),this.workerGroup.setupSolver(this.opts.forceJSFallback)}},{key:"expire",value:function(){var t;this.hasBeenStarted=!1,!1!==this.e.isConnected&&(this.e.innerHTML=a(this.opts.solutionFieldName,(t=this.lang).rtl,i,!0,t.text_expired,".EXPIRED",t.button_restart),this.makeButtonStart())}},{key:"start",value:function(){return new Promise(function(t,e){var r;if(this.hasBeenDestroyed)return console.error("Can not start FriendlyCaptcha widget which has been destroyed"),t();if(this.hasBeenStarted)return console.warn("Can not start FriendlyCaptcha widget which has already been started"),t();if(!(r=this.opts.sitekey||this.e.dataset.sitekey))return console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"),this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,"Website problem: sitekey not set",!1),t();if(-1!==u.indexOf("headless")||-1!==c.appVersion.indexOf("Headless")||-1!==u.indexOf("bot")||-1!==u.indexOf("crawl")||!0===c.webdriver||!c.language||void 0!==c.languages&&!c.languages.length)return this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,"Browser check failed, try a different browser",!1,!0),t();if(this.needsReInit)return this.needsReInit=!1,this.init(!0),t();this.hasBeenStarted=!0;var n,i=function(){try{return this.workerGroup.start(this.puzzle),t()}catch(r){return e(r)}}.bind(this),s=function(r){try{var n;return console.error("[FRC]",r),this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e.innerHTML=A(this.opts.solutionFieldName,this.lang,r.message),this.makeButtonStart(),this.opts.errorCallback({code:"error_getting_puzzle",description:r.toString(),error:r}),(n=this.e.dataset["callback-error"])&&window[n](this),t()}catch(o){return e(o)}}.bind(this);try{return this.e.innerHTML=a(this.opts.solutionFieldName,(n=this.lang).rtl,o,!0,n.text_fetching,".FETCHING",void 0,!0),Promise.resolve(p(this.opts.puzzleEndpoint,r,this.lang)).then(function(t){var e,r,n,o,a=this;try{return this.puzzle=(o=function(t){var e=t.length,r=3*e>>>2;t.charCodeAt(e-1)===h&&r--,t.charCodeAt(e-2)===h&&r--;for(var n=new Uint8Array(r),o=0,i=0;o<e;o+=4){var a=f[t.charCodeAt(o+0)],A=f[t.charCodeAt(o+1)],s=f[t.charCodeAt(o+2)],c=f[t.charCodeAt(o+3)];n[i++]=a<<2|A>>4,n[i++]=(15&A)<<4|s>>2,n[i++]=(3&s)<<6|63&c}return n}(n=(r=t.split("."))[1]),{signature:r[0],base64:n,buffer:o,n:o[14],threshold:(e=o[15],e>255?e=255:e<0&&(e=0),Math.pow(2,(255.999-e)/8)>>>0),expiry:3e5*o[13]}),this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.expiryTimeout=setTimeout((function(){return a.expire()}),this.puzzle.expiry-3e4),i()}catch(A){return s(A)}}.bind(this),s)}catch(l){s(l)}}.bind(this))}},{key:"handleDone",value:function(t){this.valid=!0;var e="".concat(this.puzzle.signature,".").concat(this.puzzle.base64,".").concat(d(t.solution),".").concat(d(t.diagnostics));return this.e.innerHTML=function(t,e,r,n){var o="".concat(n.t.toFixed(0),"s (").concat((n.h/n.t*.001).toFixed(0),"K/s)").concat(1===n.solver?" JS Fallback":"");return a(t,e.rtl,"<title>".concat(e.text_completed_sr,'</title><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path>'),!1,e.text_completed,r,void 0,!1,o,"frc-success")}(this.opts.solutionFieldName,this.lang,e,t),this.needsReInit=!0,e}},{key:"destroy",value:function(){this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e&&(this.e.remove(),delete this.e),this.hasBeenDestroyed=!0}},{key:"reset",value:function(){this.hasBeenDestroyed?console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore"):(this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start))}}]),e}();function C(){for(var t=window.friendlyChallenge.autoWidget,e=function(){var t=document.querySelectorAll(".frc-captcha");return 0===t.length&&console.warn("FriendlyCaptcha: No div was found with .frc-captcha class"),t}(),r=0;r<e.length;r++){var n=e[r];n&&!n.dataset.attached&&(t=new I(n),n.dataset.attached="1")}window.friendlyChallenge.autoWidget=t}window.friendlyChallenge={WidgetInstance:I},"loading"!==document.readyState?C():document.addEventListener("DOMContentLoaded",C)}()}("undefined"==typeof friendlyChallenge?friendlyChallenge={}:friendlyChallenge);
!function(){"use strict";function t(e){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(e)}function e(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,o(n.key),n)}}function n(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function o(e){var r=function(e){if("object"!=t(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,"string");if("object"!=t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==t(r)?r:r+""}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}!function(){var t='<circle cx="12" cy="12" r="8" stroke-width="3" stroke-dasharray="15 10" fill="none" stroke-linecap="round" transform="rotate(0 12 12)"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="0.9s" values="0 12 12;360 12 12"/></circle>',r='<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>';function o(t,e,r,n,o,i,a){var A=arguments.length>7&&void 0!==arguments[7]&&arguments[7],s=arguments.length>8?arguments[8]:void 0,c=arguments.length>9?arguments[9]:void 0;return'<div class="frc-container'.concat(c?" "+c:"").concat(e?" frc-rtl":"",'">\n<svg class="frc-icon"').concat(n?' aria-hidden="true"':"",' role="img" xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 24 24">').concat(r,'</svg>\n<div class="frc-content">\n <span class="frc-text" ').concat(s?'data-debug="'.concat(s,'"'):"",">").concat(o,"</span>\n ").concat(a?'<button type="button" class="frc-button">'.concat(a,"</button>"):"","\n ").concat(A?'<progress class="frc-progress" value="0">0%</progress>':"",'\n</div>\n</div><span class="frc-banner').concat(e?" frc-rtl":"",'"><a lang="en" href="https://friendlycaptcha.com/" rel="noopener" target="_blank"><b>Friendly</b>Captcha ⇗</a></span>\n').concat("-"===t?"":'<input name="'.concat(t,'" class="frc-captcha-solution" type="hidden" value="').concat(i,'">'))}function a(t,e,n){var i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return o(t,e.rtl,r,!0,"<b>".concat(e.text_error,"</b><br>").concat(n),a?".HEADLESS_ERROR":".ERROR",i?e.button_retry:void 0)}for(var A,s,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u="=".charCodeAt(0),l=new Uint8Array(256),f=0;f<64;f++)l[c.charCodeAt(f)]=f;function h(t){for(var e=t.length,r="",n=0;n<e;n+=3){var o=t[n+0],i=t[n+1],a=t[n+2],A="";A+=c.charAt(o>>>2),A+=c.charAt((3&o)<<4|i>>>4),A+=c.charAt((15&i)<<2|a>>>6),r+=A+=c.charAt(63&a)}return e%3==2?r=r.substring(0,r.length-1)+"=":e%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function g(t,e,r){return new Promise((function(n,o){var a,A,s;function c(){var t,e=(t=s(),function(t){if(Array.isArray(t))return t}(t)||function(t){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,n,o,i,a=[],A=!0,s=!1;try{for(o=(e=e.call(t)).next;!(A=(r=o.call(e)).done)&&(a.push(r.value),1!==a.length);A=!0);}catch(t){s=!0,n=t}finally{try{if(!A&&null!=e.return&&(i=e.return(),Object(i)!==i))return}finally{if(s)throw n}}return a}}(t)||function(t){if(t){if("string"==typeof t)return i(t,1);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?i(t,1):void 0}}(t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return e++,u.bind(this,e)}function u(t){if(s=function(){return[t]},!(t<a.length))return[1];var i=function(e){try{var n;throw console.error("[FRC Fetch]:",e),(n=new Error("".concat(r.text_fetch_error,' <a class="frc-err-url" href="').concat(a[t],'">').concat(a[t],"</a>"))).rawError=e,n}catch(i){return o(i)}};try{var A;return Promise.resolve(d(a[t]+"?sitekey="+e,{headers:[["x-frc-client","js-0.9.17"]],mode:"cors"},2)).then(function(e){try{var r=function(){return function(){try{return c}catch(t){return o(t)}}()};if((A=e).ok)return Promise.resolve(A.json()).then((function(t){try{return n(t.data.puzzle)}catch(e){return i(e)}}),i);var s,u=function(){try{if(s&&s.errors&&"endpoint_not_enabled"===s.errors[0])throw Error("Endpoint not allowed (".concat(A.status,")"));if(t===a.length-1)throw Error("Response status ".concat(A.status," ").concat(A.statusText," ").concat(s?s.errors:""));return r.call(this)}catch(e){return i(e)}}.bind(this),l=function(){try{return u()}catch(t){return i(t)}};try{return Promise.resolve(A.json()).then((function(t){try{return s=t,u()}catch(e){return l()}}),l)}catch(f){l()}return r.call(this)}catch(h){return i(h)}}.bind(this),i)}catch(u){i(u)}}return a=t.split(","),(A=function(t){for(;t;){if(t.then)return void t.then(A,o);try{if(t.pop){if(t.length)return t.pop()?l.call(this):t;t=c}else t=t.call(this)}catch(e){return o(e)}}}.bind(this))(u.bind(this,0));function l(){return o(Error("Internal error"))}}))}function d(t,e,r){return new Promise((function(n){var o=1e3;return n(fetch(t,e).catch((function(n){return new Promise((function(i,a){return 0===r?a(n):Promise.resolve(new Promise((function(t){return setTimeout(t,o)}))).then((function(){try{return o*=4,i(d(t,e,r-1))}catch(n){return a(n)}}),a)}))})))}))}"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&(A=navigator,s=A.userAgent.toLowerCase());var p,_={text_init:" Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klikk for å starte verifiseringen",text_fetching:"Henter data",text_solving:"Sjekker at du er et menneske...",text_completed:"Jeg er et menneske",text_completed_sr:"Automatisk spam-sjekk fullført",text_expired:"Verifisering kunne ikke fullføres",button_restart:"Omstart",text_error:"Bekreftelsen mislyktes",button_retry:"Prøv på nytt",text_fetch_error:"Tilkoblingen mislyktes"},x={en:{text_init:"Initializing...",text_ready:"Anti-Robot Verification",button_start:"Click to start verification",text_fetching:"Fetching Challenge",text_solving:"Verifying you are human...",text_completed:"I am human",text_completed_sr:"Automatic spam check completed",text_expired:"Anti-Robot verification expired",button_restart:"Restart",text_error:"Verification failed",button_retry:"Retry",text_fetch_error:"Failed to connect to"},de:{text_init:"Initialisierung...",text_ready:"Anti-Roboter-Verifizierung",button_start:"Hier klicken",text_fetching:"Herausforderung laden...",text_solving:"Verifizierung, dass Sie ein Mensch sind...",text_completed:"Ich bin ein Mensch",text_completed_sr:"Automatische Spamprüfung abgeschlossen",text_expired:"Verifizierung abgelaufen",button_restart:"Erneut starten",text_error:"Verifizierung fehlgeschlagen",button_retry:"Erneut versuchen",text_fetch_error:"Verbindungsproblem mit"},nl:{text_init:"Initializeren...",text_ready:"Anti-robotverificatie",button_start:"Klik om te starten",text_fetching:"Aan het laden...",text_solving:"Anti-robotverificatie bezig...",text_completed:"Ik ben een mens",text_completed_sr:"Automatische anti-spamcheck voltooid",text_expired:"Verificatie verlopen",button_restart:"Opnieuw starten",text_error:"Verificatie mislukt",button_retry:"Opnieuw proberen",text_fetch_error:"Verbinding mislukt met"},fr:{text_init:"Chargement...",text_ready:"Vérification Anti-Robot",button_start:"Clique ici pour vérifier",text_fetching:"Chargement du défi",text_solving:"Nous vérifions que vous n'êtes pas un robot...",text_completed:"Je ne suis pas un robot",text_completed_sr:"Vérification automatique des spams terminée",text_expired:"Vérification anti-robot expirée",button_restart:"Redémarrer",text_error:"Échec de la vérification",button_retry:"Recommencer",text_fetch_error:"Problème de connexion avec"},it:{text_init:"Inizializzazione...",text_ready:"Verifica Anti-Robot",button_start:"Clicca per iniziare",text_fetching:"Caricamento...",text_solving:"Verificando che sei umano...",text_completed:"Non sono un robot",text_completed_sr:"Controllo automatico dello spam completato",text_expired:"Verifica Anti-Robot scaduta",button_restart:"Ricomincia",text_error:"Verifica fallita",button_retry:"Riprova",text_fetch_error:"Problema di connessione con"},pt:{text_init:"Inicializando...",text_ready:"Verificação Anti-Robô",button_start:"Clique para iniciar verificação",text_fetching:"Carregando...",text_solving:"Verificando se você é humano...",text_completed:"Eu sou humano",text_completed_sr:"Verificação automática de spam concluída",text_expired:"Verificação Anti-Robô expirada",button_restart:"Reiniciar",text_error:"Verificação falhou",button_retry:"Tentar novamente",text_fetch_error:"Falha de conexão com"},es:{text_init:"Inicializando...",text_ready:"Verificación Anti-Robot",button_start:"Haga clic para iniciar la verificación",text_fetching:"Cargando desafío",text_solving:"Verificando que eres humano...",text_completed:"Soy humano",text_completed_sr:"Verificación automática de spam completada",text_expired:"Verificación Anti-Robot expirada",button_restart:"Reiniciar",text_error:"Ha fallado la verificación",button_retry:"Intentar de nuevo",text_fetch_error:"Error al conectarse a"},ca:{text_init:"Inicialitzant...",text_ready:"Verificació Anti-Robot",button_start:"Fes clic per començar la verificació",text_fetching:"Carregant repte",text_solving:"Verificant que ets humà...",text_completed:"Soc humà",text_completed_sr:"Verificació automàtica de correu brossa completada",text_expired:"La verificació Anti-Robot ha expirat",button_restart:"Reiniciar",text_error:"Ha fallat la verificació",button_retry:"Tornar a provar",text_fetch_error:"Error connectant a"},ja:{text_init:"開始しています...",text_ready:"アンチロボット認証",button_start:"クリックして認証を開始",text_fetching:"ロードしています",text_solving:"認証中...",text_completed:"私はロボットではありません",text_completed_sr:"自動スパムチェックが完了しました",text_expired:"認証の期限が切れています",button_restart:"再度認証を行う",text_error:"認証にエラーが発生しました",button_retry:"再度認証を行う",text_fetch_error:"接続ができませんでした"},da:{text_init:"Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klik for at starte verifikationen",text_fetching:"Henter data",text_solving:"Kontrollerer at du er et menneske...",text_completed:"Jeg er et menneske.",text_completed_sr:"Automatisk spamkontrol gennemført",text_expired:"Verifikationen kunne ikke fuldføres",button_restart:"Genstart",text_error:"Bekræftelse mislykkedes",button_retry:"Prøv igen",text_fetch_error:"Forbindelsen mislykkedes"},ru:{text_init:"Инициализация...",text_ready:"АнтиРобот проверка",button_start:"Нажмите, чтобы начать проверку",text_fetching:"Получаю задачу",text_solving:"Проверяю, что вы человек...",text_completed:"Я человек",text_completed_sr:"Aвтоматическая проверка на спам завершена",text_expired:"Срок АнтиРоботной проверки истёк",button_restart:"Начать заново",text_error:"Ошибка проверки",button_retry:"Повторить ещё раз",text_fetch_error:"Ошибка подключения"},sv:{text_init:"Aktiverar...",text_ready:"Jag är inte en robot",button_start:"Klicka för att verifiera",text_fetching:"Hämtar data",text_solving:"Kontrollerar att du är människa...",text_completed:"Jag är en människa",text_completed_sr:"Automatisk spamkontroll slutförd",text_expired:"Anti-robot-verifieringen har löpt ut",button_restart:"Börja om",text_error:"Verifiering kunde inte slutföras",button_retry:"Omstart",text_fetch_error:"Verifiering misslyckades"},tr:{text_init:"Başlatılıyor...",text_ready:"Anti-Robot Doğrulaması",button_start:"Doğrulamayı başlatmak için tıklayın",text_fetching:"Yükleniyor",text_solving:"Robot olmadığınız doğrulanıyor...",text_completed:"Ben bir insanım",text_completed_sr:"Otomatik spam kontrolü tamamlandı",text_expired:"Anti-Robot doğrulamasının süresi doldu",button_restart:"Yeniden başlat",text_error:"Doğrulama başarısız oldu",button_retry:"Tekrar dene",text_fetch_error:"Bağlantı başarısız oldu"},el:{text_init:"Προετοιμασία...",text_ready:"Anti-Robot Επαλήθευση",button_start:" Κάντε κλικ για να ξεκινήσει η επαλήθευση",text_fetching:" Λήψη πρόκλησης",text_solving:" Επιβεβαίωση ανθρώπου...",text_completed:"Είμαι άνθρωπος",text_completed_sr:" Ο αυτόματος έλεγχος ανεπιθύμητου περιεχομένου ολοκληρώθηκε",text_expired:" Η επαλήθευση Anti-Robot έληξε",button_restart:" Επανεκκίνηση",text_error:" Η επαλήθευση απέτυχε",button_retry:" Δοκιμάστε ξανά",text_fetch_error:" Αποτυχία σύνδεσης με"},uk:{text_init:"Ініціалізація...",text_ready:"Антиробот верифікація",button_start:"Натисніть, щоб розпочати верифікацію",text_fetching:"З’єднання",text_solving:"Перевірка, що ви не робот...",text_completed:"Я не робот",text_completed_sr:"Автоматична перевірка спаму завершена",text_expired:"Час вичерпано",button_restart:"Почати знову",text_error:"Верифікація не вдалась",button_retry:"Спробувати знову",text_fetch_error:"Не вдалось з’єднатись"},bg:{text_init:"Инициализиране...",text_ready:"Анти-робот проверка",button_start:"Щракнете, за да започнете проверката",text_fetching:"Предизвикателство",text_solving:"Проверяваме дали си човек...",text_completed:"Аз съм човек",text_completed_sr:"Автоматичната проверка за спам е завършена",text_expired:"Анти-Робот проверката изтече",button_restart:"Рестартирайте",text_error:"Неуспешна проверка",button_retry:"Опитайте пак",text_fetch_error:"Неуспешно свързване с"},cs:{text_init:"Inicializace...",text_ready:"Ověření proti robotům",button_start:"Klikněte pro ověření",text_fetching:"Problém při načítání",text_solving:"Ověření, že jste člověk...",text_completed:"Jsem člověk",text_completed_sr:"Automatická kontrola spamu dokončena",text_expired:"Ověření proti robotům vypršelo",button_restart:"Restartovat",text_error:"Ověření se nezdařilo",button_retry:"Zkusit znovu",text_fetch_error:"Připojení se nezdařilo"},sk:{text_init:"Inicializácia...",text_ready:"Overenie proti robotom",button_start:"Kliknite pre overenie",text_fetching:"Problém pri načítaní",text_solving:"Overenie, že ste človek...",text_completed:"Som človek",text_completed_sr:"Automatická kontrola spamu dokončená",text_expired:"Overenie proti robotom vypršalo",button_restart:"Reštartovať",text_error:"Overenie sa nepodarilo",button_retry:"Skúsiť znova",text_fetch_error:"Pripojenie sa nepodarilo"},no:_,fi:{text_init:"Aktivoidaan...",text_ready:"En ole robotti",button_start:"Aloita vahvistus klikkaamalla",text_fetching:"Haetaan tietoja",text_solving:"Tarkistaa, että olet ihminen...",text_completed:"Olen ihminen",text_completed_sr:"Automaattinen roskapostin tarkistus suoritettu",text_expired:"Vahvistusta ei voitu suorittaa loppuun",button_restart:"Uudelleenkäynnistys",text_error:"Vahvistus epäonnistui",button_retry:"Yritä uudelleen",text_fetch_error:"Yhteys epäonnistui"},lv:{text_init:"Notiek inicializēšana...",text_ready:"Verifikācija, ka neesat robots",button_start:"Noklikšķiniet, lai sāktu verifikāciju",text_fetching:"Notiek drošības uzdevuma izgūšana",text_solving:"Notiek pārbaude, vai esat cilvēks...",text_completed:"Es esmu cilvēks",text_completed_sr:"Automātiska surogātpasta pārbaude pabeigta",text_expired:"Verifikācijas, ka neesat robots, derīgums beidzies",button_restart:"Restartēt",text_error:"Verifikācija neizdevās",button_retry:"Mēģināt vēlreiz",text_fetch_error:"Neizdevās izveidot savienojumu ar"},lt:{text_init:"Inicijuojama...",text_ready:"Patikrinimas, ar nesate robotas",button_start:"Spustelėkite patikrinimui pradėti",text_fetching:"Gavimo iššūkis",text_solving:"Tikrinama, ar esate žmogus...",text_completed:"Esu žmogus",text_completed_sr:"Automatinė patikra dėl pašto šiukšlių atlikta",text_expired:"Patikrinimas, ar nesate robotas, baigė galioti",button_restart:"Pradėti iš naujo",text_error:"Patikrinimas nepavyko",button_retry:"Kartoti",text_fetch_error:"Nepavyko prisijungti prie"},pl:{text_init:"Inicjowanie...",text_ready:"Weryfikacja antybotowa",button_start:"Kliknij, aby rozpocząć weryfikację",text_fetching:"Pobieranie",text_solving:"Weryfikacja, czy nie jesteś robotem...",text_completed:"Nie jestem robotem",text_completed_sr:"Zakończono automatyczne sprawdzanie spamu",text_expired:"Weryfikacja antybotowa wygasła",button_restart:"Uruchom ponownie",text_error:"Weryfikacja nie powiodła się",button_retry:"Spróbuj ponownie",text_fetch_error:"Nie udało się połączyć z"},et:{text_init:"Initsialiseerimine...",text_ready:"Robotivastane kinnitus",button_start:"Kinnitamisega alustamiseks klõpsake",text_fetching:"Väljakutse toomine",text_solving:"Kinnitatakse, et sa oled inimene...",text_completed:"Ma olen inimene",text_completed_sr:"Automaatne rämpsposti kontroll on lõpetatud",text_expired:"Robotivastane kinnitus aegus",button_restart:"Taaskäivita",text_error:"Kinnitamine nurjus",button_retry:"Proovi uuesti",text_fetch_error:"Ühenduse loomine nurjus"},hr:{text_init:"Početno postavljanje...",text_ready:"Provjera protiv robota",button_start:"Kliknite za početak provjere",text_fetching:"Dohvaćanje izazova",text_solving:"Provjeravamo jeste li čovjek...",text_completed:"Nisam robot",text_completed_sr:"Automatska provjera je završena",text_expired:"Vrijeme za provjeru protiv robota je isteklo",button_restart:"Osvježi",text_error:"Provjera nije uspjlela",button_retry:" Ponovo pokreni",text_fetch_error:"Nije moguće uspostaviti vezu"},sr:{text_init:"Pokretanje...",text_ready:"Anti-Robot Verifikacija",button_start:"Kliknite da biste započeli verifikaciju",text_fetching:"Učitavanje izazova",text_solving:"Verifikacija da ste čovek...",text_completed:"Ja sam čovek",text_completed_sr:"Automatska provera neželjene pošte je završena",text_expired:"Anti-Robot verifikacija je istekla",button_restart:"Ponovo pokrenuti",text_error:"Verifikacija nije uspela",button_retry:"Pokušajte ponovo",text_fetch_error:"Neuspelo povezivanje sa..."},sl:{text_init:"Inicializiranje...",text_ready:"Preverjanje robotov",button_start:"Kliknite za začetek preverjanja",text_fetching:"Prenašanje izziva",text_solving:"Preverjamo, ali ste človek",text_completed:"Nisem robot",text_completed_sr:"Avtomatsko preverjanje je zaključeno",text_expired:"Preverjanje robotov je poteklo",button_restart:"Osveži",text_error:"Preverjanje ni uspelo",button_retry:"Poskusi ponovno",text_fetch_error:"Povezave ni bilo mogoče vzpostaviti"},hu:{text_init:"Inicializálás...",text_ready:"Robotellenes ellenőrzés",button_start:"Kattintson az ellenőrzés megkezdéséhez",text_fetching:"Feladvány lekérése",text_solving:"Annak igazolása, hogy Ön nem robot...",text_completed:"Nem vagyok robot",text_completed_sr:"Automatikus spam ellenőrzés befejeződött",text_expired:"Robotellenes ellenőrzés lejárt",button_restart:"Újraindítás",text_error:"Az ellenőrzés nem sikerült",button_retry:"Próbálja újra",text_fetch_error:"Nem sikerült csatlakozni"},ro:{text_init:"Se inițializează...",text_ready:"Verificare anti-robot",button_start:"Click pentru a începe verificarea",text_fetching:"Downloading",text_solving:"Verificare că ești om...",text_completed:"Sunt om",text_completed_sr:"Verificarea automată a spam-ului a fost finalizată",text_expired:"Verificarea anti-robot a expirat",button_restart:"Restart",text_error:"Verificare eșuată",button_retry:"Reîncearcă",text_fetch_error:"Nu s-a putut conecta"},zh:{text_init:"初始化中……",text_ready:"人机验证",button_start:"点击开始",text_fetching:"正在加载",text_solving:"人机校验中……",text_completed:"我不是机器人",text_completed_sr:"人机验证完成",text_expired:"验证已过期",button_restart:"重新开始",text_error:"校验失败",button_retry:"重试",text_fetch_error:"无法连接到"},zh_tw:{text_init:"正在初始化……",text_ready:"反機器人驗證",button_start:"點擊開始驗證",text_fetching:"載入中",text_solving:"反機器人驗證中……",text_completed:"我不是機器人",text_completed_sr:"驗證完成",text_expired:"驗證超時",button_restart:"重新開始",text_error:"驗證失敗",button_retry:"重試",text_fetch_error:"無法連線到"},vi:{text_init:"Đang khởi tạo...",text_ready:"Xác minh chống Robot",button_start:"Bấm vào đây để xác minh",text_fetching:"Tìm nạp và xử lý thử thách",text_solving:"Xác minh bạn là người...",text_completed:"Bạn là con người",text_completed_sr:"Xác minh hoàn tất",text_expired:"Xác minh đã hết hạn",button_restart:"Khởi động lại",text_error:"Xác minh thất bại",button_retry:"Thử lại",text_fetch_error:"Không kết nối được"},he:{text_init:"בביצוע...",text_ready:"אימות אנוש",button_start:"צריך ללחוץ להתחלת האימות",text_fetching:"אתגר המענה בהכנה",text_solving:"מתבצע אימות אנוש...",text_completed:"אני לא רובוט",text_completed_sr:"בדיקת הספאם האוטומטית הסתיימה",text_expired:"פג תוקף אימות האנוש",button_restart:"להתחיל שוב",text_error:"אימות האנוש נכשל",button_retry:"לנסות שוב",text_fetch_error:"נכשל החיבור אל",rtl:!0},th:{text_init:"การเริ่มต้น...",text_ready:" การตรวจสอบต่อต้านหุ่นยนต์",button_start:"คลิกเพื่อเริ่มการตรวจสอบ",text_fetching:"การดึงความท้าทาย",text_solving:"ยืนยันว่าคุณเป็นมนุษย์...",text_completed:"ฉันเป็นมนุษย์",text_completed_sr:"การตรวจสอบสแปมอัตโนมัติเสร็จสมบูรณ์",text_expired:"การตรวจสอบ ต่อต้านหุ่นยนต์ หมดอายุ",button_restart:"รีสตาร์ท",text_error:"การยืนยันล้มเหลว",button_retry:"ลองใหม่",text_fetch_error:"ไม่สามารถเชื่อมต่อได้"},kr:{text_init:"초기화 중",text_ready:"Anti-Robot 검증",button_start:"검증을 위해 클릭해 주세요",text_fetching:"검증 준비 중",text_solving:"검증 중",text_completed:"검증이 완료되었습니다",text_completed_sr:"자동 스팸 확인 완료",text_expired:"Anti-Robot 검증 만료",button_restart:"다시 시작합니다",text_error:"검증 실패",button_retry:"다시 시도해 주세요",text_fetch_error:"연결하지 못했습니다"},nb:_};"undefined"!=typeof window&&(p=window.URL||window.webkitURL);var m=function(){return n((function t(){e(this,t),this.workers=[],this.puzzleNumber=0,this.numPuzzles=0,this.threshold=0,this.startTime=0,this.progress=0,this.totalHashes=0,this.puzzleSolverInputs=[],this.puzzleIndex=0,this.solutionBuffer=new Uint8Array(0),this.solverType=1,this.readyPromise=new Promise((function(){})),this.readyCount=0,this.startCount=0,this.progressCallback=function(){return 0},this.readyCallback=function(){return 0},this.startedCallback=function(){return 0},this.doneCallback=function(){return 0},this.errorCallback=function(){return 0}}),[{key:"init",value:function(){var t,e=this;this.terminateWorkers(),this.progress=0,this.totalHashes=0,this.readyPromise=new Promise((function(e){return t=e})),this.readyCount=0,this.startCount=0,this.workers=new Array(4);for(var r=new Blob(['!function(){function A(r){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},A(r)}function r(A,r){(null==r||r>A.length)&&(r=A.length);for(var t=0,n=Array(r);t<r;t++)n[t]=A[t];return n}function t(A,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(A,e(n.key),n)}}function n(A,r,n){return r&&t(A.prototype,r),n&&t(A,n),Object.defineProperty(A,"prototype",{writable:!1}),A}function e(r){var t=function(r){if("object"!=A(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,"string");if("object"!=A(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r);return"symbol"==A(t)?t:t+""}!function(){"use strict";var A,r=[];function t(){for(;r.length;)r[0](),r.shift()}function n(A){this.a=e,this.b=void 0,this.f=[];var r=this;try{A((function(A){i(r,A)}),(function(A){g(r,A)}))}catch(t){g(r,t)}}A=function(){setTimeout(t)};var e=2;function o(A){return new n((function(r){r(A)}))}function i(A,r){if(A.a==e){if(r==A)throw new TypeError;var t=!1;try{var n=r&&r.then;if(null!=r&&"object"==typeof r&&"function"==typeof n)return void n.call(r,(function(r){t||i(A,r),t=!0}),(function(r){t||g(A,r),t=!0}))}catch(o){return void(t||g(A,o))}A.a=0,A.b=r,I(A)}}function g(A,r){if(A.a==e){if(r==A)throw new TypeError;A.a=1,A.b=r,I(A)}}function I(t){!function(t){r.push(t),1==r.length&&A()}((function(){if(t.a!=e)for(;t.f.length;){var A=(o=t.f.shift())[0],r=o[1],n=o[2],o=o[3];try{0==t.a?n("function"==typeof A?A.call(void 0,t.b):t.b):1==t.a&&("function"==typeof r?n(r.call(void 0,t.b)):o(t.b))}catch(i){o(i)}}}))}n.prototype.g=function(A){return this.c(void 0,A)},n.prototype.c=function(A,r){var t=this;return new n((function(n,e){t.f.push([A,r,n,e]),I(t)}))},self.Promise||(self.Promise=n,self.Promise.resolve=o,self.Promise.reject=function(A){return new n((function(r,t){t(A)}))},self.Promise.race=function(A){return new n((function(r,t){for(var n=0;n<A.length;n+=1)o(A[n]).c(r,t)}))},self.Promise.all=function(A){return new n((function(r,t){function n(t){return function(n){i[t]=n,(e+=1)==A.length&&r(i)}}var e=0,i=[];0==A.length&&r(i);for(var g=0;g<A.length;g+=1)o(A[g]).c(n(g),t)}))},self.Promise.prototype.then=n.prototype.c,self.Promise.prototype.catch=n.prototype.g)}(),function(){"use strict";for(var A="=".charCodeAt(0),t=new Uint8Array(256),e=0;e<64;e++)t["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(e)]=e;var o=n((function A(r){!function(A,r){if(!(A instanceof r))throw new TypeError("Cannot call a class as a function")}(this,A),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=r}));function i(A,r){return A[r]^A[r+1]<<8^A[r+2]<<16^A[r+3]<<24}function g(A,r,t,n,e,o,i,g){var I,C,Q,c=r[i],a=r[i+1],f=r[g],u=r[g+1],B=A[t],s=A[t+1],E=A[n],l=A[n+1],h=A[e],w=A[e+1],y=A[o],v=A[o+1];Q=v^(s=(s=s+l+((B&E|(B|E)&~(I=B+E))>>>31))+a+(((B=I)&c|(B|c)&~(I=B+c))>>>31)),E=(Q=(l=(Q=l^(w=w+(v=C=y^(B=I))+((h&(y=Q)|(h|y)&~(I=h+y))>>>31)))>>>24^(C=E^(h=I))<<8)^(w=w+(v=(Q=v^(s=(s=s+l+((B&(E=C>>>24^Q<<8)|(B|E)&~(I=B+E))>>>31))+u+(((B=I)&f|(B|f)&~(I=B+f))>>>31)))>>>16^(C=y^(B=I))<<16)+((h&(y=C>>>16^Q<<16)|(h|y)&~(I=h+y))>>>31)))>>>31^(C=E^(h=I))<<1,l=C>>>31^Q<<1,A[t]=B,A[t+1]=s,A[n]=E,A[n+1]=l,A[e]=h,A[e+1]=w,A[o]=y,A[o+1]=v}var I,C,Q=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],c=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function a(A,r){for(var t=A.v,n=A.m,e=0;e<16;e++)t[e]=A.h[e],t[e+16]=Q[e];t[24]=t[24]^A.t,t[25]=t[25]^A.t/4294967296,r&&(t[28]=~t[28],t[29]=~t[29]);for(var o=0;o<32;o++)n[o]=i(A.b,4*o);for(var I=0;I<12;I++)g(t,n,0,8,16,24,c[16*I+0],c[16*I+1]),g(t,n,2,10,18,26,c[16*I+2],c[16*I+3]),g(t,n,4,12,20,28,c[16*I+4],c[16*I+5]),g(t,n,6,14,22,30,c[16*I+6],c[16*I+7]),g(t,n,0,10,20,30,c[16*I+8],c[16*I+9]),g(t,n,2,12,22,24,c[16*I+10],c[16*I+11]),g(t,n,4,14,16,26,c[16*I+12],c[16*I+13]),g(t,n,6,8,18,28,c[16*I+14],c[16*I+15]);for(var C=0;C<16;C++)A.h[C]=A.h[C]^t[C]^t[C+16]}function f(A,r){for(var t=0;t<16;t++)A.h[t]=Q[t];A.b.set(r),A.h[0]^=16842752^A.outlen}function u(){return new Promise((function(A){return A((function(A,r){var t=function(A,r,t){if(128!=A.length)throw Error("Invalid input");var n=A.buffer,e=new DataView(n),i=new o(32);i.t=128;for(var g=e.getUint32(124,!0),I=g+t,C=g;C<I;C++)if(e.setUint32(124,C,!0),f(i,A),a(i,!0),i.h[0]<r)return 0==ASC_TARGET?new Uint8Array(i.h.buffer):Uint8Array.wrap(i.h.buffer);return new Uint8Array(0)}(A,r,arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295);return[A,t]}))}))}Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,r){return new Uint8Array(Array.prototype.slice.call(this,A,r))}}),self.ASC_TARGET=0;var B=new Promise((function(A){return C=A}));self.onerror=function(A){self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=function(n){return new Promise((function(e,o){var i;i=n.data;var g=function(){try{return e()}catch(A){return o(A)}},Q=function(A){try{return setTimeout((function(){throw A})),g()}catch(r){return o(r)}};try{var c=function(){return g()};if("solver"!==i.type){var a,f,s,E,l=function(){return c.call(this)};return"start"===i.type?Promise.resolve(B).then(function(A){try{a=A,self.postMessage({type:"started"}),f=0;for(var t=0;t<256;t++){i.puzzleSolverInput[123]=t;var n=function(A){if(Array.isArray(A))return A}(o=a(i.puzzleSolverInput,i.threshold))||function(A){var r=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=r){var t,n,e,o,i=[],g=!0,I=!1;try{for(e=(r=r.call(A)).next;!(g=(t=e.call(r)).done)&&(i.push(t.value),2!==i.length);g=!0);}catch(A){I=!0,n=A}finally{try{if(!g&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(I)throw n}}return i}}(o)||function(A){if(A){if("string"==typeof A)return r(A,2);var t={}.toString.call(A).slice(8,-1);return"Object"===t&&A.constructor&&(t=A.constructor.name),"Map"===t||"Set"===t?Array.from(A):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(A,2):void 0}}(o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),e=n[0];if(0!==n[1].length){s=e;break}console.warn("FC: Internal error or no solution found"),f+=Math.pow(2,32)-1}return E=new DataView(s.slice(-4).buffer),f+=E.getUint32(0,!0),self.postMessage({type:"done",solution:s.slice(-8),h:f,puzzleIndex:i.puzzleIndex,puzzleNumber:i.puzzleNumber}),l.call(this)}catch(g){return Q(g)}var o}.bind(this),Q):l.call(this)}var h=function(){return self.postMessage({type:"ready",solver:I}),c.call(this)};if(i.forceJS)return I=1,Promise.resolve(u()).then(function(A){try{return C(A),h.call(this)}catch(r){return Q(r)}}.bind(this),Q);var w=function(){try{return h.call(this)}catch(A){return Q(A)}}.bind(this),y=function(A){try{return console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),I=1,Promise.resolve(u()).then((function(A){try{return C(A),w()}catch(r){return Q(r)}}),Q)}catch(r){return Q(r)}};try{var v;return I=2,v=WebAssembly.compile(function(r){var n=3285;r.charCodeAt(4379)===A&&n--,r.charCodeAt(4378)===A&&n--;for(var e=new Uint8Array(n),o=0,i=0;o<4380;o+=4){var g=t[r.charCodeAt(o+0)],I=t[r.charCodeAt(o+1)],C=t[r.charCodeAt(o+2)],Q=t[r.charCodeAt(o+3)];e[i++]=g<<2|I>>4,e[i++]=(15&I)<<4|C>>2,e[i++]=(3&C)<<6|63&Q}return e}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Promise.resolve(v).then((function(A){try{return Promise.resolve(function(A){return new Promise((function(r,t){var n,e,o;return Promise.resolve(function(A){return new Promise((function(r,t){var n,e;return n={env:{abort:function(){throw Error("Wasm aborted")}}},Promise.resolve(WebAssembly.instantiate(A,n)).then((function(A){try{return e=function(A){var r={},t=A.exports,n=t.memory,e=t.__alloc,o=t.__retain,i=t.__rtti_base||-1;return r.__allocArray=function(A,r){var t=function(A){return new Uint32Array(n.buffer)[(i+4>>>2)+2*A]}(A),g=31-Math.clz32(t>>>6&31),I=r.length,C=e(I<<g,0),Q=e(12,A),c=new Uint32Array(n.buffer);c[Q+0>>>2]=o(C),c[Q+4>>>2]=C,c[Q+8>>>2]=I<<g;var a=n.buffer,f=new Uint8Array(a);if(16384&t)for(var u=0;u<I;++u)f[(C>>>g)+u]=o(r[u]);else f.set(r,C>>>g);return Q},r.__getUint8Array=function(A){var r=new Uint32Array(n.buffer),t=r[A+4>>>2];return new Uint8Array(n.buffer,t,r[t-4>>>2]>>>0)},function(A){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=A.__argumentsLength?function(r){A.__argumentsLength.value=r}:A.__setArgumentsLength||A.__setargc||function(){return{}},n=function(){if(!Object.prototype.hasOwnProperty.call(A,e))return 1;var n=A[e],o=e.split(".")[0];"function"==typeof n&&n!==t?(r[o]=function(){return t(arguments.length),n.apply(void 0,arguments)}).original=n:r[o]=n};for(var e in A)n();return r}(t,r)}(A),r({exports:e})}catch(n){return t(n)}}),t)}))}(A)).then((function(A){try{return e=(n=A).exports.__retain(n.exports.__allocArray(n.exports.Uint8Array_ID,new Uint8Array(128))),o=n.exports.__getUint8Array(e),r((function(A,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295;o.set(A);var i=n.exports.solveBlake2b(e,r,t);o=n.exports.__getUint8Array(e);var g=n.exports.__getUint8Array(i);return n.exports.__release(i),[o,g]}))}catch(i){return t(i)}}),t)}))}(A)).then((function(A){try{return C(A),w()}catch(r){return y(r)}}),y)}catch(r){return y(r)}}),y)}catch(p){y(p)}}catch(p){Q(p)}}))}}()}("undefined"==typeof frcWorker?frcWorker={}:frcWorker);'],{type:"text/javascript"}),n=function(n){e.workers[n]=new Worker(p.createObjectURL(r)),e.workers[n].onerror=function(t){return e.errorCallback(t)},e.workers[n].onmessage=function(r){var o,i,a,A,s=r.data;if(s)if("ready"===s.type)e.readyCount++,e.solverType=s.solver,e.readyCount==e.workers.length&&(t(),e.readyCallback());else if("started"===s.type)e.startCount++,1==e.startCount&&(e.startTime=Date.now(),e.startedCallback());else if("done"===s.type){if(s.puzzleNumber!==e.puzzleNumber)return;if(e.puzzleIndex<e.puzzleSolverInputs.length&&(e.workers[n].postMessage({type:"start",puzzleSolverInput:e.puzzleSolverInputs[e.puzzleIndex],threshold:e.threshold,puzzleIndex:e.puzzleIndex,puzzleNumber:e.puzzleNumber}),e.puzzleIndex++),e.progress++,e.totalHashes+=s.h,e.progressCallback({n:e.numPuzzles,h:e.totalHashes,t:(Date.now()-e.startTime)/1e3,i:e.progress}),e.solutionBuffer.set(s.solution,8*s.puzzleIndex),e.progress==e.numPuzzles){var c=(Date.now()-e.startTime)/1e3;e.doneCallback({solution:e.solutionBuffer,h:e.totalHashes,t:c,diagnostics:(o=e.solverType,i=c,a=new Uint8Array(3),A=new DataView(a.buffer),A.setUint8(0,o),A.setUint16(1,i),a),solver:e.solverType})}}else"error"===s.type&&e.errorCallback(s)}},o=0;o<this.workers.length;o++)n(o)}},{key:"setupSolver",value:function(){for(var t={type:"solver",forceJS:arguments.length>0&&void 0!==arguments[0]&&arguments[0]},e=0;e<this.workers.length;e++)this.workers[e].postMessage(t)}},{key:"start",value:function(t){return new Promise(function(e,r){return Promise.resolve(this.readyPromise).then(function(){try{this.puzzleSolverInputs=function(t,e){for(var r=[],n=0;n<e;n++){var o=new Uint8Array(128);o.set(t),o[120]=n,r.push(o)}return r}(t.buffer,t.n),this.solutionBuffer=new Uint8Array(8*t.n),this.numPuzzles=t.n,this.threshold=t.threshold,this.puzzleIndex=0,this.puzzleNumber++;for(var n=0;n<this.workers.length&&this.puzzleIndex!==this.puzzleSolverInputs.length;n++)this.workers[n].postMessage({type:"start",puzzleSolverInput:this.puzzleSolverInputs[n],threshold:this.threshold,puzzleIndex:this.puzzleIndex,puzzleNumber:this.puzzleNumber}),this.puzzleIndex++;return e()}catch(o){return r(o)}}.bind(this),r)}.bind(this))}},{key:"terminateWorkers",value:function(){if(0!=this.workers.length){for(var t=0;t<this.workers.length;t++)this.workers[t].terminate();this.workers=[]}}}])}(),y=function(){return n((function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e(this,t),this.workerGroup=new m,this.valid=!1,this.needsReInit=!1,this.hasBeenStarted=!1,this.hasBeenDestroyed=!1,this.opts=Object.assign({forceJSFallback:!1,skipStyleInjection:!1,startMode:"focus",puzzleEndpoint:r.dataset.puzzleEndpoint||"https://api.friendlycaptcha.com/api/v1/puzzle",startedCallback:function(){return 0},readyCallback:function(){return 0},doneCallback:function(){return 0},errorCallback:function(){return 0},sitekey:r.dataset.sitekey||"",language:r.dataset.lang||"en",solutionFieldName:r.dataset.solutionFieldName||"frc-captcha-solution",styleNonce:null},n),this.e=r,this.e.friendlyChallengeWidget=this,this.loadLanguage(),r.innerText=this.lang.text_init,this.opts.skipStyleInjection||function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(!document.querySelector("#frc-style")){var e=document.createElement("style");e.id="frc-style",e.innerHTML=".frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:0;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;min-width:250px;max-width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.frc-rtl{direction:rtl}.frc-rtl .frc-content{margin:4px 0 0 6px}.frc-banner.frc-rtl{left:6px;right:auto}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}",t&&e.setAttribute("nonce",t),document.head.appendChild(e)}}(this.opts.styleNonce),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start)}),[{key:"init",value:function(t){var e,r=this;if(this.hasBeenDestroyed)console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");else if(this.initWorkerGroup(),t)this.start();else if("none"!==this.e.dataset.start&&("focus"===this.opts.startMode||"focus"===this.e.dataset.start)){var n=function(t){for(;"FORM"!==t.tagName;)if(!(t=t.parentElement))return null;return t}(this.e);n?(e=function(){return r.start()},n.addEventListener("focusin",e,{once:!0,passive:!0})):console.log("FriendlyCaptcha div seems not to be contained in a form, autostart will not work")}}},{key:"loadLanguage",value:function(t){if(void 0!==t?this.opts.language=t:this.e.dataset.lang&&(this.opts.language=this.e.dataset.lang),"string"==typeof this.opts.language){var e=this.opts.language.toLowerCase(),r=x[e];void 0===r&&"-"===e[2]&&(e=e.substring(0,2),r=x[e]),void 0===r&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),r=x.en),this.lang=r}else this.lang=Object.assign(Object.assign({},x.en),this.opts.language)}},{key:"makeButtonStart",value:function(){var t=this,e=this.e.querySelector("button");e&&(e.addEventListener("click",(function(){return t.start()}),{once:!0,passive:!0}),e.addEventListener("touchstart",(function(){return t.start()}),{once:!0,passive:!0}))}},{key:"onWorkerError",value:function(t){this.hasBeenStarted=!1,this.needsReInit=!0,this.expiryTimeout&&clearTimeout(this.expiryTimeout),console.error("[FRC]",t),this.e.innerHTML=a(this.opts.solutionFieldName,this.lang,"Background worker error "+t.message),this.makeButtonStart(),this.opts.forceJSFallback=!0}},{key:"initWorkerGroup",value:function(){var e=this;this.workerGroup.progressCallback=function(t){var r,n,o;r=t,n=e.e.querySelector(".frc-progress"),o=(r.i+1)/r.n,n&&(n.value=o,n.innerText=(100*o).toFixed(1)+"%",n.title=r.i+1+"/"+r.n+" ("+(r.h/r.t*.001).toFixed(0)+"K/s)")},this.workerGroup.readyCallback=function(){var t;e.e.innerHTML=o(e.opts.solutionFieldName,(t=e.lang).rtl,'<path d="M17,11c0.34,0,0.67,0.04,1,0.09V6.27L10.5,3L3,6.27v4.91c0,4.54,3.2,8.79,7.5,9.82c0.55-0.13,1.08-0.32,1.6-0.55 C11.41,19.47,11,18.28,11,17C11,13.69,13.69,11,17,11z"/><path d="M17,13c-2.21,0-4,1.79-4,4c0,2.21,1.79,4,4,4s4-1.79,4-4C21,14.79,19.21,13,17,13z M17,14.38"/>',!0,t.text_ready,".UNSTARTED",t.button_start,!1),e.makeButtonStart(),e.opts.readyCallback()},this.workerGroup.startedCallback=function(){var r;e.e.innerHTML=o(e.opts.solutionFieldName,(r=e.lang).rtl,t,!0,r.text_solving,".UNFINISHED",void 0,!0),e.opts.startedCallback()},this.workerGroup.doneCallback=function(t){var r=e.handleDone(t);e.opts.doneCallback(r);var n=e.e.dataset.callback;n&&window[n](r)},this.workerGroup.errorCallback=function(t){e.onWorkerError(t)},this.workerGroup.init(),this.workerGroup.setupSolver(this.opts.forceJSFallback)}},{key:"expire",value:function(){var t;this.hasBeenStarted=!1,!1!==this.e.isConnected&&(this.e.innerHTML=o(this.opts.solutionFieldName,(t=this.lang).rtl,r,!0,t.text_expired,".EXPIRED",t.button_restart),this.makeButtonStart())}},{key:"start",value:function(){return new Promise(function(e,r){var n;if(this.hasBeenDestroyed)return console.error("Can not start FriendlyCaptcha widget which has been destroyed"),e();if(this.hasBeenStarted)return console.warn("Can not start FriendlyCaptcha widget which has already been started"),e();if(!(n=this.opts.sitekey||this.e.dataset.sitekey))return console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"),this.e.innerHTML=a(this.opts.solutionFieldName,this.lang,"Website problem: sitekey not set",!1),e();if(-1!==s.indexOf("headless")||-1!==A.appVersion.indexOf("Headless")||-1!==s.indexOf("bot")||-1!==s.indexOf("crawl")||!0===A.webdriver||!A.language||void 0!==A.languages&&!A.languages.length)return this.e.innerHTML=a(this.opts.solutionFieldName,this.lang,"Browser check failed, try a different browser",!1,!0),e();if(this.needsReInit)return this.needsReInit=!1,this.init(!0),e();this.hasBeenStarted=!0;var i,c=function(){try{return Promise.resolve(this.workerGroup.start(this.puzzle)).then((function(){try{return e()}catch(t){return r(t)}}),r)}catch(t){return r(t)}}.bind(this),f=function(t){try{var n;return console.error("[FRC]",t),this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e.innerHTML=a(this.opts.solutionFieldName,this.lang,t.message),this.makeButtonStart(),this.opts.errorCallback({code:"error_getting_puzzle",description:t.toString(),error:t}),(n=this.e.dataset["callback-error"])&&window[n](this),e()}catch(o){return r(o)}}.bind(this);try{return this.e.innerHTML=o(this.opts.solutionFieldName,(i=this.lang).rtl,t,!0,i.text_fetching,".FETCHING",void 0,!0),Promise.resolve(g(this.opts.puzzleEndpoint,n,this.lang)).then(function(t){var e,r,n,o,i=this;try{return this.puzzle=(o=function(t){var e=t.length,r=3*e>>>2;t.charCodeAt(e-1)===u&&r--,t.charCodeAt(e-2)===u&&r--;for(var n=new Uint8Array(r),o=0,i=0;o<e;o+=4){var a=l[t.charCodeAt(o+0)],A=l[t.charCodeAt(o+1)],s=l[t.charCodeAt(o+2)],c=l[t.charCodeAt(o+3)];n[i++]=a<<2|A>>4,n[i++]=(15&A)<<4|s>>2,n[i++]=(3&s)<<6|63&c}return n}(n=(r=t.split("."))[1]),{signature:r[0],base64:n,buffer:o,n:o[14],threshold:(e=o[15],e>255?e=255:e<0&&(e=0),Math.pow(2,(255.999-e)/8)>>>0),expiry:3e5*o[13]}),this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.expiryTimeout=setTimeout((function(){return i.expire()}),this.puzzle.expiry-3e4),c()}catch(a){return f(a)}}.bind(this),f)}catch(h){f(h)}}.bind(this))}},{key:"handleDone",value:function(t){this.valid=!0;var e="".concat(this.puzzle.signature,".").concat(this.puzzle.base64,".").concat(h(t.solution),".").concat(h(t.diagnostics));return this.e.innerHTML=function(t,e,r,n){var i="".concat(n.t.toFixed(0),"s (").concat((n.h/n.t*.001).toFixed(0),"K/s)").concat(1===n.solver?" JS Fallback":"");return o(t,e.rtl,"<title>".concat(e.text_completed_sr,'</title><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path>'),!1,e.text_completed,r,void 0,!1,i,"frc-success")}(this.opts.solutionFieldName,this.lang,e,t),this.needsReInit=!0,e}},{key:"destroy",value:function(){this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e&&(this.e.remove(),delete this.e),this.hasBeenDestroyed=!0}},{key:"reset",value:function(){this.hasBeenDestroyed?console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore"):(this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start))}}])}();function v(){for(var t=window.friendlyChallenge.autoWidget,e=function(){var t=document.querySelectorAll(".frc-captcha");return 0===t.length&&console.warn("FriendlyCaptcha: No div was found with .frc-captcha class"),t}(),r=0;r<e.length;r++){var n=e[r];n&&!n.dataset.attached&&(t=new y(n),n.dataset.attached="1")}window.friendlyChallenge.autoWidget=t}window.friendlyChallenge={WidgetInstance:y},"loading"!==document.readyState?v():document.addEventListener("DOMContentLoaded",v)}()}("undefined"==typeof friendlyChallenge?friendlyChallenge={}:friendlyChallenge);

@@ -1,1 +0,1 @@

const t='<circle cx="12" cy="12" r="8" stroke-width="3" stroke-dasharray="15 10" fill="none" stroke-linecap="round" transform="rotate(0 12 12)"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="0.9s" values="0 12 12;360 12 12"/></circle>',e='<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>';function r(t,e,r,i,o,n,a,s=!1,A,l){return`<div class="frc-container${l?" "+l:""}${e?" frc-rtl":""}">\n<svg class="frc-icon"${i?' aria-hidden="true"':""} role="img" xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 24 24">${r}</svg>\n<div class="frc-content">\n <span class="frc-text" ${A?`data-debug="${A}"`:""}>${o}</span>\n ${a?`<button type="button" class="frc-button">${a}</button>`:""}\n ${s?'<progress class="frc-progress" value="0">0%</progress>':""}\n</div>\n</div><span class="frc-banner${e?" frc-rtl":""}"><a lang="en" href="https://friendlycaptcha.com/" rel="noopener" target="_blank"><b>Friendly</b>Captcha ⇗</a></span>\n${"-"===t?"":`<input name="${t}" class="frc-captcha-solution" type="hidden" value="${n}">`}`}function i(t,i,o,n=!0,a=!1){return r(t,i.rtl,e,!0,`<b>${i.text_error}</b><br>${o}`,a?".HEADLESS_ERROR":".ERROR",n?i.button_retry:void 0)}const o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="=".charCodeAt(0),a=new Uint8Array(256);for(let t=0;t<o.length;t++)a[o.charCodeAt(t)]=t;function s(t){const e=t.length;let r="";for(let i=0;i<e;i+=3){const e=t[i+0],n=t[i+1],a=t[i+2];let s="";s+=o.charAt(e>>>2),s+=o.charAt((3&e)<<4|n>>>4),s+=o.charAt((15&n)<<2|a>>>6),s+=o.charAt(63&a),r+=s}return e%3==2?r=r.substring(0,r.length-1)+"=":e%3==1&&(r=r.substring(0,r.length-2)+"=="),r}let A,l;async function c(t,e,r){let i=1e3;return fetch(t,e).catch((async o=>{if(0===r)throw o;return await new Promise((t=>setTimeout(t,i))),i*=4,c(t,e,r-1)}))}"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&(A=navigator,l=A.userAgent.toLowerCase());const g={text_init:" Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klikk for å starte verifiseringen",text_fetching:"Henter data",text_solving:"Sjekker at du er et menneske...",text_completed:"Jeg er et menneske",text_completed_sr:"Automatisk spam-sjekk fullført",text_expired:"Verifisering kunne ikke fullføres",button_restart:"Omstart",text_error:"Bekreftelsen mislyktes",button_retry:"Prøv på nytt",text_fetch_error:"Tilkoblingen mislyktes"},u={en:{text_init:"Initializing...",text_ready:"Anti-Robot Verification",button_start:"Click to start verification",text_fetching:"Fetching Challenge",text_solving:"Verifying you are human...",text_completed:"I am human",text_completed_sr:"Automatic spam check completed",text_expired:"Anti-Robot verification expired",button_restart:"Restart",text_error:"Verification failed",button_retry:"Retry",text_fetch_error:"Failed to connect to"},de:{text_init:"Initialisierung...",text_ready:"Anti-Roboter-Verifizierung",button_start:"Hier klicken",text_fetching:"Herausforderung laden...",text_solving:"Verifizierung, dass Sie ein Mensch sind...",text_completed:"Ich bin ein Mensch",text_completed_sr:"Automatische Spamprüfung abgeschlossen",text_expired:"Verifizierung abgelaufen",button_restart:"Erneut starten",text_error:"Verifizierung fehlgeschlagen",button_retry:"Erneut versuchen",text_fetch_error:"Verbindungsproblem mit"},nl:{text_init:"Initializeren...",text_ready:"Anti-robotverificatie",button_start:"Klik om te starten",text_fetching:"Aan het laden...",text_solving:"Anti-robotverificatie bezig...",text_completed:"Ik ben een mens",text_completed_sr:"Automatische anti-spamcheck voltooid",text_expired:"Verificatie verlopen",button_restart:"Opnieuw starten",text_error:"Verificatie mislukt",button_retry:"Opnieuw proberen",text_fetch_error:"Verbinding mislukt met"},fr:{text_init:"Chargement...",text_ready:"Vérification Anti-Robot",button_start:"Clique ici pour vérifier",text_fetching:"Chargement du défi",text_solving:"Nous vérifions que vous n'êtes pas un robot...",text_completed:"Je ne suis pas un robot",text_completed_sr:"Vérification automatique des spams terminée",text_expired:"Vérification anti-robot expirée",button_restart:"Redémarrer",text_error:"Échec de la vérification",button_retry:"Recommencer",text_fetch_error:"Problème de connexion avec"},it:{text_init:"Inizializzazione...",text_ready:"Verifica Anti-Robot",button_start:"Clicca per iniziare",text_fetching:"Caricamento...",text_solving:"Verificando che sei umano...",text_completed:"Non sono un robot",text_completed_sr:"Controllo automatico dello spam completato",text_expired:"Verifica Anti-Robot scaduta",button_restart:"Ricomincia",text_error:"Verifica fallita",button_retry:"Riprova",text_fetch_error:"Problema di connessione con"},pt:{text_init:"Inicializando...",text_ready:"Verificação Anti-Robô",button_start:"Clique para iniciar verificação",text_fetching:"Carregando...",text_solving:"Verificando se você é humano...",text_completed:"Eu sou humano",text_completed_sr:"Verificação automática de spam concluída",text_expired:"Verificação Anti-Robô expirada",button_restart:"Reiniciar",text_error:"Verificação falhou",button_retry:"Tentar novamente",text_fetch_error:"Falha de conexão com"},es:{text_init:"Inicializando...",text_ready:"Verificación Anti-Robot",button_start:"Haga clic para iniciar la verificación",text_fetching:"Cargando desafío",text_solving:"Verificando que eres humano...",text_completed:"Soy humano",text_completed_sr:"Verificación automática de spam completada",text_expired:"Verificación Anti-Robot expirada",button_restart:"Reiniciar",text_error:"Ha fallado la verificación",button_retry:"Intentar de nuevo",text_fetch_error:"Error al conectarse a"},ca:{text_init:"Inicialitzant...",text_ready:"Verificació Anti-Robot",button_start:"Fes clic per començar la verificació",text_fetching:"Carregant repte",text_solving:"Verificant que ets humà...",text_completed:"Soc humà",text_completed_sr:"Verificació automàtica de correu brossa completada",text_expired:"La verificació Anti-Robot ha expirat",button_restart:"Reiniciar",text_error:"Ha fallat la verificació",button_retry:"Tornar a provar",text_fetch_error:"Error connectant a"},ja:{text_init:"開始しています...",text_ready:"アンチロボット認証",button_start:"クリックして認証を開始",text_fetching:"ロードしています",text_solving:"認証中...",text_completed:"私はロボットではありません",text_completed_sr:"自動スパムチェックが完了しました",text_expired:"認証の期限が切れています",button_restart:"再度認証を行う",text_error:"認証にエラーが発生しました",button_retry:"再度認証を行う",text_fetch_error:"接続ができませんでした"},da:{text_init:"Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klik for at starte verifikationen",text_fetching:"Henter data",text_solving:"Kontrollerer at du er et menneske...",text_completed:"Jeg er et menneske.",text_completed_sr:"Automatisk spamkontrol gennemført",text_expired:"Verifikationen kunne ikke fuldføres",button_restart:"Genstart",text_error:"Bekræftelse mislykkedes",button_retry:"Prøv igen",text_fetch_error:"Forbindelsen mislykkedes"},ru:{text_init:"Инициализация...",text_ready:"АнтиРобот проверка",button_start:"Нажмите, чтобы начать проверку",text_fetching:"Получаю задачу",text_solving:"Проверяю, что вы человек...",text_completed:"Я человек",text_completed_sr:"Aвтоматическая проверка на спам завершена",text_expired:"Срок АнтиРоботной проверки истёк",button_restart:"Начать заново",text_error:"Ошибка проверки",button_retry:"Повторить ещё раз",text_fetch_error:"Ошибка подключения"},sv:{text_init:"Aktiverar...",text_ready:"Jag är inte en robot",button_start:"Klicka för att verifiera",text_fetching:"Hämtar data",text_solving:"Kontrollerar att du är människa...",text_completed:"Jag är en människa",text_completed_sr:"Automatisk spamkontroll slutförd",text_expired:"Anti-robot-verifieringen har löpt ut",button_restart:"Börja om",text_error:"Verifiering kunde inte slutföras",button_retry:"Omstart",text_fetch_error:"Verifiering misslyckades"},tr:{text_init:"Başlatılıyor...",text_ready:"Anti-Robot Doğrulaması",button_start:"Doğrulamayı başlatmak için tıklayın",text_fetching:"Yükleniyor",text_solving:"Robot olmadığınız doğrulanıyor...",text_completed:"Ben bir insanım",text_completed_sr:"Otomatik spam kontrolü tamamlandı",text_expired:"Anti-Robot doğrulamasının süresi doldu",button_restart:"Yeniden başlat",text_error:"Doğrulama başarısız oldu",button_retry:"Tekrar dene",text_fetch_error:"Bağlantı başarısız oldu"},el:{text_init:"Προετοιμασία...",text_ready:"Anti-Robot Επαλήθευση",button_start:" Κάντε κλικ για να ξεκινήσει η επαλήθευση",text_fetching:" Λήψη πρόκλησης",text_solving:" Επιβεβαίωση ανθρώπου...",text_completed:"Είμαι άνθρωπος",text_completed_sr:" Ο αυτόματος έλεγχος ανεπιθύμητου περιεχομένου ολοκληρώθηκε",text_expired:" Η επαλήθευση Anti-Robot έληξε",button_restart:" Επανεκκίνηση",text_error:" Η επαλήθευση απέτυχε",button_retry:" Δοκιμάστε ξανά",text_fetch_error:" Αποτυχία σύνδεσης με"},uk:{text_init:"Ініціалізація...",text_ready:"Антиробот верифікація",button_start:"Натисніть, щоб розпочати верифікацію",text_fetching:"З’єднання",text_solving:"Перевірка, що ви не робот...",text_completed:"Я не робот",text_completed_sr:"Автоматична перевірка спаму завершена",text_expired:"Час вичерпано",button_restart:"Почати знову",text_error:"Верифікація не вдалась",button_retry:"Спробувати знову",text_fetch_error:"Не вдалось з’єднатись"},bg:{text_init:"Инициализиране...",text_ready:"Анти-робот проверка",button_start:"Щракнете, за да започнете проверката",text_fetching:"Предизвикателство",text_solving:"Проверяваме дали си човек...",text_completed:"Аз съм човек",text_completed_sr:"Автоматичната проверка за спам е завършена",text_expired:"Анти-Робот проверката изтече",button_restart:"Рестартирайте",text_error:"Неуспешна проверка",button_retry:"Опитайте пак",text_fetch_error:"Неуспешно свързване с"},cs:{text_init:"Inicializace...",text_ready:"Ověření proti robotům",button_start:"Klikněte pro ověření",text_fetching:"Problém při načítání",text_solving:"Ověření, že jste člověk...",text_completed:"Jsem člověk",text_completed_sr:"Automatická kontrola spamu dokončena",text_expired:"Ověření proti robotům vypršelo",button_restart:"Restartovat",text_error:"Ověření se nezdařilo",button_retry:"Zkusit znovu",text_fetch_error:"Připojení se nezdařilo"},sk:{text_init:"Inicializácia...",text_ready:"Overenie proti robotom",button_start:"Kliknite pre overenie",text_fetching:"Problém pri načítaní",text_solving:"Overenie, že ste človek...",text_completed:"Som človek",text_completed_sr:"Automatická kontrola spamu dokončená",text_expired:"Overenie proti robotom vypršalo",button_restart:"Reštartovať",text_error:"Overenie sa nepodarilo",button_retry:"Skúsiť znova",text_fetch_error:"Pripojenie sa nepodarilo"},no:g,fi:{text_init:"Aktivoidaan...",text_ready:"En ole robotti",button_start:"Aloita vahvistus klikkaamalla",text_fetching:"Haetaan tietoja",text_solving:"Tarkistaa, että olet ihminen...",text_completed:"Olen ihminen",text_completed_sr:"Automaattinen roskapostin tarkistus suoritettu",text_expired:"Vahvistusta ei voitu suorittaa loppuun",button_restart:"Uudelleenkäynnistys",text_error:"Vahvistus epäonnistui",button_retry:"Yritä uudelleen",text_fetch_error:"Yhteys epäonnistui"},lv:{text_init:"Notiek inicializēšana...",text_ready:"Verifikācija, ka neesat robots",button_start:"Noklikšķiniet, lai sāktu verifikāciju",text_fetching:"Notiek drošības uzdevuma izgūšana",text_solving:"Notiek pārbaude, vai esat cilvēks...",text_completed:"Es esmu cilvēks",text_completed_sr:"Automātiska surogātpasta pārbaude pabeigta",text_expired:"Verifikācijas, ka neesat robots, derīgums beidzies",button_restart:"Restartēt",text_error:"Verifikācija neizdevās",button_retry:"Mēģināt vēlreiz",text_fetch_error:"Neizdevās izveidot savienojumu ar"},lt:{text_init:"Inicijuojama...",text_ready:"Patikrinimas, ar nesate robotas",button_start:"Spustelėkite patikrinimui pradėti",text_fetching:"Gavimo iššūkis",text_solving:"Tikrinama, ar esate žmogus...",text_completed:"Esu žmogus",text_completed_sr:"Automatinė patikra dėl pašto šiukšlių atlikta",text_expired:"Patikrinimas, ar nesate robotas, baigė galioti",button_restart:"Pradėti iš naujo",text_error:"Patikrinimas nepavyko",button_retry:"Kartoti",text_fetch_error:"Nepavyko prisijungti prie"},pl:{text_init:"Inicjowanie...",text_ready:"Weryfikacja antybotowa",button_start:"Kliknij, aby rozpocząć weryfikację",text_fetching:"Pobieranie",text_solving:"Weryfikacja, czy nie jesteś robotem...",text_completed:"Nie jestem robotem",text_completed_sr:"Zakończono automatyczne sprawdzanie spamu",text_expired:"Weryfikacja antybotowa wygasła",button_restart:"Uruchom ponownie",text_error:"Weryfikacja nie powiodła się",button_retry:"Spróbuj ponownie",text_fetch_error:"Nie udało się połączyć z"},et:{text_init:"Initsialiseerimine...",text_ready:"Robotivastane kinnitus",button_start:"Kinnitamisega alustamiseks klõpsake",text_fetching:"Väljakutse toomine",text_solving:"Kinnitatakse, et sa oled inimene...",text_completed:"Ma olen inimene",text_completed_sr:"Automaatne rämpsposti kontroll on lõpetatud",text_expired:"Robotivastane kinnitus aegus",button_restart:"Taaskäivita",text_error:"Kinnitamine nurjus",button_retry:"Proovi uuesti",text_fetch_error:"Ühenduse loomine nurjus"},hr:{text_init:"Početno postavljanje...",text_ready:"Provjera protiv robota",button_start:"Kliknite za početak provjere",text_fetching:"Dohvaćanje izazova",text_solving:"Provjeravamo jeste li čovjek...",text_completed:"Nisam robot",text_completed_sr:"Automatska provjera je završena",text_expired:"Vrijeme za provjeru protiv robota je isteklo",button_restart:"Osvježi",text_error:"Provjera nije uspjlela",button_retry:" Ponovo pokreni",text_fetch_error:"Nije moguće uspostaviti vezu"},sr:{text_init:"Pokretanje...",text_ready:"Anti-Robot Verifikacija",button_start:"Kliknite da biste započeli verifikaciju",text_fetching:"Učitavanje izazova",text_solving:"Verifikacija da ste čovek...",text_completed:"Ja sam čovek",text_completed_sr:"Automatska provera neželjene pošte je završena",text_expired:"Anti-Robot verifikacija je istekla",button_restart:"Ponovo pokrenuti",text_error:"Verifikacija nije uspela",button_retry:"Pokušajte ponovo",text_fetch_error:"Neuspelo povezivanje sa..."},sl:{text_init:"Inicializiranje...",text_ready:"Preverjanje robotov",button_start:"Kliknite za začetek preverjanja",text_fetching:"Prenašanje izziva",text_solving:"Preverjamo, ali ste človek",text_completed:"Nisem robot",text_completed_sr:"Avtomatsko preverjanje je zaključeno",text_expired:"Preverjanje robotov je poteklo",button_restart:"Osveži",text_error:"Preverjanje ni uspelo",button_retry:"Poskusi ponovno",text_fetch_error:"Povezave ni bilo mogoče vzpostaviti"},hu:{text_init:"Inicializálás...",text_ready:"Robotellenes ellenőrzés",button_start:"Kattintson az ellenőrzés megkezdéséhez",text_fetching:"Feladvány lekérése",text_solving:"Annak igazolása, hogy Ön nem robot...",text_completed:"Nem vagyok robot",text_completed_sr:"Automatikus spam ellenőrzés befejeződött",text_expired:"Robotellenes ellenőrzés lejárt",button_restart:"Újraindítás",text_error:"Az ellenőrzés nem sikerült",button_retry:"Próbálja újra",text_fetch_error:"Nem sikerült csatlakozni"},ro:{text_init:"Se inițializează...",text_ready:"Verificare anti-robot",button_start:"Click pentru a începe verificarea",text_fetching:"Downloading",text_solving:"Verificare că ești om...",text_completed:"Sunt om",text_completed_sr:"Verificarea automată a spam-ului a fost finalizată",text_expired:"Verificarea anti-robot a expirat",button_restart:"Restart",text_error:"Verificare eșuată",button_retry:"Reîncearcă",text_fetch_error:"Nu s-a putut conecta"},zh:{text_init:"初始化中……",text_ready:"人机验证",button_start:"点击开始",text_fetching:"正在加载",text_solving:"人机校验中……",text_completed:"我不是机器人",text_completed_sr:"人机验证完成",text_expired:"验证已过期",button_restart:"重新开始",text_error:"校验失败",button_retry:"重试",text_fetch_error:"无法连接到"},zh_tw:{text_init:"正在初始化……",text_ready:"反機器人驗證",button_start:"點擊開始驗證",text_fetching:"載入中",text_solving:"反機器人驗證中……",text_completed:"我不是機器人",text_completed_sr:"驗證完成",text_expired:"驗證超時",button_restart:"重新開始",text_error:"驗證失敗",button_retry:"重試",text_fetch_error:"無法連線到"},vi:{text_init:"Đang khởi tạo...",text_ready:"Xác minh chống Robot",button_start:"Bấm vào đây để xác minh",text_fetching:"Tìm nạp và xử lý thử thách",text_solving:"Xác minh bạn là người...",text_completed:"Bạn là con người",text_completed_sr:"Xác minh hoàn tất",text_expired:"Xác minh đã hết hạn",button_restart:"Khởi động lại",text_error:"Xác minh thất bại",button_retry:"Thử lại",text_fetch_error:"Không kết nối được"},he:{text_init:"בביצוע...",text_ready:"אימות אנוש",button_start:"צריך ללחוץ להתחלת האימות",text_fetching:"אתגר המענה בהכנה",text_solving:"מתבצע אימות אנוש...",text_completed:"אני לא רובוט",text_completed_sr:"בדיקת הספאם האוטומטית הסתיימה",text_expired:"פג תוקף אימות האנוש",button_restart:"להתחיל שוב",text_error:"אימות האנוש נכשל",button_retry:"לנסות שוב",text_fetch_error:"נכשל החיבור אל",rtl:!0},th:{text_init:"การเริ่มต้น...",text_ready:" การตรวจสอบต่อต้านหุ่นยนต์",button_start:"คลิกเพื่อเริ่มการตรวจสอบ",text_fetching:"การดึงความท้าทาย",text_solving:"ยืนยันว่าคุณเป็นมนุษย์...",text_completed:"ฉันเป็นมนุษย์",text_completed_sr:"การตรวจสอบสแปมอัตโนมัติเสร็จสมบูรณ์",text_expired:"การตรวจสอบ ต่อต้านหุ่นยนต์ หมดอายุ",button_restart:"รีสตาร์ท",text_error:"การยืนยันล้มเหลว",button_retry:"ลองใหม่",text_fetch_error:"ไม่สามารถเชื่อมต่อได้"},kr:{text_init:"초기화 중",text_ready:"Anti-Robot 검증",button_start:"검증을 위해 클릭해 주세요",text_fetching:"검증 준비 중",text_solving:"검증 중",text_completed:"검증이 완료되었습니다",text_completed_sr:"자동 스팸 확인 완료",text_expired:"Anti-Robot 검증 만료",button_restart:"다시 시작합니다",text_error:"검증 실패",button_retry:"다시 시도해 주세요",text_fetch_error:"연결하지 못했습니다"},nb:g};function h(t,e){const r=new Uint8Array(3),i=new DataView(r.buffer);return i.setUint8(0,t),i.setUint16(1,e),r}let d;"undefined"!=typeof window&&(d=window.URL||window.webkitURL);class p{constructor(){this.workers=[],this.puzzleNumber=0,this.numPuzzles=0,this.threshold=0,this.startTime=0,this.progress=0,this.totalHashes=0,this.puzzleSolverInputs=[],this.puzzleIndex=0,this.solutionBuffer=new Uint8Array(0),this.solverType=1,this.readyCount=0,this.startCount=0,this.progressCallback=()=>0,this.readyCallback=()=>0,this.startedCallback=()=>0,this.doneCallback=()=>0,this.errorCallback=()=>0}init(){this.terminateWorkers(),this.progress=0,this.totalHashes=0,this.readyCount=0,this.startCount=0,this.workers=new Array(4);const t=new Blob(['!function(){"use strict";const A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",I="=".charCodeAt(0),g=new Uint8Array(256);for(let I=0;I<A.length;I++)g[A.charCodeAt(I)]=I;function C(A){const I={},g=A.exports,C=g.memory,Q=g.__alloc,t=g.__retain,B=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(B+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),o=I.length,i=Q(o<<e,0),r=Q(12,A),n=new Uint32Array(C.buffer);n[r+0>>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<o;++A)s[(i>>>e)+A]=t(I[A]);else s.set(I,i>>>e);return r},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const Q=A[C],t=C.split(".")[0];"function"==typeof Q&&Q!==g?(I[t]=(...A)=>(g(A.length),Q(...A))).original=Q:I[t]=Q}return I}(g,I)}class Q{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function t(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function B(A,I,g,C,Q,t,B,e){const o=I[B],i=I[B+1],r=I[e],n=I[e+1];let E,s,w,c,a=A[g],D=A[g+1],h=A[C],f=A[C+1],y=A[Q],l=A[Q+1],u=A[t],N=A[t+1];E=a+h,s=(a&h|(a|h)&~E)>>>31,a=E,D=D+f+s,E=a+o,s=(a&o|(a|o)&~E)>>>31,a=E,D=D+i+s,w=u^a,c=N^D,u=c,N=w,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=h^y,c=f^l,h=w>>>24^c<<8,f=c>>>24^w<<8,E=a+h,s=(a&h|(a|h)&~E)>>>31,a=E,D=D+f+s,E=a+r,s=(a&r|(a|r)&~E)>>>31,a=E,D=D+n+s,w=u^a,c=N^D,u=w>>>16^c<<16,N=c>>>16^w<<16,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=h^y,c=f^l,h=c>>>31^w<<1,f=w>>>31^c<<1,A[g]=a,A[g+1]=D,A[C]=h,A[C+1]=f,A[Q]=y,A[Q+1]=l,A[t]=u,A[t+1]=N}const e=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],o=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function i(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=e[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=t(A.b,4*I);for(let A=0;A<12;A++)B(g,C,0,8,16,24,o[16*A+0],o[16*A+1]),B(g,C,2,10,18,26,o[16*A+2],o[16*A+3]),B(g,C,4,12,20,28,o[16*A+4],o[16*A+5]),B(g,C,6,14,22,30,o[16*A+6],o[16*A+7]),B(g,C,0,10,20,30,o[16*A+8],o[16*A+9]),B(g,C,2,12,22,24,o[16*A+10],o[16*A+11]),B(g,C,4,14,16,26,o[16*A+12],o[16*A+13]),B(g,C,6,8,18,28,o[16*A+14],o[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function r(A,I){for(let I=0;I<16;I++)A.h[I]=e[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function n(){return(A,I,g=4294967295)=>{const C=function(A,I,g){if(128!=A.length)throw Error("Invalid input");const C=A.buffer,t=new DataView(C),B=new Q(32);B.t=128;const e=t.getUint32(124,!0),o=e+g;for(let g=e;g<o;g++)if(t.setUint32(124,g,!0),r(B,A),i(B,!0),B.h[0]<I)return 0==ASC_TARGET?new Uint8Array(B.h.buffer):Uint8Array.wrap(B.h.buffer);return new Uint8Array(0)}(A,I,g);return[A,C]}}let E,s;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const w=new Promise((A=>s=A));self.onerror=A=>{self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=async A=>{const Q=A.data;try{if("solver"===Q.type){if(Q.forceJS){E=1;const A=await n();s(A)}else try{E=2;const A=WebAssembly.compile(function(A){const C=A.length;let Q=3*C>>>2;A.charCodeAt(C-1)===I&&Q--,A.charCodeAt(C-2)===I&&Q--;const t=new Uint8Array(Q);for(let I=0,Q=0;I<C;I+=4){const C=g[A.charCodeAt(I+0)],B=g[A.charCodeAt(I+1)],e=g[A.charCodeAt(I+2)],o=g[A.charCodeAt(I+3)];t[Q++]=C<<2|B>>4,t[Q++]=(15&B)<<4|e>>2,t[Q++]=(3&e)<<6|63&o}return t}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Q=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error("Wasm aborted")}}};return{exports:C(await WebAssembly.instantiate(A,I))}}(A),g=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let Q=I.exports.__getUint8Array(g);return(A,C,t=4294967295)=>{Q.set(A);const B=I.exports.solveBlake2b(g,C,t);Q=I.exports.__getUint8Array(g);const e=I.exports.__getUint8Array(B);return I.exports.__release(B),[Q,e]}}(await A);s(Q)}catch(A){console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),E=1;const I=await n();s(I)}self.postMessage({type:"ready",solver:E})}else if("start"===Q.type){const A=await w;self.postMessage({type:"started"});let I,g=0;for(let C=0;C<256;C++){Q.puzzleSolverInput[123]=C;const[t,B]=A(Q.puzzleSolverInput,Q.threshold);if(0!==B.length){I=t;break}console.warn("FC: Internal error or no solution found"),g+=Math.pow(2,32)-1}g+=new DataView(I.slice(-4).buffer).getUint32(0,!0),self.postMessage({type:"done",solution:I.slice(-8),h:g,puzzleIndex:Q.puzzleIndex,puzzleNumber:Q.puzzleNumber})}}catch(A){setTimeout((()=>{throw A}))}}}();'],{type:"text/javascript"});for(let e=0;e<this.workers.length;e++)this.workers[e]=new Worker(d.createObjectURL(t)),this.workers[e].onerror=t=>this.errorCallback(t),this.workers[e].onmessage=t=>{const r=t.data;if(r)if("ready"===r.type)this.readyCount++,this.solverType=r.solver,this.readyCount==this.workers.length&&this.readyCallback();else if("started"===r.type)this.startCount++,1==this.startCount&&(this.startTime=Date.now(),this.startedCallback());else if("done"===r.type){if(r.puzzleNumber!==this.puzzleNumber)return;if(this.puzzleIndex<this.puzzleSolverInputs.length&&(this.workers[e].postMessage({type:"start",puzzleSolverInput:this.puzzleSolverInputs[this.puzzleIndex],threshold:this.threshold,puzzleIndex:this.puzzleIndex,puzzleNumber:this.puzzleNumber}),this.puzzleIndex++),this.progress++,this.totalHashes+=r.h,this.progressCallback({n:this.numPuzzles,h:this.totalHashes,t:(Date.now()-this.startTime)/1e3,i:this.progress}),this.solutionBuffer.set(r.solution,8*r.puzzleIndex),this.progress==this.numPuzzles){const t=(Date.now()-this.startTime)/1e3;this.doneCallback({solution:this.solutionBuffer,h:this.totalHashes,t,diagnostics:h(this.solverType,t),solver:this.solverType})}}else"error"===r.type&&this.errorCallback(r)}}setupSolver(t=!1){const e={type:"solver",forceJS:t};for(let t=0;t<this.workers.length;t++)this.workers[t].postMessage(e)}start(t){this.puzzleSolverInputs=function(t,e){const r=[];for(let i=0;i<e;i++){const e=new Uint8Array(128);e.set(t),e[120]=i,r.push(e)}return r}(t.buffer,t.n),this.solutionBuffer=new Uint8Array(8*t.n),this.numPuzzles=t.n,this.threshold=t.threshold,this.puzzleIndex=0,this.puzzleNumber++;for(let t=0;t<this.workers.length&&this.puzzleIndex!==this.puzzleSolverInputs.length;t++)this.workers[t].postMessage({type:"start",puzzleSolverInput:this.puzzleSolverInputs[t],threshold:this.threshold,puzzleIndex:this.puzzleIndex,puzzleNumber:this.puzzleNumber}),this.puzzleIndex++}terminateWorkers(){if(0!=this.workers.length){for(let t=0;t<this.workers.length;t++)this.workers[t].terminate();this.workers=[]}}}class _{constructor(t,e={}){this.workerGroup=new p,this.valid=!1,this.needsReInit=!1,this.hasBeenStarted=!1,this.hasBeenDestroyed=!1,this.opts=Object.assign({forceJSFallback:!1,skipStyleInjection:!1,startMode:"focus",puzzleEndpoint:t.dataset.puzzleEndpoint||"https://api.friendlycaptcha.com/api/v1/puzzle",startedCallback:()=>0,readyCallback:()=>0,doneCallback:()=>0,errorCallback:()=>0,sitekey:t.dataset.sitekey||"",language:t.dataset.lang||"en",solutionFieldName:t.dataset.solutionFieldName||"frc-captcha-solution",styleNonce:null},e),this.e=t,this.e.friendlyChallengeWidget=this,this.loadLanguage(),t.innerText=this.lang.text_init,this.opts.skipStyleInjection||function(t=null){if(!document.querySelector("#frc-style")){const e=document.createElement("style");e.id="frc-style",e.innerHTML=".frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:px;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;min-width:250px;max-width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.frc-rtl{direction:rtl}.frc-rtl .frc-content{margin:4px 0 0 6px}.frc-banner.frc-rtl{left:6px;right:auto}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}",t&&e.setAttribute("nonce",t),document.head.appendChild(e)}}(this.opts.styleNonce),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start)}init(t){var e;if(this.hasBeenDestroyed)console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");else if(this.initWorkerGroup(),t)this.start();else if("none"!==this.e.dataset.start&&("focus"===this.opts.startMode||"focus"===this.e.dataset.start)){const t=function(t){for(;"FORM"!==t.tagName;)if(!(t=t.parentElement))return null;return t}(this.e);t?(e=()=>this.start(),t.addEventListener("focusin",e,{once:!0,passive:!0})):console.log("FriendlyCaptcha div seems not to be contained in a form, autostart will not work")}}loadLanguage(t){if(void 0!==t?this.opts.language=t:this.e.dataset.lang&&(this.opts.language=this.e.dataset.lang),"string"==typeof this.opts.language){let t=this.opts.language.toLowerCase(),e=u[t];void 0===e&&"-"===t[2]&&(t=t.substring(0,2),e=u[t]),void 0===e&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),e=u.en),this.lang=e}else this.lang=Object.assign(Object.assign({},u.en),this.opts.language)}makeButtonStart(){const t=this.e.querySelector("button");t&&(t.addEventListener("click",(()=>this.start()),{once:!0,passive:!0}),t.addEventListener("touchstart",(()=>this.start()),{once:!0,passive:!0}))}onWorkerError(t){this.hasBeenStarted=!1,this.needsReInit=!0,this.expiryTimeout&&clearTimeout(this.expiryTimeout),console.error("[FRC]",t),this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,"Background worker error "+t.message),this.makeButtonStart(),this.opts.forceJSFallback=!0}initWorkerGroup(){this.workerGroup.progressCallback=t=>{!function(t,e){const r=t.querySelector(".frc-progress"),i=(e.i+1)/e.n;r&&(r.value=i,r.innerText=(100*i).toFixed(1)+"%",r.title=e.i+1+"/"+e.n+" ("+(e.h/e.t*.001).toFixed(0)+"K/s)")}(this.e,t)},this.workerGroup.readyCallback=()=>{var t;this.e.innerHTML=r(this.opts.solutionFieldName,(t=this.lang).rtl,'<path d="M17,11c0.34,0,0.67,0.04,1,0.09V6.27L10.5,3L3,6.27v4.91c0,4.54,3.2,8.79,7.5,9.82c0.55-0.13,1.08-0.32,1.6-0.55 C11.41,19.47,11,18.28,11,17C11,13.69,13.69,11,17,11z"/><path d="M17,13c-2.21,0-4,1.79-4,4c0,2.21,1.79,4,4,4s4-1.79,4-4C21,14.79,19.21,13,17,13z M17,14.38"/>',!0,t.text_ready,".UNSTARTED",t.button_start,!1),this.makeButtonStart(),this.opts.readyCallback()},this.workerGroup.startedCallback=()=>{var e;this.e.innerHTML=r(this.opts.solutionFieldName,(e=this.lang).rtl,t,!0,e.text_solving,".UNFINISHED",void 0,!0),this.opts.startedCallback()},this.workerGroup.doneCallback=t=>{const e=this.handleDone(t);this.opts.doneCallback(e);const r=this.e.dataset.callback;r&&window[r](e)},this.workerGroup.errorCallback=t=>{this.onWorkerError(t)},this.workerGroup.init(),this.workerGroup.setupSolver(this.opts.forceJSFallback)}expire(){var t;this.hasBeenStarted=!1,!1!==this.e.isConnected&&(this.e.innerHTML=r(this.opts.solutionFieldName,(t=this.lang).rtl,e,!0,t.text_expired,".EXPIRED",t.button_restart),this.makeButtonStart())}async start(){if(this.hasBeenDestroyed)return void console.error("Can not start FriendlyCaptcha widget which has been destroyed");if(this.hasBeenStarted)return void console.warn("Can not start FriendlyCaptcha widget which has already been started");const e=this.opts.sitekey||this.e.dataset.sitekey;if(!e)return console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"),void(this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,"Website problem: sitekey not set",!1));if(-1===l.indexOf("headless")&&-1===A.appVersion.indexOf("Headless")&&-1===l.indexOf("bot")&&-1===l.indexOf("crawl")&&!0!==A.webdriver&&A.language&&(void 0===A.languages||A.languages.length)){if(this.needsReInit)return this.needsReInit=!1,void this.init(!0);this.hasBeenStarted=!0;try{this.e.innerHTML=r(this.opts.solutionFieldName,(o=this.lang).rtl,t,!0,o.text_fetching,".FETCHING",void 0,!0),this.puzzle=function(t){const e=t.split("."),r=e[1],i=function(t){const e=t.length;let r=3*e>>>2;t.charCodeAt(e-1)===n&&r--,t.charCodeAt(e-2)===n&&r--;const i=new Uint8Array(r);for(let r=0,o=0;r<e;r+=4){const e=a[t.charCodeAt(r+0)],n=a[t.charCodeAt(r+1)],s=a[t.charCodeAt(r+2)],A=a[t.charCodeAt(r+3)];i[o++]=e<<2|n>>4,i[o++]=(15&n)<<4|s>>2,i[o++]=(3&s)<<6|63&A}return i}(r);return{signature:e[0],base64:r,buffer:i,n:i[14],threshold:(o=i[15],o>255?o=255:o<0&&(o=0),Math.pow(2,(255.999-o)/8)>>>0),expiry:3e5*i[13]};var o}(await async function(t,e,r){const i=t.split(",");for(let t=0;t<i.length;t++)try{const r=await c(i[t]+"?sitekey="+e,{headers:[["x-frc-client","js-0.9.16"]],mode:"cors"},2);if(r.ok)return(await r.json()).data.puzzle;{let e;try{e=await r.json()}catch(t){}if(e&&e.errors&&"endpoint_not_enabled"===e.errors[0])throw Error(`Endpoint not allowed (${r.status})`);if(t===i.length-1)throw Error(`Response status ${r.status} ${r.statusText} ${e?e.errors:""}`)}}catch(e){console.error("[FRC Fetch]:",e);const o=new Error(`${r.text_fetch_error} <a class="frc-err-url" href="${i[t]}">${i[t]}</a>`);throw o.rawError=e,o}throw Error("Internal error")}(this.opts.puzzleEndpoint,e,this.lang)),this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.expiryTimeout=setTimeout((()=>this.expire()),this.puzzle.expiry-3e4)}catch(t){console.error("[FRC]",t),this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,t.message),this.makeButtonStart();const e="error_getting_puzzle";this.opts.errorCallback({code:e,description:t.toString(),error:t});const r=this.e.dataset["callback-error"];return void(r&&window[r](this))}var o;this.workerGroup.start(this.puzzle)}else this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,"Browser check failed, try a different browser",!1,!0)}handleDone(t){this.valid=!0;const e=`${this.puzzle.signature}.${this.puzzle.base64}.${s(t.solution)}.${s(t.diagnostics)}`;return this.e.innerHTML=function(t,e,i,o){const n=`${o.t.toFixed(0)}s (${(o.h/o.t*.001).toFixed(0)}K/s)${1===o.solver?" JS Fallback":""}`;return r(t,e.rtl,`<title>${e.text_completed_sr}</title><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path>`,!1,e.text_completed,i,void 0,!1,n,"frc-success")}(this.opts.solutionFieldName,this.lang,e,t),this.needsReInit=!0,e}destroy(){this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e&&(this.e.remove(),delete this.e),this.hasBeenDestroyed=!0}reset(){this.hasBeenDestroyed?console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore"):(this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start))}}function x(){let t=window.friendlyChallenge.autoWidget;const e=function(){const t=document.querySelectorAll(".frc-captcha");return 0===t.length&&console.warn("FriendlyCaptcha: No div was found with .frc-captcha class"),t}();for(let r=0;r<e.length;r++){const i=e[r];i&&!i.dataset.attached&&(t=new _(i),i.dataset.attached="1")}window.friendlyChallenge.autoWidget=t}window.friendlyChallenge={WidgetInstance:_},"loading"!==document.readyState?x():document.addEventListener("DOMContentLoaded",x);
const t='<circle cx="12" cy="12" r="8" stroke-width="3" stroke-dasharray="15 10" fill="none" stroke-linecap="round" transform="rotate(0 12 12)"><animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="0.9s" values="0 12 12;360 12 12"/></circle>',e='<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>';function r(t,e,r,i,o,n,a,s=!1,A,l){return`<div class="frc-container${l?" "+l:""}${e?" frc-rtl":""}">\n<svg class="frc-icon"${i?' aria-hidden="true"':""} role="img" xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 24 24">${r}</svg>\n<div class="frc-content">\n <span class="frc-text" ${A?`data-debug="${A}"`:""}>${o}</span>\n ${a?`<button type="button" class="frc-button">${a}</button>`:""}\n ${s?'<progress class="frc-progress" value="0">0%</progress>':""}\n</div>\n</div><span class="frc-banner${e?" frc-rtl":""}"><a lang="en" href="https://friendlycaptcha.com/" rel="noopener" target="_blank"><b>Friendly</b>Captcha ⇗</a></span>\n${"-"===t?"":`<input name="${t}" class="frc-captcha-solution" type="hidden" value="${n}">`}`}function i(t,i,o,n=!0,a=!1){return r(t,i.rtl,e,!0,`<b>${i.text_error}</b><br>${o}`,a?".HEADLESS_ERROR":".ERROR",n?i.button_retry:void 0)}const o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n="=".charCodeAt(0),a=new Uint8Array(256);for(let t=0;t<64;t++)a[o.charCodeAt(t)]=t;function s(t){const e=t.length;let r="";for(let i=0;i<e;i+=3){const e=t[i+0],n=t[i+1],a=t[i+2];let s="";s+=o.charAt(e>>>2),s+=o.charAt((3&e)<<4|n>>>4),s+=o.charAt((15&n)<<2|a>>>6),s+=o.charAt(63&a),r+=s}return e%3==2?r=r.substring(0,r.length-1)+"=":e%3==1&&(r=r.substring(0,r.length-2)+"=="),r}let A,l;async function c(t,e,r){let i=1e3;return fetch(t,e).catch((async o=>{if(0===r)throw o;return await new Promise((t=>setTimeout(t,i))),i*=4,c(t,e,r-1)}))}"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&(A=navigator,l=A.userAgent.toLowerCase());const g={text_init:" Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klikk for å starte verifiseringen",text_fetching:"Henter data",text_solving:"Sjekker at du er et menneske...",text_completed:"Jeg er et menneske",text_completed_sr:"Automatisk spam-sjekk fullført",text_expired:"Verifisering kunne ikke fullføres",button_restart:"Omstart",text_error:"Bekreftelsen mislyktes",button_retry:"Prøv på nytt",text_fetch_error:"Tilkoblingen mislyktes"},u={en:{text_init:"Initializing...",text_ready:"Anti-Robot Verification",button_start:"Click to start verification",text_fetching:"Fetching Challenge",text_solving:"Verifying you are human...",text_completed:"I am human",text_completed_sr:"Automatic spam check completed",text_expired:"Anti-Robot verification expired",button_restart:"Restart",text_error:"Verification failed",button_retry:"Retry",text_fetch_error:"Failed to connect to"},de:{text_init:"Initialisierung...",text_ready:"Anti-Roboter-Verifizierung",button_start:"Hier klicken",text_fetching:"Herausforderung laden...",text_solving:"Verifizierung, dass Sie ein Mensch sind...",text_completed:"Ich bin ein Mensch",text_completed_sr:"Automatische Spamprüfung abgeschlossen",text_expired:"Verifizierung abgelaufen",button_restart:"Erneut starten",text_error:"Verifizierung fehlgeschlagen",button_retry:"Erneut versuchen",text_fetch_error:"Verbindungsproblem mit"},nl:{text_init:"Initializeren...",text_ready:"Anti-robotverificatie",button_start:"Klik om te starten",text_fetching:"Aan het laden...",text_solving:"Anti-robotverificatie bezig...",text_completed:"Ik ben een mens",text_completed_sr:"Automatische anti-spamcheck voltooid",text_expired:"Verificatie verlopen",button_restart:"Opnieuw starten",text_error:"Verificatie mislukt",button_retry:"Opnieuw proberen",text_fetch_error:"Verbinding mislukt met"},fr:{text_init:"Chargement...",text_ready:"Vérification Anti-Robot",button_start:"Clique ici pour vérifier",text_fetching:"Chargement du défi",text_solving:"Nous vérifions que vous n'êtes pas un robot...",text_completed:"Je ne suis pas un robot",text_completed_sr:"Vérification automatique des spams terminée",text_expired:"Vérification anti-robot expirée",button_restart:"Redémarrer",text_error:"Échec de la vérification",button_retry:"Recommencer",text_fetch_error:"Problème de connexion avec"},it:{text_init:"Inizializzazione...",text_ready:"Verifica Anti-Robot",button_start:"Clicca per iniziare",text_fetching:"Caricamento...",text_solving:"Verificando che sei umano...",text_completed:"Non sono un robot",text_completed_sr:"Controllo automatico dello spam completato",text_expired:"Verifica Anti-Robot scaduta",button_restart:"Ricomincia",text_error:"Verifica fallita",button_retry:"Riprova",text_fetch_error:"Problema di connessione con"},pt:{text_init:"Inicializando...",text_ready:"Verificação Anti-Robô",button_start:"Clique para iniciar verificação",text_fetching:"Carregando...",text_solving:"Verificando se você é humano...",text_completed:"Eu sou humano",text_completed_sr:"Verificação automática de spam concluída",text_expired:"Verificação Anti-Robô expirada",button_restart:"Reiniciar",text_error:"Verificação falhou",button_retry:"Tentar novamente",text_fetch_error:"Falha de conexão com"},es:{text_init:"Inicializando...",text_ready:"Verificación Anti-Robot",button_start:"Haga clic para iniciar la verificación",text_fetching:"Cargando desafío",text_solving:"Verificando que eres humano...",text_completed:"Soy humano",text_completed_sr:"Verificación automática de spam completada",text_expired:"Verificación Anti-Robot expirada",button_restart:"Reiniciar",text_error:"Ha fallado la verificación",button_retry:"Intentar de nuevo",text_fetch_error:"Error al conectarse a"},ca:{text_init:"Inicialitzant...",text_ready:"Verificació Anti-Robot",button_start:"Fes clic per començar la verificació",text_fetching:"Carregant repte",text_solving:"Verificant que ets humà...",text_completed:"Soc humà",text_completed_sr:"Verificació automàtica de correu brossa completada",text_expired:"La verificació Anti-Robot ha expirat",button_restart:"Reiniciar",text_error:"Ha fallat la verificació",button_retry:"Tornar a provar",text_fetch_error:"Error connectant a"},ja:{text_init:"開始しています...",text_ready:"アンチロボット認証",button_start:"クリックして認証を開始",text_fetching:"ロードしています",text_solving:"認証中...",text_completed:"私はロボットではありません",text_completed_sr:"自動スパムチェックが完了しました",text_expired:"認証の期限が切れています",button_restart:"再度認証を行う",text_error:"認証にエラーが発生しました",button_retry:"再度認証を行う",text_fetch_error:"接続ができませんでした"},da:{text_init:"Aktiverer...",text_ready:"Jeg er ikke en robot",button_start:"Klik for at starte verifikationen",text_fetching:"Henter data",text_solving:"Kontrollerer at du er et menneske...",text_completed:"Jeg er et menneske.",text_completed_sr:"Automatisk spamkontrol gennemført",text_expired:"Verifikationen kunne ikke fuldføres",button_restart:"Genstart",text_error:"Bekræftelse mislykkedes",button_retry:"Prøv igen",text_fetch_error:"Forbindelsen mislykkedes"},ru:{text_init:"Инициализация...",text_ready:"АнтиРобот проверка",button_start:"Нажмите, чтобы начать проверку",text_fetching:"Получаю задачу",text_solving:"Проверяю, что вы человек...",text_completed:"Я человек",text_completed_sr:"Aвтоматическая проверка на спам завершена",text_expired:"Срок АнтиРоботной проверки истёк",button_restart:"Начать заново",text_error:"Ошибка проверки",button_retry:"Повторить ещё раз",text_fetch_error:"Ошибка подключения"},sv:{text_init:"Aktiverar...",text_ready:"Jag är inte en robot",button_start:"Klicka för att verifiera",text_fetching:"Hämtar data",text_solving:"Kontrollerar att du är människa...",text_completed:"Jag är en människa",text_completed_sr:"Automatisk spamkontroll slutförd",text_expired:"Anti-robot-verifieringen har löpt ut",button_restart:"Börja om",text_error:"Verifiering kunde inte slutföras",button_retry:"Omstart",text_fetch_error:"Verifiering misslyckades"},tr:{text_init:"Başlatılıyor...",text_ready:"Anti-Robot Doğrulaması",button_start:"Doğrulamayı başlatmak için tıklayın",text_fetching:"Yükleniyor",text_solving:"Robot olmadığınız doğrulanıyor...",text_completed:"Ben bir insanım",text_completed_sr:"Otomatik spam kontrolü tamamlandı",text_expired:"Anti-Robot doğrulamasının süresi doldu",button_restart:"Yeniden başlat",text_error:"Doğrulama başarısız oldu",button_retry:"Tekrar dene",text_fetch_error:"Bağlantı başarısız oldu"},el:{text_init:"Προετοιμασία...",text_ready:"Anti-Robot Επαλήθευση",button_start:" Κάντε κλικ για να ξεκινήσει η επαλήθευση",text_fetching:" Λήψη πρόκλησης",text_solving:" Επιβεβαίωση ανθρώπου...",text_completed:"Είμαι άνθρωπος",text_completed_sr:" Ο αυτόματος έλεγχος ανεπιθύμητου περιεχομένου ολοκληρώθηκε",text_expired:" Η επαλήθευση Anti-Robot έληξε",button_restart:" Επανεκκίνηση",text_error:" Η επαλήθευση απέτυχε",button_retry:" Δοκιμάστε ξανά",text_fetch_error:" Αποτυχία σύνδεσης με"},uk:{text_init:"Ініціалізація...",text_ready:"Антиробот верифікація",button_start:"Натисніть, щоб розпочати верифікацію",text_fetching:"З’єднання",text_solving:"Перевірка, що ви не робот...",text_completed:"Я не робот",text_completed_sr:"Автоматична перевірка спаму завершена",text_expired:"Час вичерпано",button_restart:"Почати знову",text_error:"Верифікація не вдалась",button_retry:"Спробувати знову",text_fetch_error:"Не вдалось з’єднатись"},bg:{text_init:"Инициализиране...",text_ready:"Анти-робот проверка",button_start:"Щракнете, за да започнете проверката",text_fetching:"Предизвикателство",text_solving:"Проверяваме дали си човек...",text_completed:"Аз съм човек",text_completed_sr:"Автоматичната проверка за спам е завършена",text_expired:"Анти-Робот проверката изтече",button_restart:"Рестартирайте",text_error:"Неуспешна проверка",button_retry:"Опитайте пак",text_fetch_error:"Неуспешно свързване с"},cs:{text_init:"Inicializace...",text_ready:"Ověření proti robotům",button_start:"Klikněte pro ověření",text_fetching:"Problém při načítání",text_solving:"Ověření, že jste člověk...",text_completed:"Jsem člověk",text_completed_sr:"Automatická kontrola spamu dokončena",text_expired:"Ověření proti robotům vypršelo",button_restart:"Restartovat",text_error:"Ověření se nezdařilo",button_retry:"Zkusit znovu",text_fetch_error:"Připojení se nezdařilo"},sk:{text_init:"Inicializácia...",text_ready:"Overenie proti robotom",button_start:"Kliknite pre overenie",text_fetching:"Problém pri načítaní",text_solving:"Overenie, že ste človek...",text_completed:"Som človek",text_completed_sr:"Automatická kontrola spamu dokončená",text_expired:"Overenie proti robotom vypršalo",button_restart:"Reštartovať",text_error:"Overenie sa nepodarilo",button_retry:"Skúsiť znova",text_fetch_error:"Pripojenie sa nepodarilo"},no:g,fi:{text_init:"Aktivoidaan...",text_ready:"En ole robotti",button_start:"Aloita vahvistus klikkaamalla",text_fetching:"Haetaan tietoja",text_solving:"Tarkistaa, että olet ihminen...",text_completed:"Olen ihminen",text_completed_sr:"Automaattinen roskapostin tarkistus suoritettu",text_expired:"Vahvistusta ei voitu suorittaa loppuun",button_restart:"Uudelleenkäynnistys",text_error:"Vahvistus epäonnistui",button_retry:"Yritä uudelleen",text_fetch_error:"Yhteys epäonnistui"},lv:{text_init:"Notiek inicializēšana...",text_ready:"Verifikācija, ka neesat robots",button_start:"Noklikšķiniet, lai sāktu verifikāciju",text_fetching:"Notiek drošības uzdevuma izgūšana",text_solving:"Notiek pārbaude, vai esat cilvēks...",text_completed:"Es esmu cilvēks",text_completed_sr:"Automātiska surogātpasta pārbaude pabeigta",text_expired:"Verifikācijas, ka neesat robots, derīgums beidzies",button_restart:"Restartēt",text_error:"Verifikācija neizdevās",button_retry:"Mēģināt vēlreiz",text_fetch_error:"Neizdevās izveidot savienojumu ar"},lt:{text_init:"Inicijuojama...",text_ready:"Patikrinimas, ar nesate robotas",button_start:"Spustelėkite patikrinimui pradėti",text_fetching:"Gavimo iššūkis",text_solving:"Tikrinama, ar esate žmogus...",text_completed:"Esu žmogus",text_completed_sr:"Automatinė patikra dėl pašto šiukšlių atlikta",text_expired:"Patikrinimas, ar nesate robotas, baigė galioti",button_restart:"Pradėti iš naujo",text_error:"Patikrinimas nepavyko",button_retry:"Kartoti",text_fetch_error:"Nepavyko prisijungti prie"},pl:{text_init:"Inicjowanie...",text_ready:"Weryfikacja antybotowa",button_start:"Kliknij, aby rozpocząć weryfikację",text_fetching:"Pobieranie",text_solving:"Weryfikacja, czy nie jesteś robotem...",text_completed:"Nie jestem robotem",text_completed_sr:"Zakończono automatyczne sprawdzanie spamu",text_expired:"Weryfikacja antybotowa wygasła",button_restart:"Uruchom ponownie",text_error:"Weryfikacja nie powiodła się",button_retry:"Spróbuj ponownie",text_fetch_error:"Nie udało się połączyć z"},et:{text_init:"Initsialiseerimine...",text_ready:"Robotivastane kinnitus",button_start:"Kinnitamisega alustamiseks klõpsake",text_fetching:"Väljakutse toomine",text_solving:"Kinnitatakse, et sa oled inimene...",text_completed:"Ma olen inimene",text_completed_sr:"Automaatne rämpsposti kontroll on lõpetatud",text_expired:"Robotivastane kinnitus aegus",button_restart:"Taaskäivita",text_error:"Kinnitamine nurjus",button_retry:"Proovi uuesti",text_fetch_error:"Ühenduse loomine nurjus"},hr:{text_init:"Početno postavljanje...",text_ready:"Provjera protiv robota",button_start:"Kliknite za početak provjere",text_fetching:"Dohvaćanje izazova",text_solving:"Provjeravamo jeste li čovjek...",text_completed:"Nisam robot",text_completed_sr:"Automatska provjera je završena",text_expired:"Vrijeme za provjeru protiv robota je isteklo",button_restart:"Osvježi",text_error:"Provjera nije uspjlela",button_retry:" Ponovo pokreni",text_fetch_error:"Nije moguće uspostaviti vezu"},sr:{text_init:"Pokretanje...",text_ready:"Anti-Robot Verifikacija",button_start:"Kliknite da biste započeli verifikaciju",text_fetching:"Učitavanje izazova",text_solving:"Verifikacija da ste čovek...",text_completed:"Ja sam čovek",text_completed_sr:"Automatska provera neželjene pošte je završena",text_expired:"Anti-Robot verifikacija je istekla",button_restart:"Ponovo pokrenuti",text_error:"Verifikacija nije uspela",button_retry:"Pokušajte ponovo",text_fetch_error:"Neuspelo povezivanje sa..."},sl:{text_init:"Inicializiranje...",text_ready:"Preverjanje robotov",button_start:"Kliknite za začetek preverjanja",text_fetching:"Prenašanje izziva",text_solving:"Preverjamo, ali ste človek",text_completed:"Nisem robot",text_completed_sr:"Avtomatsko preverjanje je zaključeno",text_expired:"Preverjanje robotov je poteklo",button_restart:"Osveži",text_error:"Preverjanje ni uspelo",button_retry:"Poskusi ponovno",text_fetch_error:"Povezave ni bilo mogoče vzpostaviti"},hu:{text_init:"Inicializálás...",text_ready:"Robotellenes ellenőrzés",button_start:"Kattintson az ellenőrzés megkezdéséhez",text_fetching:"Feladvány lekérése",text_solving:"Annak igazolása, hogy Ön nem robot...",text_completed:"Nem vagyok robot",text_completed_sr:"Automatikus spam ellenőrzés befejeződött",text_expired:"Robotellenes ellenőrzés lejárt",button_restart:"Újraindítás",text_error:"Az ellenőrzés nem sikerült",button_retry:"Próbálja újra",text_fetch_error:"Nem sikerült csatlakozni"},ro:{text_init:"Se inițializează...",text_ready:"Verificare anti-robot",button_start:"Click pentru a începe verificarea",text_fetching:"Downloading",text_solving:"Verificare că ești om...",text_completed:"Sunt om",text_completed_sr:"Verificarea automată a spam-ului a fost finalizată",text_expired:"Verificarea anti-robot a expirat",button_restart:"Restart",text_error:"Verificare eșuată",button_retry:"Reîncearcă",text_fetch_error:"Nu s-a putut conecta"},zh:{text_init:"初始化中……",text_ready:"人机验证",button_start:"点击开始",text_fetching:"正在加载",text_solving:"人机校验中……",text_completed:"我不是机器人",text_completed_sr:"人机验证完成",text_expired:"验证已过期",button_restart:"重新开始",text_error:"校验失败",button_retry:"重试",text_fetch_error:"无法连接到"},zh_tw:{text_init:"正在初始化……",text_ready:"反機器人驗證",button_start:"點擊開始驗證",text_fetching:"載入中",text_solving:"反機器人驗證中……",text_completed:"我不是機器人",text_completed_sr:"驗證完成",text_expired:"驗證超時",button_restart:"重新開始",text_error:"驗證失敗",button_retry:"重試",text_fetch_error:"無法連線到"},vi:{text_init:"Đang khởi tạo...",text_ready:"Xác minh chống Robot",button_start:"Bấm vào đây để xác minh",text_fetching:"Tìm nạp và xử lý thử thách",text_solving:"Xác minh bạn là người...",text_completed:"Bạn là con người",text_completed_sr:"Xác minh hoàn tất",text_expired:"Xác minh đã hết hạn",button_restart:"Khởi động lại",text_error:"Xác minh thất bại",button_retry:"Thử lại",text_fetch_error:"Không kết nối được"},he:{text_init:"בביצוע...",text_ready:"אימות אנוש",button_start:"צריך ללחוץ להתחלת האימות",text_fetching:"אתגר המענה בהכנה",text_solving:"מתבצע אימות אנוש...",text_completed:"אני לא רובוט",text_completed_sr:"בדיקת הספאם האוטומטית הסתיימה",text_expired:"פג תוקף אימות האנוש",button_restart:"להתחיל שוב",text_error:"אימות האנוש נכשל",button_retry:"לנסות שוב",text_fetch_error:"נכשל החיבור אל",rtl:!0},th:{text_init:"การเริ่มต้น...",text_ready:" การตรวจสอบต่อต้านหุ่นยนต์",button_start:"คลิกเพื่อเริ่มการตรวจสอบ",text_fetching:"การดึงความท้าทาย",text_solving:"ยืนยันว่าคุณเป็นมนุษย์...",text_completed:"ฉันเป็นมนุษย์",text_completed_sr:"การตรวจสอบสแปมอัตโนมัติเสร็จสมบูรณ์",text_expired:"การตรวจสอบ ต่อต้านหุ่นยนต์ หมดอายุ",button_restart:"รีสตาร์ท",text_error:"การยืนยันล้มเหลว",button_retry:"ลองใหม่",text_fetch_error:"ไม่สามารถเชื่อมต่อได้"},kr:{text_init:"초기화 중",text_ready:"Anti-Robot 검증",button_start:"검증을 위해 클릭해 주세요",text_fetching:"검증 준비 중",text_solving:"검증 중",text_completed:"검증이 완료되었습니다",text_completed_sr:"자동 스팸 확인 완료",text_expired:"Anti-Robot 검증 만료",button_restart:"다시 시작합니다",text_error:"검증 실패",button_retry:"다시 시도해 주세요",text_fetch_error:"연결하지 못했습니다"},nb:g};function h(t,e){const r=new Uint8Array(3),i=new DataView(r.buffer);return i.setUint8(0,t),i.setUint16(1,e),r}let d;"undefined"!=typeof window&&(d=window.URL||window.webkitURL);class p{constructor(){this.workers=[],this.puzzleNumber=0,this.numPuzzles=0,this.threshold=0,this.startTime=0,this.progress=0,this.totalHashes=0,this.puzzleSolverInputs=[],this.puzzleIndex=0,this.solutionBuffer=new Uint8Array(0),this.solverType=1,this.readyPromise=new Promise((()=>{})),this.readyCount=0,this.startCount=0,this.progressCallback=()=>0,this.readyCallback=()=>0,this.startedCallback=()=>0,this.doneCallback=()=>0,this.errorCallback=()=>0}init(){let t;this.terminateWorkers(),this.progress=0,this.totalHashes=0,this.readyPromise=new Promise((e=>t=e)),this.readyCount=0,this.startCount=0,this.workers=new Array(4);const e=new Blob(['!function(){"use strict";const A="=".charCodeAt(0),I=new Uint8Array(256);for(let A=0;A<64;A++)I["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(A)]=A;function g(A){const I={},g=A.exports,C=g.memory,Q=g.__alloc,t=g.__retain,B=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(B+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),o=I.length,i=Q(o<<e,0),r=Q(12,A),n=new Uint32Array(C.buffer);n[r+0>>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<o;++A)s[(i>>>e)+A]=t(I[A]);else s.set(I,i>>>e);return r},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const Q=A[C],t=C.split(".")[0];"function"==typeof Q&&Q!==g?(I[t]=(...A)=>(g(A.length),Q(...A))).original=Q:I[t]=Q}return I}(g,I)}class C{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function Q(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function t(A,I,g,C,Q,t,B,e){const o=I[B],i=I[B+1],r=I[e],n=I[e+1];let E,s,w,a,c=A[g],D=A[g+1],f=A[C],h=A[C+1],y=A[Q],l=A[Q+1],u=A[t],N=A[t+1];E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+o,s=(c&o|(c|o)&~E)>>>31,c=E,D=D+i+s,w=u^c,a=N^D,u=a,N=w,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=f^y,a=h^l,f=w>>>24^a<<8,h=a>>>24^w<<8,E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+r,s=(c&r|(c|r)&~E)>>>31,c=E,D=D+n+s,w=u^c,a=N^D,u=w>>>16^a<<16,N=a>>>16^w<<16,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=f^y,a=h^l,f=a>>>31^w<<1,h=w>>>31^a<<1,A[g]=c,A[g+1]=D,A[C]=f,A[C+1]=h,A[Q]=y,A[Q+1]=l,A[t]=u,A[t+1]=N}const B=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],e=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function o(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=B[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=Q(A.b,4*I);for(let A=0;A<12;A++)t(g,C,0,8,16,24,e[16*A+0],e[16*A+1]),t(g,C,2,10,18,26,e[16*A+2],e[16*A+3]),t(g,C,4,12,20,28,e[16*A+4],e[16*A+5]),t(g,C,6,14,22,30,e[16*A+6],e[16*A+7]),t(g,C,0,10,20,30,e[16*A+8],e[16*A+9]),t(g,C,2,12,22,24,e[16*A+10],e[16*A+11]),t(g,C,4,14,16,26,e[16*A+12],e[16*A+13]),t(g,C,6,8,18,28,e[16*A+14],e[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function i(A,I){for(let I=0;I<16;I++)A.h[I]=B[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function r(){return(A,I,g=4294967295)=>{const Q=function(A,I,g){if(128!=A.length)throw Error("Invalid input");const Q=A.buffer,t=new DataView(Q),B=new C(32);B.t=128;const e=t.getUint32(124,!0),r=e+g;for(let g=e;g<r;g++)if(t.setUint32(124,g,!0),i(B,A),o(B,!0),B.h[0]<I)return 0==ASC_TARGET?new Uint8Array(B.h.buffer):Uint8Array.wrap(B.h.buffer);return new Uint8Array(0)}(A,I,g);return[A,Q]}}let n,E;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const s=new Promise((A=>E=A));self.onerror=A=>{self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=async C=>{const Q=C.data;try{if("solver"===Q.type){if(Q.forceJS){n=1;const A=await r();E(A)}else try{n=2;const C=WebAssembly.compile(function(g){let C=3285;g.charCodeAt(4379)===A&&C--,g.charCodeAt(4378)===A&&C--;const Q=new Uint8Array(C);for(let A=0,C=0;A<4380;A+=4){const t=I[g.charCodeAt(A+0)],B=I[g.charCodeAt(A+1)],e=I[g.charCodeAt(A+2)],o=I[g.charCodeAt(A+3)];Q[C++]=t<<2|B>>4,Q[C++]=(15&B)<<4|e>>2,Q[C++]=(3&e)<<6|63&o}return Q}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Q=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error("Wasm aborted")}}};return{exports:g(await WebAssembly.instantiate(A,I))}}(A),C=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let Q=I.exports.__getUint8Array(C);return(A,g,t=4294967295)=>{Q.set(A);const B=I.exports.solveBlake2b(C,g,t);Q=I.exports.__getUint8Array(C);const e=I.exports.__getUint8Array(B);return I.exports.__release(B),[Q,e]}}(await C);E(Q)}catch(A){console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),n=1;const I=await r();E(I)}self.postMessage({type:"ready",solver:n})}else if("start"===Q.type){const A=await s;self.postMessage({type:"started"});let I,g=0;for(let C=0;C<256;C++){Q.puzzleSolverInput[123]=C;const[t,B]=A(Q.puzzleSolverInput,Q.threshold);if(0!==B.length){I=t;break}console.warn("FC: Internal error or no solution found"),g+=Math.pow(2,32)-1}g+=new DataView(I.slice(-4).buffer).getUint32(0,!0),self.postMessage({type:"done",solution:I.slice(-8),h:g,puzzleIndex:Q.puzzleIndex,puzzleNumber:Q.puzzleNumber})}}catch(A){setTimeout((()=>{throw A}))}}}();'],{type:"text/javascript"});for(let r=0;r<this.workers.length;r++)this.workers[r]=new Worker(d.createObjectURL(e)),this.workers[r].onerror=t=>this.errorCallback(t),this.workers[r].onmessage=e=>{const i=e.data;if(i)if("ready"===i.type)this.readyCount++,this.solverType=i.solver,this.readyCount==this.workers.length&&(t(),this.readyCallback());else if("started"===i.type)this.startCount++,1==this.startCount&&(this.startTime=Date.now(),this.startedCallback());else if("done"===i.type){if(i.puzzleNumber!==this.puzzleNumber)return;if(this.puzzleIndex<this.puzzleSolverInputs.length&&(this.workers[r].postMessage({type:"start",puzzleSolverInput:this.puzzleSolverInputs[this.puzzleIndex],threshold:this.threshold,puzzleIndex:this.puzzleIndex,puzzleNumber:this.puzzleNumber}),this.puzzleIndex++),this.progress++,this.totalHashes+=i.h,this.progressCallback({n:this.numPuzzles,h:this.totalHashes,t:(Date.now()-this.startTime)/1e3,i:this.progress}),this.solutionBuffer.set(i.solution,8*i.puzzleIndex),this.progress==this.numPuzzles){const t=(Date.now()-this.startTime)/1e3;this.doneCallback({solution:this.solutionBuffer,h:this.totalHashes,t,diagnostics:h(this.solverType,t),solver:this.solverType})}}else"error"===i.type&&this.errorCallback(i)}}setupSolver(t=!1){const e={type:"solver",forceJS:t};for(let t=0;t<this.workers.length;t++)this.workers[t].postMessage(e)}async start(t){await this.readyPromise,this.puzzleSolverInputs=function(t,e){const r=[];for(let i=0;i<e;i++){const e=new Uint8Array(128);e.set(t),e[120]=i,r.push(e)}return r}(t.buffer,t.n),this.solutionBuffer=new Uint8Array(8*t.n),this.numPuzzles=t.n,this.threshold=t.threshold,this.puzzleIndex=0,this.puzzleNumber++;for(let t=0;t<this.workers.length&&this.puzzleIndex!==this.puzzleSolverInputs.length;t++)this.workers[t].postMessage({type:"start",puzzleSolverInput:this.puzzleSolverInputs[t],threshold:this.threshold,puzzleIndex:this.puzzleIndex,puzzleNumber:this.puzzleNumber}),this.puzzleIndex++}terminateWorkers(){if(0!=this.workers.length){for(let t=0;t<this.workers.length;t++)this.workers[t].terminate();this.workers=[]}}}class _{constructor(t,e={}){this.workerGroup=new p,this.valid=!1,this.needsReInit=!1,this.hasBeenStarted=!1,this.hasBeenDestroyed=!1,this.opts=Object.assign({forceJSFallback:!1,skipStyleInjection:!1,startMode:"focus",puzzleEndpoint:t.dataset.puzzleEndpoint||"https://api.friendlycaptcha.com/api/v1/puzzle",startedCallback:()=>0,readyCallback:()=>0,doneCallback:()=>0,errorCallback:()=>0,sitekey:t.dataset.sitekey||"",language:t.dataset.lang||"en",solutionFieldName:t.dataset.solutionFieldName||"frc-captcha-solution",styleNonce:null},e),this.e=t,this.e.friendlyChallengeWidget=this,this.loadLanguage(),t.innerText=this.lang.text_init,this.opts.skipStyleInjection||function(t=null){if(!document.querySelector("#frc-style")){const e=document.createElement("style");e.id="frc-style",e.innerHTML=".frc-captcha *{margin:0;padding:0;border:0;text-align:initial;border-radius:0;filter:none!important;transition:none!important;font-weight:400;font-size:14px;line-height:1.2;text-decoration:none;background-color:initial;color:#222}.frc-captcha{position:relative;min-width:250px;max-width:312px;border:1px solid #f4f4f4;padding-bottom:12px;background-color:#fff}.frc-captcha b{font-weight:700}.frc-container{display:flex;align-items:center;min-height:52px}.frc-icon{fill:#222;stroke:#222;flex-shrink:0;margin:8px 8px 0}.frc-icon.frc-warning{fill:#c00}.frc-success .frc-icon{animation:1s ease-in both frc-fade-in}.frc-content{white-space:nowrap;display:flex;flex-direction:column;margin:4px 6px 0 0;overflow-x:auto;flex-grow:1}.frc-banner{position:absolute;bottom:0;right:6px;line-height:1}.frc-banner *{font-size:10px;opacity:.8;text-decoration:none}.frc-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:3px 0;height:4px;border:none;background-color:#eee;color:#222;width:100%;transition:.5s linear}.frc-progress::-webkit-progress-bar{background:#eee}.frc-progress::-webkit-progress-value{background:#222}.frc-progress::-moz-progress-bar{background:#222}.frc-button{cursor:pointer;padding:2px 6px;background-color:#f1f1f1;border:1px solid transparent;text-align:center;font-weight:600;text-transform:none}.frc-button:focus{border:1px solid #333}.frc-button:hover{background-color:#ddd}.frc-captcha-solution{display:none}.frc-err-url{text-decoration:underline;font-size:.9em}.frc-rtl{direction:rtl}.frc-rtl .frc-content{margin:4px 0 0 6px}.frc-banner.frc-rtl{left:6px;right:auto}.dark.frc-captcha{color:#fff;background-color:#222;border-color:#333}.dark.frc-captcha *{color:#fff}.dark.frc-captcha button{background-color:#444}.dark .frc-icon{fill:#fff;stroke:#fff}.dark .frc-progress{background-color:#444}.dark .frc-progress::-webkit-progress-bar{background:#444}.dark .frc-progress::-webkit-progress-value{background:#ddd}.dark .frc-progress::-moz-progress-bar{background:#ddd}@keyframes frc-fade-in{from{opacity:0}to{opacity:1}}",t&&e.setAttribute("nonce",t),document.head.appendChild(e)}}(this.opts.styleNonce),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start)}init(t){var e;if(this.hasBeenDestroyed)console.error("FriendlyCaptcha widget has been destroyed using destroy(), it can not be used anymore.");else if(this.initWorkerGroup(),t)this.start();else if("none"!==this.e.dataset.start&&("focus"===this.opts.startMode||"focus"===this.e.dataset.start)){const t=function(t){for(;"FORM"!==t.tagName;)if(!(t=t.parentElement))return null;return t}(this.e);t?(e=()=>this.start(),t.addEventListener("focusin",e,{once:!0,passive:!0})):console.log("FriendlyCaptcha div seems not to be contained in a form, autostart will not work")}}loadLanguage(t){if(void 0!==t?this.opts.language=t:this.e.dataset.lang&&(this.opts.language=this.e.dataset.lang),"string"==typeof this.opts.language){let t=this.opts.language.toLowerCase(),e=u[t];void 0===e&&"-"===t[2]&&(t=t.substring(0,2),e=u[t]),void 0===e&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),e=u.en),this.lang=e}else this.lang=Object.assign(Object.assign({},u.en),this.opts.language)}makeButtonStart(){const t=this.e.querySelector("button");t&&(t.addEventListener("click",(()=>this.start()),{once:!0,passive:!0}),t.addEventListener("touchstart",(()=>this.start()),{once:!0,passive:!0}))}onWorkerError(t){this.hasBeenStarted=!1,this.needsReInit=!0,this.expiryTimeout&&clearTimeout(this.expiryTimeout),console.error("[FRC]",t),this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,"Background worker error "+t.message),this.makeButtonStart(),this.opts.forceJSFallback=!0}initWorkerGroup(){this.workerGroup.progressCallback=t=>{!function(t,e){const r=t.querySelector(".frc-progress"),i=(e.i+1)/e.n;r&&(r.value=i,r.innerText=(100*i).toFixed(1)+"%",r.title=e.i+1+"/"+e.n+" ("+(e.h/e.t*.001).toFixed(0)+"K/s)")}(this.e,t)},this.workerGroup.readyCallback=()=>{var t;this.e.innerHTML=r(this.opts.solutionFieldName,(t=this.lang).rtl,'<path d="M17,11c0.34,0,0.67,0.04,1,0.09V6.27L10.5,3L3,6.27v4.91c0,4.54,3.2,8.79,7.5,9.82c0.55-0.13,1.08-0.32,1.6-0.55 C11.41,19.47,11,18.28,11,17C11,13.69,13.69,11,17,11z"/><path d="M17,13c-2.21,0-4,1.79-4,4c0,2.21,1.79,4,4,4s4-1.79,4-4C21,14.79,19.21,13,17,13z M17,14.38"/>',!0,t.text_ready,".UNSTARTED",t.button_start,!1),this.makeButtonStart(),this.opts.readyCallback()},this.workerGroup.startedCallback=()=>{var e;this.e.innerHTML=r(this.opts.solutionFieldName,(e=this.lang).rtl,t,!0,e.text_solving,".UNFINISHED",void 0,!0),this.opts.startedCallback()},this.workerGroup.doneCallback=t=>{const e=this.handleDone(t);this.opts.doneCallback(e);const r=this.e.dataset.callback;r&&window[r](e)},this.workerGroup.errorCallback=t=>{this.onWorkerError(t)},this.workerGroup.init(),this.workerGroup.setupSolver(this.opts.forceJSFallback)}expire(){var t;this.hasBeenStarted=!1,!1!==this.e.isConnected&&(this.e.innerHTML=r(this.opts.solutionFieldName,(t=this.lang).rtl,e,!0,t.text_expired,".EXPIRED",t.button_restart),this.makeButtonStart())}async start(){if(this.hasBeenDestroyed)return void console.error("Can not start FriendlyCaptcha widget which has been destroyed");if(this.hasBeenStarted)return void console.warn("Can not start FriendlyCaptcha widget which has already been started");const e=this.opts.sitekey||this.e.dataset.sitekey;if(!e)return console.error("FriendlyCaptcha: sitekey not set on frc-captcha element"),void(this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,"Website problem: sitekey not set",!1));if(-1===l.indexOf("headless")&&-1===A.appVersion.indexOf("Headless")&&-1===l.indexOf("bot")&&-1===l.indexOf("crawl")&&!0!==A.webdriver&&A.language&&(void 0===A.languages||A.languages.length)){if(this.needsReInit)return this.needsReInit=!1,void this.init(!0);this.hasBeenStarted=!0;try{this.e.innerHTML=r(this.opts.solutionFieldName,(o=this.lang).rtl,t,!0,o.text_fetching,".FETCHING",void 0,!0),this.puzzle=function(t){const e=t.split("."),r=e[1],i=function(t){const e=t.length;let r=3*e>>>2;t.charCodeAt(e-1)===n&&r--,t.charCodeAt(e-2)===n&&r--;const i=new Uint8Array(r);for(let r=0,o=0;r<e;r+=4){const e=a[t.charCodeAt(r+0)],n=a[t.charCodeAt(r+1)],s=a[t.charCodeAt(r+2)],A=a[t.charCodeAt(r+3)];i[o++]=e<<2|n>>4,i[o++]=(15&n)<<4|s>>2,i[o++]=(3&s)<<6|63&A}return i}(r);return{signature:e[0],base64:r,buffer:i,n:i[14],threshold:(o=i[15],o>255?o=255:o<0&&(o=0),Math.pow(2,(255.999-o)/8)>>>0),expiry:3e5*i[13]};var o}(await async function(t,e,r){const i=t.split(",");for(let t=0;t<i.length;t++)try{const r=await c(i[t]+"?sitekey="+e,{headers:[["x-frc-client","js-0.9.17"]],mode:"cors"},2);if(r.ok)return(await r.json()).data.puzzle;{let e;try{e=await r.json()}catch(t){}if(e&&e.errors&&"endpoint_not_enabled"===e.errors[0])throw Error(`Endpoint not allowed (${r.status})`);if(t===i.length-1)throw Error(`Response status ${r.status} ${r.statusText} ${e?e.errors:""}`)}}catch(e){console.error("[FRC Fetch]:",e);const o=new Error(`${r.text_fetch_error} <a class="frc-err-url" href="${i[t]}">${i[t]}</a>`);throw o.rawError=e,o}throw Error("Internal error")}(this.opts.puzzleEndpoint,e,this.lang)),this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.expiryTimeout=setTimeout((()=>this.expire()),this.puzzle.expiry-3e4)}catch(t){console.error("[FRC]",t),this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,t.message),this.makeButtonStart();const e="error_getting_puzzle";this.opts.errorCallback({code:e,description:t.toString(),error:t});const r=this.e.dataset["callback-error"];return void(r&&window[r](this))}var o;await this.workerGroup.start(this.puzzle)}else this.e.innerHTML=i(this.opts.solutionFieldName,this.lang,"Browser check failed, try a different browser",!1,!0)}handleDone(t){this.valid=!0;const e=`${this.puzzle.signature}.${this.puzzle.base64}.${s(t.solution)}.${s(t.diagnostics)}`;return this.e.innerHTML=function(t,e,i,o){const n=`${o.t.toFixed(0)}s (${(o.h/o.t*.001).toFixed(0)}K/s)${1===o.solver?" JS Fallback":""}`;return r(t,e.rtl,`<title>${e.text_completed_sr}</title><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z"></path>`,!1,e.text_completed,i,void 0,!1,n,"frc-success")}(this.opts.solutionFieldName,this.lang,e,t),this.needsReInit=!0,e}destroy(){this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e&&(this.e.remove(),delete this.e),this.hasBeenDestroyed=!0}reset(){this.hasBeenDestroyed?console.error("FriendlyCaptcha widget has been destroyed, it can not be used anymore"):(this.workerGroup.terminateWorkers(),this.needsReInit=!1,this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start))}}function x(){let t=window.friendlyChallenge.autoWidget;const e=function(){const t=document.querySelectorAll(".frc-captcha");return 0===t.length&&console.warn("FriendlyCaptcha: No div was found with .frc-captcha class"),t}();for(let r=0;r<e.length;r++){const i=e[r];i&&!i.dataset.attached&&(t=new _(i),i.dataset.attached="1")}window.friendlyChallenge.autoWidget=t}window.friendlyChallenge={WidgetInstance:_},"loading"!==document.readyState?x():document.addEventListener("DOMContentLoaded",x);

@@ -6,37 +6,32 @@ (function(){'use strict';var f,g=[];function l(a){g.push(a);1==g.length&&f()}function m(){for(;g.length;)g[0](),g.shift()}f=function(){setTimeout(m)};function n(a){this.a=p;this.b=void 0;this.f=[];var b=this;try{a(function(a){q(b,a)},function(a){r(b,a)})}catch(c){r(b,c)}}var p=2;function t(a){return new n(function(b,c){c(a)})}function u(a){return new n(function(b){b(a)})}function q(a,b){if(a.a==p){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d){d.call(b,function(b){c||q(a,b);c=!0},function(b){c||r(a,b);c=!0});return}}catch(e){c||r(a,e);return}a.a=0;a.b=b;v(a)}}

function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
(function () {
'use strict';
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
(function () {
'use strict'; // Adapted from the base64-arraybuffer package implementation
// Adapted from the base64-arraybuffer package implementation
// (https://github.com/niklasvh/base64-arraybuffer, MIT licensed)
var CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var EQ_CHAR = "=".charCodeAt(0); // Use a lookup table to find the index.
var EQ_CHAR = "=".charCodeAt(0);
// Use a lookup table to find the index.
var lookup = new Uint8Array(256);
for (var i = 0; i < CHARS.length; i++) {
lookup[CHARS.charCodeAt(i)] = i;
}
function decode(base64) {
var len = base64.length;
var bufferLength = len * 3 >>> 2; // * 0.75
if (base64.charCodeAt(len - 1) === EQ_CHAR) bufferLength--;
if (base64.charCodeAt(len - 2) === EQ_CHAR) bufferLength--;
var bytes = new Uint8Array(bufferLength);
for (var _i = 0, p = 0; _i < len; _i += 4) {

@@ -51,10 +46,10 @@ var encoded1 = lookup[base64.charCodeAt(_i + 0)];

}
return bytes;
} // WARNING: This file was autogenerated by wasmwrap and should not be edited manually.
}
// WARNING: This file was autogenerated by wasmwrap and should not be edited manually.
var base64 = "AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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";
var base64 = "AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQgA3A0AgAEIANwNIIABCADcDUCAAQgA3A1ggAEIANwNgIABCADcDaCAAQgA3A3AgAEIANwN4IABCADcDgAEgAEIANwOIASAAQgA3A5ABQYABQQUQASIBQYABEAYgACABNgKYASAAQSA2ApwBIAAL2AkCA38SfiAAKAIEIQIgACgCmAEhAwNAIARBgAFIBEAgAyAEaiABIARqKQMANwMAIARBCGohBAwBCwsgAigCBCkDACEMIAIoAgQpAwghDSACKAIEKQMQIQ4gAigCBCkDGCEPIAIoAgQpAyAhBSACKAIEKQMoIQsgAigCBCkDMCEGIAIoAgQpAzghB0KIkvOd/8z5hOoAIQhCu86qptjQ67O7fyEJQqvw0/Sv7ry3PCEQQvHt9Pilp/2npX8hCiAAKQMIQtGFmu/6z5SH0QCFIRFCn9j52cKR2oKbfyESQpSF+aXAyom+YCETQvnC+JuRo7Pw2wAhFEEAIQQDQCAEQcABSARAIAUgCCARIAwgBSADIARBgAhqIgEtAABBA3RqKQMAfHwiBYVCIIoiDHwiCIVCGIoiESAIIAwgBSARIAMgAS0AAUEDdGopAwB8fCIMhUIQiiIIfCIVhUI/iiEFIAsgCSASIA0gCyADIAEtAAJBA3RqKQMAfHwiDYVCIIoiCXwiEYVCGIohCyAGIBAgEyAOIAYgAyABLQAEQQN0aikDAHx8IgaFQiCKIg58IhCFQhiKIhIgECAOIAYgEiADIAEtAAVBA3RqKQMAfHwiDoVCEIoiE3wiEIVCP4ohBiAHIAogFCAPIAcgAyABLQAGQQN0aikDAHx8IgeFQiCKIg98IgqFQhiKIhIgCiAPIAcgEiADIAEtAAdBA3RqKQMAfHwiD4VCEIoiCnwiEoVCP4ohByAQIAogDCARIAkgDSALIAMgAS0AA0EDdGopAwB8fCINhUIQiiIJfCIWIAuFQj+KIgwgAyABLQAIQQN0aikDAHx8IhCFQiCKIgp8IgsgECALIAyFQhiKIhEgAyABLQAJQQN0aikDAHx8IgwgCoVCEIoiFHwiECARhUI/iiELIAYgEiAIIA0gBiADIAEtAApBA3RqKQMAfHwiDYVCIIoiCHwiCoVCGIoiBiANIAYgAyABLQALQQN0aikDAHx8Ig0gCIVCEIoiESAKfCIKhUI/iiEGIAcgFSAJIA4gByADIAEtAAxBA3RqKQMAfHwiDoVCIIoiCHwiCYVCGIoiByAOIAcgAyABLQANQQN0aikDAHx8Ig4gCIVCEIoiEiAJfCIIhUI/iiEHIAUgFiATIA8gBSADIAEtAA5BA3RqKQMAfHwiD4VCIIoiCXwiFYVCGIoiBSAPIAUgAyABLQAPQQN0aikDAHx8Ig8gCYVCEIoiEyAVfCIJhUI/iiEFIARBEGohBAwBCwsgAigCBCACKAIEKQMAIAggDIWFNwMAIAIoAgQgAigCBCkDCCAJIA2FhTcDCCACKAIEIAIoAgQpAxAgDiAQhYU3AxAgAigCBCACKAIEKQMYIAogD4WFNwMYIAIoAgQgAigCBCkDICAFIBGFhTcDICACKAIEIAIoAgQpAyggCyAShYU3AyggAigCBCACKAIEKQMwIAYgE4WFNwMwIAIoAgQgAigCBCkDOCAHIBSFhTcDOCAAIAw3AxggACANNwMgIAAgDjcDKCAAIA83AzAgACAFNwM4IAAgCzcDQCAAIAY3A0ggACAHNwNQIAAgCDcDWCAAIAk3A2AgACAQNwNoIAAgCjcDcCAAIBE3A3ggACASNwOAASAAIBM3A4gBIAAgFDcDkAEL4QIBBH8gACgCCEGAAUcEQEHQCUGACkEeQQUQAAALIAAoAgAhBBAIIgMoAgQhBSADQoABNwMIIAQoAnwiACACaiEGA0AgACAGSQRAIAQgADYCfCADKAIEIgIoAgQgAygCnAGtQoiS95X/zPmE6gCFNwMAIAIoAgRCu86qptjQ67O7fzcDCCACKAIEQqvw0/Sv7ry3PDcDECACKAIEQvHt9Pilp/2npX83AxggAigCBELRhZrv+s+Uh9EANwMgIAIoAgRCn9j52cKR2oKbfzcDKCACKAIEQuv6htq/tfbBHzcDMCACKAIEQvnC+JuRo7Pw2wA3AzggAyAEEAkgBSgCBCkDAKcgAUkEQEEAIAUoAgAiAUEQaygCDCICSwRAQfALQbAMQc0NQQUQAAALQQxBAxABIgAgATYCACAAIAI2AgggACABNgIEIAAPCyAAQQFqIQAMAQsLQQxBAxABQQBBABAHCwwAQaANJABBoA0kAQsL+gQJAEGBCAu/AQECAwQFBgcICQoLDA0ODw4KBAgJDw0GAQwAAgsHBQMLCAwABQIPDQoOAwYHAQkEBwkDAQ0MCw4CBgUKBAAPCAkABQcCBAoPDgELDAYIAw0CDAYKAAsIAwQNBwUPDgEJDAUBDw4NBAoABwYDCQIICw0LBw4MAQMJBQAPBAgGAgoGDw4JCwMACAwCDQcBBAoFCgIIBAcGAQUPCwkOAwwNAAABAgMEBQYHCAkKCwwNDg8OCgQICQ8NBgEMAAILBwUDAEHACQspGgAAAAEAAAABAAAAGgAAAEkAbgB2AGEAbABpAGQAIABpAG4AcAB1AHQAQfAJCzEiAAAAAQAAAAEAAAAiAAAAcwByAGMALwBzAG8AbAB2AGUAcgBXAGEAcwBtAC4AdABzAEGwCgsrHAAAAAEAAAABAAAAHAAAAEkAbgB2AGEAbABpAGQAIABsAGUAbgBnAHQAaABB4AoLNSYAAAABAAAAAQAAACYAAAB+AGwAaQBiAC8AYQByAHIAYQB5AGIAdQBmAGYAZQByAC4AdABzAEGgCws1JgAAAAEAAAABAAAAJgAAAH4AbABpAGIALwBzAHQAYQB0AGkAYwBhAHIAcgBhAHkALgB0AHMAQeALCzMkAAAAAQAAAAEAAAAkAAAASQBuAGQAZQB4ACAAbwB1AHQAIABvAGYAIAByAGEAbgBnAGUAQaAMCzMkAAAAAQAAAAEAAAAkAAAAfgBsAGkAYgAvAHQAeQBwAGUAZABhAHIAcgBhAHkALgB0AHMAQeAMCy4GAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAYQAAAAIAAAAhAgAAAgAAACQC"; // This is a hand-pruned version of the assemblyscript loader, removing
// This is a hand-pruned version of the assemblyscript loader, removing
// a lot of functionality we don't need, saving in bundle size.
function addUtilityExports(instance) {

@@ -67,14 +62,10 @@ var extendedExports = {};

var rttiBase = exports["__rtti_base"] || ~0; // oob if not present
/** Gets the runtime type info for the given id. */
function getInfo(id) {
var U32 = new Uint32Array(memory.buffer); // const count = U32[rttiBase >>> 2];
var U32 = new Uint32Array(memory.buffer);
// const count = U32[rttiBase >>> 2];
// if ((id >>>= 0) >= count) throw Error("invalid id: " + id);
return U32[(rttiBase + 4 >>> 2) + id * 2];
}
/** Allocates a new array in the module's memory and returns its retained pointer. */
extendedExports.__allocArray = function (id, values) {

@@ -92,14 +83,9 @@ var info = getInfo(id);

var view = new Uint8Array(buffer);
if (info & 1 << 14) {
for (var _i2 = 0; _i2 < length; ++_i2) {
view[(buf >>> align) + _i2] = retain(values[_i2]);
}
for (var _i2 = 0; _i2 < length; ++_i2) view[(buf >>> align) + _i2] = retain(values[_i2]);
} else {
view.set(values, buf >>> align);
}
return arr;
};
extendedExports.__getUint8Array = function (ptr) {

@@ -110,8 +96,5 @@ var U32 = new Uint32Array(memory.buffer);

};
return demangle(exports, extendedExports);
}
/** Demangles an AssemblyScript module's exports to a friendly object structure. */
function demangle(exports) {

@@ -125,6 +108,6 @@ var extendedExports = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};

};
var _loop = function _loop(internalName) {
if (!Object.prototype.hasOwnProperty.call(exports, internalName)) return "continue";
var elem = exports[internalName]; // Only necessary if nested exports are present
var _loop = function _loop() {
if (!Object.prototype.hasOwnProperty.call(exports, internalName)) return 1; // continue
var elem = exports[internalName];
// Only necessary if nested exports are present
// let parts = internalName.split(".");

@@ -137,5 +120,3 @@ // let curr = extendedExports;

// }
var name = internalName.split(".")[0];
if (typeof elem === "function" && elem !== setArgumentsLength) {

@@ -150,12 +131,7 @@ (extendedExports[name] = function () {

};
for (var internalName in exports) {
var _ret = _loop(internalName);
if (_ret === "continue") continue;
if (_loop()) continue;
}
return extendedExports;
}
function instantiateWasmSolver(module) {

@@ -184,3 +160,2 @@ return new Promise(function ($return, $error) {

}
function getWasmSolver(module) {

@@ -199,7 +174,4 @@ return new Promise(function ($return, $error) {

solution = w.exports.__getUint8Array(arrPtr);
var hash = w.exports.__getUint8Array(hashPtr);
w.exports.__release(hashPtr);
return [solution, hash];

@@ -212,29 +184,23 @@ });

});
} // Blake2B made assemblyscript compatible, adapted from (CC0 licensed):
}
// Blake2B made assemblyscript compatible, adapted from (CC0 licensed):
// Blake2B in pure Javascript
// Adapted from the reference implementation in RFC7693
// Ported to Javascript by DC - https://github.com/dcposch
var Context = function Context(outlen) {
var Context = /*#__PURE__*/_createClass(function Context(outlen) {
_classCallCheck(this, Context);
this.b = new Uint8Array(128);
this.h = new Uint32Array(16);
this.t = 0; // input count
this.c = 0; // pointer within buffer
this.v = new Uint32Array(32);
this.m = new Uint32Array(32);
this.outlen = outlen;
}; // Little-endian byte access
}); // Little-endian byte access
function B2B_GET32(arr, i) {
return arr[i] ^ arr[i + 1] << 8 ^ arr[i + 2] << 16 ^ arr[i + 3] << 24;
} // G Mixing function with everything inlined
}
// G Mixing function with everything inlined
// performance at the cost of readability, especially faster in old browsers
function B2B_G_FAST(v, m, a, b, c, d, ix, iy) {

@@ -244,4 +210,4 @@ var x0 = m[ix];

var y0 = m[iy];
var y1 = m[iy + 1]; // va0 are the low bits, va1 are the high bits
var y1 = m[iy + 1];
// va0 are the low bits, va1 are the high bits
var va0 = v[a];

@@ -255,51 +221,51 @@ var va1 = v[a + 1];

var vd1 = v[d + 1];
var w0, ww, xor0, xor1; // ADD64AA(v, a, b); // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s
var w0, ww, xor0, xor1;
// ADD64AA(v, a, b); // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s
// ADD64AA(v,a,b)
w0 = va0 + vb0;
ww = (va0 & vb0 | (va0 | vb0) & ~w0) >>> 31;
va0 = w0;
va1 = va1 + vb1 + ww; // // ADD64AC(v, a, x0, x1); // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits
va1 = va1 + vb1 + ww;
// // ADD64AC(v, a, x0, x1); // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits
w0 = va0 + x0;
ww = (va0 & x0 | (va0 | x0) & ~w0) >>> 31;
va0 = w0;
va1 = va1 + x1 + ww; // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits
va1 = va1 + x1 + ww;
// v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits
xor0 = vd0 ^ va0;
xor1 = vd1 ^ va1; // We can just swap high and low here becaeuse its a shift by 32 bits
xor1 = vd1 ^ va1;
// We can just swap high and low here becaeuse its a shift by 32 bits
vd0 = xor1;
vd1 = xor0; // ADD64AA(v, c, d);
vd1 = xor0;
// ADD64AA(v, c, d);
w0 = vc0 + vd0;
ww = (vc0 & vd0 | (vc0 | vd0) & ~w0) >>> 31;
vc0 = w0;
vc1 = vc1 + vd1 + ww; // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits
vc1 = vc1 + vd1 + ww;
// v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits
xor0 = vb0 ^ vc0;
xor1 = vb1 ^ vc1;
vb0 = xor0 >>> 24 ^ xor1 << 8;
vb1 = xor1 >>> 24 ^ xor0 << 8; // ADD64AA(v, a, b);
vb1 = xor1 >>> 24 ^ xor0 << 8;
// ADD64AA(v, a, b);
w0 = va0 + vb0;
ww = (va0 & vb0 | (va0 | vb0) & ~w0) >>> 31;
va0 = w0;
va1 = va1 + vb1 + ww; // ADD64AC(v, a, y0, y1);
va1 = va1 + vb1 + ww;
// ADD64AC(v, a, y0, y1);
w0 = va0 + y0;
ww = (va0 & y0 | (va0 | y0) & ~w0) >>> 31;
va0 = w0;
va1 = va1 + y1 + ww; // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits
va1 = va1 + y1 + ww;
// v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits
xor0 = vd0 ^ va0;
xor1 = vd1 ^ va1;
vd0 = xor0 >>> 16 ^ xor1 << 16;
vd1 = xor1 >>> 16 ^ xor0 << 16; // ADD64AA(v, c, d);
vd1 = xor1 >>> 16 ^ xor0 << 16;
// ADD64AA(v, c, d);
w0 = vc0 + vd0;
ww = (vc0 & vd0 | (vc0 | vd0) & ~w0) >>> 31;
vc0 = w0;
vc1 = vc1 + vd1 + ww; // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits
vc1 = vc1 + vd1 + ww;
// v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits
xor0 = vb0 ^ vc0;

@@ -317,35 +283,31 @@ xor1 = vb1 ^ vc1;

v[d + 1] = vd1;
} // Initialization Vector
var BLAKE2B_IV32 = [0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19]; // Note these offsets have all been multiplied by two to make them offsets into
}
// Initialization Vector
var BLAKE2B_IV32 = [0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19];
// Note these offsets have all been multiplied by two to make them offsets into
// a uint32 buffer.
var SIGMA82 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 28, 20, 8, 16, 18, 30, 26, 12, 2, 24, 0, 4, 22, 14, 10, 6, 22, 16, 24, 0, 10, 4, 30, 26, 20, 28, 6, 12, 14, 2, 18, 8, 14, 18, 6, 2, 26, 24, 22, 28, 4, 12, 10, 20, 8, 0, 30, 16, 18, 0, 10, 14, 4, 8, 20, 30, 28, 2, 22, 24, 12, 16, 6, 26, 4, 24, 12, 20, 0, 22, 16, 6, 8, 26, 14, 10, 30, 28, 2, 18, 24, 10, 2, 30, 28, 26, 8, 20, 0, 14, 12, 6, 18, 4, 16, 22, 26, 22, 14, 28, 24, 2, 6, 18, 10, 0, 30, 8, 16, 12, 4, 20, 12, 30, 28, 18, 22, 6, 0, 16, 24, 4, 26, 14, 2, 8, 20, 10, 20, 4, 16, 8, 14, 12, 2, 10, 30, 22, 18, 28, 6, 24, 26, 0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 28, 20, 8, 16, 18, 30, 26, 12, 2, 24, 0, 4, 22, 14, 10, 6]; // Compression function. 'last' flag indicates last block.
var SIGMA82 = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 28, 20, 8, 16, 18, 30, 26, 12, 2, 24, 0, 4, 22, 14, 10, 6, 22, 16, 24, 0, 10, 4, 30, 26, 20, 28, 6, 12, 14, 2, 18, 8, 14, 18, 6, 2, 26, 24, 22, 28, 4, 12, 10, 20, 8, 0, 30, 16, 18, 0, 10, 14, 4, 8, 20, 30, 28, 2, 22, 24, 12, 16, 6, 26, 4, 24, 12, 20, 0, 22, 16, 6, 8, 26, 14, 10, 30, 28, 2, 18, 24, 10, 2, 30, 28, 26, 8, 20, 0, 14, 12, 6, 18, 4, 16, 22, 26, 22, 14, 28, 24, 2, 6, 18, 10, 0, 30, 8, 16, 12, 4, 20, 12, 30, 28, 18, 22, 6, 0, 16, 24, 4, 26, 14, 2, 8, 20, 10, 20, 4, 16, 8, 14, 12, 2, 10, 30, 22, 18, 28, 6, 24, 26, 0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 28, 20, 8, 16, 18, 30, 26, 12, 2, 24, 0, 4, 22, 14, 10, 6];
// Compression function. 'last' flag indicates last block.
function blake2bCompress(ctx, last) {
var v = ctx.v;
var m = ctx.m; // init work variables
var m = ctx.m;
// init work variables
for (var _i3 = 0; _i3 < 16; _i3++) {
v[_i3] = ctx.h[_i3];
v[_i3 + 16] = BLAKE2B_IV32[_i3];
} // low 64 bits of offset
}
// low 64 bits of offset
v[24] = v[24] ^ ctx.t;
v[25] = v[25] ^ ctx.t / 0x100000000; // high 64 bits not supported, offset may not be higher than 2**53-1
v[25] = v[25] ^ ctx.t / 0x100000000;
// high 64 bits not supported, offset may not be higher than 2**53-1
// last block flag set ?
if (last) {
v[28] = ~v[28];
v[29] = ~v[29];
} // get little-endian words
}
// get little-endian words
for (var _i4 = 0; _i4 < 32; _i4++) {
m[_i4] = B2B_GET32(ctx.b, 4 * _i4);
} // twelve rounds of mixing
}
// twelve rounds of mixing
for (var _i5 = 0; _i5 < 12; _i5++) {

@@ -361,3 +323,2 @@ B2B_G_FAST(v, m, 0, 8, 16, 24, SIGMA82[_i5 * 16 + 0], SIGMA82[_i5 * 16 + 1]);

}
for (var _i6 = 0; _i6 < 16; _i6++) {

@@ -371,4 +332,2 @@ ctx.h[_i6] = ctx.h[_i6] ^ v[_i6] ^ v[_i6 + 16];

*/
function blake2bResetForShortMessage(ctx, input) {

@@ -378,12 +337,11 @@ // Initialize State vector h with IV

ctx.h[_i7] = BLAKE2B_IV32[_i7];
} // Danger: These operations and resetting are really only possible because our input is exactly 128 bytes
ctx.b.set(input); // ctx.m.fill(0);
}
// Danger: These operations and resetting are really only possible because our input is exactly 128 bytes
ctx.b.set(input);
// ctx.m.fill(0);
// ctx.v.fill(0);
ctx.h[0] ^= 0x01010000 ^ ctx.outlen;
} // This is not an enum to save some bytes in the output bundle.
}
// This is not an enum to save some bytes in the output bundle.
var SOLVER_TYPE_JS = 1;

@@ -410,3 +368,2 @@ var SOLVER_TYPE_WASM = 2;

*/
function solveBlake2bEfficient(input, threshold, n) {

@@ -416,3 +373,2 @@ if (input.length != CHALLENGE_SIZE_BYTES) {

}
var buf = input.buffer;

@@ -424,3 +380,2 @@ var view = new DataView(buf);

var end = start + n;
for (var _i8 = start; _i8 < end; _i8++) {

@@ -430,3 +385,2 @@ view.setUint32(124, _i8, true);

blake2bCompress(ctx, true);
if (ctx.h[0] < threshold) {

@@ -436,12 +390,9 @@ if (ASC_TARGET == 0) {

return new Uint8Array(ctx.h.buffer);
} //@ts-ignore
}
//@ts-ignore
return Uint8Array.wrap(ctx.h.buffer);
}
}
return new Uint8Array(0);
}
function getJSSolver() {

@@ -456,3 +407,2 @@ return new Promise(function ($return, $error) {

}
if (!Uint8Array.prototype.slice) {

@@ -465,7 +415,6 @@ Object.defineProperty(Uint8Array.prototype, "slice", {

}
self.ASC_TARGET = 0; // 1 for JS, 2 for WASM
var solverType; // Puzzle consisting of zeroes
self.ASC_TARGET = 0;
// 1 for JS, 2 for WASM
var solverType;
// Puzzle consisting of zeroes
var setSolver;

@@ -475,3 +424,2 @@ var solver = new Promise(function (resolve) {

});
self.onerror = function (evt) {

@@ -483,3 +431,2 @@ self.postMessage({

};
self.onmessage = function (evt) {

@@ -489,3 +436,2 @@ return new Promise(function ($return, $error) {

data = evt.data;
var $Try_1_Post = function $Try_1_Post() {

@@ -498,3 +444,2 @@ try {

};
var $Try_1_Catch = function $Try_1_Catch(e) {

@@ -510,3 +455,2 @@ try {

};
try {

@@ -516,3 +460,2 @@ var $If_3 = function $If_3() {

};
/**

@@ -530,3 +473,2 @@ * Compile the WASM and setup the solver.

};
if (data.forceJS) {

@@ -552,3 +494,2 @@ var s;

}.bind(this);
var $Try_2_Catch = function $Try_2_Catch(e) {

@@ -558,3 +499,2 @@ try {

var _s;
console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: " + e.toString());

@@ -576,6 +516,4 @@ solverType = SOLVER_TYPE_JS;

};
try {
var module, _s2;
solverType = SOLVER_TYPE_WASM;

@@ -606,3 +544,2 @@ module = WebAssembly.compile(decode(base64));

};
if (data.type === "start") {

@@ -616,13 +553,11 @@ var solve, totalH, solution, view;

});
totalH = 0; // We loop over a uint32 to find as solution, it is technically possible (but extremely unlikely - only possible with very high difficulty) that
totalH = 0;
// We loop over a uint32 to find as solution, it is technically possible (but extremely unlikely - only possible with very high difficulty) that
// there is no solution, here we loop over one byte further up too in case that happens.
for (var b = 0; b < 256; b++) {
data.puzzleSolverInput[123] = b;
var _solve = solve(data.puzzleSolverInput, data.threshold),
_solve2 = _slicedToArray(_solve, 2),
_s3 = _solve2[0],
hash = _solve2[1];
_solve2 = _slicedToArray(_solve, 2),
_s3 = _solve2[0],
hash = _solve2[1];
if (hash.length === 0) {

@@ -635,7 +570,5 @@ // This means 2^32 puzzles were evaluated, which takes a while in a browser!

}
solution = _s3;
break;
}
view = new DataView(solution.slice(-4).buffer);

@@ -656,3 +589,2 @@ totalH += view.getUint32(0, true);

}
return $If_6.call(this);

@@ -659,0 +591,0 @@ }

@@ -1,1 +0,1 @@

!function(){function A(A,r){return function(A){if(Array.isArray(A))return A}(A)||function(A,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(A)){var r=[],n=!0,e=!1,o=void 0;try{for(var i,g=A[Symbol.iterator]();!(n=(i=g.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(I){e=!0,o=I}finally{try{n||null==g.return||g.return()}finally{if(e)throw o}}return r}}(A,r)||function(A,r){if(A){if("string"==typeof A)return t(A,r);var n=Object.prototype.toString.call(A).slice(8,-1);return"Object"===n&&A.constructor&&(n=A.constructor.name),"Map"===n||"Set"===n?Array.from(A):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(A,r):void 0}}(A,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function t(A,t){(null==t||t>A.length)&&(t=A.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=A[r];return n}!function(){"use strict";var A,t=[];function r(){for(;t.length;)t[0](),t.shift()}function n(A){this.a=e,this.b=void 0,this.f=[];var t=this;try{A((function(A){i(t,A)}),(function(A){g(t,A)}))}catch(r){g(t,r)}}A=function(){setTimeout(r)};var e=2;function o(A){return new n((function(t){t(A)}))}function i(A,t){if(A.a==e){if(t==A)throw new TypeError;var r=!1;try{var n=t&&t.then;if(null!=t&&"object"==typeof t&&"function"==typeof n)return void n.call(t,(function(t){r||i(A,t),r=!0}),(function(t){r||g(A,t),r=!0}))}catch(o){return void(r||g(A,o))}A.a=0,A.b=t,I(A)}}function g(A,t){if(A.a==e){if(t==A)throw new TypeError;A.a=1,A.b=t,I(A)}}function I(r){!function(r){t.push(r),1==t.length&&A()}((function(){if(r.a!=e)for(;r.f.length;){var A=(o=r.f.shift())[0],t=o[1],n=o[2],o=o[3];try{0==r.a?n("function"==typeof A?A.call(void 0,r.b):r.b):1==r.a&&("function"==typeof t?n(t.call(void 0,r.b)):o(r.b))}catch(i){o(i)}}}))}n.prototype.g=function(A){return this.c(void 0,A)},n.prototype.c=function(A,t){var r=this;return new n((function(n,e){r.f.push([A,t,n,e]),I(r)}))},self.Promise||(self.Promise=n,self.Promise.resolve=o,self.Promise.reject=function(A){return new n((function(t,r){r(A)}))},self.Promise.race=function(A){return new n((function(t,r){for(var n=0;n<A.length;n+=1)o(A[n]).c(t,r)}))},self.Promise.all=function(A){return new n((function(t,r){function n(r){return function(n){i[r]=n,(e+=1)==A.length&&t(i)}}var e=0,i=[];0==A.length&&t(i);for(var g=0;g<A.length;g+=1)o(A[g]).c(n(g),r)}))},self.Promise.prototype.then=n.prototype.c,self.Promise.prototype.catch=n.prototype.g)}(),function(){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="=".charCodeAt(0),n=new Uint8Array(256),e=0;e<t.length;e++)n[t.charCodeAt(e)]=e;var o=function A(t){!function(A,t){if(!(A instanceof t))throw new TypeError("Cannot call a class as a function")}(this,A),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=t};function i(A,t){return A[t]^A[t+1]<<8^A[t+2]<<16^A[t+3]<<24}function g(A,t,r,n,e,o,i,g){var I,C,Q,c=t[i],a=t[i+1],B=t[g],f=t[g+1],u=A[r],s=A[r+1],E=A[n],h=A[n+1],w=A[e],l=A[e+1],y=A[o],D=A[o+1];Q=D^(s=(s=s+h+((u&E|(u|E)&~(I=u+E))>>>31))+a+(((u=I)&c|(u|c)&~(I=u+c))>>>31)),E=(Q=(h=(Q=h^(l=l+(D=C=y^(u=I))+((w&(y=Q)|(w|y)&~(I=w+y))>>>31)))>>>24^(C=E^(w=I))<<8)^(l=l+(D=(Q=D^(s=(s=s+h+((u&(E=C>>>24^Q<<8)|(u|E)&~(I=u+E))>>>31))+f+(((u=I)&B|(u|B)&~(I=u+B))>>>31)))>>>16^(C=y^(u=I))<<16)+((w&(y=C>>>16^Q<<16)|(w|y)&~(I=w+y))>>>31)))>>>31^(C=E^(w=I))<<1,h=C>>>31^Q<<1,A[r]=u,A[r+1]=s,A[n]=E,A[n+1]=h,A[e]=w,A[e+1]=l,A[o]=y,A[o+1]=D}var I,C,Q=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],c=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function a(A,t){for(var r=A.v,n=A.m,e=0;e<16;e++)r[e]=A.h[e],r[e+16]=Q[e];r[24]=r[24]^A.t,r[25]=r[25]^A.t/4294967296,t&&(r[28]=~r[28],r[29]=~r[29]);for(var o=0;o<32;o++)n[o]=i(A.b,4*o);for(var I=0;I<12;I++)g(r,n,0,8,16,24,c[16*I+0],c[16*I+1]),g(r,n,2,10,18,26,c[16*I+2],c[16*I+3]),g(r,n,4,12,20,28,c[16*I+4],c[16*I+5]),g(r,n,6,14,22,30,c[16*I+6],c[16*I+7]),g(r,n,0,10,20,30,c[16*I+8],c[16*I+9]),g(r,n,2,12,22,24,c[16*I+10],c[16*I+11]),g(r,n,4,14,16,26,c[16*I+12],c[16*I+13]),g(r,n,6,8,18,28,c[16*I+14],c[16*I+15]);for(var C=0;C<16;C++)A.h[C]=A.h[C]^r[C]^r[C+16]}function B(A,t){for(var r=0;r<16;r++)A.h[r]=Q[r];A.b.set(t),A.h[0]^=16842752^A.outlen}function f(A,t,r){if(128!=A.length)throw Error("Invalid input");var n=A.buffer,e=new DataView(n),i=new o(32);i.t=128;for(var g=e.getUint32(124,!0),I=g+r,C=g;C<I;C++)if(e.setUint32(124,C,!0),B(i,A),a(i,!0),i.h[0]<t)return 0==ASC_TARGET?new Uint8Array(i.h.buffer):Uint8Array.wrap(i.h.buffer);return new Uint8Array(0)}function u(){return new Promise((function(A){return A((function(A,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295,n=f(A,t,r);return[A,n]}))}))}Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,t){return new Uint8Array(Array.prototype.slice.call(this,A,t))}}),self.ASC_TARGET=0;var s=new Promise((function(A){return C=A}));self.onerror=function(A){self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=function(t){return new Promise((function(e,o){var i;i=t.data;var g=function(){try{return e()}catch(A){return o(A)}},Q=function(A){try{return setTimeout((function(){throw A})),g()}catch(t){return o(t)}};try{var c=function(){return g()};if("solver"!==i.type){var a,B,f,E,h=function(){return c.call(this)};return"start"===i.type?Promise.resolve(s).then(function(t){try{a=t,self.postMessage({type:"started"}),B=0;for(var r=0;r<256;r++){i.puzzleSolverInput[123]=r;var n=A(a(i.puzzleSolverInput,i.threshold),2),e=n[0];if(0!==n[1].length){f=e;break}console.warn("FC: Internal error or no solution found"),B+=Math.pow(2,32)-1}return E=new DataView(f.slice(-4).buffer),B+=E.getUint32(0,!0),self.postMessage({type:"done",solution:f.slice(-8),h:B,puzzleIndex:i.puzzleIndex,puzzleNumber:i.puzzleNumber}),h.call(this)}catch(o){return Q(o)}}.bind(this),Q):h.call(this)}var w=function(){return self.postMessage({type:"ready",solver:I}),c.call(this)};if(i.forceJS)return I=1,Promise.resolve(u()).then(function(A){try{return C(A),w.call(this)}catch(t){return Q(t)}}.bind(this),Q);var l=function(){try{return w.call(this)}catch(A){return Q(A)}}.bind(this),y=function(A){try{return console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),I=1,Promise.resolve(u()).then((function(A){try{return C(A),l()}catch(t){return Q(t)}}),Q)}catch(t){return Q(t)}};try{var D;return I=2,D=WebAssembly.compile(function(A){var t=A.length,e=3*t>>>2;A.charCodeAt(t-1)===r&&e--,A.charCodeAt(t-2)===r&&e--;for(var o=new Uint8Array(e),i=0,g=0;i<t;i+=4){var I=n[A.charCodeAt(i+0)],C=n[A.charCodeAt(i+1)],Q=n[A.charCodeAt(i+2)],c=n[A.charCodeAt(i+3)];o[g++]=I<<2|C>>4,o[g++]=(15&C)<<4|Q>>2,o[g++]=(3&Q)<<6|63&c}return o}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Promise.resolve(D).then((function(A){try{return Promise.resolve(function(A){return new Promise((function(t,r){var n,e,o;return Promise.resolve(function(A){return new Promise((function(t,r){var n,e;return n={env:{abort:function(){throw Error("Wasm aborted")}}},Promise.resolve(WebAssembly.instantiate(A,n)).then((function(A){try{return e=function(A){var t={},r=A.exports,n=r.memory,e=r.__alloc,o=r.__retain,i=r.__rtti_base||-1;return t.__allocArray=function(A,t){var r=function(A){return new Uint32Array(n.buffer)[(i+4>>>2)+2*A]}(A),g=31-Math.clz32(r>>>6&31),I=t.length,C=e(I<<g,0),Q=e(12,A),c=new Uint32Array(n.buffer);c[Q+0>>>2]=o(C),c[Q+4>>>2]=C,c[Q+8>>>2]=I<<g;var a=n.buffer,B=new Uint8Array(a);if(16384&r)for(var f=0;f<I;++f)B[(C>>>g)+f]=o(t[f]);else B.set(t,C>>>g);return Q},t.__getUint8Array=function(A){var t=new Uint32Array(n.buffer),r=t[A+4>>>2];return new Uint8Array(n.buffer,r,t[r-4>>>2]>>>0)},function(A){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=A.__argumentsLength?function(t){A.__argumentsLength.value=t}:A.__setArgumentsLength||A.__setargc||function(){return{}},n=function(n){if(!Object.prototype.hasOwnProperty.call(A,n))return"continue";var e=A[n],o=n.split(".")[0];"function"==typeof e&&e!==r?(t[o]=function(){return r(arguments.length),e.apply(void 0,arguments)}).original=e:t[o]=e};for(var e in A)n(e);return t}(r,t)}(A),t({exports:e})}catch(n){return r(n)}}),r)}))}(A)).then((function(A){try{return e=(n=A).exports.__retain(n.exports.__allocArray(n.exports.Uint8Array_ID,new Uint8Array(128))),o=n.exports.__getUint8Array(e),t((function(A,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295;o.set(A);var i=n.exports.solveBlake2b(e,t,r);o=n.exports.__getUint8Array(e);var g=n.exports.__getUint8Array(i);return n.exports.__release(i),[o,g]}))}catch(i){return r(i)}}),r)}))}(A)).then((function(A){try{return C(A),l()}catch(t){return y(t)}}),y)}catch(t){return y(t)}}),y)}catch(v){y(v)}}catch(v){Q(v)}}))}}()}("undefined"==typeof frcWorker?frcWorker={}:frcWorker);
!function(){function A(r){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},A(r)}function r(A,r){(null==r||r>A.length)&&(r=A.length);for(var t=0,n=Array(r);t<r;t++)n[t]=A[t];return n}function t(A,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(A,e(n.key),n)}}function n(A,r,n){return r&&t(A.prototype,r),n&&t(A,n),Object.defineProperty(A,"prototype",{writable:!1}),A}function e(r){var t=function(r){if("object"!=A(r)||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var n=t.call(r,"string");if("object"!=A(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r);return"symbol"==A(t)?t:t+""}!function(){"use strict";var A,r=[];function t(){for(;r.length;)r[0](),r.shift()}function n(A){this.a=e,this.b=void 0,this.f=[];var r=this;try{A((function(A){i(r,A)}),(function(A){g(r,A)}))}catch(t){g(r,t)}}A=function(){setTimeout(t)};var e=2;function o(A){return new n((function(r){r(A)}))}function i(A,r){if(A.a==e){if(r==A)throw new TypeError;var t=!1;try{var n=r&&r.then;if(null!=r&&"object"==typeof r&&"function"==typeof n)return void n.call(r,(function(r){t||i(A,r),t=!0}),(function(r){t||g(A,r),t=!0}))}catch(o){return void(t||g(A,o))}A.a=0,A.b=r,I(A)}}function g(A,r){if(A.a==e){if(r==A)throw new TypeError;A.a=1,A.b=r,I(A)}}function I(t){!function(t){r.push(t),1==r.length&&A()}((function(){if(t.a!=e)for(;t.f.length;){var A=(o=t.f.shift())[0],r=o[1],n=o[2],o=o[3];try{0==t.a?n("function"==typeof A?A.call(void 0,t.b):t.b):1==t.a&&("function"==typeof r?n(r.call(void 0,t.b)):o(t.b))}catch(i){o(i)}}}))}n.prototype.g=function(A){return this.c(void 0,A)},n.prototype.c=function(A,r){var t=this;return new n((function(n,e){t.f.push([A,r,n,e]),I(t)}))},self.Promise||(self.Promise=n,self.Promise.resolve=o,self.Promise.reject=function(A){return new n((function(r,t){t(A)}))},self.Promise.race=function(A){return new n((function(r,t){for(var n=0;n<A.length;n+=1)o(A[n]).c(r,t)}))},self.Promise.all=function(A){return new n((function(r,t){function n(t){return function(n){i[t]=n,(e+=1)==A.length&&r(i)}}var e=0,i=[];0==A.length&&r(i);for(var g=0;g<A.length;g+=1)o(A[g]).c(n(g),t)}))},self.Promise.prototype.then=n.prototype.c,self.Promise.prototype.catch=n.prototype.g)}(),function(){"use strict";for(var A="=".charCodeAt(0),t=new Uint8Array(256),e=0;e<64;e++)t["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(e)]=e;var o=n((function A(r){!function(A,r){if(!(A instanceof r))throw new TypeError("Cannot call a class as a function")}(this,A),this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=r}));function i(A,r){return A[r]^A[r+1]<<8^A[r+2]<<16^A[r+3]<<24}function g(A,r,t,n,e,o,i,g){var I,C,Q,c=r[i],a=r[i+1],f=r[g],u=r[g+1],B=A[t],s=A[t+1],E=A[n],l=A[n+1],h=A[e],w=A[e+1],y=A[o],v=A[o+1];Q=v^(s=(s=s+l+((B&E|(B|E)&~(I=B+E))>>>31))+a+(((B=I)&c|(B|c)&~(I=B+c))>>>31)),E=(Q=(l=(Q=l^(w=w+(v=C=y^(B=I))+((h&(y=Q)|(h|y)&~(I=h+y))>>>31)))>>>24^(C=E^(h=I))<<8)^(w=w+(v=(Q=v^(s=(s=s+l+((B&(E=C>>>24^Q<<8)|(B|E)&~(I=B+E))>>>31))+u+(((B=I)&f|(B|f)&~(I=B+f))>>>31)))>>>16^(C=y^(B=I))<<16)+((h&(y=C>>>16^Q<<16)|(h|y)&~(I=h+y))>>>31)))>>>31^(C=E^(h=I))<<1,l=C>>>31^Q<<1,A[t]=B,A[t+1]=s,A[n]=E,A[n+1]=l,A[e]=h,A[e+1]=w,A[o]=y,A[o+1]=v}var I,C,Q=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],c=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function a(A,r){for(var t=A.v,n=A.m,e=0;e<16;e++)t[e]=A.h[e],t[e+16]=Q[e];t[24]=t[24]^A.t,t[25]=t[25]^A.t/4294967296,r&&(t[28]=~t[28],t[29]=~t[29]);for(var o=0;o<32;o++)n[o]=i(A.b,4*o);for(var I=0;I<12;I++)g(t,n,0,8,16,24,c[16*I+0],c[16*I+1]),g(t,n,2,10,18,26,c[16*I+2],c[16*I+3]),g(t,n,4,12,20,28,c[16*I+4],c[16*I+5]),g(t,n,6,14,22,30,c[16*I+6],c[16*I+7]),g(t,n,0,10,20,30,c[16*I+8],c[16*I+9]),g(t,n,2,12,22,24,c[16*I+10],c[16*I+11]),g(t,n,4,14,16,26,c[16*I+12],c[16*I+13]),g(t,n,6,8,18,28,c[16*I+14],c[16*I+15]);for(var C=0;C<16;C++)A.h[C]=A.h[C]^t[C]^t[C+16]}function f(A,r){for(var t=0;t<16;t++)A.h[t]=Q[t];A.b.set(r),A.h[0]^=16842752^A.outlen}function u(){return new Promise((function(A){return A((function(A,r){var t=function(A,r,t){if(128!=A.length)throw Error("Invalid input");var n=A.buffer,e=new DataView(n),i=new o(32);i.t=128;for(var g=e.getUint32(124,!0),I=g+t,C=g;C<I;C++)if(e.setUint32(124,C,!0),f(i,A),a(i,!0),i.h[0]<r)return 0==ASC_TARGET?new Uint8Array(i.h.buffer):Uint8Array.wrap(i.h.buffer);return new Uint8Array(0)}(A,r,arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295);return[A,t]}))}))}Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,r){return new Uint8Array(Array.prototype.slice.call(this,A,r))}}),self.ASC_TARGET=0;var B=new Promise((function(A){return C=A}));self.onerror=function(A){self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=function(n){return new Promise((function(e,o){var i;i=n.data;var g=function(){try{return e()}catch(A){return o(A)}},Q=function(A){try{return setTimeout((function(){throw A})),g()}catch(r){return o(r)}};try{var c=function(){return g()};if("solver"!==i.type){var a,f,s,E,l=function(){return c.call(this)};return"start"===i.type?Promise.resolve(B).then(function(A){try{a=A,self.postMessage({type:"started"}),f=0;for(var t=0;t<256;t++){i.puzzleSolverInput[123]=t;var n=function(A){if(Array.isArray(A))return A}(o=a(i.puzzleSolverInput,i.threshold))||function(A){var r=null==A?null:"undefined"!=typeof Symbol&&A[Symbol.iterator]||A["@@iterator"];if(null!=r){var t,n,e,o,i=[],g=!0,I=!1;try{for(e=(r=r.call(A)).next;!(g=(t=e.call(r)).done)&&(i.push(t.value),2!==i.length);g=!0);}catch(A){I=!0,n=A}finally{try{if(!g&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(I)throw n}}return i}}(o)||function(A){if(A){if("string"==typeof A)return r(A,2);var t={}.toString.call(A).slice(8,-1);return"Object"===t&&A.constructor&&(t=A.constructor.name),"Map"===t||"Set"===t?Array.from(A):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(A,2):void 0}}(o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),e=n[0];if(0!==n[1].length){s=e;break}console.warn("FC: Internal error or no solution found"),f+=Math.pow(2,32)-1}return E=new DataView(s.slice(-4).buffer),f+=E.getUint32(0,!0),self.postMessage({type:"done",solution:s.slice(-8),h:f,puzzleIndex:i.puzzleIndex,puzzleNumber:i.puzzleNumber}),l.call(this)}catch(g){return Q(g)}var o}.bind(this),Q):l.call(this)}var h=function(){return self.postMessage({type:"ready",solver:I}),c.call(this)};if(i.forceJS)return I=1,Promise.resolve(u()).then(function(A){try{return C(A),h.call(this)}catch(r){return Q(r)}}.bind(this),Q);var w=function(){try{return h.call(this)}catch(A){return Q(A)}}.bind(this),y=function(A){try{return console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),I=1,Promise.resolve(u()).then((function(A){try{return C(A),w()}catch(r){return Q(r)}}),Q)}catch(r){return Q(r)}};try{var v;return I=2,v=WebAssembly.compile(function(r){var n=3285;r.charCodeAt(4379)===A&&n--,r.charCodeAt(4378)===A&&n--;for(var e=new Uint8Array(n),o=0,i=0;o<4380;o+=4){var g=t[r.charCodeAt(o+0)],I=t[r.charCodeAt(o+1)],C=t[r.charCodeAt(o+2)],Q=t[r.charCodeAt(o+3)];e[i++]=g<<2|I>>4,e[i++]=(15&I)<<4|C>>2,e[i++]=(3&C)<<6|63&Q}return e}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Promise.resolve(v).then((function(A){try{return Promise.resolve(function(A){return new Promise((function(r,t){var n,e,o;return Promise.resolve(function(A){return new Promise((function(r,t){var n,e;return n={env:{abort:function(){throw Error("Wasm aborted")}}},Promise.resolve(WebAssembly.instantiate(A,n)).then((function(A){try{return e=function(A){var r={},t=A.exports,n=t.memory,e=t.__alloc,o=t.__retain,i=t.__rtti_base||-1;return r.__allocArray=function(A,r){var t=function(A){return new Uint32Array(n.buffer)[(i+4>>>2)+2*A]}(A),g=31-Math.clz32(t>>>6&31),I=r.length,C=e(I<<g,0),Q=e(12,A),c=new Uint32Array(n.buffer);c[Q+0>>>2]=o(C),c[Q+4>>>2]=C,c[Q+8>>>2]=I<<g;var a=n.buffer,f=new Uint8Array(a);if(16384&t)for(var u=0;u<I;++u)f[(C>>>g)+u]=o(r[u]);else f.set(r,C>>>g);return Q},r.__getUint8Array=function(A){var r=new Uint32Array(n.buffer),t=r[A+4>>>2];return new Uint8Array(n.buffer,t,r[t-4>>>2]>>>0)},function(A){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=A.__argumentsLength?function(r){A.__argumentsLength.value=r}:A.__setArgumentsLength||A.__setargc||function(){return{}},n=function(){if(!Object.prototype.hasOwnProperty.call(A,e))return 1;var n=A[e],o=e.split(".")[0];"function"==typeof n&&n!==t?(r[o]=function(){return t(arguments.length),n.apply(void 0,arguments)}).original=n:r[o]=n};for(var e in A)n();return r}(t,r)}(A),r({exports:e})}catch(n){return t(n)}}),t)}))}(A)).then((function(A){try{return e=(n=A).exports.__retain(n.exports.__allocArray(n.exports.Uint8Array_ID,new Uint8Array(128))),o=n.exports.__getUint8Array(e),r((function(A,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:4294967295;o.set(A);var i=n.exports.solveBlake2b(e,r,t);o=n.exports.__getUint8Array(e);var g=n.exports.__getUint8Array(i);return n.exports.__release(i),[o,g]}))}catch(i){return t(i)}}),t)}))}(A)).then((function(A){try{return C(A),w()}catch(r){return y(r)}}),y)}catch(r){return y(r)}}),y)}catch(p){y(p)}}catch(p){Q(p)}}))}}()}("undefined"==typeof frcWorker?frcWorker={}:frcWorker);

@@ -1,1 +0,1 @@

!function(){"use strict";const A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",I="=".charCodeAt(0),g=new Uint8Array(256);for(let I=0;I<A.length;I++)g[A.charCodeAt(I)]=I;function C(A){const I={},g=A.exports,C=g.memory,Q=g.__alloc,t=g.__retain,B=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(B+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),o=I.length,i=Q(o<<e,0),r=Q(12,A),n=new Uint32Array(C.buffer);n[r+0>>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<o;++A)s[(i>>>e)+A]=t(I[A]);else s.set(I,i>>>e);return r},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const Q=A[C],t=C.split(".")[0];"function"==typeof Q&&Q!==g?(I[t]=(...A)=>(g(A.length),Q(...A))).original=Q:I[t]=Q}return I}(g,I)}class Q{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function t(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function B(A,I,g,C,Q,t,B,e){const o=I[B],i=I[B+1],r=I[e],n=I[e+1];let E,s,w,c,a=A[g],D=A[g+1],h=A[C],f=A[C+1],y=A[Q],l=A[Q+1],u=A[t],N=A[t+1];E=a+h,s=(a&h|(a|h)&~E)>>>31,a=E,D=D+f+s,E=a+o,s=(a&o|(a|o)&~E)>>>31,a=E,D=D+i+s,w=u^a,c=N^D,u=c,N=w,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=h^y,c=f^l,h=w>>>24^c<<8,f=c>>>24^w<<8,E=a+h,s=(a&h|(a|h)&~E)>>>31,a=E,D=D+f+s,E=a+r,s=(a&r|(a|r)&~E)>>>31,a=E,D=D+n+s,w=u^a,c=N^D,u=w>>>16^c<<16,N=c>>>16^w<<16,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=h^y,c=f^l,h=c>>>31^w<<1,f=w>>>31^c<<1,A[g]=a,A[g+1]=D,A[C]=h,A[C+1]=f,A[Q]=y,A[Q+1]=l,A[t]=u,A[t+1]=N}const e=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],o=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function i(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=e[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=t(A.b,4*I);for(let A=0;A<12;A++)B(g,C,0,8,16,24,o[16*A+0],o[16*A+1]),B(g,C,2,10,18,26,o[16*A+2],o[16*A+3]),B(g,C,4,12,20,28,o[16*A+4],o[16*A+5]),B(g,C,6,14,22,30,o[16*A+6],o[16*A+7]),B(g,C,0,10,20,30,o[16*A+8],o[16*A+9]),B(g,C,2,12,22,24,o[16*A+10],o[16*A+11]),B(g,C,4,14,16,26,o[16*A+12],o[16*A+13]),B(g,C,6,8,18,28,o[16*A+14],o[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function r(A,I){for(let I=0;I<16;I++)A.h[I]=e[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function n(){return(A,I,g=4294967295)=>{const C=function(A,I,g){if(128!=A.length)throw Error("Invalid input");const C=A.buffer,t=new DataView(C),B=new Q(32);B.t=128;const e=t.getUint32(124,!0),o=e+g;for(let g=e;g<o;g++)if(t.setUint32(124,g,!0),r(B,A),i(B,!0),B.h[0]<I)return 0==ASC_TARGET?new Uint8Array(B.h.buffer):Uint8Array.wrap(B.h.buffer);return new Uint8Array(0)}(A,I,g);return[A,C]}}let E,s;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const w=new Promise((A=>s=A));self.onerror=A=>{self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=async A=>{const Q=A.data;try{if("solver"===Q.type){if(Q.forceJS){E=1;const A=await n();s(A)}else try{E=2;const A=WebAssembly.compile(function(A){const C=A.length;let Q=3*C>>>2;A.charCodeAt(C-1)===I&&Q--,A.charCodeAt(C-2)===I&&Q--;const t=new Uint8Array(Q);for(let I=0,Q=0;I<C;I+=4){const C=g[A.charCodeAt(I+0)],B=g[A.charCodeAt(I+1)],e=g[A.charCodeAt(I+2)],o=g[A.charCodeAt(I+3)];t[Q++]=C<<2|B>>4,t[Q++]=(15&B)<<4|e>>2,t[Q++]=(3&e)<<6|63&o}return t}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Q=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error("Wasm aborted")}}};return{exports:C(await WebAssembly.instantiate(A,I))}}(A),g=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let Q=I.exports.__getUint8Array(g);return(A,C,t=4294967295)=>{Q.set(A);const B=I.exports.solveBlake2b(g,C,t);Q=I.exports.__getUint8Array(g);const e=I.exports.__getUint8Array(B);return I.exports.__release(B),[Q,e]}}(await A);s(Q)}catch(A){console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),E=1;const I=await n();s(I)}self.postMessage({type:"ready",solver:E})}else if("start"===Q.type){const A=await w;self.postMessage({type:"started"});let I,g=0;for(let C=0;C<256;C++){Q.puzzleSolverInput[123]=C;const[t,B]=A(Q.puzzleSolverInput,Q.threshold);if(0!==B.length){I=t;break}console.warn("FC: Internal error or no solution found"),g+=Math.pow(2,32)-1}g+=new DataView(I.slice(-4).buffer).getUint32(0,!0),self.postMessage({type:"done",solution:I.slice(-8),h:g,puzzleIndex:Q.puzzleIndex,puzzleNumber:Q.puzzleNumber})}}catch(A){setTimeout((()=>{throw A}))}}}();
!function(){"use strict";const A="=".charCodeAt(0),I=new Uint8Array(256);for(let A=0;A<64;A++)I["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charCodeAt(A)]=A;function g(A){const I={},g=A.exports,C=g.memory,Q=g.__alloc,t=g.__retain,B=g.__rtti_base||-1;return I.__allocArray=(A,I)=>{const g=function(A){return new Uint32Array(C.buffer)[(B+4>>>2)+2*A]}(A),e=31-Math.clz32(g>>>6&31),o=I.length,i=Q(o<<e,0),r=Q(12,A),n=new Uint32Array(C.buffer);n[r+0>>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<<e;const E=C.buffer,s=new Uint8Array(E);if(16384&g)for(let A=0;A<o;++A)s[(i>>>e)+A]=t(I[A]);else s.set(I,i>>>e);return r},I.__getUint8Array=A=>{const I=new Uint32Array(C.buffer),g=I[A+4>>>2];return new Uint8Array(C.buffer,g,I[g-4>>>2]>>>0)},function(A,I={}){const g=A.__argumentsLength?I=>{A.__argumentsLength.value=I}:A.__setArgumentsLength||A.__setargc||(()=>({}));for(const C in A){if(!Object.prototype.hasOwnProperty.call(A,C))continue;const Q=A[C],t=C.split(".")[0];"function"==typeof Q&&Q!==g?(I[t]=(...A)=>(g(A.length),Q(...A))).original=Q:I[t]=Q}return I}(g,I)}class C{constructor(A){this.b=new Uint8Array(128),this.h=new Uint32Array(16),this.t=0,this.c=0,this.v=new Uint32Array(32),this.m=new Uint32Array(32),this.outlen=A}}function Q(A,I){return A[I]^A[I+1]<<8^A[I+2]<<16^A[I+3]<<24}function t(A,I,g,C,Q,t,B,e){const o=I[B],i=I[B+1],r=I[e],n=I[e+1];let E,s,w,a,c=A[g],D=A[g+1],f=A[C],h=A[C+1],y=A[Q],l=A[Q+1],u=A[t],N=A[t+1];E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+o,s=(c&o|(c|o)&~E)>>>31,c=E,D=D+i+s,w=u^c,a=N^D,u=a,N=w,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=f^y,a=h^l,f=w>>>24^a<<8,h=a>>>24^w<<8,E=c+f,s=(c&f|(c|f)&~E)>>>31,c=E,D=D+h+s,E=c+r,s=(c&r|(c|r)&~E)>>>31,c=E,D=D+n+s,w=u^c,a=N^D,u=w>>>16^a<<16,N=a>>>16^w<<16,E=y+u,s=(y&u|(y|u)&~E)>>>31,y=E,l=l+N+s,w=f^y,a=h^l,f=a>>>31^w<<1,h=w>>>31^a<<1,A[g]=c,A[g+1]=D,A[C]=f,A[C+1]=h,A[Q]=y,A[Q+1]=l,A[t]=u,A[t+1]=N}const B=[4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225],e=[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6,22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8,14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16,18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26,4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18,24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22,26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20,12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10,20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6];function o(A,I){const g=A.v,C=A.m;for(let I=0;I<16;I++)g[I]=A.h[I],g[I+16]=B[I];g[24]=g[24]^A.t,g[25]=g[25]^A.t/4294967296,I&&(g[28]=~g[28],g[29]=~g[29]);for(let I=0;I<32;I++)C[I]=Q(A.b,4*I);for(let A=0;A<12;A++)t(g,C,0,8,16,24,e[16*A+0],e[16*A+1]),t(g,C,2,10,18,26,e[16*A+2],e[16*A+3]),t(g,C,4,12,20,28,e[16*A+4],e[16*A+5]),t(g,C,6,14,22,30,e[16*A+6],e[16*A+7]),t(g,C,0,10,20,30,e[16*A+8],e[16*A+9]),t(g,C,2,12,22,24,e[16*A+10],e[16*A+11]),t(g,C,4,14,16,26,e[16*A+12],e[16*A+13]),t(g,C,6,8,18,28,e[16*A+14],e[16*A+15]);for(let I=0;I<16;I++)A.h[I]=A.h[I]^g[I]^g[I+16]}function i(A,I){for(let I=0;I<16;I++)A.h[I]=B[I];A.b.set(I),A.h[0]^=16842752^A.outlen}async function r(){return(A,I,g=4294967295)=>{const Q=function(A,I,g){if(128!=A.length)throw Error("Invalid input");const Q=A.buffer,t=new DataView(Q),B=new C(32);B.t=128;const e=t.getUint32(124,!0),r=e+g;for(let g=e;g<r;g++)if(t.setUint32(124,g,!0),i(B,A),o(B,!0),B.h[0]<I)return 0==ASC_TARGET?new Uint8Array(B.h.buffer):Uint8Array.wrap(B.h.buffer);return new Uint8Array(0)}(A,I,g);return[A,Q]}}let n,E;Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(A,I){return new Uint8Array(Array.prototype.slice.call(this,A,I))}}),self.ASC_TARGET=0;const s=new Promise((A=>E=A));self.onerror=A=>{self.postMessage({type:"error",message:JSON.stringify(A)})},self.onmessage=async C=>{const Q=C.data;try{if("solver"===Q.type){if(Q.forceJS){n=1;const A=await r();E(A)}else try{n=2;const C=WebAssembly.compile(function(g){let C=3285;g.charCodeAt(4379)===A&&C--,g.charCodeAt(4378)===A&&C--;const Q=new Uint8Array(C);for(let A=0,C=0;A<4380;A+=4){const t=I[g.charCodeAt(A+0)],B=I[g.charCodeAt(A+1)],e=I[g.charCodeAt(A+2)],o=I[g.charCodeAt(A+3)];Q[C++]=t<<2|B>>4,Q[C++]=(15&B)<<4|e>>2,Q[C++]=(3&e)<<6|63&o}return Q}("AGFzbQEAAAABKghgAABgAn9/AGADf39/AX9gAX8AYAR/f39/AGAAAX9gAX8Bf2ACf38BfwINAQNlbnYFYWJvcnQABAMMCwcGAwAAAQIFAQIABQMBAAEGFgR/AUEAC38BQQALfwBBAwt/AEHgDAsHbgkGbWVtb3J5AgAHX19hbGxvYwABCF9fcmV0YWluAAIJX19yZWxlYXNlAAMJX19jb2xsZWN0AAQHX19yZXNldAAFC19fcnR0aV9iYXNlAwMNVWludDhBcnJheV9JRAMCDHNvbHZlQmxha2UyYgAKCAELCvQSC5IBAQV/IABB8P///wNLBEAACyMBQRBqIgQgAEEPakFwcSICQRAgAkEQSxsiBmoiAj8AIgVBEHQiA0sEQCAFIAIgA2tB//8DakGAgHxxQRB2IgMgBSADShtAAEEASARAIANAAEEASARAAAsLCyACJAEgBEEQayICIAY2AgAgAkEBNgIEIAIgATYCCCACIAA2AgwgBAsEACAACwMAAQsDAAELBgAjACQBC7sCAQF/AkAgAUUNACAAQQA6AAAgACABakEEayICQQA6AAMgAUECTQ0AIABBADoAASAAQQA6AAIgAkEAOgACIAJBADoAASABQQZNDQAgAEEAOgADIAJBADoAACABQQhNDQAgAEEAIABrQQNxIgJqIgBBADYCACAAIAEgAmtBfHEiAmpBHGsiAUEANgIYIAJBCE0NACAAQQA2AgQgAEEANgIIIAFBADYCECABQQA2AhQgAkEYTQ0AIABBADYCDCAAQQA2AhAgAEEANgIUIABBADYCGCABQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgwgACAAQQRxQRhqIgFqIQAgAiABayEBA0AgAUEgTwRAIABCADcDACAAQgA3AwggAEIANwMQIABCADcDGCABQSBrIQEgAEEgaiEADAELCwsLcgACfyAARQRAQQxBAhABIQALIAALQQA2AgAgAEEANgIEIABBADYCCCABQfD///8DIAJ2SwRAQcAKQfAKQRJBORAAAAsgASACdCIBQQAQASICIAEQBiAAKAIAGiAAIAI2AgAgACACNgIEIAAgATYCCCAAC88BAQJ/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABC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")),Q=await async function(A){const I=await async function(A){const I={env:{abort(){throw Error("Wasm aborted")}}};return{exports:g(await WebAssembly.instantiate(A,I))}}(A),C=I.exports.__retain(I.exports.__allocArray(I.exports.Uint8Array_ID,new Uint8Array(128)));let Q=I.exports.__getUint8Array(C);return(A,g,t=4294967295)=>{Q.set(A);const B=I.exports.solveBlake2b(C,g,t);Q=I.exports.__getUint8Array(C);const e=I.exports.__getUint8Array(B);return I.exports.__release(B),[Q,e]}}(await C);E(Q)}catch(A){console.log("FriendlyCaptcha failed to initialize WebAssembly, falling back to Javascript solver: "+A.toString()),n=1;const I=await r();E(I)}self.postMessage({type:"ready",solver:n})}else if("start"===Q.type){const A=await s;self.postMessage({type:"started"});let I,g=0;for(let C=0;C<256;C++){Q.puzzleSolverInput[123]=C;const[t,B]=A(Q.puzzleSolverInput,Q.threshold);if(0!==B.length){I=t;break}console.warn("FC: Internal error or no solution found"),g+=Math.pow(2,32)-1}g+=new DataView(I.slice(-4).buffer).getUint32(0,!0),self.postMessage({type:"done",solution:I.slice(-8),h:g,puzzleIndex:Q.puzzleIndex,puzzleNumber:Q.puzzleNumber})}}catch(A){setTimeout((()=>{throw A}))}}}();

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc