From a07834d33a70d361987932b514fb3210da8d43de Mon Sep 17 00:00:00 2001 From: Rafal Jania Date: Thu, 17 Oct 2024 09:37:29 +0200 Subject: [PATCH 1/6] [FEATURE][WIP] Friendlycaptcha V2 --- Classes/Configuration.php | 12 ++++++------ Classes/Service/Api.php | 18 ++++++++++-------- .../ViewHelpers/ConfigurationViewHelper.php | 3 +-- .../SiteConfiguration/Overrides/sites.php | 14 +++++++------- Configuration/Yaml/FormSetup.yaml | 2 +- .../Private/Form/Partials/Friendlycaptcha.html | 2 +- Resources/Private/Language/Configuration.xlf | 4 ++-- .../lib/sdk@0.1.8-site.compat.min.js | 7 +++++++ .../Public/JavaScript/lib/widget-0.9.12.min.js | 1 - .../JavaScript/lib/widget-0.9.12.module.min.js | 1 - Tests/Unit/ConfigurationTest.php | 2 +- Tests/Unit/Service/ApiTest.php | 12 ++++++------ .../ConfigurationViewHelperTest.php | 5 ++--- 13 files changed, 44 insertions(+), 39 deletions(-) create mode 100644 Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js delete mode 100644 Resources/Public/JavaScript/lib/widget-0.9.12.min.js delete mode 100644 Resources/Public/JavaScript/lib/widget-0.9.12.module.min.js diff --git a/Classes/Configuration.php b/Classes/Configuration.php index 591cfe0..b6e6726 100644 --- a/Classes/Configuration.php +++ b/Classes/Configuration.php @@ -11,11 +11,11 @@ class Configuration { - public const DEFAULT_JS_PATH = 'EXT:friendlycaptcha_official/Resources/Public/JavaScript/lib/widget-0.9.12.min.js'; + public const DEFAULT_JS_PATH = 'EXT:friendlycaptcha_official/Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js'; protected string $siteKey = ''; protected string $siteSecretKey = ''; - protected string $puzzleUrl = ''; + protected string $puzzleEndpoint = ''; protected string $verifyUrl = ''; protected string $jsPath = ''; protected bool $skipDevValidation = false; @@ -31,7 +31,7 @@ public function __construct(Site $site = null) $siteConfiguration = $site->getConfiguration(); $this->siteKey = trim($siteConfiguration['friendlycaptcha_site_key'] ?? ''); $this->siteSecretKey = trim($siteConfiguration['friendlycaptcha_secret_key'] ?? ''); - $this->puzzleUrl = trim($siteConfiguration['friendlycaptcha_puzzle_url'] ?? ''); + $this->puzzleEndpoint = trim($siteConfiguration['friendlycaptcha_puzzle_endpoint'] ?? ''); $this->verifyUrl = trim($siteConfiguration['friendlycaptcha_verify_url'] ?? ''); $this->jsPath = trim($siteConfiguration['friendlycaptcha_js_path'] ?? ''); $this->skipDevValidation = (bool)($siteConfiguration['friendlycaptcha_skip_dev_validation'] ?? false); @@ -39,7 +39,7 @@ public function __construct(Site $site = null) public function isEnabled(): bool { - return $this->siteKey !== '' && $this->siteSecretKey !== '' && $this->puzzleUrl !== '' && $this->verifyUrl !== '' && !$this->hasSkipHeaderValidation(); + return $this->siteKey !== '' && $this->siteSecretKey !== '' && $this->verifyUrl !== '' && !$this->hasSkipHeaderValidation(); } public function getSiteKey(): string @@ -52,9 +52,9 @@ public function getSiteSecretKey(): string return $this->siteSecretKey; } - public function getPuzzleUrl(): string + public function getPuzzleEndpoint(): string { - return $this->puzzleUrl; + return $this->puzzleEndpoint; } public function getVerifyUrl(): string diff --git a/Classes/Service/Api.php b/Classes/Service/Api.php index 7fecaa0..7b1c41c 100644 --- a/Classes/Service/Api.php +++ b/Classes/Service/Api.php @@ -30,7 +30,7 @@ public function __construct( $this->configuration = new Configuration(); } - public function verify(string $solution = ''): bool + public function verify(string $response = ''): bool { if ($this->configuration->hasSkipDevValidation()) { return true; @@ -39,17 +39,19 @@ public function verify(string $solution = ''): bool return true; } - $solution = $solution ?: $this->getSolutionFromRequest(); - if (!$solution || !$this->configuration->isEnabled()) { + $response = $response ?: $this->getResponseFromRequest(); + if (!$response || !$this->configuration->isEnabled()) { return false; } $options = [ - 'headers' => ['Cache-Control' => 'no-cache'], + 'headers' => [ + 'Cache-Control' => 'no-cache', + 'X-API-Key' => $this->configuration->getSiteSecretKey(), + ], 'allow_redirects' => true, 'form_params' => [ - 'secret' => $this->configuration->getSiteSecretKey(), - 'solution' => $solution, + 'response' => $response, ], ]; @@ -86,13 +88,13 @@ protected function request(string $method, string $url, array $options = []) return $result->getBody()->getContents(); } - protected function getSolutionFromRequest(): string + protected function getResponseFromRequest(): string { /** @var ServerRequest $request */ $request = $GLOBALS['TYPO3_REQUEST'] ?? null; if (!$request) { return ''; } - return $request->getParsedBody()['frc-captcha-solution'] ?? $request->getQueryParams()['frc-captcha-solution'] ?? ''; + return $request->getParsedBody()['frc-captcha-response'] ?? $request->getQueryParams()['frc-captcha-response'] ?? ''; } } diff --git a/Classes/ViewHelpers/ConfigurationViewHelper.php b/Classes/ViewHelpers/ConfigurationViewHelper.php index 61b98b4..75dd97b 100644 --- a/Classes/ViewHelpers/ConfigurationViewHelper.php +++ b/Classes/ViewHelpers/ConfigurationViewHelper.php @@ -18,10 +18,9 @@ public static function renderStatic(array $arguments, \Closure $renderChildrenCl { $configuration = new Configuration(); return [ - 'languageIsoCode' => self::getLanguageIsoCode(), 'siteKey' => $configuration->getSiteKey(), 'verifyUrl' => $configuration->getVerifyUrl(), - 'puzzleUrl' => $configuration->getPuzzleUrl(), + 'puzzleEndpoint' => $configuration->getPuzzleEndpoint(), 'jsPath' => $configuration->getJsPath(), 'enabled' => $configuration->isEnabled(), ]; diff --git a/Configuration/SiteConfiguration/Overrides/sites.php b/Configuration/SiteConfiguration/Overrides/sites.php index 9a01e6b..fb153d8 100644 --- a/Configuration/SiteConfiguration/Overrides/sites.php +++ b/Configuration/SiteConfiguration/Overrides/sites.php @@ -17,20 +17,20 @@ static function () { 'placeholder' => 'A16UE6NICBMVQKG1I1BFMLBD56K53D3CS0L5N00AJNBT1R41P8O7N1KFMH', ], ]; - $GLOBALS['SiteConfiguration']['site']['columns']['friendlycaptcha_puzzle_url'] = [ - 'label' => $lll . 'site.configuration.puzzle_url', + $GLOBALS['SiteConfiguration']['site']['columns']['friendlycaptcha_puzzle_endpoint'] = [ + 'label' => $lll . 'site.configuration.puzzle_endpoint', 'config' => [ 'type' => 'input', - 'placeholder' => 'https://eu-api.friendlycaptcha.eu/api/v1/puzzle', - 'default' => 'https://eu-api.friendlycaptcha.eu/api/v1/puzzle', + 'placeholder' => 'eu', + 'default' => '', ], ]; $GLOBALS['SiteConfiguration']['site']['columns']['friendlycaptcha_verify_url'] = [ 'label' => $lll . 'site.configuration.verify_url', 'config' => [ 'type' => 'input', - 'placeholder' => 'https://api.friendlycaptcha.com/api/v1/siteverify', - 'default' => 'https://eu-api.friendlycaptcha.eu/api/v1/siteverify', + 'placeholder' => 'https://global.frcapi.com/api/v2/captcha/siteverify', + 'default' => 'https://global.frcapi.com/api/v2/captcha/siteverify', ], ]; $GLOBALS['SiteConfiguration']['site']['columns']['friendlycaptcha_js_path'] = [ @@ -48,6 +48,6 @@ static function () { 'type' => 'check', ], ]; - $GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] .= ',--div--;' . $lll . 'site.configuration.tab, friendlycaptcha_site_key,friendlycaptcha_secret_key,friendlycaptcha_puzzle_url,friendlycaptcha_verify_url,friendlycaptcha_js_path,friendlycaptcha_skip_dev_validation,'; + $GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] .= ',--div--;' . $lll . 'site.configuration.tab, friendlycaptcha_site_key,friendlycaptcha_secret_key,friendlycaptcha_puzzle_endpoint,friendlycaptcha_verify_url,friendlycaptcha_js_path,friendlycaptcha_skip_dev_validation,'; } ); diff --git a/Configuration/Yaml/FormSetup.yaml b/Configuration/Yaml/FormSetup.yaml index 2846b6f..53476d1 100644 --- a/Configuration/Yaml/FormSetup.yaml +++ b/Configuration/Yaml/FormSetup.yaml @@ -34,7 +34,7 @@ TYPO3: # Headline (appears as a title in the overview and above the form) formEditor: - label: 'Friendly Captcha' + label: 'Friendly Captcha V2' group: custom groupSorting: 1010 diff --git a/Resources/Private/Form/Partials/Friendlycaptcha.html b/Resources/Private/Form/Partials/Friendlycaptcha.html index 092014e..7a85df0 100644 --- a/Resources/Private/Form/Partials/Friendlycaptcha.html +++ b/Resources/Private/Form/Partials/Friendlycaptcha.html @@ -24,7 +24,7 @@ value="1" additionalAttributes="{formvh:translateElementProperty(element: element, property: 'fluidAdditionalAttributes')}" /> -
+
diff --git a/Resources/Private/Language/Configuration.xlf b/Resources/Private/Language/Configuration.xlf index 900430c..9124165 100644 --- a/Resources/Private/Language/Configuration.xlf +++ b/Resources/Private/Language/Configuration.xlf @@ -14,8 +14,8 @@ Verify URL - - Puzzle URL + + Puzzle Endpoint JavaScript Path diff --git a/Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js b/Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js new file mode 100644 index 0000000..5e639b8 --- /dev/null +++ b/Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js @@ -0,0 +1,7 @@ +function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1},clear:function(){this.k.length=this.v.length=this.size=0},forEach:function(e,t){t&&(e=e.bind(t));for(var n=-1,r=this.size;++n!==r;)e(this.v[n],this.k[n],this)},entries:function(){var e=0,t=this;return{next:function(){return e!==t.size?{value:[t.k[e++],t.v[e]],done:!1}:{done:!0}}}},keys:function(){var e=0,t=this;return{next:function(){return e!==t.size?{value:t.k[e++],done:!1}:{done:!0}}}},values:function(){var e=0,t=this;return{next:function(){return e!==t.size?{value:t.v[e++],done:!1}:{done:!0}}}},toString:function(){return"[object Map]"}};WeakMap=Map=function(t){if(i=this.k=[],o=this.v=[],r=0,null!=t){if(s=Object(t),(n=+s.length)!=n)throw new TypeError("("+(t.toString||s.toString)()+") is not iterable");for(;n--;){if(!(s[n]instanceof Object))throw new TypeError("Iterator value "+s[n]+" is not an entry object");~e(i,s[n][0])||(i[r]=s[n][0],o[r++]=s[n][1])}i.reverse(),o.reverse()}this.size=r},Map.prototype=a,WeakSet=Set=function(t){if(i=this.k=this.v=[],r=0,null!=t){if(s=Object(t),(n=+s.length)!=n)throw new TypeError("("+(t.toString||s.toString)()+") is not iterable");for(;n--;)~e(i,s[n])||(i[r++]=s[n]);i.reverse()}this.size=r},Set.prototype={delete:function(n){return!!~(t=e(this.k,n))&&(this.k.splice(t,1),--this.size,!0)},add:function(n){return~(t=e(this.k,n))||(t=this.size++),this.k[t]=n,this},has:a.has,clear:a.clear,forEach:a.forEach,entries:a.entries,keys:a.keys,values:a.keys,toString:function(){return"[object Set]"}}}(),function(){function e(){return document.querySelectorAll(".frc-captcha")}function t(e,t,n){""===e.style[t]&&(e.style[t]=n)}function n(e){var t,n,r=new Promise((function(e,r){t=e,n=r}));return e&&e(t,n),{promise:r,resolve:t,reject:n}}function r(e,t){return 0===e.lastIndexOf(t,0)}function i(e){for(var t=[],n=Object.keys(e),r=encodeURIComponent,i=0;i1&&void 0!==arguments[1]?arguments[1]:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n="",r=0;re[6]&&(e[6]=t))}}}function p(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:document.body,o=m(),s=!1;return i[Y](e,(function(e){s&&!r||(n=e.timeStamp,s=!0)})),i[Y](t,(function(e){s&&(o.add(e.timeStamp-n),s=!1)})),o.s}function v(e){for(var t=[],n=function(n){t.push(0),document[Y](e[n],(function(){return t[n]++}))},r=0;r180?-360:n<-180?360:0)}function _(e){return e?K[e]||e:K.global}var k,S,E,C,P=/^((?:\w+:)?\/\/([^\/]+))/,R=function(){function e(t){_classCallCheck(this,e),this.ready=!1,this.buffer=[],this.id=t.id,this.type=t.type,this.element=t.element,this.onReady=t.onReady,this.origin=o(t.element.src)}return _createClass(e,[{key:"send",value:function(e){this.ready?this.element.contentWindow.postMessage(e,this.origin):this.buffer.push(e)}},{key:"setReady",value:function(e){this.onReady(),this.ready=e,this.ready&&this.flush()}},{key:"flush",value:function(){for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:u())("readonly",(function(t){return a(t.get(e))}))}(i,n.idb):n.mem.get(e);try{var o=sessionStorage.getItem(i);return null===o?void 0:o}catch(s){}return n.mem.get(e)}))}},{key:"set",value:function(e,t,n){var r=this;return this.setup().then((function(i){var o=r.storePrefix+"__"+e;if(n.p){if(i)return function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:u())("readwrite",(function(n){return n.put(t,e),a(n.transaction)}))}(o,t,r.idb);void 0===t?r.mem.delete(e):r.mem.set(e,t)}else try{void 0===t?(r.mem.delete(e),sessionStorage.removeItem(o)):(r.mem.set(e,t),sessionStorage.setItem(o,t))}catch(s){}}))}},{key:"hasSA",value:function(){return this._hasSA}}]),e}(),I="undefined"!=typeof navigator&&void 0!==navigator.userAgentData,D="FrcFrameId",W="frc-i-agent",N=function(){function e(t){var n=this;_classCallCheck(this,e),this.state="init",this.response=".UNINITIALIZED",this.focusEventPending=!1,this.isDestroyed=!1,this.id=t.id;var r=t.createOpts;if(this.e=r.element,this.ready=t.registered,!this.e)throw new Error("No element provided to mount widget under.");if(this.e.frcWidget=this,this.formFieldName=void 0===r.formFieldName?"frc-captcha-response":r.formFieldName,this.sitekey=r.sitekey,this._reset=t.callbacks.onReset,this._destroy=t.callbacks.onDestroy,this._trigger=t.callbacks.onTrigger,this.startMode=t.createOpts.startMode||"focus",null!==this.formFieldName){var i=document.createElement("input");i.type="hidden",i.style.display="none",i.name=this.formFieldName,this.hiddenFormEl=i,this.e.appendChild(i)}this.setState({response:".UNCONNECTED",state:"init"}),this.ready.then((function(){n.handleStartMode()}))}return _createClass(e,[{key:"handleStartMode",value:function(){var e,t=this;if("focus"!==this.startMode||this.focusEventPending||this.isDestroyed)"auto"===this.startMode&&this.trigger("auto");else{var n=function(e){for(;"FORM"!==e.tagName;)if(!(e=e.parentElement))return null;return e}(this.e);n&&(this.focusEventPending=!0,e=function(e){t.trigger("focus",{ev:e}),t.focusEventPending=!1},n.addEventListener("focusin",e,{once:!0,passive:!0}))}}},{key:"reset",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{trigger:"root"};if(this.isDestroyed)throw new Error("Can not reset destroyed widget.");this.setState({response:".RESET",state:"reset",resetTrigger:e.trigger}),this._reset(e),this.handleStartMode()}},{key:"destroy",value:function(){var e;this.isDestroyed=!0,null===(e=this.hiddenFormEl)||void 0===e||e.remove(),this.hiddenFormEl=void 0,this.setState({response:".DESTROYED",state:"destroyed"}),this._destroy()}},{key:"trigger",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.isDestroyed)throw new Error("Can not start destroyed widget.");var n=function(e,t,n,r){var i=h(),o=n.getBoundingClientRect(),s={v:1,tt:e,pnow:i,sm:t,el:{bcr:[o.left,o.top,o.width,o.height],con:document.body.contains(n)},stack:(new Error).stack||"",we:!!window.event,weit:!!window.event&&!!window.event.isTrusted};return r&&(s.ev={ts:r.timeStamp,rt:!!r.relatedTarget,eot:!!r.explicitOriginalTarget,it:r.isTrusted}),s}(e,this.startMode,this.e,t.ev);this._trigger({trigger:n})}},{key:"start",value:function(){this.trigger("programmatic")}},{key:"setState",value:function(e){var t=this.state!==e.state;this.response=e.response,this.state=e.state,this.hiddenFormEl&&!1!==this.e.isConnected&&(this.hiddenFormEl.value=e.response),t&&this.dispatchWidgetEvent({name:"frc:widget.statechange",error:e.error}),"expired"===this.state?this.dispatchWidgetEvent({name:"frc:widget.expire"}):"completed"===this.state?this.dispatchWidgetEvent({name:"frc:widget.complete"}):"error"===this.state?this.dispatchWidgetEvent({name:"frc:widget.error",error:e.error}):"reset"===this.state&&this.dispatchWidgetEvent({name:"frc:widget.reset",trigger:e.resetTrigger})}},{key:"dispatchWidgetEvent",value:function(e){var t={response:this.response,state:this.state,id:this.id};g(t,e),function(e,t){var n;"function"==typeof window.CustomEvent?n=new CustomEvent(t.name,{bubbles:!0,detail:t}):(n=document.createEvent("CustomEvent")).initCustomEvent(t.name,!0,!1,t),e.dispatchEvent(n)}(this.e,t)}},{key:"addEventListener",value:function(e,t,n){this.e.addEventListener(e,t,n)}},{key:"removeEventListener",value:function(e,t,n){this.e.removeEventListener(e,t,n)}},{key:"getState",value:function(){return this.state}},{key:"getResponse",value:function(){return this.response}},{key:"getElement",value:function(){return this.e}}]),e}(),L=function(e){return"function"==typeof e},X=function(){var e=[],t=new Map,n=window,r=function(){try{var e=document.createElement("iframe");e.style.display="none",(document.body||document.head).appendChild(e);var t=e?e.contentWindow:0;return e.remove(),t||n}catch(r){return n}}(),i=Function.prototype.toString,o=function(){if(!L(this)){for(var e=!!L(this)&&t.get(this),n=this===o?i:e||this,r=arguments.length,s=new Array(r),a=0;a=112&&r<=123&&t[0]++})),t),mov:this.setupMovementMetrics(),dm:this.setupMotionMetrics(),do:this.setupOrientationMetrics()}}return _createClass(e,[{key:"setupMovementMetrics",value:function(){var e=this,t=void 0,n=[],r=m(),i=m(),o=m(),s={t:r.s,v:o.s,d:i.s,ns:0},a=document.body,c=function(){var a=n[n.length-1];if(n.length>=200||a&&(a[0]&&e.tm.timeStamp===a[1]||!a[0]&&e.mm.timeStamp===a[1])){if(clearInterval(t),t=void 0,1===n.length)return s.ns++,void(n=[]);var c=n[0];r.add(a[1]-c[1]),i.add(y(a[2],c[2],a[3],c[3]));for(var u=1;ue.tm.timeStamp?0:1:e.mm||(g=1),g){var m=e.tm.touches[0];m&&n.push([1,e.tm.timeStamp,m.screenX,m.screenY])}else n.push([0,e.mm.timeStamp,e.mm.screenX,e.mm.screenY])}};a[Y]("mousemove",(function(n){e.mm=n,void 0===t&&(c(),t=setInterval(c,50))}));var u=-1;return a[Y]("touchmove",(function(n){e.tm=n;var r=n.touches[0];if(r){var i=r.radiusX+1.234*r.radiusY;i!==u&&(u=i,e.rn++)}void 0===t&&(c(),t=setInterval(c,50))})),s}},{key:"setupMotionMetrics",value:function(){var e=m(),t=m(),n={n:0,ts:0,ac:e.s,rr:t.s,i:0,g:!1};return window[Y]("devicemotion",(function(r){n.ts=r.timeStamp,n.i=r.interval,n.g=!r.acceleration;var i=r.acceleration||r.accelerationIncludingGravity;i&&e.add(w(i.x,i.y,i.z));var o=r.rotationRate;o&&t.add(w(o.alpha,o.beta,o.gamma))})),n}},{key:"setupOrientationMetrics",value:function(){var e,t=m(),n=m(),r={fts:0,ts:0,gd:t.s,bd:n.s};return window[Y]("deviceorientation",(function(i){null!=i.gamma&&null!=i.beta&&null!=i.alpha&&(r.ts=i.timeStamp,r.a=i.alpha,r.b=i.beta,r.g=i.gamma,e?(t.add(b(i.gamma,r.g)),n.add(b(r.b,i.beta))):(r.fts=r.ts,e=!0))})),r}},{key:"gmm",value:function(){var e=this.mm;return e&&{xy:[e.clientX,e.clientY,e.screenX,e.screenY,e.offsetX,e.offsetY,e.pageX,e.pageY,e.movementX,e.movementY],ts:e.timeStamp}}},{key:"gtm",value:function(){var e=this.tm,t=e&&e.touches,n=t&&t[0];return e&&n&&{id:n.identifier,xy:[n.clientX,n.clientY,n.screenX,n.screenY,n.pageX,n.pageY],r:[n.radiusX,n.radiusX,n.rotationAngle,n.force],n:t.length,ts:e.timeStamp,rn:this.rn}}},{key:"get",value:function(e){var t=document.body,n=window,r=n.performance;return{v:1,i:++this.i,hl:history.length,fe:!!window.frameElement,wid:e,sc:parseInt(d(!1)),sid:l(),conv:0,t:{pnow:h(),pto:r&&r.timeOrigin||0,ts:Date.now()},dims:{d:[n.innerWidth,n.innerHeight,n.outerWidth,n.outerHeight,n.screenX,n.screenY,n.pageXOffset,n.pageYOffset,t.clientWidth,t.clientHeight],dpr:n.devicePixelRatio},mel:this.smel,mm:this.gmm(),tm:this.gtm(),bh:this.bh,stack:(new Error).stack||"",trc:X()}}}]),e}(),K={eu:"https://eu.frcapi.com/api/v2/captcha",global:"https://global.frcapi.com/api/v2/captcha"},q="FrcFrameId",H=0,B=function(){function a(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,a),this.agents=new Map,this.agentState=new Map,this.widgets=new Map,this._attached=n(),this.attached=this._attached.promise,this.signals=S||(S=new U),this.baseURL=_(t.apiEndpoint||function(){var e=document.querySelector('meta[name="frc-api-endpoint"]');if(e)return e.content;var t=document.currentScript;if(t){var n=t.dataset.frcApiEndpoint;if(n)return n}var r=document.querySelector(".frc-captcha[data-api-endpoint]");if(r){var i=r.dataset.apiEndpoint;if(i)return i}}()),(E=E||new M).addOrigin(o(this.baseURL)),E.listen((function(t){return e.onReceiveMessage(t)})),this.bus=E,++H>1&&console.warn("Multiple Friendly Captcha SDKs created, this is not recommended. Please use a single SDK instance."),!1!==t.startAgent&&this.ensureAgentIFrame(),this.setupPeriodicRefresh()}return _createClass(a,[{key:"onReceiveMessage",value:function(e){if("root_set_response"===e.type){var t=this.widgets.get(e.widget_id);if(!t)return void(1===H&&console.warn("Received set response message for widget ".concat(e.widget_id," that doesn't exist")));t.setState(e)}else if(r(e.type,"root_store"))this.handleStoreMessage(e);else if("root_signals_get"===e.type)this.handleSignalsGetMessage(e);else if("widget_reset"===e.type){var n=this.widgets.get(e.from_id);if(!n)return void(1===H&&console.warn("Received reset message for widget ".concat(e.from_id," that doesn't exist")));n.reset({trigger:"widget"})}}},{key:"handleSignalsGetMessage",value:function(e){var t=this.signals.get(e.widget_id);this.bus.send({type:"root_signals_get_reply",from_id:"",to_id:e.from_id,_frc:1,rid:e.rid,value:t})}},{key:"handleStoreMessage",value:function(e){var t=this,n=e.from_id,r=this.agentState.get(n);r?"root_store_get"===e.type?r.store.get(e.key,{p:e.p}).then((function(i){t.bus.send({type:"root_store_get_reply",from_id:"",to_id:n,_frc:1,rid:e.rid,value:i,sa:r.store.hasSA()})})):"root_store_set"===e.type&&r.store.set(e.key,e.value,{p:e.p}).then((function(){t.bus.send({type:"root_store_set_reply",from_id:"",to_id:n,_frc:1,rid:e.rid,sa:r.store.hasSA()})})):console.error("Store not found ".concat(n))}},{key:"getAPIUrls",value:function(e){if(e&&"string"!=typeof e)return{agent:e.agent,widget:e.widget};var t=e||this.baseURL;return{agent:t+"/agent",widget:t+"/widget"}}},{key:"ensureAgentIFrame",value:function(e){for(var t=this,n=this.getAPIUrls(e).agent,r=o(n),a=document.getElementsByClassName(W),c=0;c15)return console.error("[Friendly Captcha] Failed to load agent iframe after 15 retries."),h.remove(),void t.agents.delete(r);console.warn("[Friendly Captcha] Retrying agent iframe load."),h.src+="&retry="+g++,e()}}))}(),f}},{key:"setupPeriodicRefresh",value:function(){var e=this,t=1;setInterval((function(){var n="&expire="+t++;e.agents.forEach((function(e){e.src+=n})),e.widgets.forEach((function(e){e.getElement().querySelector("iframe").src+=n}))}),1296e5)}},{key:"attach",value:function(t){void 0===t&&(t=e()),Array.isArray(t)||t instanceof NodeList||(t=[t]);for(var n=[],r=0;r4)return console.error("[Friendly Captcha] Failed to load widget iframe after 4 retries."),v.setState({state:"error",response:".ERROR",error:{code:"network_error",detail:"Widget load timeout, stopped retrying"}}),E.borderColor="#f00",E.fontSize="12px",void(S.textContent="Anti-Robot check failed to connect to page or ".concat(o(k.src),"\nCheck your connection and try again."));E.backgroundColor="#fee",E.color="#222",S.textContent="Anti-Robot check took too long to connect.\n\nRetrying... (".concat(C,")"),console.warn("[Friendly Captcha] Retrying widget ".concat(u," iframe load.")),v.setState({state:"error",response:".ERROR",error:{code:"network_error",detail:"Widget load timeout, will retry."}}),k.src+="&retry="+C++,t()}else"registered"===n&&(e.element.removeChild(S),k.style.display="")}))}(),p.resolve(),v}},{key:"getAllWidgets",value:function(){var e=[];return this.widgets.forEach((function(t){e.push(t)})),e}},{key:"getWidgetById",value:function(e){return this.widgets.get(e)}},{key:"clear",value:function(){this.widgets.forEach((function(e){e.destroy()})),this.agents.forEach((function(e){e.remove()})),this.agents.clear()}}]),a}();window.frcaptcha=new B,C=function(){var t=e();window.frcaptcha.attach(t)},"loading"!==document.readyState?C():document.addEventListener("DOMContentLoaded",C)}(); +/*! + * Copyright (c) Friendly Captcha GmbH 2023. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ \ No newline at end of file diff --git a/Resources/Public/JavaScript/lib/widget-0.9.12.min.js b/Resources/Public/JavaScript/lib/widget-0.9.12.min.js deleted file mode 100644 index 694176e..0000000 --- a/Resources/Public/JavaScript/lib/widget-0.9.12.min.js +++ /dev/null @@ -1 +0,0 @@ -!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;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r6&&void 0!==arguments[6]&&arguments[6],A=arguments.length>7?arguments[7]:void 0,s=arguments.length>8?arguments[8]:void 0;return'
\n\n
\n ").concat(n,"\n ").concat(o?'"):"","\n ").concat(a?'0%':"",'\n
\n
FriendlyCaptcha ⇗\n')}function a(t,e,r){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return o(t,i,!0,"".concat(e.text_error,"
").concat(r),a?".HEADLESS_ERROR":".ERROR",n?e.button_retry:void 0)}function A(){if(!document.querySelector("#frc-style")){var t=document.createElement("style");t.id="frc-style",t.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}.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}}",document.head.appendChild(t)}}for(var s,c,u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="=".charCodeAt(0),h=new Uint8Array(256),f=0;f>>2),A+=u.charAt((3&i)<<4|o>>>4),A+=u.charAt((15&o)<<2|a>>>6),r+=A+=u.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 d(t,e,r){return new Promise((function(i,o){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,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(e.push(o.value),1!==e.length);r=!0);}catch(A){n=!0,i=A}finally{try{r||null==a.return||a.return()}finally{if(n)throw i}}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').concat(a[t],""))).rawError=e,n}catch(i){return o(i)}};try{var A;return Promise.resolve(p(a[t]+"?sitekey="+e,{headers:[["x-frc-client","js-0.9.12"]],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 i(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,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 p(t,e,r){return new Promise((function(n){var i=1e3;return n(fetch(t,e).catch((function(n){return new Promise((function(o,a){return 0===r?a(n):Promise.resolve(new Promise((function(t){return setTimeout(t,i)}))).then((function(){try{return i*=4,o(p(t,e,r-1))}catch(n){return a(n)}}),a)}))})))}))}"undefined"!=typeof navigator&&(s=navigator,c=s.userAgent.toLowerCase());var _,x={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"},m={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:"Cliquez ici pour vérifier",text_fetching:"Chargement du défi",text_solving:"Vérification que vous êtes un humain...",text_completed:"Je suis un humain",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:x,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"},nb:x};"undefined"!=typeof window&&(_=window.URL||window.webkitURL);var v=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>>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;C2&&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>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/QaABQQAQASIAQQxBAxABQYABQQAQBzYCACAAQQxBBBABQQhBAxAHNgIEIABCADcDCCAAQQA2AhAgAEIANwMYIABCADcDICAAQgA3AyggAEIANwMwIABCADcDOCAAQgA3A0AgAEIANwNIIABCADcDUCAAQgA3A1ggAEIANwNgIABCADcDaCAAQgA3A3AgAEIANwN4IABCADcDgAEgAEIANwOIASAAQgA3A5ABQYABQQUQASIBQYABEAYgACABNgKYASAAQSA2ApwBIAAL2AkCA38SfiAAKAIEIQIgACgCmAEhAwNAIARBgAFIBEAgAyAEaiABIARqKQMANwMAIARBCGohBAwBCwsgAigCBCkDACEMIAIoAgQpAwghDSACKAIEKQMQIQ4gAigCBCkDGCEPIAIoAgQpAyAhBSACKAIEKQMoIQsgAigCBCkDMCEGIAIoAgQpAzghB0KIkvOd/8z5hOoAIQhCu86qptjQ67O7fyEJQqvw0/Sv7ry3PCEQQvHt9Pilp/2npX8hCiAAKQMIQtGFmu/6z5SH0QCFIRFCn9j52cKR2oKbfyESQpSF+aXAyom+YCETQvnC+JuRo7Pw2wAhFEEAIQQDQCAEQcABSARAIAUgCCARIAwgBSADIARBgAhqIgEtAABBA3RqKQMAfHwiBYVCIIoiDHwiCIVCGIoiESAIIAwgBSARIAMgAS0AAUEDdGopAwB8fCIMhUIQiiIIfCIVhUI/iiEFIAsgCSASIA0gCyADIAEtAAJBA3RqKQMAfHwiDYVCIIoiCXwiEYVCGIohCyAGIBAgEyAOIAYgAyABLQAEQQN0aikDAHx8IgaFQiCKIg58IhCFQhiKIhIgECAOIAYgEiADIAEtAAVBA3RqKQMAfHwiDoVCEIoiE3wiEIVCP4ohBiAHIAogFCAPIAcgAyABLQAGQQN0aikDAHx8IgeFQiCKIg98IgqFQhiKIhIgCiAPIAcgEiADIAEtAAdBA3RqKQMAfHwiD4VCEIoiCnwiEoVCP4ohByAQIAogDCARIAkgDSALIAMgAS0AA0EDdGopAwB8fCINhUIQiiIJfCIWIAuFQj+KIgwgAyABLQAIQQN0aikDAHx8IhCFQiCKIgp8IgsgECALIAyFQhiKIhEgAyABLQAJQQN0aikDAHx8IgwgCoVCEIoiFHwiECARhUI/iiELIAYgEiAIIA0gBiADIAEtAApBA3RqKQMAfHwiDYVCIIoiCHwiCoVCGIoiBiANIAYgAyABLQALQQN0aikDAHx8Ig0gCIVCEIoiESAKfCIKhUI/iiEGIAcgFSAJIA4gByADIAEtAAxBA3RqKQMAfHwiDoVCIIoiCHwiCYVCGIoiByAOIAcgAyABLQANQQN0aikDAHx8Ig4gCIVCEIoiEiAJfCIIhUI/iiEHIAUgFiATIA8gBSADIAEtAA5BA3RqKQMAfHwiD4VCIIoiCXwiFYVCGIoiBSAPIAUgAyABLQAPQQN0aikDAHx8Ig8gCYVCEIoiEyAVfCIJhUI/iiEFIARBEGohBAwBCwsgAigCBCACKAIEKQMAIAggDIWFNwMAIAIoAgQgAigCBCkDCCAJIA2FhTcDCCACKAIEIAIoAgQpAxAgDiAQhYU3AxAgAigCBCACKAIEKQMYIAogD4WFNwMYIAIoAgQgAigCBCkDICAFIBGFhTcDICACKAIEIAIoAgQpAyggCyAShYU3AyggAigCBCACKAIEKQMwIAYgE4WFNwMwIAIoAgQgAigCBCkDOCAHIBSFhTcDOCAAIAw3AxggACANNwMgIAAgDjcDKCAAIA83AzAgACAFNwM4IAAgCzcDQCAAIAY3A0ggACAHNwNQIAAgCDcDWCAAIAk3A2AgACAQNwNoIAAgCjcDcCAAIBE3A3ggACASNwOAASAAIBM3A4gBIAAgFDcDkAEL4QIBBH8gACgCCEGAAUcEQEHQCUGACkEeQQUQAAALIAAoAgAhBBAIIgMoAgQhBSADQoABNwMIIAQoAnwiACACaiEGA0AgACAGSQRAIAQgADYCfCADKAIEIgIoAgQgAygCnAGtQoiS95X/zPmE6gCFNwMAIAIoAgRCu86qptjQ67O7fzcDCCACKAIEQqvw0/Sv7ry3PDcDECACKAIEQvHt9Pilp/2npX83AxggAigCBELRhZrv+s+Uh9EANwMgIAIoAgRCn9j52cKR2oKbfzcDKCACKAIEQuv6htq/tfbBHzcDMCACKAIEQvnC+JuRo7Pw2wA3AzggAyAEEAkgBSgCBCkDAKcgAUkEQEEAIAUoAgAiAUEQaygCDCICSwRAQfALQbAMQc0NQQUQAAALQQxBAxABIgAgATYCACAAIAI2AgggACABNgIEIAAPCyAAQQFqIQAMAQsLQQxBAxABQQBBABAHCwwAQaANJABBoA0kAQsL+gQJAEGBCAu/AQECAwQFBgcICQoLDA0ODw4KBAgJDw0GAQwAAgsHBQMLCAwABQIPDQoOAwYHAQkEBwkDAQ0MCw4CBgUKBAAPCAkABQcCBAoPDgELDAYIAw0CDAYKAAsIAwQNBwUPDgEJDAUBDw4NBAoABwYDCQIICw0LBw4MAQMJBQAPBAgGAgoGDw4JCwMACAwCDQcBBAoFCgIIBAcGAQUPCwkOAwwNAAABAgMEBQYHCAkKCwwNDg8OCgQICQ8NBgEMAAILBwUDAEHACQspGgAAAAEAAAABAAAAGgAAAEkAbgB2AGEAbABpAGQAIABpAG4AcAB1AHQAQfAJCzEiAAAAAQAAAAEAAAAiAAAAcwByAGMALwBzAG8AbAB2AGUAcgBXAGEAcwBtAC4AdABzAEGwCgsrHAAAAAEAAAABAAAAHAAAAEkAbgB2AGEAbABpAGQAIABsAGUAbgBnAHQAaABB4AoLNSYAAAABAAAAAQAAACYAAAB+AGwAaQBiAC8AYQByAHIAYQB5AGIAdQBmAGYAZQByAC4AdABzAEGgCws1JgAAAAEAAAABAAAAJgAAAH4AbABpAGIALwBzAHQAYQB0AGkAYwBhAHIAcgBhAHkALgB0AHMAQeALCzMkAAAAAQAAAAEAAAAkAAAASQBuAGQAZQB4ACAAbwB1AHQAIABvAGYAIAByAGEAbgBnAGUAQaAMCzMkAAAAAQAAAAEAAAAkAAAAfgBsAGkAYgAvAHQAeQBwAGUAZABhAHIAcgBhAHkALgB0AHMAQeAMCy4GAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAYQAAAAIAAAAhAgAAAgAAACQC")),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<>>2]=o(C),c[Q+4>>>2]=C,c[Q+8>>>2]=I<>>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(_.createObjectURL(e)),t.workers[r].onerror=function(e){return t.errorCallback(e)},t.workers[r].onmessage=function(e){var n,i,o,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.puzzleIndex0&&void 0!==arguments[0]&&arguments[0],e={type:"solver",forceJS:t},r=0;r1&&void 0!==arguments[1]?arguments[1]:{};t(this,n),this.workerGroup=new v,this.valid=!1,this.needsReInit=!1,this.hasBeenStarted=!1,this.hasBeenDestroyed=!1,this.opts=Object.assign({forceJSFallback:!1,skipStyleInjection:!1,startMode:"focus",puzzleEndpoint:e.dataset.puzzleEndpoint||y,startedCallback:function(){return 0},readyCallback:function(){return 0},doneCallback:function(){return 0},errorCallback:function(){return 0},sitekey:e.dataset.sitekey||"",language:e.dataset.lang||"en",solutionFieldName:e.dataset.solutionFieldName||"frc-captcha-solution"},r),this.e=e,this.e.friendlyChallengeWidget=this,this.loadLanguage(),e.innerText=this.lang.text_init,this.opts.skipStyleInjection||A(),this.init("auto"===this.opts.startMode||"auto"===this.e.dataset.start)}return r(n,[{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=m[this.opts.language.toLowerCase()];void 0===e&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),e=m.en),this.lang=e}else this.lang=Object.assign(Object.assign({},m.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,i;r=e,n=t.e.querySelector(".frc-progress"),i=(r.i+1)/r.n,n&&(n.value=i,n.innerText=i.toFixed(2)+"%",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=o(t.opts.solutionFieldName,'',!0,(e=t.lang).text_ready,".UNSTARTED",e.button_start,!1),t.makeButtonStart(),t.opts.readyCallback()},this.workerGroup.startedCallback=function(){var r,n;t.e.innerHTML=(r=t.opts.solutionFieldName,n=t.lang,o(r,e,!0,n.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,e;this.hasBeenStarted=!1,!1!==this.e.isConnected&&(this.e.innerHTML=(t=this.opts.solutionFieldName,e=this.lang,o(t,i,!0,e.text_expired,".EXPIRED",e.button_restart)),this.makeButtonStart())}},{key:"start",value:function(){return new Promise(function(t,r){var n;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(!(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),t();if(-1!==c.indexOf("headless")||-1!==s.appVersion.indexOf("Headless")||-1!==c.indexOf("bot")||-1!==c.indexOf("crawl")||!0===s.webdriver||!s.language||void 0!==s.languages&&!s.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 i,A,u=function(){try{return this.workerGroup.start(this.puzzle),t()}catch(e){return r(e)}}.bind(this),f=function(e){try{var n;return console.error("[FRC]",e),this.hasBeenStarted=!1,this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.e.innerHTML=a(this.opts.solutionFieldName,this.lang,e.message),this.makeButtonStart(),this.opts.errorCallback({code:"error_getting_puzzle",description:e.toString(),error:e}),(n=this.e.dataset["callback-error"])&&window[n](this),t()}catch(i){return r(i)}}.bind(this);try{return this.e.innerHTML=(i=this.opts.solutionFieldName,A=this.lang,o(i,e,!0,A.text_fetching,".FETCHING",void 0,!0)),Promise.resolve(d(this.opts.puzzleEndpoint,n,this.lang)).then(function(t){var e,r,n,i,o=this;try{return this.puzzle=(i=function(t){var e=t.length,r=3*e>>>2;t.charCodeAt(e-1)===l&&r--,t.charCodeAt(e-2)===l&&r--;for(var n=new Uint8Array(r),i=0,o=0;i>4,n[o++]=(15&A)<<4|s>>2,n[o++]=(3&s)<<6|63&c}return n}(n=(r=t.split("."))[1]),{signature:r[0],base64:n,buffer:i,n:i[14],threshold:(e=i[15],e>255?e=255:e<0&&(e=0),Math.pow(2,(255.999-e)/8)>>>0),expiry:3e5*i[13]}),this.expiryTimeout&&clearTimeout(this.expiryTimeout),this.expiryTimeout=setTimeout((function(){return o.expire()}),this.puzzle.expiry-3e4),u()}catch(a){return f(a)}}.bind(this),f)}catch(g){f(g)}}.bind(this))}},{key:"handleDone",value:function(t){this.valid=!0;var e="".concat(this.puzzle.signature,".").concat(this.puzzle.base64,".").concat(g(t.solution),".").concat(g(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,"".concat(e.text_completed_sr,''),!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))}}]),n}();function I(){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\n\n
\n ${i}\n ${n?``:""}\n ${a?'0%':""}\n
\nFriendlyCaptcha ⇗\n`}function i(t,i,o,n=!0,a=!1){return r(t,e,!0,`${i.text_error}
${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>>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&&(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"},h={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:"Cliquez ici pour vérifier",text_fetching:"Chargement du défi",text_solving:"Vérification que vous êtes un humain...",text_completed:"Je suis un humain",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"},nb:g};function u(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{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<>>2]=t(i),n[r+4>>>2]=i,n[r+8>>>2]=o<>>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;gs=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>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;ethis.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.puzzleIndex0,readyCallback:()=>0,doneCallback:()=>0,errorCallback:()=>0,sitekey:t.dataset.sitekey||"",language:t.dataset.lang||"en",solutionFieldName:t.dataset.solutionFieldName||"frc-captcha-solution"},e),this.e=t,this.e.friendlyChallengeWidget=this,this.loadLanguage(),t.innerText=this.lang.text_init,this.opts.skipStyleInjection||function(){if(!document.querySelector("#frc-style")){const t=document.createElement("style");t.id="frc-style",t.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}.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}}",document.head.appendChild(t)}}(),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=h[this.opts.language.toLowerCase()];void 0===t&&(console.error('FriendlyCaptcha: language "'+this.opts.language+'" not found.'),t=h.en),this.lang=t}else this.lang=Object.assign(Object.assign({},h.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=i.toFixed(2)+"%",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,'',!0,(t=this.lang).text_ready,".UNSTARTED",t.button_start,!1),this.makeButtonStart(),this.opts.readyCallback()},this.workerGroup.startedCallback=()=>{var e,i;this.e.innerHTML=(e=this.opts.solutionFieldName,i=this.lang,r(e,t,!0,i.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,i;this.hasBeenStarted=!1,!1!==this.e.isConnected&&(this.e.innerHTML=(t=this.opts.solutionFieldName,i=this.lang,r(t,e,!0,i.text_expired,".EXPIRED",i.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=(o=this.opts.solutionFieldName,s=this.lang,r(o,t,!0,s.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>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[t]}`);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,s;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.text_completed_sr}`,!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 f(){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;rgetSiteKey()); self::assertEquals('ABCDEF', $configuration->getSiteSecretKey()); - self::assertEquals('https://puzzle', $configuration->getPuzzleUrl()); + self::assertEquals('', $configuration->getPuzzleEndpoint()); self::assertEquals('https://verify,https://verify2', $configuration->getVerifyUrl()); self::assertEquals('https://verify', $configuration->getFirstVerifyUrl()); self::assertTrue($configuration->isEnabled()); diff --git a/Tests/Unit/Service/ApiTest.php b/Tests/Unit/Service/ApiTest.php index 56919a0..007bbec 100644 --- a/Tests/Unit/Service/ApiTest.php +++ b/Tests/Unit/Service/ApiTest.php @@ -28,7 +28,7 @@ public function verifyUrlIsCalledWithProperData(): void { self::setupRequest(); $GLOBALS['TYPO3_REQUEST'] = $GLOBALS['TYPO3_REQUEST'] - ->withParsedBody(['frc-captcha-solution' => '1234']); + ->withParsedBody(['frc-captcha-response' => '1234']); $historyContainer = []; $client = $this->createClientWithHistory( [new Response(200, [], '{"success": true}')], @@ -52,15 +52,15 @@ public function solutionIsRetrieved(): void self::setupRequest(); $mockedApi = $this->getAccessibleMock(Api::class, null, [], '', false); - self::assertSame('', $mockedApi->_call('getSolutionFromRequest')); + self::assertSame('', $mockedApi->_call('getResponseFromRequest')); $GLOBALS['TYPO3_REQUEST'] = $GLOBALS['TYPO3_REQUEST'] - ->withQueryParams(['frc-captcha-solution' => '12345']); - self::assertSame('12345', $mockedApi->_call('getSolutionFromRequest')); + ->withQueryParams(['frc-captcha-response' => '12345']); + self::assertSame('12345', $mockedApi->_call('getResponseFromRequest')); $GLOBALS['TYPO3_REQUEST'] = $GLOBALS['TYPO3_REQUEST'] - ->withParsedBody(['frc-captcha-solution' => '1234']); - self::assertSame('1234', $mockedApi->_call('getSolutionFromRequest')); + ->withParsedBody(['frc-captcha-response' => '1234']); + self::assertSame('1234', $mockedApi->_call('getResponseFromRequest')); } private function createClientWithHistory(array $responses, array &$historyContainer): Client diff --git a/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php b/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php index c4c35a9..b30c053 100644 --- a/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php @@ -24,11 +24,10 @@ public function viewHelperReturnsProperConfiguration() public function __construct() {} }; self::assertSame([ - 'languageIsoCode' => 'en', 'siteKey' => '1234', 'verifyUrl' => 'https://verify,https://verify2', - 'puzzleUrl' => 'https://puzzle', - 'jsPath' => 'EXT:friendlycaptcha_official/Resources/Public/JavaScript/lib/widget-0.9.12.min.js', + 'puzzleEndpoint' => '', + 'jsPath' => 'EXT:friendlycaptcha_official/Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js', 'enabled' => true, ], ConfigurationViewHelper::renderStatic([], static fn() => '', $renderingContext)); } From 279d7191d5b801094dde9526f7ad5f83e667633e Mon Sep 17 00:00:00 2001 From: Rafal Jania Date: Thu, 17 Oct 2024 15:39:34 +0200 Subject: [PATCH 2/6] [FEATURE] Friendlycaptcha v2 - Powermail --- Configuration/PageTsConfig/powermail.typoscript | 2 +- .../Private/Powermail/Partials/Form/Field/Friendlycaptcha.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Configuration/PageTsConfig/powermail.typoscript b/Configuration/PageTsConfig/powermail.typoscript index eb7ea98..b9f3bcd 100644 --- a/Configuration/PageTsConfig/powermail.typoscript +++ b/Configuration/PageTsConfig/powermail.typoscript @@ -1,4 +1,4 @@ # Add FriendlyCaptcha field to Powermail tx_powermail.flexForm.type.addFieldOptions { - friendlycaptcha = FriendlyCaptcha + friendlycaptcha = FriendlyCaptcha V2 } diff --git a/Resources/Private/Powermail/Partials/Form/Field/Friendlycaptcha.html b/Resources/Private/Powermail/Partials/Form/Field/Friendlycaptcha.html index 242b9fd..b775d6e 100644 --- a/Resources/Private/Powermail/Partials/Form/Field/Friendlycaptcha.html +++ b/Resources/Private/Powermail/Partials/Form/Field/Friendlycaptcha.html @@ -6,7 +6,7 @@ -
+

{f:translate(key:'LLL:EXT:friendlycaptcha_official/Resources/Private/Language/locallang.xlf:configuration_missing')}

From de159b0f9e84fce62ac1702d027ffaccf74571da Mon Sep 17 00:00:00 2001 From: Rafal Jania Date: Thu, 17 Oct 2024 15:41:06 +0200 Subject: [PATCH 3/6] [TASK] Improve ConfigurationViewHelper - cleanup, change renderStatic() -> render() --- Classes/ViewHelpers/ConfigurationViewHelper.php | 16 +--------------- .../ViewHelpers/ConfigurationViewHelperTest.php | 9 +++------ 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/Classes/ViewHelpers/ConfigurationViewHelper.php b/Classes/ViewHelpers/ConfigurationViewHelper.php index 75dd97b..ea1356c 100644 --- a/Classes/ViewHelpers/ConfigurationViewHelper.php +++ b/Classes/ViewHelpers/ConfigurationViewHelper.php @@ -5,8 +5,6 @@ namespace StudioMitte\FriendlyCaptcha\ViewHelpers; use StudioMitte\FriendlyCaptcha\Configuration; -use TYPO3\CMS\Core\Information\Typo3Version; -use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper; use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic; @@ -14,7 +12,7 @@ class ConfigurationViewHelper extends AbstractViewHelper { use CompileWithRenderStatic; - public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) + public static function render() { $configuration = new Configuration(); return [ @@ -25,16 +23,4 @@ public static function renderStatic(array $arguments, \Closure $renderChildrenCl 'enabled' => $configuration->isEnabled(), ]; } - - protected static function getLanguageIsoCode(): string - { - $language = $GLOBALS['TYPO3_REQUEST']->getAttribute('language'); - if (!$language) { - return ''; - } - if ((new Typo3Version())->getMajorVersion() >= 12) { - return $language->getLocale()->getLanguageCode(); - } - return $language->getTwoLetterIsoCode(); - } } diff --git a/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php b/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php index b30c053..9cc5110 100644 --- a/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php @@ -6,7 +6,6 @@ use StudioMitte\FriendlyCaptcha\Tests\RequestTrait; use StudioMitte\FriendlyCaptcha\ViewHelpers\ConfigurationViewHelper; -use TYPO3\CMS\Fluid\Core\Rendering\RenderingContext; use TYPO3\TestingFramework\Core\BaseTestCase; class ConfigurationViewHelperTest extends BaseTestCase @@ -19,16 +18,14 @@ class ConfigurationViewHelperTest extends BaseTestCase public function viewHelperReturnsProperConfiguration() { self::setupRequest(); - - $renderingContext = new class () extends RenderingContext { - public function __construct() {} - }; + $configurationViewHelper = new ConfigurationViewHelper(); + self::assertSame([ 'siteKey' => '1234', 'verifyUrl' => 'https://verify,https://verify2', 'puzzleEndpoint' => '', 'jsPath' => 'EXT:friendlycaptcha_official/Resources/Public/JavaScript/lib/sdk@0.1.8-site.compat.min.js', 'enabled' => true, - ], ConfigurationViewHelper::renderStatic([], static fn() => '', $renderingContext)); + ], $configurationViewHelper->render()); } } From c1c14483dbcc723105fe859cae0b153d66599c85 Mon Sep 17 00:00:00 2001 From: Rafal Jania Date: Thu, 31 Oct 2024 09:53:29 +0100 Subject: [PATCH 4/6] [TASK] Update docs - FC v2 --- Documentation/Configuration/General.rst | 3 +++ Documentation/Images/configuration_site.png | Bin 70609 -> 79006 bytes Documentation/Index.rst | 1 + Documentation/Introduction/Index.rst | 2 +- Documentation/V2_Migration/Index.rst | 16 ++++++++++++++++ 5 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 Documentation/V2_Migration/Index.rst diff --git a/Documentation/Configuration/General.rst b/Documentation/Configuration/General.rst index 660a42e..20a502d 100644 --- a/Documentation/Configuration/General.rst +++ b/Documentation/Configuration/General.rst @@ -17,6 +17,9 @@ After creating the account, you need to setup a so called *Application* Creation of an application +.. note:: + This version on the Plugin supports only FriendlyCaptcha V2. The V2 version has to be enabled in your Application + and afterwards you need to create new a new *API Key*. Please copy the generated key as you need it later! .. figure:: /Images/setup/apikey.png diff --git a/Documentation/Images/configuration_site.png b/Documentation/Images/configuration_site.png index eac8f2ba83f1854b70dfba906b0be821eccae3fa..1130f8ac8d01b0d499140ad1edd391940bc9cf0c 100644 GIT binary patch literal 79006 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 z z^@_pHXR@TUbZ79@^nrPXx*Y9e`s=WNZPsY%<9X>Y3mbAWcbUbUy=j#HJ%m9nTcL zZ|iFwuY}9iFarU8ze<*V<}4sp+k@8L(<8F{1V?qU8tNtEpK%!+lEWfj^HulS_Z=!$ zWLg=-mVJDLH22K7l+clXZZmykqTq$Kxq7Wr(07;ZsT%IhlAL8vHc6$J^D#vA+FdQQ z^{ooF9wiFr`5&g+Th)?gmoF`+4u=$$4aBKj%n#x^>nkg=Ia5tLVgH%|fmQhQADE>d zHsvR300T}9Fjb_(&w;FGpy6_h2A{`1uiWfsiA}!jk)ny4g@r}BlB0vk=S1hjF5v7^ zt2$j_j%hIr_TM^?#!%+vV@jaMx6`g3zQbChMv{^ra!~~(>gN@Pxcbh_nfknjcYr4!roqfwq`M3TD>dokA7y>g|Fa%z)fi z*eJpWoP4XXad1SoZrAzmj2}EiE&`pje`?=dDyuit9gCj;H2N2?7_8uPxvaXR2b*x_ zRllAp0PaFOr|IVbfMyDmG**s3wz_EwKNxf(rSsl_ZUXt~>1~P8${V1vTMWRZP69W; z>MYO%Sa9L2>($O~4PE8TFod(@aNGQds0?6T6FdCZ`>phabzG~e(KL@~NOdAAt=c|P z>eOi1RoT_Abso|OCzyU3*4cK_+^TyM>gkoJoC)K3zB(MvSgaQc^o^*_t^tvbM{Ctb z)IHNv#K+`QWI_*7pKXKz^u%l(JB(uq*b-OnHQvpQCVkAjmX2e!&cf%g_|;PMIWSOj zIx?GYqYl>3yA=Su>#$M6p1AZTrNWYvEe2H1(sR_2&zp-|QF$go*8w!K;tQJ6ni40$>nn8TrgHng8d1s%Fw29|-usr@TyuU(k$xNNgHR>pg_19QGh4xilPqJpn z`&mmqKKYTBGqXKG9SO5rwKntzm_8Z<&BFiaqAW5_ym2 z?Q5btGwF(5^cR%1s`@>h{hyy*B`(4Fupbl-RGF$1HF%khjPhuej*B9f8G3P)x9m|& z_NF|3&4Q!i)t@hwMq6oKno{3tb}{)>sU)ov&vNPqw^mi-_pkE|*OhFDm!(T*s+kRC zJdPZuWpa<=t?#BQj<@9nd5=6Q%}>LL)H{w&i|gEf;W#1j@wx;5KQcc9|78ToZIuP}Ae!lr7xcFhUJlAMk zXdB1Bqq>!^@^$jW;+Ao^D^i(Aiw z3Oj?%Tlv|N3d&zwPfYpeT$Ja|x40p>9ptU=ag65w5$}u#$5r3|1nb0R zm<<2ThxO*C+^k%WMUbR9IT#FP^zLrQorCE#9MxWtGNp*?-zv@K&%S^T)>)#HBY{p0 zNbmnNBJ9*&Z(02&X}sgtJKLn2UYv$AFCNXhqCo`mmvjSWGlOfenCd^5f<>o2D;sRX zr?D|5eIj_!*JbSkoqG`YkUZb8lv`ReiYwvcS&si;?Ml2I;OOz?Jl13M= zP&0R(t~gCVxQlh@?3x8{O(kC6-adJz0*?M=uJwax+2vf@rPS-IQfs-y>9$@tH#N{v#JymgmlHW zFHe|Sq}x{w2Jy?V`Xi#Fqpco;CC;^W(HCFC6(PX9;wOboeoGc8d+|FsgW_Ne#agjc z(vw)&fR@1)%(I`R?>lP9!cHN8^B}uV<<0fcKd0Lie9*QxL30@F`7 zgWj#ij?cU^G!$u@1>PS^yz;kr+NXx`k-kTr>KWYKrJkNJJp%)kK%iA)28gUQ44+!o zSv@9%<&}zhC_=L)8{F4wEp^R<=f~6ttMb_hib4(GNQ8C8FvxV(xzmott0)R-9t`-_ zp{glhRIm$j9jfIeHI7Os?^PajOxP>vNjU+^l^vU&Ya4AbR-&$7TN;rV3Yn z+{107%<5zIj=d#bfy2{mZ45ZB{P-zPfvVnXEaE%qBJY{2wK!3jRp=q zd-JUZp`wB}ea1iA64kGNK8dchBi2(REK6j=m#4Om;Nst>=z29+q>iu7RsA-?fTPbg zd|%arL)1J3yHD#^#p+GKSi#2&aw@j3s?vCBi)WacpUAb|VK6wla8E7City~c^%F3P zcpvaZKX&^;L*N71xG7?E<--oW^A-XBkESl?P5zuwgZoMR0lN9$F{X<)=ZxLj2`N&k z)DNbS)tR01YO|&ii?cAlOK9VLba)qZWoJ!D?0~i`d+dU1>8!6I@xOhoq8M>L$r_|= z2kJ1>K>Rt=;_9gK&Q*`!1`REW>H9_ybd9I|! zgE8O?A1BleNbJ}b*PsSRe@!!ICoz$B0fgPP!CD5-21-iCeOQd=84`jkMJScH5Y5Bw z_6R>R3)yw$l8oejGr*8pywuQ3;7_tW-UJ>-qLdjcoVlu6LaS77CD&TgVSi-uk^`E6zhKkBtztj9WOl;fTsgM#BqMhua2 zoJC_OCZ~kDx`&P;p|(h!y<>4oT}dRS;q*!)KQ4Tc#rR@EO7hc;O~f&Iu~@0?L^7dz zgLjdJhd1(0ua`FpPt+aTMsd~`5!#iPlytpggT|S{CYHtWKG)4re;QElN*7O!0`?XSc{w%ZMC)trnMDlAJ9RgdKr zSnR5iM82g((K1OHWbmoz@=CMfQnlEIsT><|&8W7O#^W0BZCSy4sFjo_&1_1^ed9_@9DQ zN=fRESx+jWHLH}aSkB6pE~tCDr%$(W9db2Qr3Ma&ti<}*VGL_W8D zZaeXvctqujsm6yb7d1-K@q4>nzM7I(8$Dm<+MmtyxASo`bo{+nev9H!=A^e|mkR6~ z?ZJz@b_9`Yq{Xe#T}$Y7xRWIYjZkmVB3jn;!Kb(#ORPxscjZYO{;$*BI*nSB;8AaDetV)eQ_i{=JgMqJGg zp_rD3DPkYHK9L=qK==VCs)08rIAz^a=%UXSg?d+@Ye8PC*%-z^qn6_>(MkKsVzHKg zGCeoR8tItr=V$}Y2u*sf3)Iq{CLlW6qYMLrsxxKkk?Z)>nS6!{a1{e?J_D9IF+&{i=hE5DyNiC+lJ1LE_E1 zpUj3ZBBFiSzFT|!ovk<`%@M^=IvQQRZY)-vl)!W8684VWrExUl{Pu|WJNyHUs&J2J z;wd%4!FeCa8`s@eq2i7ol2kg1rxekSUkjN}@oSam5li*OkB6Sme?reih<^FhyCCR8 zR(XRk`%$xl=4IK!Yxub~ErTs`(AhLdd3gB=7R4f&Z1{M!(Jz6zX?l;Em)dySZ$K1pLbaz+u5Ub2j^(DM~PLVccbSgzn^#RhLhHH~{MB$WI zE`TVmFpXt{X@2;5!$FTVbpp1CTDy>jLCR3e%fHFrLh`t{?!nvx3>W%K6{G>SfU&>_ zPBX4)+p-^$mVA0G7SAOtZG3zK@JN{5w&uNEAsZhN$ zXM${SHA+L`56S5G@eWR;uP2}9Rid!{BeebIFe^0?e+;|Ce4V#L2>v!FkXck<6pl-u zYfKuQXD5Sr&^>PbE*vd0v(((D|aFqWM;n@6+hDveJS^z$++Xr$fCe8rM7H_%F16=m7} zANJllD$DI%|5ZdKRHREmC8Znb29cER?(PmjQo2jJrMq50>F(}Ey1UMNUCXtX-*NU| zXPhzi@0{&m42hTLeVB7TGp_r(KlkqmBO?q5T|vdU2!9_d{?cnEEMOS5H1B-uKcoC! zasE1VT=D|7OkFVE?cd^NN-$LR4fDvr{e9J6?mlXu1fJ+-Y>@n0Al!rly5mdi_qD)z z_xn(O&*OhD3l4Obyuez?#tL>vVy~5X{OdI*U+&$FjpZ$7l|9cHhqVYA*;>p#`eS&w zg5gnN-eW-f$M9eT!=oP0jrHGZwa1hY7IR;$4zV(~gao2dYYU0@5ET~ocLk{F=%^@NAZ8ZW?o5pWkC(PcG=-%>45hLju)=)N7;9*G_Gg@C#1)27 zs-@>E%P^>cuFc_mYC|9iOk+T_>YJ82^Yy~}_cM48W)(RnY*7b+C<631>(D7UD3ViA z1-~f!%K-hm=|?1>7i9pxH$o+!C)iqXaa(Kwk;D>D|Kq*6V7AD;aK5JiW=A19w1ytQ zx=gtOy0Qr>iMY)MV02UguyD04Er2*xyp_%x`6M?C`(IBq7z3|f!Ww0e2%3Y9)K-Bh zs5o{C^hMTZhdof|-p&@KE($d`R5lzC!+^6&oobu-+Ta5BJc zx3;!6wbU9=0FXn`asGNA<_Dxue_eBg8HR|6Xm?)aW;y^G!_4W1{if1#ygNG$QnPgh z1O#m32weZ37e?S{edF_=vCrr4AKqW8li~@Z`?HP8kwF_h zWkmn;)wv+(Cj3yK>(?6bSO0-ehXg?zF^$Oljsg7DfEgg}M~sg4_Q9WRgbUheN>Up6 z&o+XF9%Ur|BTV_q6ts~cpP0a(ZA1n_bpIc|;m|~r*8t4^{uJdu0$9)AV|!!>h~C}a zNXxN2{Ig@8gE-bAD75weuOQw3h$v`jUd8Fte2^oxdJ0^V)l$&O7E}kdxdLI7VqpAj z$`VV^Q#P-!Fm1S4!&N|y`S;oe%m?1wQO;VRB$)|-4HQ2>VlNg=hT@cB=Dx|2gNdEW znriSf)XERSf(x9`IXOlwmgWa^dIVv{g8eNJ3IZc#2m9hP$@3i!tdymz>Ga0JW%FhomFt++ zE-aQnIAHSFd9EC6?VCDr%Znd?&t0V5t zsU4$%o=i{Ecs%mm+)@$-;x2Vi!5#m&VreOzUT^$%}vfaE~sqIgtn?J^-~C zs-OmQsC7U7ygSKh^KI2jR+}7MefdIcP^Y*UIQwg?oKCklDuGY$>onB(ZU>y?3IJ3w zV@cARn7fwhppP?KC3SuWt0z zxw0(D{%iT}rG^v>5d91GucUrd9;B};+67$Ou4``>#5a7$a6ONx;B-k*JZhu0B8)@p zk!??M2!X~+j3J8h2~OSas`rDKb~QN6UdHQa;wGs^tX~wlX$Lu#SF|bHn*OI%j@0g}!OmO`(W{lF7%c72{+Tp$KETNC`m=!85W$Z7Q7`lC zEvWop3h-ZMcc9jTm9qDzSx~^Jaw98&wO;^KyVwSLJp9+EnGz1GvSIS;K*uY|D{7e9 z=_W{HzkDwVrTvRn=X?iS&MBzUw~jt&t100Jq5r_P8Y!(Zi+i~al)Wl|x)|}tQXd2V zuh^4Um^u#F={^*d?CSEj{`$$#^;mptYi^h_?^RJ#X~OPEyVIOw>1w%|lIENa{mSDs zo}G@Jfj5&P(lK1sTzXswVU#avIc;_2w1qkLI9sP))LBnrz`A}t>l%-4v_)!XbI;q= z?Ux_?DCfo}uU9#`7Hp z>AE|*%Kr{psnlUM+FrE^8m#wqT@ z9h?kRWjc1Oh!lzn;hjXQVUaA>6_5CnpO430FT6#Hitx% z;BoiH%3bCc#^j!tHm>W9FLa(hppNDrYO;5?ST5e5{TMy`E%)TIad_rj4>RNYXH28V zb^q)?q$;8CKyyDB%~b5HY(ZR1U~CQw?KlNQz{wPz&tGYVP7oM}ykY%jp{a)Ja7Y5FzFlr)2W3A!8e4>}m+;oJQBH?Q?5 z&*sN)PK?%Dx~7(FHBIU99HyfPcuGu;Wtih+J&8w9n5K+S8W(!QDxG#w*6)W`rGI>7 z_5~BY)|mVB8y@0>dDqNRRY^KJ&6V(8HjbgQb;eI$<)`;RjeC6 zEjAm+GbIveW!hRiQ>~qP^&?`sutt~B*kpLmX;y3#7ZiCefO$q&AtrhVGe`iUBGgoY zg&OS*W4n>BE15{CO;~t-O6xVNB%t~+nX{P2D`s=y8zfS*wM5^rx2`qPHYF>W=M{gO zVG=VPBuSrTIlyGA;9GQqx;9PQMoSSBKSJ}yybZ0;3g3pV7d~ENT!SiZr z#4YM0#Ny@hBh~5r@%EWuN*K#=7O7wawdZh1h%I`b#Y-Lr9vTEib;Xd5I$`Vtl(AuY z1#dV&-6A^!JmP*esMr7HA!H1NF3Kb8po%BS5OBNJGogI21N@9S8+@g#&mdS&5-!h1 zuh&Cr4FQ5Wf7cP>cDIh7rNxwC_M{&&!8S1c+iCGBLPMri!9;?m9XN@g__2U^_b_Td zp#lOTqUr8TjoH&akoqutURfmr(eE1zuNO5URaEQGq@2wSke{uGSI5C>Qb?Htdq89?(TU{YLhp) z;KsBbC-Gpf4~sm$qGP2XtV$qay)`+gWX;*k5Fr3jS$x{_dj!K+g^00dQ`XjWa*1!A zb5{`cqcjbl? z>0Fwoh&anMmz>3RObg#MYK_T8EqNO~OOYp>?st~`?&oLB5Rr!4-g2{!gqAFbhNkgz zKh%1!*CrpjO~)zp@RhggqYR%0wG4C}lzpgY#$L>enBPNl&{LQWXJ;<_eb9JS54Cf2 zc6SFjyoI_<#`(O1Ov^uR@I&}~Z6nwm75@r9ZK>Z)X}kgX4LRg|Zqyy#I6`P?1hI+hS0YU5d^W`C-eG5J)c!?o7B zXJfE8k@{rO!q0^vxmy%Zc*Db&3rYT+Vw#D+qHi(fAJSIsu#)t^R(*518!Q zjiYZ~JID%sHffjVB{Z4zn3$A2N;6ejhzm#Gh6wWt6h2jBLf(lx#3W;>z=GtBs@T^By8YvmpscP*DEg3^&EHspvZ<9r}_)XO@ym&TjhYl}0;&)2@ zq295z`twXgfrLA!>j9cobq;fXratA!pE{~1U3GNpxe{;2jj}berDz9VDIgJ~4i-C4 zzxPY-&f)UdN1XohJtFNO{H>0}l|Y%u6-poGoO$_2-%qmS;}QiWgRIeq6lWofA91o< zlcRlp6vQ-|l+A4T@Ju9$F4`K&E9}?)d%7_setz}Q7M+3DSY@R(l$n36o?xmUVT|`@ zf%c)n&!|qP?pWpm58*aCdJ)^W`AcIkjvdZQ@4eh2f>8=U?Jt)Tq<$)?yb^TK$dg{o zP_XQ;&zgPh#Pb8>65%83bx|XUod@a8O`{g&D{Oe+zmc;tR2s=pKpe@Q+2zwvUm@kd**H67N4N0j=W z!oFa!APL;y5J_}Qy*NGOvDmBgT#&ownQ;>Rm1kx$vanan!T$9n~eu3pXO<>s*8 zRQ4XOb{Du_X@tk8Rm#Y$n`h6hmom)0Rfu#uG(*=dI(BS)CRj8i))L7z2)Q*?x>UtI z;n`wJ6I<2Q(XV}Ydixa^3$XJg{JoqWk`SvML@IxpTdqu{dP4TmBb9EIQSzsZ!tr^n zmgxy!tfCkUo;zF(uwv2jjhEsu7UySedCBCLmVa^++s|UGM^MH~mx-Sf&%(Ud^JHx0 z=jsz&F1H56an#}W@04?R*Gs~)iO(yyT+)`Y$h7KJ{Tm+sNH~-WOfb9_?{RW?|9j3& zL4eQbMU61PCqx5$?P!BjucHeK8b?JGbQ&`DI0!s*mS^Bj{{($3I3VV?`TGYTdK=wK*$=3Vl*aE#y3JMUo zqCT||{c#QM6QI4x;5!@n{Gmkt?}h(qQ8J!abtvP6ww)k}7<%ZHlaYxWvDNwAUauTs zz>_)#XpLK-68Ise^+RxO_E6%5@*`kHK^XxGF0OexIyxhGjQGD(0&-ko#|l-A0bzm3 z>DYi@bO)DH>B)UKLLTVvu+xAAFgh_Y$WK^HqXXfu+jt-SiCJDkW6a@*FK)*^* z$Q~2HrPcBZ!sl|UKmLM(L9J$D-gr~FaR#%bXlYpjjene8ZWT>~A_7agB8IhUH#J(V zUm~MxUV9U<>aC6<7fC>A=i0CO{3n3dXsj+ftth~DUSM6g{QyAKw?TYma^aiX{rN}+u^4b^puActSX5|}8z_Hh2zL=0a^Y76v$j5002_6qi2 zDC_4egYIB@YJPcMT)s^)9Ml7fIRyzxwx}$ym>0VOj3@MOd;gBq{LLvyW=|k4?2Mms znAD9?gv=v?Kzh&)Na{ZgaldYc5(b80Szi(#Fll_hH%wSftdOQHr>4AoBCNvbcIldN zXfg+Jv;*S66xbx0fM2V7Y1Q%i6eJTD+6zOj%<2Q9L?tgS`!?osIv5Na0Y0J|y%Rku z)%gfOIjp^#b^_`9irsIIk_)R9=C8hN3XeL@l9PP3;LWJcE3EB;5(=af+<>D*Gr%OsTE+ar_yfot90h<-8+N(c=>U3h2jrfA$rxQp zgqoPa5hOADRU#L6?WA79BxovQ;AqaZW6#AYb8x-fbH6k8eQBrQeG^$F`eyCZgJ;E{ z=IS)SQ|N+{@##>LC=QbeRt@kfVY0+|CT5Dn)cW3oI*zU?_R!E2&5)rEqNC#N;^t?o zYjvkn#swg;fl4BO&$R|Kdw&JkMKqoF>Z`~t|5i;WKw%K5=|o(U67AvNk2!Z52=9;x zz6`}&0;t(afCZTX2!)*{7AQ9ZiQ_ob5XA=MGuQS5dpg(puPU%?4QuhnDt9L_I~ket{=yHtR&;rO{sB;XWBZqNzRO}{SX)d5FiukFHt^lfQ=u>r zXt-~P==m*hz1Nk>-U8%iwwk8ZZktflPh9Ow z27HjP0dz9N0uisY=cF05Cp)Wyk46~;EP{xuMj7E{pI7Lo6 zC~UwDSxT<{1f7*&_(Y31%jgKS%=*yDI_OS&{1e4>*)hO@nY{pBODK`#`I(ReW9s;d zx^1q+H)YfC4K+zsGU*KvA+z4NBzRU!a&22RV-;Zdq?Ld5JsQ8Wds;h1l&h3GIs$1) z-T-IGOAaR+z&HK5X?DB#$em+aQbgaqx%$0>X>bt09V zb095(9S0Wwb441>RIb=LTA4Gr9;P|d}nI!V7CE|#eSagAkaRMEJ`CXHbQdH)dk49 z)dw<@bdDN2P(q6K3DnQFS0{4445f}>9lY`$p7iC8{dDX8V(V`D!!XNVal|FmoWVD1 zVANMeh_iMwymbX;s9ApAh=%&pscsO))dW1_k}H$?ld)a@pWB(*%l$ZrcDRRvI z;RZuGf^*Nrn$pA~XyDN}Jlp|dMzs-53ssFIrL#DxD=$ci;JAYzq*_ZRi@1|aJ=Ml^ zs=TD}X2*O`Hs5{*An@!}v&9o%0ZN%9k zNQtrbI6^<#Ld(dF&L?0rjFam^p=- zP>4DR5mw_yI4-_FK&swLZ4{p`f>soTXUY`LnFE+-yE(`8Nl?whu$Dx>Cw8$kuSm%q zW6QZHRNR%C@aJ)&bRv$k_n{#>kxlbr?4^5$Ag<|3L&!m)bmq}|f7N=DbDt|{0=BbH zyoNyVw=!kj%t@b-(-NE?2lZyyB=YZq^W2>rN_&~6t6i==xY=P2KW(C7&`q6f9264# zWp?N(HKv1gl&PGt5*gOy5iLq3Xzu0*#XzQ`n?%v*~n7U3*`S5b!AE7ELrlYsZOoNyIVdrv6_6U?m0tuu! zz}#YWBw?_GCVeFw8~i9wf<1#GP5`6;?@^prKub(MVC+!MQU}W^H%siPW?{Lbr4gp4 z)w(9HR)oGK6!-j)B^(=T^n`G~WxzRw!5`IqbO*DryDU?B1Rx2Zb)jB z1YX+_{g`k*VHX?TOw6HGJ;Iq9#|6){qLOz>GEMm`v+C!SIG!hX^c&|H4oR(61M#l~~7?_5z2iD>fagWHs-z&HZ>zvNn^V;Q$b5}@lE&_#!kwdcBF52|Y!lfTQKT+8J61YBUR>^OxJ5aPoOfRl@fxE>atTZlL&LQEkC zZD#UF64z&$=JO4ORI}+y2_&zxD>a^zhJ3o+IY?_o#D>T6p4oiy*CFiy9zbtU%_@oC z-gY{_v3#msRW7~9mkKetj@YA0JDKm$1m)GrT4ac`kO1DWCd%J?R~9M z0Lp3`@tnhXrFT^=(#@H)+B30BA_m+34`|+dAqLd3Uc-RUwQ*TQx9T4ulmluvEs~8* zpDk0T9*!xS3-oo9zm4ziX6b~hs3c(hyx&nV&2dR~QZ<0bzO2{br$D0ggRCn)_ zpHb}yTs6D3TVF}|H5p1oBVLJRG_Ri!lW{(=s zIv0>S@RnmVNcYyZ8$}dF8$}mkbVx_|wQT&?>@Kv1<#8gf?nq`)wHNhKorqPSbj|!C zh3@Iiu)s+_B7_c`_i=oAo6~Rve>a$0&^zA_zP^ujD#tJWh)q*M@tx{bNgG(;!UsmZ z*k>L&b~40`t<(chiWUd&FJiL_HcId># zDg-~s4cbykhr1I(2(?xchd7F8M1GrEJiZZxD%uLjt9Bx+4@hgZ<{JN~Yze>^yW4L@ z%Cacj-|IH;%o(69h?9)<e90Z52r{4)fWXyL=lruTFwq$T?LIB^0Hr%!ED~s97 z;LFr^uHIW6A{ko@apM^uCE~lC>Ep*nbGSJ5xTG9d*buzK+PU9|Nla7}J)Hg~pOw9U zqF!=IT zUqpT@PMOS!@Eol-%q2~e#qI4h4Y6oUJ98zCzf8H3){@uMn`;rGI7WG3j$`g9WuxBxITKUItKO4S{rF5xB0oy~ zwL>lbYS2hL`K z^X@*Um*`pfY4hFbhy>X&4mcojx564lk+k_Ty;W1yl#kcxWSESy7;r)n6JMb{(A19q z-qHO=y2ICfryvRLDmxQFtaiT%kzh-b&#TL!Mf7wiNBrRR1thiKrVT#Cm^W+FPY#>S3kV z=8LS6S)Dr7T!ZWBA-26>tG9=-ZEPCC31TOnV)-{tsE$ZFi*zfChiM;{Q*Q;<2TNe% zn}#481==V&w>uIjn43k!=O2dmVml%WN#>M>BmHts-2%0O6u(^(rcxlO=RdqU>=L#S zb`XI$MUY4mA7q6vdy{rqKi_J|`%*G^lPgK;=%oVyJLc?7+B?&E1w)MR(xkB%$6M*X zu!pf5U%hh2(%vuliZuyQKN{#}){0Djav+6vIQQ-{zUW zDW)OYV;x=JI$re(X}-FJRDKhI>2haoTA%Rcrhw7BzdZi^oWaypDc@N5mmg^!UI$h! zu)?1g@b(;ZXdTkVe{R$yeKJZz*~7o%@BY%4O)~G)wD-`nubV!Vq~J1)M+}2Vubhg{ zF>So2!#JG|ElE0Q7MySjRm6NCortfIf{Bv`ORnPcFD%}8uN%Nny-pX_qL9Yp5SEJ- zsix*EO6n4kypVhcY`4TWD15h73{C4&B}J8nO9d9i#moYRo7%^y`rfdHrG>)jNrA>v z3HiX7$wDmwa*+s@_;d{*<&}aj*ynY+sLXq0`g~4>i-Xs&vb)VSrV!5p5o0w-W(@M*p@(Mqxc=}ki9%_dYUuK*qPdyPn-Oi zDBYQ$Zqd=sGjpQr6A4&Zjn#PPixT*>6EbN8N5-Nt3VMc z*&K0bT~bw3T(n*diaRuYpUlv+}7Ma;-zZ?e`QoXRjr9Xm+Ky?W3S_J#fx!un9Do+ z{5xNvfcQ%hza*$l#7`nc&RJ{8KJPdXED<=M5(;l?{{)e~>Cp$6dv|9Xhs9*ny z-?--yiTqxv1pxoJbfcu7|L*3$My-bq{B!Z>|Az#O{}JZ8|I-j7uj-VHCA3$8!dVUo zzDnRA4wV~+7^&48X6780pW5GqzUIpZF!3lVa#hS=K;{F=3iH-XP1z36$~L}5JN+T~ z5<#QhEP$0-!1MW0SbwT7o)S@_zwA$-8<;%CcPU0kLj%Q8XQ6tw-HfHs6;NKZbc<+A ze|SE$Yl0`K?gzDC$$N^PfIan{3NDoPV09#-;mxw~8#xl~ta`ozpnzMO;T8v{(8Jj& z=kWj^=iAhsf4c*38N20MIWS#+{L2}bCLw#NU`np|QO8)m$a06Gs358^;|mo9avc%5 zl+vXqv(Qw&(42%}9Iljtqbr4?A{usC1(7jx22SB`JWmQ96o!!{U!=wa>fe&Qh^A7F zXX*)IKlB4yg=1j@)XfF5A$9=Lqyq3mC&~?nP0D(iL~1F2djq$CH!yDC1Yj{rs^*-! z2|snw_h*4K(HJNG`K@jM1<+eNHKKgG zRcKmn`FP86YoMiD_@lU3%X;Hw5aZ_H7>@a1L6emJ_0~(}e@uZ120pr65+$pRq7`=8 zJ4ru@-gaUZ?X8|z?pimS&ULHTT>fqQiw>`pg!}z?pM2(4Vy8Xib^(HuUB_$R$W&Ih zYX@9*hhk9Bx6|8V0cv6bxLNc-{Wbg7 zTEG|w(7|>fi(hcF8Z^}GEhr$Y3-v2Od9+N9hdRzcU{y(EWicM3s5@T@D3D0zEPP6~ z2QU^@O-;P=A)E5kt75Exdu7-Pqd9jrC|;A z`>3iJ(gO;FZUar*c0AV=O7g2Kgm6(JO%(=y`Z(8wyqx%H!)kPK>?EF`yN=zea6{ZR zAK*ch#kaD;%4K$d`!IF9KAVjv>Kk1ImHv(r6fIK8pdqa~cAD{H?4(wENZpm_a_+Q+ zXKb~rd1zkF=y&8KMf^D!qr`Z*7f0)Cdp*FkrGnuf1w9>A4hrH<0#SXF9SQuk-#EZy zn#B%<1s!FO9?2=2>LPKTr=a2j=x#`EKKT4Qpj)#tJI1UFdGgN%LT#`9kzjmI!>0p^ zV^?WuDZoM+b`ebL#;9(Cz(tk3nq#ZC&QpBOnN0E!(WHc>C9R_kC4GV`;4Yf6{jfJ% zSA~jV)D7Ct9E!c}mX6~B*%~1#YvTtw)LN+(lWQs z5mQ)o)r}=5IJ8PvS`EFh&l$)BcB%ZW`48SbBg*QPzzIxA&paLNa*|NNuAyvfzxh1D zVltvq&+u)YnLAgP)f8IwmV98MCOw|hH~?=H>(!l>VO*V6JxWxX`VS{oG=E?3T&yCWdK-q`+fcdS|+Gr?}%SPo(k zr>mno_3iCZe(wNJ;Vk0(-H)~U{meY2D-ogKDhy{+LzGVl_6ZmJ&Xp_OCA*NJsTcJT z)8j0Tq0u36dZrRDwx<*sv^59XUHeitF9oNUMS4?G8Ii$Ac1#c^x~#0O#<3$Ec0fyNL(OLi zO~pDOasip{!X2!4wy!EWA%_-G=_Wz)W~V_IJ%m{U&zf~RP)bXoAaT{@yN>2JMSf>F z=f^(_*crI)uFG!b?{1RWGN03(2z!cF0)7ZvQ6Ds@61;r#3zH5sYX*P%xXVmqT_+Zg zO_rZ2pGDQM<6t|X{>B{Rp$vZ!X*|bJsG4e@&vl3beC|D**ZX`iSqtOG?l_Qpp_0uMY0GYBP)gC{r*a&v6*5o z&h&AentjBvVEvSG9yej<2oro3g!{OI@D-Y%e6hB=v3=KbW!y;2%CD~i$;vbfd*S&L z@-qx7P^CcFWvIg2gOse_Dt^6=l?ZQ?%e>p|s}7VT(zRhXJ2*xIXPeitbV93E*R@qw zL|z*Lg%|%`*mEeLncF~bl+H?2QYoq+1Bq3X5mZS2qN&>Pk>p=L;Q2w7?@W>M4mGEZ z%oAAOp?Y5(;PJM{L!mT@!4yj4wSAi}Vi-TrO=xp@vbBC%v9E5bRBjN)Hii$6;OMKf zXcP1NGM$mR6kzlFOl8NR@gp}n_i{ZU{5S|7iaLtvA(L>vql9F2Pg+{qzGjbWy)Y#k z8`}`3?qR;R+H-;u;5w9Ju=b$5ar%nBUFz?Ah~F1ITqcF$ z$2eJ7)%sV@#XTjvv*T7L{)d0K$?Q??sD*Zz(YjFzO7+$5aNQmtk&pqXJWW*;DSQHN z&WdfAA*F9iU{eJlicFHa@*5=oK2=a5bFq5|@KKlx>aanE!v>`;s7hZ9A}w|7P)s;f zIdye3Tv^=D8b>zwyI>?EYaY+OF+k2Pzcb&XSXdz~eW#LO!mHwsjDkY=-r@}L$L#EE zaC0yp659;;Y}LZvm+t}L^RyPenZib;xq<2FS^9dmvhbV6dGl=j+B}hlaJM2gS@W;O zguyNnps<6puLCX2At>~V*+8Kl+xK)-KNR@P8yFeIY)hq( zH2Te*x=|QkU@k*AZw-C?Gb%+?0&{v(z{j!tT=i1D#cc%)EGA6}r1j~-hH7;)rlqWy z>+o;S9>kpea7@P@$`H`?j?YwdP|$m*mT7kN^f(C}zj#PU(adptMlp(mJj(MS*Bb0< z3q3js79xdMI=heA8$AHQ-XBTZ%|1y&zlZ%nvyrEl5VV~xv# z$CW83>Gx@D?C9O{I;yy^T{K*R z9G6@h^8>BD_-F(>t|Aw9G$7*fL^3U-ulMDGAUCqiYhh<9-EN31ff;?uMVov6SKl3Y zrwYmgoS~qY8PGeC^1DDrP-OO z#{cxo8%b0cqO+D1i?ZaFCs+_7$OfWje-}ux*oiV#^X`$#&MEFeBxvyxyMV(z0=rSI zy$y}!JID3J^;)}~%_2rasgD$M#6GEBbp5!U6KuRrCNt`Kak>x^AIL%YJqYc3vU`KN zRpm;!hm`8m#iv?&-;3{BP8$|jraU?`I3!>E~sPS=~Zq?Q5Pk)F!2o+B#SP8;GoVN`* zxw*w-r*2HTi)EJFSKAN2e;U63W#dqzQCMN(9oKH0#0-A&Q#;i&g??NaabKBS`PFK6w$CiXQ^WB@1c6C8z2^ghXg+8se>9 zE`B$D`REDt`wso@7Vaw8N2}z8+l!Eu26;2Qn&Hbg|Mj3K!bLvB3(~l)q0yukoJb*E zp_*H3y%Tzk9W58BR&3M%?*qTLj3K3 z&Nn7=?eC%BsB7h3n&N#F0dFGXZPk+cw}V^Ww|E>*<<#VOiG-;=+k=bAE^_jcZeey? zj}nH?@D*ka4(If*G~z3B74%~F9yMXUU^@2=UrxFkX|yyM3^)r?#S?VVT@|~2qkADG#SlYEvkj%; zXvFgy9tfjpNAB6>;R&ayeqC?lpsD!21ka*w_tenRB_qu(N;g(SkqR$%<9-v&rtVY< zviKbdF#-ES%=^gCe|=cUs^Saycxr0mg=geApA|YpNDrNqAGOS9OC*=Snsb2P6Z1z5 z97NW4Xz><{G@#Z3nG&ZtG z8W+-*v7OMU`M}d*Y?Cadq+(}nf~|e1yI6*&Ofl4IJEzC!j+=z<59jyk?+=~Vl2#I; z(LD?!#r^C@foDq#VI@_uj3cEz<`+pUR-W$g+%jQB;w+OzoM4Yk13K@1X-tX)MBpf7}m$$|G2vmXUi&X6V0r^RG9^afPANGD@zILi>;J z-@lJd%lIi<`9E*-|Mc7EcFc`82UD1@k}sNP0GS-QXbBS#ws@HMT$0mb(UnErHIMl4lH z9g&}V455(LAb)iB>}(2B7+qS7A^4Zjc)n^6OD`uvcVJRd)z~Q z;L}JfR{k)XmVqqluMSKxgX>9Tt1?58`v$#B$!=JqRzFQ_>_>so5u;W+WGugK!$VMj zyMIbhc9tw3j=>1VDu`ioQ-1M}u1i@&4n-c`-xOuR_;*ix2#SGmmtN?GuJ*@(!NCLl z|FoztQu~i_XD|YW(SLLCBmKnQB#!BNP{DT>sBm^bk;;{dfK*z6v{c!?@nhHnU?;n? z1&6c4kFLOBx!aEKo^M!A)OZJ$D?2FKv2)m8PwPm;2SWq6&(5qG z5ijWMwiV96qP*$}z`c29J+ZVk^M>l@joJi4!8ZHvQQP3AWKwxuE|#9O3t(gM5&kud zY=u(haA=|IKV?mC^l#S(q0qWsGaz?a(jNzjw+T>)mSuP0+flPkkk>JkO%|zYR#1wt z5_pis7l5c~V_aCHm-Sft{5E4R!xa=hs$FdMy?O<-l5D_&7!UW1IlhKwHUlN4)^o@K zBtXxC0vAe>6Izd&zAFR0Xa*D+SPAkonEmL(ySWj{_skMBrS4pQYQ{&dj}IR|*aQ`} z_wVk00#jeX$Qtw=)|f2%Ij+95w6KXAItg+W}vD;1a1Ihcc$_7 zgc_3(W2eocv11A|x7q!A8NU#8$}Zscc8rdK+DoQ`F)QzY8fOo5uv*|&tOYgDCJIX0 zaLhm@2}>weaqYM?lBEFOSJ7*l=@G__k2CTVQ=2$v4Y1YD0yQ_3S|M`_Ab{{U|(6j#kO=$TnSS=)q`AFBcujM_#}4Q+Q^-Ms+qYh{~ln;+C*cAMn# z2*otmu1lTshXw&Y+fI2zx+^}=@k%1pE|vyu|9WELQFEg1P^D*0@LZ1v)$SKxIo@&H z`JaP4ayzy?NSS*Iw8+t1@dA$n7^-!^U)57kKJ?)h1239=K=Ko-&Ci8?%JKnT4AtFp z(2^{AyZe5GH++4o(aL?Z?sqqZpyXW5)mjxbX}ImG>f1=7HnJ~=KzrOa*97HL>>UOX zabe=Jx#>o9YSCVn+1vY3m9q+i=Jfy>e@p;L4GFX zdD12CvPra-CP05#AaN@I*1KOrZ*=) z+kuny=k$+i%Vn~Yb%S?q^qN*67yaTL(El{{4s>~Ups9gi+^Ww|vXcDTf=TkioQ$FJ z#npk$?d9=C#MKrM_JjtD)Va72?Sb9W`GL=5AE5HhK~dtjKXlKIwuvV=WI5FL$VI9s$b+SKw|~B$0=1eZ=a#uobh=`_?^!$4K%@@g z{?PzXjjnh#!Is`ynoXkHPzQp(7t*_hdu*z!evcP`#i%n;zbzD77jM8tD6B1(AP5|W z=GSA0(0b6Uf*V0|4fJy=6RI>%H@Q0Gh;y9C+|lR>9)a;`MVc9z$Q3O@!{-d#w(lT_ zJ?u@*dQ8HI0=+{>xZFTzE|PyC{Q1hPdeNsv(XKn;rQ$cA@bC2&X%IL(GCe<9l@9#* zbX!b$iIq6^ln!XcK2ECYDLSlZvan#<^oAvf>;?#QV^>TLknT;3pR~AI|fa}vMF3*ag z)IQ@?Dxzv$w^PaajQFimm6>YmC-0Z5RZRLfaZF-&%y@tS9eyf2BYcJ&yqZg+3{EI2 zz-|b6Z4GFO7Y*$v8JsWV-3RHU)vtdQ9O+*Pvx^%E5vK0)v?jJleYuoKdjWdI)!7UF zz_*>INdxW_tihBG=S#QI8I`;&dte~WI9Px@cO?|rU@X)~|9!ZNn$2%{F6#O)h`WKR zz)$-XzY2?hy7p(93Og2&C>5wf-U?mBp;hwc2Hqf9md-hCIX3$qP$m~gKHV5ANVse7 z1;K*D?Se+)S#y=8!eNqwXM*0=DiMEeBMDJ+#s!}s5u%x0@gXzu7z%05fO>e4((j_m z;h3$viyh6|fI;5(b_o=rJ4TX^q{0iNK-DmPr>QX4^aM($fS@$9?CRsUfI!w}JsqhM zsU<~7aa=DDs$0nmC=9tZSF3vE(%>xiz);`f;Ahu~@S?%OAjOBnBZwT8l~*0*IGeF{ zv%~e?1E`H-1Oky&4UKi69@?41X>G^30GGQOJOL8WQNx*^EcEatXW~R+KD#cte$?ty zuHa@1jQx(QA&eVvAD)#ZVzGeDiEWIUQ!ddm{xPXTWWsS#M&85MUEW~39EBbwMm zIEmirTimiiQZYbFsO`r;;Z7izNUC6CC z>5qiF%Vzz~B2PWvAVd^PnQ9^wXg6u6NSzjEcPzoB%DE>iobdUa1rZ*0?z10;tl&}`_#X8TM;$ioPx#Y}gs zO-S3FX_MdKa8O!wJCOqGF<2M$_4 zyRjI`pI+VpuWE8P^Gz)X@zwm?VRK$x@;X3F_c|a>ejW{vFhz260g5Z0Y2(br62e>i zBl0zzBjVDzR2^BK{rvjt;KKdT1)_zY-@*{?V z#{Kq7t6d=zA2cM`w)=-*RqV%CY|}uhGH(H8} z$)*Vs=(d`Ede7V}fFVtS5AH`k_w7I-^*PpKG!m?0v<|&e(_FkKl1~&-gBKVHp4j?W_0w@h z$_)t~WcHBm^|)lgAJA>N0E_MgtEz64EaXiy9abQAB=+Xiq2C~SVVwm>YWYXb=!jTM zYAV;wX9AA|lAccNGx8C}%Rl)Loxk9LfartL_4ErC9)VtjAtv17qGqFFUPx2m$A{W_ zHio_;6eV8fLNk1cB$f(BxtVa`@=ZIKd+IL`hq6@{UA1!2JuzYTFa_W6;(D^=e~cG{ z`}{caNb|>oA8q=V$dBj*%~E0HFCTuP@_F#3+)-wEsYAZq;Y(~R_l8)6s{QO}mFs0t zeZB|$Hu$dhiVWBL5^wmu>M6WR5C}L5kk)bC^ItgB{M;g@ z2uUvzyed(pj`a3MYVV&2XrG4F_Hgq}^~Wl!u599eq>a8RNHdhC#&o`rsm1GQrQk~I zrZGTQ@?D{m|K5%^;By=cGF_x`X;5e@pdh(+dL7^`LMqJbNn~vSz6n_ZeO-;HPMwYV-3_Y;iP#vF7Pg21HbQ{y|L^gb&0> zMre+Kue~NUpTy^+xM*`9Jm()|UVVep=a&AdRG(D5=M%$c5~{#NdTpdktcSsqntFSR zX`iJY;vbPta##wX**{4t{`h54$I-uzWaC9QZAT0?jqqaZPHVBU<7!mBm6uk_<=ML* z3w-;JyuEECS@&UHlhP2Ax{x+vAroU!I7q}MwmGB~pg#UUI~Ss50arCoh|z}L`sBeh zYxZCri3 ztullxLF!XZc@pSD9w~6lc_oHV>_$wuf65N_KyD^X&94dy_UVG5bvo0&aM0c7=GeD; zpP=#PRnn6{l&M_G@WI-{x@x)> zX6x~GUM4i@uuy#@`hqAC6`b8XzQJx*AWJjWxhHCFz#_qqiI-6z6v34_Gkrdj?^trz zwu|zWwjI*GsopstCDiZXEya7;djE3}m)GP*wLC5TRj?)uexzk|NU8-Pd=jGclq8I( zC4q|rwq)v~H)pBa8s8_HldLTrS6yTj=Gt%81{Ya<6m8KoH{o01itf!vz-q^0t3`@= zVUO+KChfbDwraJ1!mCSo zm)Jh?D$`GK&$bo6=Y3D85q*oaccTe&pXrz&(&RMm^~EktE_v4vPmdV@R3}ZE?9T(fdU%DL!P4BDkU!eqjx3RwTM3sf<;)))3zh4U?1Q z?@Wpwh}7>F@B6~E2#&inJ>mTD?b5IX`nwT0ad#PsbLkoVYj(e$L9NP%|D3 zEM!Xc^L@g-IVSH!%|xvzxhVSN@B&PIGL%>ncYoZO5NVXJiFag>O#BLYw6O1>BYO7T==j7CK zCl>Smxwt=O=KMkfE=eB-FOkQhTK%wtXI1&O3@be(8{H?KU+3{BIqoBn>6;+7MajK{ z48mgH1u&u66VLGJr$psX%Qq}~=QRGnx9nxB%**PFOc@Eyvtqgm!M9DmHsTyM9M`C# z$y<|$(zla~51#cBa&%yK&`dCO2+uq@7o5RJsQTIx&pLq(rypEmcv#+)?oSYs(o;V% zLLi5`KAgR$Q9+;RVT{xMv%RROgoDe~Qe*_IS-M;;{fGUL>|=w*(!TjoRaO(?v#mrz z^LwywchA}83!inUiPk6(uEY~}Bqwms9LU$3Co)dw9scY1Kk&<16(=H##q%XpR1&(- zf~H6eLE%L0^-on^k?O^P#_vhWuVdRsd_~WgCc5f}?+Fo0n9ph<8HEtx59QzR-u<2e z6-~ak|B@=`@&RcGROe!c6NSd+t~n8FPdO$h|Jq2TM1!dAIIBOuJ1C^V+uOdQ=8F|xgEx#aZBt@WV zZ4i`q$g^YXGo0QuDoKS@9uR2!8_A ze2PEVV|>RUwqB4|>oBsrP}D*S5Be!3Bn}o>Z{N>m`c|jvzDKqYsC!s~H{;1k9XL#= zq3mogAdCYvSEn?WAeeT zxo6T$=gin)muCa?SY{?T?`VcT?5%Of=y;NXPtKZm9N|vM;Ec z{e)y(W7+|B@?9+(A_swEtOqSt!?qwRh$H^k`V_ZK6BjgiOen^c!!7XpzfKNIfMUQ8 zbgwmV|Gsxaq6F_D;&V%b+M08a_qF18>H48v2SfGDm$i};3cO$5H-&;?!LiQr^HT!eloCE5xC|(RMpy;pk=5A)xqkNr;3-KAPSJb^BA8&cxt7^ zD&JeRm$!0WH}r9;y0(`qyDrB`(LO~h9b1*e1XNcf$Bwx=iPy_u;Cm2IW4B1}LNWeN@!tl%-n*zVp7YXGC0ZE{ z<=2z~D_S)*bhh{=5ezu?q@=-#%k@r|3 zTtTZ}wxOuMMH5nAH=iXV-a^ym(;P1!b}iea-o%~a_1t`t2YuAMm6nw`L!MmxYBBHP zcjr4RqUpm~iJlr{ETj;luP*KwvB*zZJ7dP~`=KLCjaOD*pAkK}EN`Gu7|N-is5`IW zVrGW~@hj4hG0qBsB}waf`~VRL=)FnPBzjV2Q%88@Ljz_l*sBHN1L=eKWQz&O3@6aIx& z(|g+AZx7f2;7o;d(Dpo3n|-GB0P{M6!RjWpT+51?`pGU50`rpXONwBWN1|<76#k%u{eE`<4cD%Y&3J`2XE#AsGsnA?)NS;u#Em7}cEU z-UFH-M&iFHrhiR!;y}NXHsZi{3;!l@{sXudK0=T!xL*hf|8wPE|9}|{^g?@1q2R6F zc@+(wR$Hbd=+^ZJDS+8?Ge5+;^|ab_fGhf~#!7qZx-o()!ik8G`3vHg&H0T1xS~fR zPoLbn4gsD2|E1gaKPZ0Vb-CXOwO5Dz-F0^enD6=b$@PJ#I_;`9k~e>kIzJ3khMZ+n zXgEv#-+v*QNeFuU!&y?zt?Mtr0H`2*cI#98g&Dw$Q`u*A{QJ}Wi@}R9Wq7}LYZkaX z1@Av|L382ObtqzzJyrUf_>n}}NCd-3xV^0HFG5HXr2^b!LQ-nWzeuTn4PEeagawR7 zmk5LKTh~p&O)|1_2mcQr{BH*F8F;1*;zq(-*Siom`O+AR^MAAKh}%{B0G?@t#fO38 z@9S|%;3kXPi2tUcWOGyyeCD&ur@DWS(fh36CjXBe&s?@WA|HKk8G(w7f@~1oVFY!6 zs2J4+Ibl->@La^+K>U1-P5`!NIEpAEyguKYT-O#Ec>AbV46rle4G6eDDJA8bMV5QV z&5T1Ut{ynu7cDIV2+V2L=b}W%GBOfc=cZD!;&>&l*0V z&izwE_rKo`V1-_aawE*eFF+{adb0K_mQmo&GFqY|Pz@Y8>Ja6MDVGRj9N`M_4Y-yX zD@?hJ>Rq3MT3Axgh7sV{k+$%YDHg#!foiGVtB#t81Q4Xx6N*4Q7dSM904_NA2f57z zHVn1a!TAZ;y8WE(Pmlv~Tlp@lfxxm3k*NrFYxckTpeK_DU-GuNfA>>4+U9Vj=?sbYogtaLE^-TB)^HcIuG*sOmzUSp zU)^L0SdiucB-Op)$l+Z1`_<(1t`{n%!3 z7Nuh=w%sLmHrYKce?>qs5h7;HZ6X!wdixXFMkRk zvN{BhnCZDw>ki#&yt%fUYx18t>!zq7MS2a&#l=7*oOnSysZKF73m61tI|wKaE&j1q z#A`M?5mJ$8hGeZ41gQyR)Ll2ZagF;O6vyv(il>g@kWtcCB8^9y6LdTvA@v=@4cPge z!8En43II6&y3f|`_gHsnyYck2amr2#wuJKt%IT(1Yz?_gXUz(>i<6?R+mjvb;S`pe zi(krD=7pO+Kjajocrvs3ErTe$hNnwMF(-vatHLQfnoX{+lNC9ZNE;lol^jXvxSsB} zRX4iWY8te#|EPR6!yJm3^YidjHX?zHX#9=LWB=JsSUClK#o_3OAf1r7R45U`mXLu9G$08Xth z7~eNd#I1A?-@T$j8MyjTxs0gKw6+0y$Jh6aG}OWz0PV-43dpL#5cq(MH8mX1C@ngK_DXWrd-13 zfc4KE0k@CN$Li}-bg`lffVB{@&vCk=`U|K|(y<&jKHiAp=I+p03#>P5t%Xy3WcpomL+*SIFtV zphk*#wXud(M>;`ufL)k~*WH?*ja@VuMi)R*zie0S)c%V*OP&!=sThw-<%4qi3b6PQ zo%M-kxiZw}GKp$_W!5SZ+7#`KU|SJxH_nt0bU{@KrG$aWQvGf}+ASKInE!TcgxYE5g)I9k8z zxUp1^nO%G{*PHld#{V?_BtWEeowR{@Jk@q4FOO41&O+G?tPQo?s$LKZTr|@WzX;sa zRr&;sqsMj%#?ZH|~2$0P(u`WaEV3 zWC7Qw^D{M2oVwQt_s``9Wd`<2h!S)>z;1D~6%|)RhyY)oOEF-jT-WO9gvfwI1R$@5 zmUGtc1yFDq`pqT;I$Z$3(Y^JbcD9Gi&P(XDwkQQZPWs~pX`7ug$}fS1j=np>AY>ZI zavI`e?}R+i1XfyjZ!f4*2K>>f*Rs406h;da$;u$ce3XuD1Tz;>)KN*xv0ZyGgdU=q z|DmH5mkz?32hIcBYkpTY0AY_FP&7`1g@`ix!HK|y-+<_$(oHB*td#%fij#@vV(a^W zs;`;lZL^Wc5*jwKConVlNZ{f>d<86;&iDGJWw%w`O|eko=RjDg6TK&#eR0iNDE;#6JwT? zIJ6Oxw;#N@QB=0mE0+NedOeoi{+$)Yo(Tsy1z}c$Vdjx%HdbzASG%0-toP0J*w!#F zn%_z3AzS0+0Y|Cs%gzy8?0k5c=v%)pi z#K!kLXG@+_N3?m~d~EpE)G#Vi0L^tCWM;>FYyG1CJ|&$WmYDshLvh%6e`hD9lKNo2 zce2{advKODCD>{f->uc&W2m1}e8A;Q$9L4KsA){Erjo+_q9~?71(c0CJZrq_cbRlU z9yOYCvOCHDxN~|j>q?}5lWqO&z`#T)A-Vs`o3fS1bBe}p&*~KJ`E9EzdGO~C#cU@% zSN%y)rUpIj{2=j-K#Kf{ufIOFa8$+0v@i>v^NzNn*N~ zQ3NZts06PM)neTaZ_}#hnG2|!kvMB+5?eUGsZ)1r*zvgbb{>6b=wEHp7R_11VsO2{ zd?W2U+ww)v){!Rp3|IyA3Ob*`1dfK8y!BaBzkNx5jZIZstIDhUb?=nL;A+9g_e?Jv zjrVw|`uHF+C=eFgH1ujJ4*=89qwo9g%Hp zPROwBZlimL*9X04ZoEG5Y4-9bWGe0opNK@?$Z&eJRMQ~g2`?~?zO&cdrOG%OaI+g} z00!dU9-X7w!u(>f_49UM{n5T~?9qJpS{*LSl+0@VeuF%fE`fDgvDk?RNe%e<_=vBe zLK!6GreXlkR#M2)A)@t?40H*2@54(+Xa+c_T2~(jaV}H6cpm8;^8WG<0<|6>7 zec?-OCa`%;990awwqW*TZ$yF8Drvau^ba{CwMX5&26iu}joc1gD|n!S;f5lZ2H66n z;~qAqWp)bky@yx;Qrihp7Tg#k)p8(RFNhJMn~~}kd7)N6&KuZ-mp70f=Ncq`hmz(ur4L**zL<-gcU7<%6`wqww5?jeYJyEp3p*(s0W@_s8@9g35+}7E9%hu zP5n05M2lmcG#i=@q4STM68Y``Bdrt1d#Z}8v!8#G7A+B*M#aQXl+D?v3AklxuBZ)6 z6pxI$NZdEP$9$nYS%s0zTCz;S9~E4VgAcN3J9E=(Sej>o-c-LB8Qj|Ug$2itA262a z)C~DP3?u^1$kCqH&+HSGD0GdU1TRMVSdgn#&e`jh7l&Oc;}9zz{P3uq!83CjOKR?w z3ZPTWMwF17gcA%GTccO+?N8R|GuiEGp$VL%MSPB6FoDp4rQx+QvYGSPvZ|-dhv^AL zG|Z)Fq@89&d=uAJtRvtjBnX1y0ABaz5NKzRb_7X;pgB{V27 zR`DME^pW(n*P4Lm3$yHwb&Ng=DHF&Ea2*)tHuX1zQ*USSSq?HnR@s~bQ3<~N^AA_F zf~?f@R?AL7O7~6H7}sD!i0ZXroIp8uTt_2iBVqHx@SnoQjkl7^AC$wL0tv&72jkQB zCfilS;idx4D}B13m=&1~Fe>|kF(Qbtc0dICRv_ z{t_l#q}RJkI<^}u><(Og!QK>hXY5dgb2~Jp+3((ZAi~DGoZof=78}cc(HfR-f1kBj zEq8127)vo(_-louL;_A?|4DzUdKYyOICToApm^r@Q6!5%138(i*#pIRo?INKboU$U zBvJ`zH@i%3+Ls>k7r7VIS{Vk-J#M~_+1p33*buM#JD)98nPx={mpKlYrN72qkjk|% zz@sSH7tCQZe$5qW5cYcNHA5q<$Hr)59cG!=I&QH!_E&7te;VP3dZ*g6yYo$xGPP<; z`=n9WIAp}erYl_$X^!9XL{9}xO+wWJlrD^FtSgNTM$LaczS{lGdbGdXP8Z-7aYYCd zuS1!K;t@{^4B2MiDYZ4!)gtemM2&Et%Oxj=p>!ehI6uF1QugIOvm}7ws(JYOE{SQ9 z_U%;belnKsE{%1+L~cw$%3>TbDJmfSnw=B_5z#}AMT2*wOAE!DZdA)$73`qfE!CkP z8^^zF-2ScI!+Kijlf8zUz|VT(s66?#N~egD+iRk%GBN$~8vna@+=mnYP^?^z4>x>0 za4|Wl3n}v(E8;U6Zkm#dQ&-#3!mURwh3z6TI@@1Q{q8puIJ+_a!nA#}SC#T!s$qY+ z-exOu!RvUi#^X*At>H49v~Q-_cwS>y91X0wQ7Z36MPa$3S@beSg8qqPY1DEA08 zP|jleD#f|8#x(gd6Xtfu={fwx^T>`XbHJ*7~cXgJ0Dx<9+hVyUov5n@hxgl)XU{|L2 z&Vu`6%)jbyph&s)vU1gEy5L@^{g@6{ELBfC4um6_~MyHk(7wH~z;-ia7)qdw@ zrw`*Z*7IeP?lg4^$bnt;SgvoOZVUGue=5#ca>sU0S^2*IS)Yb_EMHIE*OlUCx#&Up zJx!u>a`2(zA4%1HRR!bIM^@@WxY#tB9o(uuYaM95Y*NM_33xaMBdJJ*Utu@uhF5D| zk+P*w5J7m2q>MVByuAzS#v(A$f2lt-`cA3Uu`gX+-Dk(hJyAjX>MLfwepisd_x;|L ziBhOh+*pI7yr^!Xkyp7ob*?_QXh_zL<($z4zuM&}M!kIRnRSM|6TD2r_u6SWw&_`@ z7I_cpSrOZ>j|n|*ZjQ0b@LHC_9q}5)N~|_fAC`7j+51Y-{K3a!F`obKdK$-_$dvpt zx2d8kgn@yrUkVKe68B6A-mh_we>Ja|Co<*(qq3UQxNZZe7+5y{mPQprWIo&VC(!;5n&J_yMD)pmOo3x1^8;N5=CJzbE6}lYsK|3?7Y6*n>WYDU(<+ zFUX;OIeJH1lnRd2iOJj>f0y{tftJcNnwRGHo685YFN(rM6h$iP>8YR`W;66B&E@Fm zCNU>Q=@$t*K>FKhW$Ry{n~ZlAa>WGm;o7rVhv2aA%6(%;&ci2tFyCNPPfZn4Pdz;$ zG&KlHU@40RE8klM)+8jVM8J5rYED?-NP)Gb-`8{Bq-Y4~dWv1>a#=1U(?^zQ;W zQIElQ)f@Lj>(7<~jW|TG5-hpsU-WIrwP-WK+QteF;67T0+Y_N z^1!(CRAJIn_1DNQYmeRO{EOyqE#Rgx_cv@dj5^9ci+7FCgurJ{gpFY3iQ&thFcdAq zRQi(Sk9#X~+vJC97qx~~$BI;kq_sn*_4BRirw`nm`%-@USEG@WOtl`Apn7Ps5fmtY zj{S685m`gt_#&|r9Yx4xm)$qc=MEv+*#xDeCrLn-g?SdGkg~D zWhz?wPcB*#WG-ahqslKl)-vyOo8UN>q_}r661sC5I&(alr%&sv@n@|5_y;3#D$J;s zXmdrKnEUP+hE30lBV7Hxmit_)xc12vVpIxj<2i%H5?EA@lLwzbozb!)a}B%pb5Y81 zzvu;dYW0{_-V=rNoxJ_SmVXW;DYur(8Ki?u-e(r5LM)gQ>ZiMt_s5jPXV8+XXl+8i zHgI0IWz+N}J4-~+M?C0ZU>ip_>QEB&()0Sjp{B*HzbF1VrKO&l`OL;izS+zdH@>a1!?bk~6~M#i5U4Kc}K5n~@9wsFv9G?|nHF;FNt8FA<~2 z*-(|8pCi7_Za#GM(^p15M!oKM_TK-E`c6oOYqrFo zPl7DwJ2Uv(ZO`&?SF)!ue{^<&dvc=d7HjOKC(YN$LAbM!M;N`OV}j9_9s{kl1tt*u ztwD&#K2bB;mS#ilBJvfynec&r<3*=M;MFye4qAH$EZOpNXz)RKAI^GR=efR+`AuKh zs>BM(m_*(u4~(8+_stg#w5N-21mF#PFOXk|@vcwrPN~YzZukhEd6d;uy3=4XUN{fi z-uR1e69_ae8E8w2l}k~RySDRYHC{N|qT+>6Uq86nr!_2S#B(Dekf0f zRQGkMN_yE=G#5==tV6-F%EliO5u}8g`KRQx#Og_2t0A>wnct~i3fLoMn|$VvWZ&b- zAsNESY~3fEXK3WG*JwG0tdSt7kj0=4!7AP?iz$~yi$&@&nL40^l-E)-@a_m(Rq$a1 zkDgS~F9-6pCe*xB{20IUQFWDt$+vvxN3JoEQ!d;jocI`z38&R-*`g6=3N!MJjm9Te z)BOYv#S+U8FeL0pVcXZzlP&oQ30^e!aZlP)e|%BM9(}O*SmBj3srU|t^*O3Nw6&Z& zw`7ssY@Avbik14fPy$C`!ksXM2CtYaY@*~_)gt?g0>Vl31pY-Dl}S$_je6vy7PK2R zLNmvsEBo5VoHGKh$U-+;pRFcIlV;4@CEhLRYJFVlx9Ph)+?a81CQwz$mCl0B1jT1) z1~9d3bw8u>FiSJ5x8FUCc`m>~Tw68n3JFT# zZZ9BuS+Q6;DU^7#aZiU-UXPl^BG)W>g~;Sl{VBbN*f|9q(`7*5nu`xvB^C5CpTc{( zT90)}i}FR#iSk=c)LX z)CxbmY%<5E=t;iHC*48VySt3@%#$dbQFFgWmET&V7h`nh?*7>(*dTpb31>0yNPA(C zM&8@(3J`l^xssZD1b4pV$vq!;c|MXx$8^>|0l(h#pdB}{N11t)tka)D2%{Kd3JmDK zVSV#&!cX#^KblorKFO2OTP*X6JrcLiCj48|!^~SOW-BA0D~(38o&M(bqGJGsC#Sjm zu>7xo&u0S&!h5b)ET{iXh&}kR2H0n-*Dp$u{^A)W|6kJh$Hj*?z&CpuSn+Fg)-sF2 z2gNV?aH)i=_9*UIb_vXS{X}F`uKIxVW4n{B@#6~mCFg~<@U#OtDDyMhE`%WkLJD8+ ze#pZhPjLZk5qPJck@>gUE&@4|a=&wpvROAU#d4ko0S}c^8k{XYK;&lE6-RsgfU`$- z9>ww}@OW|o=Vg}5_c*kN#|b#p}OY$_{OTaXPp%aqK7+iG-OtWeMo7Wr-;eNpW zP*0JT3y_}Zz!cR$C^VbbYS}(&6bK5(!G3NEunoEj4T8){vxq}L zbT}h$Tc^{+cQ=vY=94R{A+e!IE8zcxO42>AhCB<6&aIftD_B zGC>y}KGxdE_W1+jBaZ*dS)xLZ(!91QLjb+{=>h;!8@j5r_<$YIeC7Vsg+MPfJY%B= zh{P7DfoiL5a`Ub8=dq4CUEp6|6uk+gBF-Q)bdPrnVUBYF1Q|Psq{h)k-yWftoy@^7?a5(sa(gJzgP~n3|0WS%E=BOtxnt9ygmE4 zJ8OXV&-gLWbY+|Tra=vJfZ5r7hnw4XA9}ABq`1mcyXSj?ObzcbuwxnlLGJ^$z_ZKe zH&0JY+Ul3z+P#2n(D7M$o2HDmg-WW`#OdM=xQpq$Sn&;X&V?q$D!{Lwr_}<=Yuxs8 zJ83O5;yh6eWcqc$H){5q0Qnm9x&k34wEa5X!Ct!*?-M=-IFv1myfm>UF<$`1t}bBs z&Korc9)kOH?B)1Y?3;SDHbnQxVEzK06-#4>ko?RbVn4q3v6fWD|6%w+I&HER+5!~_ zQ2z$hqYZ=zA6*gRk#Z!Z)be^T@^=t8>9PUfKBm;=sgfw_e{S5TM4uf5yjpb&7ONn! z9g02GRGP9rFznFP5QYnuzb^aXv5$#PgUEr^0phnQu#sJyWLjPWaCIY2ESQtinNB?{ zF~W+kR~z?0trJ$o2RFe{^x;%b;!+{)7ly42a$u1?F-z_gvAb zVLA4SN2{~GH`ClEN)jGGE9spIh_pwVv-9)^UxFR9zCSBPsFt{$EtCX1YXS+{qvk-Z z!}5hNyk+jy58PMWOG5$EP!(wJJ#{g0e&1EJQYmuLG3>|lRU>EdLY%H?y< z!=f|mdHjxYg#L^>t+l3o>lE--JDcp3F}rM?c|K*pOwBjEfuyK9K7aVG0Bnw~Wn4~j6QSc!4Gl}7_;WUQr6S&Q ztjYvY?6Vm_!QB)$(Om*dw=*9ZZ?%*s8qk^!h?c(oPAAiZpi2#?2XW_zcwo3oxi7RKnynH#$0@c9Jkmk2i`pK+Gm;oB+YtHbuC>Q@^I`Kz&VB z4{Uvly<=S^zki%{plL#u@okqhrEJPsgvY%cg)oW+Lg$`;NHozRk(6X!CDwM~O^C7d!yEWf*eE zorpXBq1aTY3>eL8f=h8S^#=>8vf`|BWD?j+giUS|a_75FwVlsD3~bh8Ecm@d9;Z9oNik27og})^(SCrN zu-~n-7{`rIE}QE2_37>$q?UtdAiM@?)X3|Hdn7-YJLIq>28O)H@NWBODc8&%4i^P=Qq|YHxV`oh5wn9!Ensd}aLZ7_* z_eEvyo?{IX4u@merc|w`BlxRH$4)A5?;oK?VV%h*K~n$7Fc!vDy{!p3U!+@Z z_scEGZEI^MVV5})SQNE=sM0O9-?1hWzBJx_80ciuWb_Xm^t_@Vb42yvSN62Me23ZC z+dZYcvc0J%o7D>2r1lIhq0OokIoXCk3#575km^jO$=;Q0#ARb`4?iplJY_4STAOTbU{2w&( z1jk5@x(yIF$j+1W?^C&xMoZ z&{yuf;+^ks2j57iSfy7nBE}9s((V%5vKa}JR8}zSiKfOOs7Hy6w8zW2k`~5stNO&M zXhOuVMITQEeh9(q_RcW*hbNbpmoAYJ_5s31AlQtd(5v}e>PR5pYcI#>efGE!8d208 zl-*|<=zw^)T4Z)jMN142fGRO1_IkA^;|(%i64`3_HfDIkw{*Q3cuQ&?H3 zMvYQN--G0|l4fzvKj@ZhZ&<9YGfx@+oAjad^D7))BlC!~a%KMUHj11htHV9+wFGqP zDg~3M?K?731vHS#PalPMU8Ibp5VgReZsF%`U5{v~L|yq4`rRkk<)T<}N%_~cEG3@S z%^tM25(GxM%4A?{N1t>T)7w%E@}6MW*`v_aP!3u?mcYWM_u506}=7#+FDC)VHZE%Ddx1b-#+4CyG)d7{@g z9eUk%*6!TV6H*<>AF*J)$Z?K6_=tA{d)re{4n zODQGKmCV=1mKP`2EapQpx}B53KqlzqFYyxn8CSFFTou!@KIV4d4!(phvX68oum`!$ znkekwMekb)r?-#B#qQI&gg*_M_mgVM2_N!n(I_k*3D{$f#X);bibH!()g=fjMzI8o z%hL+Bc&+w(?1>_BvtmodBWfPeKB#!m4=q^XVjZs(dAo-BOQP<&6eQGu3w8r8oQpxdznla=+@s zcv3{u`|PX>IW>*%Aj~*W3b7r&@G#2ht-kcHsd!JWlD&(QRh3ydW^>mzfc$46{g+U% z3P;oJ2=K;oNpY3;`OOQ2pamekMA9=3TBwIoo*ZGk4x2Z?QcC#6G3UtiK<~!+v;a_<#lxOpHxJuRYhmMOm$6iHP zdRcjss625w-69FBOzJy&J1!r z1>eS+Qi>R{jbC`cdztcqq);S9TdijigjO%>*uR9$Xm;6~r^4=+zm!l>J5e`Gbun=; zm%wb9i^R@OgBQ*Xm&S~3k@hAZEVEMjiu)7?TD+%dM}8b+c1JXBxTlGY2AK#SE}iH@ z9n!~_=D-;kE=IrYl`Eg9Jb~?QYM$CmqM*n`6Ds{v1uN7k^iKbZB{94C$9}_p4TH8= z^w_U`#Wb4>R)Y|#D(>_GrK0Q_QJzRS@w@4dEmm-2DblwRX0k|jB%nW|Rszuo*Ip7<@>nZ#~W!@**9NB?x6Mw`coBkFUN4Y40H3>ep`-Z`E#_#gY{ex zlA2npGf~+JEPYzx^pXNIXn^fkdX7Zpd-R@;mavoZrmLPPQ7no;F=|HL9P=>ZxA+at%t%=Pyf?`!Q?na$nlLq_F?1r?^#yK(H#LnV#OZ|*1# zA>z4JG!F*Oh){hD`FIww6UzP5lEFp~l`->PRGJl<%>;erDI;_v(leDMKhp%q2)0Kt zNWJ|7xXEpF4j1UF^J$#~`A4kYHOXe+?|Z)(!eqB0q9PS}lI>+xA%PY9Dt@fP`yAUg z{q;EC)9e;HtuQIdXpxWXvaRF0w9WctQTD@TQ2ZI9AeR+pYY5#^^s)!erD#<`2c&~` zCs&onsyUvD!jnx*WTC5^VlQf?>lJK2 zplLG~fj&Uvy|zp_awF;x6ZL?2S2@!w3JsqZ7rc3H;o1;qLTjcF(U~Y%pH~Gvlnriu zhSydl~80|5A*5d4fVD@=_~L}CFUX38Vhk^D^n%^(%&F@nP&8kr|;hTd0yv$ zA5d7_L~G)g^qP^~nnk>uj?a4(FR@r?)`vfCMN>@$uC@e?<5Dlw7j*vSaf%)oe5=f_ zQi(=DI}3T`h%ZTVex_opn}m%G^BlTVGXUv#&~r3bf1%49IVV=VAG zuG)6X-TnC}MN}So*aQIftsYP>apMF?3kzQ>BAwP-F!6 zvKOrxW+=XICw3DBtE%8UN;XOdH5?Bct;HymY9(7h)cI~b5o~hJpo-wo)oF$?3WH3A z^)k~MdVYWXU01y3Iq!N!RH#RLS4_uaPgx=53kjLTNXK+nBZ`x5G83X1;U41-PTN2W zsVbZxPT3mHlI$hx$ay}sAorK)s}qc@7|7}QKIvuCAwP2(@}BMSkhh&sXv2jjPWQYW zXDh!Z)Cdl5JTTB#-?3ui$1{oI5FX??lv>GxgGkkqkJA8d%i0i84BbL@K?dMpLrW@1Ns^ zVA!=e6ol*!o=z{U-Z9#wIh<~Fxf^eBFM=gIc!~^9W=8#;8qd3U1_M(57@Eq+KEjTY z231yM-b$@KM@PBC9{XW`bhGf^&vehKoN>zML!S%UXbW3Wwm2p(d@IQOLRGNLP~uY) z@*(QPB7K#eVnK%!g2_qRY^-{JA3^d!4kAT|zU)cWBgE2jL+GLC~~lCM>hT%1|7mnzn$ z!HMZU&99R3E%00(-<#)8d_D^M*iB|T@Un?G9v%DHvjI}oWE0BC`~v{OM46C~snWvl zi+k?mRCB9$m}A?BaE2d8rn+*PJw*Jd$u&8~zC->0q{DQU?GA(O>W_*YYg@hA)zZG^yV;kH+gLPcvl=$eDZ0!?}cs)0J z$9t=#<5a*8dFTrDy#0$G3X^;R2%=9sL*%!b@lXN^GOE$$!glyMgf7ov5}q z7=e+b-TH_tgz6Iw`8^_~5y1D48MtjH_z*fWa_+|kpSu2H&~mPcnBh)5qFn7DFZpRk z`^nD8&4vcvtxg2Kj~Ji-{uDn9;skKV#>3D5l8}MkWI&jKE`=ol#p{3nmgEK^ITl9c zc7|II?u5kPD+29SjEipq?s{`R@MSWZcfL2*F%k&~M@2*iDDb5Pe#$()9suw|VDi=X z5u^)8w<4w!=GtwQtvS-+7p4_J6ukx{Rl~(ng6dSEdY)*8`{7D0sBRcVfb)&#wZQ5K z&jfwm)*{Foq%}_iRB@Y8DRpje^R@u>`fh4jG=$3@urfO!dF3_Yh&95kHXwdsa|%=g zb=?U}-@H%8JGTLqWVbU_TlzSXRGdvN=3j<3|8hJun6L$=YId0} zza2pmgqu8-OCklZbi4rUOP(gGqdo0a(pXznq1S7tR1$Q2?y_+;#*EfGBbUPvX*{v9EX-_3B?r(f|2bD1fqJO}7GcMu%CXmZ#g30-Ud} z;mhD9Z?;ms2B8(tKB&0ws^1oKPcU#9P;dkO#fI_i^71l5%a^vJZg^|em|*y^cG5P& zpUjbW%iq)25G<356Azxyj+DdN8#6RaK((2AV2{NHW( zqal>#frX4_;9KH9C3U-l78!mX8FPEs!F&5zp_#8N2jbD zuSGD}l{4>di?JW5@gbQVBC%-OMBLKROQJkglI-n%ila63SBV2y-&4S|EgU?zx%JEp zh;OhqKaz&OA6e27vA%Ptw%;Dn#-Qi^|K|U1JLd+y=0=;Rq{M;kAMi`zv5IV|v|+&i E0`bdV&;S4c literal 70609 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 Date: Thu, 31 Oct 2024 09:54:50 +0100 Subject: [PATCH 5/6] Release 1.0.0 --- ext_emconf.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext_emconf.php b/ext_emconf.php index cde67a9..40d3ef0 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -17,5 +17,5 @@ ], ], 'state' => 'beta', - 'version' => '0.1.8', + 'version' => '1.0.0', ]; From 945c9f8770643dc9841eadf0a8a2a2b14f2096d6 Mon Sep 17 00:00:00 2001 From: Rafal Jania Date: Thu, 31 Oct 2024 10:04:21 +0100 Subject: [PATCH 6/6] csfix --- Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php b/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php index 9cc5110..e5ae211 100644 --- a/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php +++ b/Tests/Unit/ViewHelpers/ConfigurationViewHelperTest.php @@ -19,7 +19,7 @@ public function viewHelperReturnsProperConfiguration() { self::setupRequest(); $configurationViewHelper = new ConfigurationViewHelper(); - + self::assertSame([ 'siteKey' => '1234', 'verifyUrl' => 'https://verify,https://verify2',