diff --git a/directadmin-1.62.4.tar.gz b/directadmin-1.62.4.tar.gz index ac8d8fd..87b80aa 100644 Binary files a/directadmin-1.62.4.tar.gz and b/directadmin-1.62.4.tar.gz differ diff --git a/directadmin-1.62.4/da-popb4smtp b/directadmin-1.62.4/da-popb4smtp new file mode 100644 index 0000000..5b6e57c Binary files /dev/null and b/directadmin-1.62.4/da-popb4smtp differ diff --git a/directadmin-1.62.4/data/skins/enhanced/CHANGELOG b/directadmin-1.62.4/data/skins/enhanced/CHANGELOG new file mode 100644 index 0000000..356b487 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/CHANGELOG @@ -0,0 +1,2 @@ +See: +http://www.directadmin.com/search_versions.php?query=%28SKINS%29 diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup.html new file mode 100644 index 0000000..7418c0f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup.html @@ -0,0 +1,570 @@ +|LF_STANDARD| +|LF_BACKUPS| +|LF_SITE_BACKUP| +|?TREE=» Admin Backup/Transfer| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + + + +
+ +|*if CURRENT_BACKUPS| + +
Active Backups
+|CURRENT_BACKUPS| + +|*endif| + + + + + + + + + + + + + + + + + + + + + + +
|LANG_CREATE_BACKUP|
+
|LANG_STEP_1|: |LANG_WHO|
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + - |LANG_ALL_USERS| +
+ + + - |LANG_ALL_USERS| |LANG_EXCEPT_USERS| +
+ + + - |LANG_SELECTED_USERS|
+
+ - |LANG_BKP_ADD| |CREATOR_SELECT| & |LANG_BKP_USERS| +
+
+ |USERS| +
+
+ - |LANG_SKIP_SUSPENDED| +
+
+
|LANG_STEP_2|: |LANG_WHEN|
+ + + +
+ + + + + + + + + + + + + +
+ + + - |LANG_NOW| +
+ + + - |LANG_CRON_SCHED| +
+ + + + + + +
|LANG_MINUTE|: 0-59
|LANG_HOUR|: 0-23
|LANG_DAY_OF_MONTH|: 1-31
|LANG_MONTH|: 1-12
|LANG_DAY_OF_WEEK|: 0-7
+
+ + +
+
|LANG_STEP_3|: |LANG_WHERE|
+ + + +
+ + + + + + + + + + + + + + + + + + + + |*if ALLOW_BACKUP_ENCRYPTION="1"| + + + + + + + + + + |*endif| + +
- |LANG_LOCAL|:
+ + + - |LANG_FTP| +
+ + + + + + + +
|LANG_IP|:
|LANG_USERNAME|:
|LANG_PASSWORD|:
|LANG_REMOTE_PATH|:
|LANG_REMOTE_PORT|:
|LANG_SECURE_FTP|:|FTP_SECURE_SELECT|
+
  + - |LANG_APPEND_TO_PATH| |PATH_APPEND| +
+        + |LANG_APPEND|: / + (?)  +
+ |LANG_BACKUP_ENCRYPTION| +
+ + + + + +
|LANG_PASSWORD|: + +
+
+
+
|LANG_STEP_4|: |LANG_WHAT|
+ + + +
+ + + + + + + + + + + + + + +
- |LANG_ALL_DATA|
- |LANG_SELECTED_DATA|               |LANG_SELECT|: |LANG_NONE| or |LANG_ALL|
+ + + + + + + + + + + + + + + + + + + + + + +
|LANG_OPT_DOMAINS_DIR||LANG_OPT_EMAIL_ACCOUNTS|
|LANG_OPT_SUB_LISTS||LANG_OPT_EMAIL_DATA|
|LANG_OPT_FTP_ACCOUNTS||LANG_OPT_EMAIL_SETTINGS|
|LANG_OPT_FTP_SETTINGS||LANG_OPT_VACATION_MESSAGES|
|LANG_OPT_DATABASES||LANG_OPT_AUTORESPONDERS|
|LANG_OPT_DATABASE_DATA||LANG_OPT_MAILING_LISTS|
 |LANG_OPT_FORWARDERS|
+
+
|LANG_STEP_5|:
+ + + + +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_RESTORE_BACKUP|
+
|LANG_STEP_1|: |LANG_FROM_WHERE|
+ + + +
+ + + + + + + + + + + + + +
- |LANG_LOCAL|:
+ + + - |LANG_FTP| +
+ + + + + + + +
|LANG_IP|:
|LANG_USERNAME|:
|LANG_PASSWORD|:
|LANG_REMOTE_PATH|:
|LANG_REMOTE_PORT|:
|LANG_SECURE_FTP|:|FTP_SECURE_SELECT|
+ +
+
+
|LANG_STEP_2|: |LANG_SELECT_IP|
+ + + +

+ + + + + + + + + + + + + + + + |*if CREATE_USER_HOME_OVERRIDE| + + + + + |*endif| + +
- |LANG_USE_STORED_IP|
- |LANG_USE_IP_FROM_LIST|:
|IPLIST|
+ - |LANG_RESTORE_TO_PARTITION|: + |CREATE_USER_HOME_OVERRIDE| +
+
+ |LANG_NOTE|

+ |LANG_NOTE2| + +
+
|LANG_STEP_3|: |LANG_SELECT_FILES|
+ + + +

+ +
|LANG_LOCATION|: |FILES_LOCATION|

+ +
+ |FILES| +
+ + |*if ALLOW_BACKUP_ENCRYPTION="1"| + + + + + + + +
+ |LANG_BACKUP_DECRYPTION| +
+ + + + + +
|LANG_PASSWORD|: + +
+
+ |*endif| + +
|LANG_STEP_4|:
+ + + + + + + +
+ + + + + + + + +
+ + + + +
|LANG_CURRENT_BACKUP_CRONS|
|CRONS|
+ + + + +

+ +
+ + + + +
+ + + + +
|LANG_BACKUP_SETTINGS|
+ + + + + + + + + + + + + + + + + + +|*if CLUSTER_ENABLED="1"| + + + + +|*endif| + +
 
+ + + |LANG_SEND_MESSAGE| +
+ + + |LANG_LOCAL_NS| +
+ + + |LANG_RESTORE_SPF| +
+ + + |LANG_CONFIRM_WITH_DOMAINOWNERS| +
+
+ + + + + +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup_modify.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup_modify.html new file mode 100644 index 0000000..a47e607 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup_modify.html @@ -0,0 +1,298 @@ +|LF_STANDARD| +|LF_BACKUPS| +|LF_SITE_BACKUP| +|?TREE=» Admin Backup/Transfer » `LANG_MODIFY_BACKUP`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_MODIFY_BACKUP|
+
|LANG_STEP_1|: |LANG_WHO|
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + - |LANG_ALL_USERS| +
+ + + - |LANG_ALL_USERS| |LANG_EXCEPT_USERS| +
+ + + - |LANG_SELECTED_USERS|
+
+ - Add |CREATOR_SELECT| & Users +
+
+ |USERS| +
+
+ - |LANG_SKIP_SUSPENDED| +
+
+
|LANG_STEP_2|: |LANG_WHEN|
+ + + +
+ + + + + + + + + +
+ + + - |LANG_CRON_SCHED| +
+ + + + + + +
|LANG_MINUTE|: 0-59
|LANG_HOUR|: 0-23
|LANG_DAY_OF_MONTH|: 1-31
|LANG_MONTH|: 1-12
|LANG_DAY_OF_WEEK|: 0-7
+
+ + +
+
|LANG_STEP_3|: |LANG_WHERE|
+ + + +
+ + + + + + + + + + + + + + + + + + + + |*if ALLOW_BACKUP_ENCRYPTION="1"| + + + + + + + + + + |*endif| + +
- |LANG_LOCAL|:
+ + + - |LANG_FTP| +
+ + + + + + + +
|LANG_IP|:
|LANG_USERNAME|:
|LANG_PASSWORD|:
|LANG_REMOTE_PATH|:
|LANG_REMOTE_PORT|:
|LANG_SECURE_FTP|:|FTP_SECURE_SELECT|
+
  + - |LANG_APPEND_TO_PATH| |PATH_APPEND| +
+        + |LANG_APPEND|: / + (?)  +
+ |LANG_BACKUP_ENCRYPTION| +
+ + + + + +
|LANG_PASSWORD|: + +
+
+
+
|LANG_STEP_4|: |LANG_WHAT|
+ + + +
+ + + + + + + + + + + + + + +
- |LANG_ALL_DATA|
- |LANG_SELECTED_DATA|               |LANG_SELECT|: |LANG_NONE| or |LANG_ALL|
+ + + + + + + + + + + + + + + + + + + + + + +
|LANG_OPT_DOMAINS_DIR||LANG_OPT_EMAIL_ACCOUNTS|
|LANG_OPT_SUB_LISTS||LANG_OPT_EMAIL_DATA|
|LANG_OPT_FTP_ACCOUNTS||LANG_OPT_EMAIL_SETTINGS|
|LANG_OPT_FTP_SETTINGS||LANG_OPT_VACATION_MESSAGES|
|LANG_OPT_DATABASES||LANG_OPT_AUTORESPONDERS|
|LANG_OPT_DATABASE_DATA||LANG_OPT_MAILING_LISTS|
 |LANG_OPT_FORWARDERS|
+
+
|LANG_STEP_5|:
+ + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup_monitor.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup_monitor.html new file mode 100644 index 0000000..21fe913 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_backup_monitor.html @@ -0,0 +1,182 @@ +|LF_STANDARD| +|LF_BACKUPS| +|LF_SITE_BACKUP| +|?TREE=» Admin Backup/Transfer » Backup Monitor| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + + + +
+ + + + + + + + + + +
Backup Monitor
+ |BACKUP_INFO| +
+ |DYNAMIC_TABLE| +
+ + + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_cron_jobs.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_cron_jobs.html new file mode 100644 index 0000000..94e86d0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_cron_jobs.html @@ -0,0 +1,9 @@ +|?TREE=» `LANG_ADMIN_CRON_JOBS`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +|LANG_ADMIN_CRON_JOBS| + +|CRONJOBS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_settings.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_settings.html new file mode 100644 index 0000000..fb78eaf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_settings.html @@ -0,0 +1,405 @@ +|LF_STANDARD| +|?TREE=» `LANG_ADMIN_SETTINGS`| +|?HELP_SECTION=`ADMIN_HELPER`/settings.html| +|HTM_ADMIN_TOP| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_ADMIN_SETTINGS|
+ + + |LANG_ADMIN_NOTIFY| +
+ + + |LANG_OVERSELL| +
+ + + |LANG_SUSPEND_RES| +
+ + + |LANG_RESELLER_BACKUP| +
+ + + |LANG_USE_UPDATER| +
+ + + |LANG_DEMO_USER|: demo_user |LANG_PASSWORD| : demo +
+ + + |LANG_DEMO_RESELLER|: demo_reseller |LANG_PASSWORD| : demo +
+ + + |LANG_DEMO_ADMIN|: demo_admin |LANG_PASSWORD| : demo +
+   + + |LANG_USERS_LESS_THAN| |LANG_TO_CREATE_BACKUPS| +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|*if HAVE_BF_UNBLOCK_AFTER_TIME="1"| + + + + +|*endif| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|*if USE_DOVECOT="yes"| + + + + +|*endif| + + + + + + + +
|LANG_SERVER_SETTINGS|
+ |LANG_SERVER_HOSTNAME| (?) + + +
+ |LANG_NS1| + + +
+ |LANG_NS2| + + +
+ |LANG_TIMEOUT| + + +
+ |LANG_SESSION_TIME| + + +
+ |LANG_MAX_UPLOAD| + + (?) +
+ |LANG_KEEP_LOGS| + + +
+ |LANG_MAX_USERNAME_LENGTH| + + +
+ |LANG_SKIN_DOC_ROOT| + + +
+ |LANG_WARN_ADMINS_AT| |LANG_PERC_PARTITION_USAGE| + + |LANG_CHECK_EVERY|:  |LANG_MINUTE|  |LANG_DAY|  |LANG_NEVER| +
+ |LANG_TIMEZONE| + + |TIMEZONE_SELECT| +
+ |LANG_SECURITY| +
+ |LANG_LOST_PASSWORD_RECOVERY| + + |LANG_YES|   |LANG_NO| +
+ |LANG_BLACKLIST_IP| + + + + + + + + + + +
|LANG_BLACKLIST_AFTER| |LANG_LOGIN_ATTEMPTS| (?)
|LANG_BRUTE_OR||LANG_BLACKLIST_AFTER| |LANG_UNAUTH_CONN| (?)
+
+ |LANG_PREVENT_LOCAL_BLACKLIST| + + +
+ |LANG_TIME_BEFORE_RESET| + + |LANG_SECONDS_AFTER_LAST|   (?) +
+ |LANG_REMOVE_IP_AFTER| + + |LANG_REMOVE_MINUTES| +
+ |LANG_PARSE_FOR_BFA| + + |LANG_YES|   |LANG_NO| +   (?) +   View Log +
+ |LANG_NOTIFY_AFTER_IP| + + login failures on any account. +
+ |LANG_NOTIFY_ADMIN_USER| + + login failures from any IP. +
+ |LANG_BF_REMOVE_IP_AFTER| + + |LANG_BF_REMOTE_IP_MINUTE| +
+ |LANG_RESET_COUNT_AFTER| + + hours after last attempt. +
+ |LANG_CLEAR_BF_FROM_LOG| + + days after entry was made. +
+ |LANG_SCAN_APACHE_LOGS| + + |LANG_ALL_LOGS|   + |LANG_MANUAL|   + |LANG_NO| +   (?) +
+ |LANG_DIFF_PASS_ENF| + + |LANG_YES|   |LANG_NO|   (?) +
+ |LANG_CHECK_SUB_CREATION| + + |LANG_YES|   |LANG_NO|   (?) +
+ |LANG_EMAIL| +
+ |LANG_EMAIL_LIMIT| + +   (?) +
+ |LANG_PER_EMAIL_LIMIT| + +   (?) +
+ |LANG_USER_CAN_SET_PER_EMAIL_LIMIT| + + |LANG_YES|   |LANG_NO|   (?) +
+ |LANG_MAX_PER_EMAIL| + +   -1=|PER_EMAIL_LIMIT|, 0=|LANG_UNLIMITED|   (?) +
+ |LANG_RBL_BLOCKING| + + |LANG_YES|   |LANG_NO|   (?) +
+ |LANG_PURGE_SPAMBOX| + + |LANG_PURGE_AFTER| |LANG_PURGE_DAYS| +
+ +
+ + +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_ssl.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_ssl.html new file mode 100644 index 0000000..6add2a9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_ssl.html @@ -0,0 +1,7 @@ +|?TREE=» Admin SSL| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +|SSL_DOMAINS| + +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/admin_stats.html b/directadmin-1.62.4/data/skins/enhanced/admin/admin_stats.html new file mode 100644 index 0000000..e4074e8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/admin_stats.html @@ -0,0 +1,15 @@ +|?TREE=» `LANG_SERVER_STATS`| +|?HELP_SECTION=`ADMIN_HELPER`/ausage.html| +|HTM_ADMIN_TOP| +|LANG_SERVER_STATS|

+|STATS| + + + + + +
|LANG_STATS_FOR| |DEVICE|
|LANG_REC||RX|
|LANG_TX||TX|
+ +|DF| + +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/brute_force_ip_info.html b/directadmin-1.62.4/data/skins/enhanced/admin/brute_force_ip_info.html new file mode 100644 index 0000000..4d0c2cc --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/brute_force_ip_info.html @@ -0,0 +1,29 @@ +|LF_STANDARD| +|?TREE=» `LANG_BRUTE_FORCE_MONITOR`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + +|LANG_IP_INFO| |LANG_ON| |BLOCK_IP|
+ + +

+ +|*if HAVE_BLOCK_SH="1"| + + + + + + + + +
|LANG_SCRIPT_FOUND|
+ +
+|*else| +|LANG_NO_SCRIPT_FOUND| +http://www.directadmin.com/features.php?id=1229 +|*endif| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/brute_force_monitor.html b/directadmin-1.62.4/data/skins/enhanced/admin/brute_force_monitor.html new file mode 100644 index 0000000..25136a4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/brute_force_monitor.html @@ -0,0 +1,143 @@ +|*if HAVE_SHOW_BLOCKED_IPS_SH="1"| +|?BODY=onLoad="sizeTheDiv();"| +|*endif| +|LF_STANDARD| +|?TREE=» `LANG_BRUTE_FORCE_MONITOR`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +|*if LOG_SCANNING!="ON"| +|LANG_LOG_SCANNING_OFF| +

+|*endif| + +|LANG_FAILED_LOGINS| - |LANG_CLICK_IP_TO_FILTER| + + +
+ + +|?HEIGHT=150px| +|*if NUM_IPS>"4"| +|?HEIGHT=250px| +|*endif| + + + + + +
+
+ + + +
+ |IPLOGINFAILURES| +   + |USERLOGINFAILURES| +
+
+
+ +|*if HAVE_BLOCK_SH="1"| + +        |         +|*endif| +? + |LANG_COMMENTS|: +
+|*if sort1dir| +|LANG_CLEAR_SEARCH_FILTER| +|*endif| + + + +|LOGINFAILURES| + + +
+ +|LANG_BLE_IS| |BRUTE_LOG_SIZE|.    +|LANG_ONLY_READ| |LANG_BYTES_FROM_THE_END|
+
+
+ +
+|LANG_SKIP_LIST| +|SKIPLIST| + + +|*if HAVE_SHOW_BLOCKED_IPS_SH="1"| +
+
+ +|LANG_BLOCKED_IPS| +
+|BLOCKED_IPS| +
+|*endif| +|*if HAVE_UNBLOCK_SH="1"| + + +
+
+|*endif| +|*if HAVE_SHOW_BLOCKED_IPS_SH="1"| + +|*endif| +
+
+
+|CLEAR_MESSAGES_TABLE| +
+
+ + + +
+|*if IP_LIMIT="0"| +|LANG_IP_ZERO| +|*else| +|LANG_IP_VALUE| +|*endif|
+ +|*if USER_LIMIT="0"| +|LANG_USER_ZERO| +|*else| +|LANG_USER_VALUE| +|*endif|
+ + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/content_main.html b/directadmin-1.62.4/data/skins/enhanced/admin/content_main.html new file mode 100644 index 0000000..4ec53eb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/content_main.html @@ -0,0 +1,192 @@ +|LF_STANDARD| + +|*if AJAX="1"| + +|*endif| + + + + + + + + + + + +
+|LANG_SEARCH|: + + +
+ + + + + + + + +
+ + |LANG_CREATE_ADMIN|
+ |LANG_LIST_ADMINS|
+ |LANG_CHANGE_PASS|
+ |LANG_MANAGE_TICKETS||*if NEWTICKETS!="0"||NEWTICKETS||*endif| +
+ |LANG_CREATE_RESELLER|
+ |LANG_LIST_RESELLERS|
+ |LANG_RESELLER_PACKAGES|
+ |LANG_SHOW_ALL_USERS| +
+
+ + + + + + +
+ |LANG_IP_MANAGEMENT|
+ |LANG_DNS_ADMIN|
+ |LANG_ADMIN_BACKUPS|
+ |LANG_MULTI_SERVER|
+ |LANG_MAIL_Q_ADMIN|
+ |LANG_MOVE_USERS|
+
+ |LANG_SYSTEM_INFO|
+ |LANG_SERVICE_MONITOR|
+ |LANG_SYS_BACKUP|
+ |LANG_LOG_VIEWER|
+ |LANG_FILE_EDITOR|
+|?PMSORT=-9||*if OS_TYPE="FreeBSD"||?PMSORT=-10||*endif| + |LANG_PROCESS_MONITOR|
+
+ + +
+ + + + + + +
+ |LANG_COMPLETE_USAGE_STATS|
+ |LANG_CUSTOM_HTTPD|
+ |LANG_PHP_SAFEMODE|
+ |LANG_BRUTE_FORCE_MONITOR|
+|$/usr/local/bin/php + 1) +{ +echo << +|PLUGIN_2_ADMIN_TXT|
+|PLUGIN_4_ADMIN_TXT|
+|PLUGIN_6_ADMIN_TXT|
+|PLUGIN_8_ADMIN_TXT|
+|PLUGIN_10_ADMIN_TXT|
+|PLUGIN_12_ADMIN_TXT| +END; +} +?> +DONE| +
+ |LANG_ADMIN_SETTINGS|
+ |LANG_LICENSE_UPDATES|
+ |LANG_PLUGIN_MANAGER|
+ |LANG_ADMIN_CRON_JOBS|
+|$/usr/local/bin/php + 1) +{ +echo << +|PLUGIN_3_ADMIN_TXT|
+|PLUGIN_5_ADMIN_TXT|
+|PLUGIN_7_ADMIN_TXT|
+|PLUGIN_9_ADMIN_TXT|
+|PLUGIN_11_ADMIN_TXT|
+|PLUGIN_13_ADMIN_TXT| +END; +} +?> +DONE| +
+ +|*if AJAX="1"| + +|*endif| + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/create_admin.html b/directadmin-1.62.4/data/skins/enhanced/admin/create_admin.html new file mode 100644 index 0000000..2f85957 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/create_admin.html @@ -0,0 +1,62 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_ADMINS` » `LANG_CREATE_ADMIN`| +|?HELP_SECTION=`ADMIN_HELPER`/createa.html| +|HTM_ADMIN_TOP| + +|?CHECK_NAME=checkName()| +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| + +|*if AJAX="1"| + |?CHECK_NAME=ajax_checkName()| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + + +|*endif| + + + +
+ + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + +
|LANG_CREATE_ADMIN_ACCOUNT|
|LANG_USERNAME|:
|LANG_EMAIL|:
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
|LANG_EMAIL_NOTIFICATION|: |LANG_EDIT_ADMIN_MESSAGE|
+ +
+
+|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/create_customized_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/create_customized_reseller.html new file mode 100644 index 0000000..7dea4c5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/create_customized_reseller.html @@ -0,0 +1,122 @@ +|LF_CREATE| +|LF_STANDARD| +|?TREE=» `LANG_SHOW_RESELLER` » `LANG_CREATE_RES` » `LANG_CUSTOMIZE` `NEWUSERNAME`| +|?HELP_SECTION=`ADMIN_HELPER`/creater.html| +|HTM_ADMIN_TOP| + + + + + + + + + + + + + + + + + +|*if HAVE_INODE="yes"| + +|*endif| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| +|*if CUSTOM_ITEM_6| + +|*endif| +|*if CUSTOM_ITEM_7| + +|*endif| +|*if CUSTOM_ITEM_8| + +|*endif| + + + + +
|LANG_CREATE_RES|
|LANG_USERNAME|:
|LANG_EMAIL|:
|LANG_ENTER_PASS|
|LANG_RE-ENTER_PASS|:
|LANG_DOMAIN|:
|LANG_BANDWIDTH||LANG_UNLIMITED|
|LANG_DISK_SPACE||LANG_UNLIMITED|
|LANG_INODES||LANG_UNLIMITED|
|LANG_DOMAINS||LANG_UNLIMITED|
|LANG_SUBDOMAINS||LANG_UNLIMITED|
|LANG_USER_ACCOUNTS||LANG_UNLIMITED|
|LANG_IPS|
|LANG_EMAIL_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_FORWARDERS||LANG_UNLIMITED|
|LANG_MAILING_LISTS||LANG_UNLIMITED|
|LANG_AUTO_RESPONDERS||LANG_UNLIMITED|
|LANG_MYSQL_DBS||LANG_UNLIMITED|
|LANG_DOMAIN_PTRS||LANG_UNLIMITED|
|LANG_FTP_ACCOUNTS||LANG_UNLIMITED|
|LANG_ANON_FTP_ACCOUNTS|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_SPAM|
|LANG_CATCHALL|
|LANG_SSL| |LANG_ACCESS|
|LANG_SSH| |LANG_ACCESS|
|LANG_SSH_FOR_USERS|
|LANG_ALLOW_OVERSELLING|
|LANG_CRON_JOBS|
|LANG_SYSTEM_INFO|
|LANG_LOGIN_KEYS|
|LANG_DNS_CONTROL|
|LANG_PERSONAL_DNS||LANG_NONE|
 |LANG_TWO_IPS|
 |LANG_THREE_IPS|
|LANG_SERVER_IP|
|LANG_DOMAIN| |LANG_IP|: + +
|LANG_EMAIL_NOTIFY|: |LANG_EDIT_RES_MESS|
|CUSTOM_ITEM_1_STR||CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR||CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR||CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR||CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR||CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
|CUSTOM_ITEM_6_STR||CUSTOM_ITEM_6||CUSTOM_ITEM_6_DESC|
|CUSTOM_ITEM_7_STR||CUSTOM_ITEM_7||CUSTOM_ITEM_7_DESC|
|CUSTOM_ITEM_8_STR||CUSTOM_ITEM_8||CUSTOM_ITEM_8_DESC|
+ +
+ +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/create_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/create_reseller.html new file mode 100644 index 0000000..addde2c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/create_reseller.html @@ -0,0 +1,94 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_RESELLER` » `LANG_CREATE_RES`| +|?HELP_SECTION=`ADMIN_HELPER`/creater.html| +|HTM_ADMIN_TOP| + +|?CHECK_NAME=checkName()| +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|?CHECK_DOMAIN=checkDomain()| + +|*if AJAX="1"| + |?CHECK_NAME=ajax_checkName()| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + |?CHECK_DOMAIN=ajax_checkDomain()| + + +|*endif| + + + + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + + + + + +
|LANG_CREATE_RES|
|LANG_USERNAME|:
|LANG_EMAIL|:
|LANG_ENTER_PASS|
|LANG_RE-ENTER_PASS|:
|LANG_DOMAIN|:
|LANG_USE_RES_PACK|:|PACKAGES|    |FREEIPS| |LANG_FREE_IPS|
|LANG_ACCOUNT_IP|: + +
|LANG_EMAIL_NOTIFY|: |LANG_EDIT_RES_MESS|
+ + +
+ +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd.html b/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd.html new file mode 100644 index 0000000..41c6a3c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd.html @@ -0,0 +1,31 @@ +|LF_CUST_HTTPD| +|?TREE=» `LANG_CUSTOM_HTTPD`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_ADMIN_TOP| + +|LANG_CUSTOM_HTTPD|
+ +
+ + + + +
+|LANG_SHOW_DOMAINS_THAT| + + + + + +
+ + +|DOMAINS| + +|HTM_ADMIN_BOTTOM| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd_domain.html b/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd_domain.html new file mode 100644 index 0000000..d50162c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd_domain.html @@ -0,0 +1,337 @@ +|LF_STANDARD| +|?TREE=» `LANG_CUST_HTTPD_CONF` » `domain`| +|?HELP_SECTION=`ADMIN_HELPER`| + +|HTM_HEADER| +|HTM_HEADER_WIDE| + +|*if CONFIG_ERROR="1"| +
+

|LANG_CONFIG_ERROR|


+
+|*endif| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|*if HAVE_NGINX="yes"||LANG_NGINX_CUST_FOR||*else||LANG_CUST_FOR||*endif| |domain|
|*if HAVE_NGINX="yes"||LANG_NGINX_WARNING||*else||LANG_WARNING||*endif| + |*if CUSTOM_PRE| +
+ |*endif| + +
+ + |*if CUSTOM_POST| +
+ |*endif| +
+ |LANG_ADDITIONAL_CUSTOM_TOKENS|
+ |LANG_AVAIL_TOKENS|
+ |LANG_TEMPLATES|
+ + + + + + + + +
+ |*if HAVE_NGINX="yes"||LANG_NGINX_CONTENTS_FOR||*else||LANG_HTTPD_CONTENTS_FOR||*endif| |domain| +
+ +
+ + + + + + + + +
+ |LANG_CONFIG_CHECK| +
+ +
+ +|HTM_FOOTER_WIDE| +|HTM_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd_fpm.html b/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd_fpm.html new file mode 100644 index 0000000..62dc19d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/custom_httpd_fpm.html @@ -0,0 +1,94 @@ +|LF_STANDARD| +|?TREE=»
`LANG_CUST_HTTPD_CONF` » php-fpm `php-fpm`| +|?HELP_SECTION=`ADMIN_HELPER`| + +|HTM_HEADER| +|HTM_HEADER_WIDE| + +|*if CONFIG_ERROR="1"| +
+

|LANG_CONFIG_ERROR|


+
+|*endif| + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_CUST_FOR| |user| php-fpm |php-fpm|
|LANG_INSTRUCTIONS|
+ php-fpm |LANG_GLOBAL| |CUSTOM1|
+ + +

+ + php-fpm |LANG_GLOBAL| |CUSTOM2|
+ + +

+ + php-fpm |php-fpm| |CUSTOM1|
+ + +

+ + php-fpm |php-fpm| |CUSTOM2|
+ + +

+
+ |LANG_AVAIL_TOKENS|
+ |PHP_FPM_TEMPLATE_NAME| |*if PHP_FPM_IS_CUSTOM_TEMPLATE="1"||LANG_CUSTOM_TEMPLATE||*endif|
+ |LANG_SAVE_ALL_PHP_VERSIONS| + +
+ + + + + + + + +
+ |FPM_CONFIG_FILE| +
+ +
+ + + + + + + + +
+ |LANG_PHP_FPM_CONFIG_CHECK| +
+ +
+ +|HTM_FOOTER_WIDE| +|HTM_FOOTER| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/delete_admin.html b/directadmin-1.62.4/data/skins/enhanced/admin/delete_admin.html new file mode 100644 index 0000000..840ff8f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/delete_admin.html @@ -0,0 +1,17 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_ADMINS` » `LANG_DELETE_ADMIN`| +|?HELP_SECTION=`ADMIN_HELPER`/createa.html| +|HTM_ADMIN_TOP| +
+ + + + + + + +
|LANG_DELETE_ADMIN|
|LANG_USERNAME|:
+ +
+
+|HTM_ADMIN_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/delete_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/delete_reseller.html new file mode 100644 index 0000000..b16d20f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/delete_reseller.html @@ -0,0 +1,17 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_RES` » `LANG_DELETE_RES`| +|?HELP_SECTION=`ADMIN_HELPER`/listr.html| +|HTM_ADMIN_TOP| +
+ + + + + + + +
|LANG_DELETE_RES|
|LANG_USERNAME|:
+ +
+
+|HTM_ADMIN_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/dns_admin.html b/directadmin-1.62.4/data/skins/enhanced/admin/dns_admin.html new file mode 100644 index 0000000..4e47a85 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/dns_admin.html @@ -0,0 +1,42 @@ +|LF_STANDARD| +|?TREE=» `LANG_DNS_ADMIN`| +|?HELP_SECTION=`ADMIN_HELPER`/dnsadmin.html| +|HTM_ADMIN_TOP| + +|LANG_SELECT_DNS|
+ +
+ + + + +
+|LANG_SHOW_DOMAINS_THAT| + + + + + +
+ +|TABLE| + + + + + + + + + + + +
|LANG_ADD_ZONE|
|LANG_DOMAIN_NAME|
|LANG_IP_ADDRESS|
|LANG_NAME_SERVER_1|
|LANG_NAME_SERVER_2|
|LANG_REVERSE|   
+ + +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/dns_admin_control.html b/directadmin-1.62.4/data/skins/enhanced/admin/dns_admin_control.html new file mode 100644 index 0000000..ad849c1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/dns_admin_control.html @@ -0,0 +1,261 @@ +|LF_STANDARD| +|?TREE=» `LANG_DNS_ADMIN` » `LANG_ENTRY_FOR` `domain`| +|?HELP_SECTION=`ADMIN_HELPER`/dnsadmin.html| +|HTM_HEADER_FULL| + + + + + + + +|?TTL_INPUT=| +|?COLSPAN=4| +|?BLANK_TD=| + +|?SET_STATIC_TTL_INPUT=yes| + +|*if DNS_TTL="yes"| +|?COLSPAN=5| +|?TTL_INPUT=| +|?BLANK_TD=| + +|*else| + |?SET_STATIC_TTL_INPUT=no| +|*endif| +|*if ALLOW_TTL_OVERRIDE!="yes"| + |?SET_STATIC_TTL_INPUT=no| +|*endif| +|*if TTL_CUSTOM_SELECTED!="checked"| + |?SET_STATIC_TTL_INPUT=no| +|*endif| +|*if SET_STATIC_TTL_INPUT="yes"| + |?TTL_INPUT=| +|*endif| + + + + + +|DNS_ROWS| + + + + +
|LANG_NAME||LANG_TTL|`TTL_VALUE`|LANG_TYPE||LANG_VALUE||LANG_SELECT|
+ + + +
+
+ + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + |TTL_INPUT| + + + + + + +|*if DNS_SPF="yes"| + + + + + + + |TTL_INPUT| + + + + + +|*endif| + +|*if DNS_TLSA="yes"| + + + + + + + |TTL_INPUT| + + + + + +|*endif| +|*if DNS_CAA="yes"| + + + + + + + |TTL_INPUT| + + + + + +|*endif| + + + +|*if DNS_DS="yes"| + + + + + + + |TTL_INPUT| + + + + + +|*endif| + +|*if ALLOW_TTL_OVERRIDE="yes"| + + + + + + + + + + |BLANK_TD| + + +|*endif| + +
|LANG_ADD_DOMAIN_RECS|
« |LANG_TRUE_VALUES| »
A
NS
MX + + |*if HAVE_FULL_MX_RECORDS="1"| + + |*endif| +
CNAME
PTR
TXT
AAAA
SRV
SPF
TLSA
CAA
DS
|LANG_OVERRIDE_TTL_VAL|TTL  |LANG_USE_DEFAULT|
+ +|DNSSEC_TABLE| + +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/file_editor.html b/directadmin-1.62.4/data/skins/enhanced/admin/file_editor.html new file mode 100644 index 0000000..44d9a9f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/file_editor.html @@ -0,0 +1,45 @@ +|LF_STANDARD| +|?TREE=» `LANG_FILE_EDITOR`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +|*if SAVED="yes"| +
+
|file| |LANG_FILE_SAVED|
+
+|*endif| + + + + + + + + + + + + +
|LANG_FILE_EDITOR|
|LANG_SELECT_FILE_TO_EDIT||FILES|
+ +
+ +|*if REQUIRE_ROOT_AUTH="yes"| + +|LANG_FILE_IS_SECURE|:
+|*endif| + +|*if file| +|file| +|*endif| + +|*if REQUIRE_ROOT_AUTH!="yes"| + +|*endif| + +
+ + +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/index.html b/directadmin-1.62.4/data/skins/enhanced/admin/index.html new file mode 100644 index 0000000..0b20d7e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/index.html @@ -0,0 +1,7 @@ +|?TREE=»| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_ADMIN_TOP| + + |HTM_ADMIN_CONTENT| + +|HTM_ADMIN_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/ip_manager.html b/directadmin-1.62.4/data/skins/enhanced/admin/ip_manager.html new file mode 100644 index 0000000..c829c61 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/ip_manager.html @@ -0,0 +1,19 @@ +|LF_STANDARD| +|?TREE=» `LANG_IP_MANAGER`| +|?HELP_SECTION=`ADMIN_HELPER`/ipman.html| +|HTM_HEADER_FULL| +|TEXT|
+ + + + + + + + + + +
|LANG_ADD_IP|
|LANG_IP|
|LANG_NETMASK||*if HAVE_IPV6="yes"| |LANG_IPV6_MASK||*endif|
|LANG_ADD_TO_DEVICE|
+ |TABLE| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/ip_manager_details.html b/directadmin-1.62.4/data/skins/enhanced/admin/ip_manager_details.html new file mode 100644 index 0000000..756e4cb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/ip_manager_details.html @@ -0,0 +1,39 @@ +|LF_STANDARD| +|LF_IP_MANAGER| +|?TREE=» `LANG_IP_MANAGER`| +|?HELP_SECTION=`ADMIN_HELPER`/ipman.html| +|HTM_HEADER_FULL| + +
+ + + + + + + + +
|LANG_DETAILS_FOR| |ip|
|LANG_STATUS||status|
|LANG_NETMASK||netmask|
|LANG_RESELLER||reseller|
|LANG_USER_VALUE||value|
|LANG_NAMESERVER||ns|
+ +|IPS_TO_LINK| +
+|LINKED_IPS| + + +

+|LANG_IP_PURPOSE|
+
+|LANG_LAN_EXPLANATION|
+
+|LANG_IPV6_EXPLANATION|
+
+|LANG_LINK_OPTIONS_EXPLANATION|
+
+|LANG_MULTI_IP_RELATION|
+
+|LANG_LINK_NOT_RECURSIVE|
+
+|LANG_APPLY_TO_DOMAINS| + + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/license.html b/directadmin-1.62.4/data/skins/enhanced/admin/license.html new file mode 100644 index 0000000..22b2c7f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/license.html @@ -0,0 +1,57 @@ +|?TREE=» `LANG_LICE_UP`| +|?HELP_SECTION=`ADMIN_HELPER`/license.html| +|HTM_ADMIN_TOP| + + + + + + + +|*if nusers>"0"| + +|*endif| +|*if vdomains>"0"| + +|*endif| +|*if internal="Y"| + +|*endif| +|*if internal="N"| + +|*endif| + + + + +|*if portioned="Y"| + +|*endif| + + + + +|*if da_needs_restart="yes"| + + + + +|*if eol| + +|*endif| + + + + + + +
|LANG_LICE_VALS|
|LANG_LICE_IP||ip|
|LANG_LICE_NAME||name|
|LANG_LID||lid|
|LANG_CID||uid|
|LANG_ACCOUNT_LIMIT||CURRENT_ACCOUNTS| / |nusers|
|LANG_DOMAIN_LIMIT||CURRENT_DOMAINS| / |vdomains|
|LANG_LTYPE||LANG_INTERNAL|
|LANG_LTYPE||LANG_EXTERNAL|
|LANG_DA_LICENSE| |LANG_CHECK_IF_SOFTWARE_VALID|
|LANG_VALID_AFTER||start_string|
|LANG_VALID_UNTIL||expiry_string|
|LANG_PORTIONED_LICENSE||LANG_PORTIONED_EXPLANATION| |true_expiry_string|
|LANG_CURRENT_TIME||TIME|
|LANG_TIME_REM||remaining|
|LANG_LAST_UP||license_change|
*** |LANG_DA_NOT_RESTARTED| ***
+
+ + + +
+|*endif| + +
|LANG_UP_LICE|
|LANG_DA_VALS|
|LANG_COMPILED_FOR||OS_NAME|
|LANG_END_OF_LIFE||eol|
|LANG_COMPILE_DATE||compile_time|
|LANG_SERVER_VER||version|
|LANG_CURRENT_VER||currentversion|
|LANG_LAST_UP||software_change|
|LANG_LAST_RESTART||startup_time|
|LANG_UPDATE_DA|
+|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/log_viewer.html b/directadmin-1.62.4/data/skins/enhanced/admin/log_viewer.html new file mode 100644 index 0000000..ac008bf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/log_viewer.html @@ -0,0 +1,23 @@ +|LF_STANDARD| +|?TREE=» `LANG_LOG_VIEWER`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + + + + + + + + + +
|LANG_SELECT_LOG|
|LANG_LOG_FILE||FILES|
|LANG_NUM_LINES| |LANG_ZERO_FOR_ENTIRE|
|LANG_OUTPUT_TYPE||LANG_TEXT_AREA|
+ |LANG_RAW|
|LANG_GREP| |LANG_INVERT|  |LANG_IGNORE_CASE|        |LANG_USE_PIPE_FOR_MULTI| (?)
+
+
+ +
+ +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/mail_id_info.html b/directadmin-1.62.4/data/skins/enhanced/admin/mail_id_info.html new file mode 100644 index 0000000..12c4102 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/mail_id_info.html @@ -0,0 +1,26 @@ +|LF_STANDARD| +|LF_MAIL_QUEUE| +|?TREE=» `LANG_MAIL_QUEUE_ADMIN` » `LANG_VIEW` `id`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +
+ + + + + + + +
+ + + + + + + + +
|LANG_EMAIL_HEADERS|
|LANG_EMAIL_BODY|
|LANG_LOG|
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/mail_queue.html b/directadmin-1.62.4/data/skins/enhanced/admin/mail_queue.html new file mode 100644 index 0000000..a16d329 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/mail_queue.html @@ -0,0 +1,12 @@ +|LF_STANDARD| +|?TREE=» `LANG_MAIL_QUEUE_ADMIN`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +|TABLE| + +
+
|LANG_REFRESH|
+ +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/manage_packages_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/manage_packages_reseller.html new file mode 100644 index 0000000..0e6d24f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/manage_packages_reseller.html @@ -0,0 +1,12 @@ +|?TREE=» `LANG_MANAGE_RES_PACK`| +|?HELP_SECTION=`ADMIN_HELPER`/rpackages.html| +|HTM_ADMIN_TOP| + + |LANG_MANAGE_RES_PACK|
+
+ |LANG_ADD_PACK|
+ |PACKAGES| + +
+|HTM_IMPORT_PACKAGES| +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/menu_admin.html b/directadmin-1.62.4/data/skins/enhanced/admin/menu_admin.html new file mode 100644 index 0000000..93b938a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/menu_admin.html @@ -0,0 +1,8 @@ +|LF_LEVEL| + +
+ » |LANG_ADMIN_LEVEL|
+ |LANG_RESELLER_LEVEL|
+ |LANG_USER_LEVEL|
+
+
diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/menu_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/menu_reseller.html new file mode 100644 index 0000000..bc60c26 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/menu_reseller.html @@ -0,0 +1,8 @@ +|LF_LEVEL| + +
+ |LANG_ADMIN_LEVEL|
+ » |LANG_RESELLER_LEVEL|
+ |LANG_USER_LEVEL|
+
+
diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/menu_user.html b/directadmin-1.62.4/data/skins/enhanced/admin/menu_user.html new file mode 100644 index 0000000..6d502cb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/menu_user.html @@ -0,0 +1,8 @@ +|LF_LEVEL| + +
+ |LANG_ADMIN_LEVEL|
+ |LANG_RESELLER_LEVEL|
+ » |LANG_USER_LEVEL|
+
+
diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/modify_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/modify_reseller.html new file mode 100644 index 0000000..793d95f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/modify_reseller.html @@ -0,0 +1,102 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_SHOW_RESELLER` » `LANG_RESELLER` `user` » `LANG_MODIFY` `user`| +|?HELP_SECTION=`ADMIN_HELPER`/listr.html| +|HTM_ADMIN_TOP| + +|LANG_MODIFY_RESELLER| |user| + + + + + + + + + + + + + + + + + +|*if HAVE_INODE="yes"| + +|*endif| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| +|*if CUSTOM_ITEM_6| + +|*endif| +|*if CUSTOM_ITEM_7| + +|*endif| +|*if CUSTOM_ITEM_8| + +|*endif| + + + + +
|LANG_CHANGE_PACK| |user|
|LANG_SET_PACK_TO||PACKAGES|
|LANG_MANUALLY_CHANGE|
|LANG_BANDWIDTH| |LANG_MB||LANG_UNLIMITED|
|LANG_DISK_SPACE| |LANG_MB||LANG_UNLIMITED|
|LANG_INODES||LANG_UNLIMITED|
|LANG_DOMAINS||LANG_UNLIMITED|
|LANG_SUBDOMAINS||LANG_UNLIMITED|
|LANG_USER_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_FORWARDERS||LANG_UNLIMITED|
|LANG_MAILING_LISTS||LANG_UNLIMITED|
|LANG_AUTO_RESPONDERS||LANG_UNLIMITED|
|LANG_MYSQL_DBS||LANG_UNLIMITED|
|LANG_DOMAIN_PTRS||LANG_UNLIMITED|
|LANG_FTP_ACCOUNTS||LANG_UNLIMITED|
|LANG_ANON_FTP_ACCOUNTS|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_SPAM|
|LANG_CATCHALL|
|LANG_SSL| |LANG_ACCESS|
|LANG_SSH| |LANG_ACCESS|
|LANG_SSH_FOR_USERS|
|LANG_ALLOW_OVERSELLING|
|LANG_CRON_JOBS|
|LANG_SYSTEM_INFO|
|LANG_LOGIN_KEYS|
|LANG_DNS_CONTROL|
|CUSTOM_ITEM_1_STR||CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR||CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR||CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR||CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR||CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
|CUSTOM_ITEM_6_STR||CUSTOM_ITEM_6||CUSTOM_ITEM_6_DESC|
|CUSTOM_ITEM_7_STR||CUSTOM_ITEM_7||CUSTOM_ITEM_7_DESC|
|CUSTOM_ITEM_8_STR||CUSTOM_ITEM_8||CUSTOM_ITEM_8_DESC|
+ + + +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/multi_server.html b/directadmin-1.62.4/data/skins/enhanced/admin/multi_server.html new file mode 100644 index 0000000..d9a0077 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/multi_server.html @@ -0,0 +1,41 @@ +|LF_STANDARD| +|?TREE=» `LANG_MULTI_SERVER`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +
+ +|*if CLUSTER_ON="yes"| +|LANG_MULTI_IS_ON|     +|*else| +|LANG_MULTI_IS_OFF|     +|*endif| +
|LANG_LIST_OF_SERVERS| +|TABLE| + +
+ + + + + + + + + + + + + + +
|LANG_ADD_REMOTE_SERVER|
|LANG_IP|: |LANG_PORT|: |LANG_SSL|: |LANG_USERNAME|: |LANG_PASSWORD|:
+ +
+ +|LANG_SSL_DESCRIPTION| +|LANG_ZONE_TRANSFER_DESCRIPTION| +|LANG_DOMAIN_CHECK_DESCRIPTION| +
+ +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/nginx_template_view.html b/directadmin-1.62.4/data/skins/enhanced/admin/nginx_template_view.html new file mode 100644 index 0000000..2753e12 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/nginx_template_view.html @@ -0,0 +1,24 @@ +|?TREE=» Nginx Templates| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +|TEMPLATE_NAME| +

+ + +|TEMPLATE_OPTIONS_TABLE| + + + +
+ +|*if IS_CUSTOM_TEMPLATE="0"| +This is a default template. To edit it, convert it to a custom copy.
+
+ + + +
+|*endif| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/nginx_templates.html b/directadmin-1.62.4/data/skins/enhanced/admin/nginx_templates.html new file mode 100644 index 0000000..3914e58 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/nginx_templates.html @@ -0,0 +1,9 @@ +|?TREE=» Nginx Templates| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + +Nginx Templates + +|NGINX_TEMPLATES| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/plugin_manager.html b/directadmin-1.62.4/data/skins/enhanced/admin/plugin_manager.html new file mode 100644 index 0000000..0712939 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/plugin_manager.html @@ -0,0 +1,28 @@ +|LF_STANDARD| +|?TREE=» `LANG_PLUGING_MANAGER`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER| +|HTM_HEADER_WIDE| + +
+ +|PLUGINS| + +
+ + + + + + + + + + + +
|LANG_ADD_PLUGIN| - |LANG_SELECT_UP_METH|
|LANG_URL| |LANG_ENTER_URL|
|LANG_FILE| |LANG_UPLOAD_FROM_LOC|
|LANG_PASSWORD|:     |LANG_INSTALL_AFTER_UP|   
+


+ +|HTM_FOOTER_WIDE| +|HTM_FOOTER| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/process_monitor.html b/directadmin-1.62.4/data/skins/enhanced/admin/process_monitor.html new file mode 100644 index 0000000..d6291c6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/process_monitor.html @@ -0,0 +1,169 @@ +|*if !timer| +|?timer=0| +|*endif| +|*if !scrollpos| +|?scrollpos=0| +|*endif| + +|*if timer>"0"| +|?BODY=onLoad='start_timer(1)'| +|*endif| + + +|LF_STANDARD| +|?TREE=» `LANG_PROCESS_MONITOR`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + + + + + + + + + +
|LANG_PROCESS_MONITOR|
Reload Delay (Seconds) + +
+
+ +
|BOXINFO|

+ +|PROCESSES| + +
+ +
+ +|*if REQUIRE_ROOT_AUTH="yes"| + + + + + + + +
|LANG_AUTH_TO_SEND|
|LANG_ROOT_PASS|
+|*else| + + +|*endif| +
+
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/safe_mode.html b/directadmin-1.62.4/data/skins/enhanced/admin/safe_mode.html new file mode 100644 index 0000000..d52bdc1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/safe_mode.html @@ -0,0 +1,51 @@ +|LF_STANDARD| +|?TREE=» `LANG_SAFE_MODE_SETTINGS`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_ADMIN_TOP| + + + +|LANG_SAFE_MODE_SETTINGS| + + +
+ +
+ +|LANG_DEFAULT|: + |LANG_ON| + |LANG_OFF| +
+|LANG_OBD|: + |LANG_ON| + |LANG_OFF| +
+ +
+ +
+ + + + +
+|LANG_SHOW_DOMAINS_THAT| + + + + + +
+ +|DOMAINS| + +|HTM_ADMIN_BOTTOM| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_admins.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_admins.html new file mode 100644 index 0000000..8a3864a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_admins.html @@ -0,0 +1,13 @@ +|?TREE=» `LANG_SHOW_ADMINS`| +|?HELP_SECTION=`ADMIN_HELPER`/createa.html| + +|HTM_HEADER| +|HTM_HEADER_WIDE| + +|LANG_CREATE_ADMIN|
+|LANG_DELETE_ADMIN|
+ + |TABLE| + +|HTM_FOOTER_WIDE| +|HTM_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_all_users.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_all_users.html new file mode 100644 index 0000000..d1cdd8a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_all_users.html @@ -0,0 +1,63 @@ +|?TREE=» `LANG_SHOW_ALL_USERS`| +|?HELP_SECTION=`ADMIN_HELPER`/showall.html| +|HTM_HEADER| +|HTM_HEADER_WIDE| +|LANG_DELETE_USER|
+ +|*if RESULT!=""| +
|RESULT|
+|*endif| + + + +
+ + + + +
+|LANG_SHOW_DOMAINS_THAT_CONTAIN| + + + + + + +     + +
+ + + + |TABLE| + +|HTM_FOOTER_WIDE| +|HTM_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_history.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_history.html new file mode 100644 index 0000000..f7f8b18 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_history.html @@ -0,0 +1,9 @@ +|?TREE=» `LANG_ADMIN_STATS` » `LANG_ADMIN_HISTORY`| + +|?HELP_SECTION=`ADMIN_HELPER`/ausage.html#history| +|HTM_ADMIN_TOP| + +|LANG_ADMIN_HISTORY|
+ +|HISTORY| +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_reseller.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_reseller.html new file mode 100644 index 0000000..6786e6e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_reseller.html @@ -0,0 +1,54 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_RESELLERS` » `LANG_RESELLER` `user`| +|?HELP_SECTION=`ADMIN_HELPER`/listr.html| +|HTM_HEADER_FULL| + +|?DISABLE_SELF=| +|*if user=USERNAME| +|?DISABLE_SELF=disabled| +|*endif| + +|LANG_DETAILS_FOR| |user|
+
+ + + + + + + +
+
+ +
+ +|HTM_LOGIN_AS_WARNINGS| + +
+
+
+ +
+
+
+ + +
+
+
+ +
+
+|USERS| +|STATS| + + + + + + + + +
|LANG_USER_COMMENT_BOX|
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_reseller_package.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_reseller_package.html new file mode 100644 index 0000000..98fa89e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_reseller_package.html @@ -0,0 +1,100 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_MANAGE_RES_PACK` » `LANG_MANAGE` `PACKAGENAME`| +|?HELP_SECTION=`ADMIN_HELPER`/rpackages.html| +|HTM_ADMIN_TOP| + + + + + + + + + +|*if HAVE_INODE="yes"| + +|*endif| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|*if CREATE_USER_HOME_OVERRIDE| + +|*endif| + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| +|*if CUSTOM_ITEM_6| + +|*endif| +|*if CUSTOM_ITEM_7| + +|*endif| +|*if CUSTOM_ITEM_8| + +|*endif| + + + + +
|LANG_RES_PACK|: |PACKAGENAME|
|LANG_BANDWIDTH| |LANG_MB||LANG_UNLIMITED|
|LANG_DISK_SPACE| |LANG_MB||LANG_UNLIMITED|
|LANG_INODES||LANG_UNLIMITED|
|LANG_DOMAINS||LANG_UNLIMITED|
|LANG_SUBDOMAINS||LANG_UNLIMITED|
|LANG_USER_ACCOUNTS||LANG_UNLIMITED|
|LANG_IPS|
|LANG_EMAIL_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_FORWARDERS||LANG_UNLIMITED|
|LANG_MAILING_LISTS||LANG_UNLIMITED|
|LANG_AUTO_RESPONDERS||LANG_UNLIMITED|
|LANG_MYSQL_DBS||LANG_UNLIMITED|
|LANG_DOMAIN_PTRS||LANG_UNLIMITED|
|LANG_FTP_ACCOUNTS||LANG_UNLIMITED|
|LANG_ANON_FTP_ACCOUNTS|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_SPAM|
|LANG_CATCHALL|
|LANG_SSL| |LANG_ACCESS|
|LANG_SSH| |LANG_ACCESS|
|LANG_SSH_FOR_USERS|
|LANG_ALLOW_OVERSELLING|
|LANG_CRON_JOBS|
|LANG_SYSTEM_INFO|
|LANG_LOGIN_KEYS|
|LANG_DNS_CONTROL|
|LANG_PERSONAL_DNS||LANG_NONE|
  |LANG_TWO_IPS|
  |LANG_THREE_IPS|
|LANG_SERVER_IP| |LANG_ALLOW_RES_SERVER|
|LANG_HOME_DIR| |CREATE_USER_HOME_OVERRIDE||LANG_LOCATION_FOR_THIS_ACCOUNT|
|CUSTOM_ITEM_1_STR||CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR||CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR||CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR||CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR||CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
|CUSTOM_ITEM_6_STR||CUSTOM_ITEM_6||CUSTOM_ITEM_6_DESC|
|CUSTOM_ITEM_7_STR||CUSTOM_ITEM_7||CUSTOM_ITEM_7_DESC|
|CUSTOM_ITEM_8_STR||CUSTOM_ITEM_8||CUSTOM_ITEM_8_DESC|
|*if NEW_PACKAGE!="yes"||LANG_RENAME||*endif| |LANG_PACK_NAME|:
+ +|HTM_ADMIN_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_resellers.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_resellers.html new file mode 100644 index 0000000..a574345 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_resellers.html @@ -0,0 +1,15 @@ +|LF_CREATE| +|?TREE=» `LANG_SHOW_RESELLER`| +|?HELP_SECTION=`ADMIN_HELPER`/listr.html| + +|HTM_HEADER| +|HTM_HEADER_WIDE| + +|LANG_CREATE_RES|
+|LANG_DELETE_RES|
+ + + |TABLE| + +|HTM_FOOTER_WIDE| +|HTM_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/show_services.html b/directadmin-1.62.4/data/skins/enhanced/admin/show_services.html new file mode 100644 index 0000000..74ef952 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/show_services.html @@ -0,0 +1,7 @@ +|?TREE=» `LANG_SHOW_SERVICES`| +|?HELP_SECTION=`ADMIN_HELPER`/sinfo.html| +|HTM_HEADER_FULL| + +|SERVICES_TABLE| + +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/system_backup.html b/directadmin-1.62.4/data/skins/enhanced/admin/system_backup.html new file mode 100644 index 0000000..669379d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/system_backup.html @@ -0,0 +1,91 @@ +|LF_STANDARD| +|LF_BACKUPS| +|?TREE=» `LANG_SYSTEM_BACKUP`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER| +|HTM_HEADER_WIDE| + + + + + + + + +
|LANG_RUN_SYS_BK| - |LANG_ON_PER_DAY|
|LANG_VIEW_LOG|
|LOG_TIME|
+ + + + + + + + + + + + +
|LANG_CRON_SCHEDULE|
|LANG_MINUTE||LANG_HOUR||LANG_DAY_OF_MONTH||LANG_MONTH||LANG_DAY_OF_WEEK|
|LANG_USE_CRON|   
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_CONFIGURE_FULL_SYSTEM_BACKUP|
|LANG_BACKUP_PATH|
|LANG_MIN_DISK_SPACE| on partition |MOUNT_POINT|
+ |LANG_ADD_USERS| 
+ |LANG_BACKUP_HTTP_CONFIG| + |LANG_BACKUP_BIND_CONFIG|
+ |LANG_BACKUP_MYSQL_CONFIG| + |LANG_BACKUP_DIRS_FILES|
|LANG_USE_REMOTE_TRANSFER| 
|LANG_REMOTE_TRANSFER_METHOD||RTRANS_SELECT|     |LANG_DOWNLOAD_ID_DSA|
|LANG_DEL_AFTER_RTRANS|
|LANG_FILE_BY_FILE| |LANG_FILE_BY_FILE_COMMENT|
|LANG_REMOTE_HOST|
|LANG_REMOTE_USER|
|LANG_REMOTE_PASS|
|LANG_REMOTE_PATH|
+
|BACKUP_DIRECTORIES| +
+ + + +
+
|BACKUP_FILES| +
+ + +
 
+


+ +|HTM_FOOTER_WIDE| +|HTM_FOOTER| + diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/template_admin_bottom.html b/directadmin-1.62.4/data/skins/enhanced/admin/template_admin_bottom.html new file mode 100644 index 0000000..bad4f20 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/template_admin_bottom.html @@ -0,0 +1,36 @@ +|HTM_FOOTER_BAR_1| +|HTM_MENU_ADMIN| + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_USED|
|LANG_DISK_SPACE||ADMINQUOTA|
|LANG_BANDWIDTH||ADMINBANDWIDTHGIG|
|LANG_DOMAINS||ADMINDOMAINS|
|LANG_USERS||ADMINUSERS|
|LANG_RESELLERS||ADMINRESELLERS|
+
+ +|HTM_FOOTER_BAR_2| +|HTM_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/template_admin_top.html b/directadmin-1.62.4/data/skins/enhanced/admin/template_admin_top.html new file mode 100644 index 0000000..ca9299d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/template_admin_top.html @@ -0,0 +1,2 @@ +|HTM_HEADER| +|HTM_HEADER_BAR| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/template_diff.html b/directadmin-1.62.4/data/skins/enhanced/admin/template_diff.html new file mode 100644 index 0000000..1633d21 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/template_diff.html @@ -0,0 +1,10 @@ +|?TREE=» `LANG_TEMPLATE_DIFF`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + +|LANG_TEMPLATE_DIFF| +

+|DIFF_TABLE| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/admin/usermanagement.html b/directadmin-1.62.4/data/skins/enhanced/admin/usermanagement.html new file mode 100644 index 0000000..3c99fae --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/admin/usermanagement.html @@ -0,0 +1,77 @@ +|LF_STANDARD| +|?TREE=» `LANG_MOVE_USERS`| +|?HELP_SECTION=`ADMIN_HELPER`| +|HTM_HEADER_FULL| + + + + +|LANG_MOVE_USERS|

+ + + + + + + + + + + + + + +
+ |LANG_SELECT_USERS_OF| |CREATOR_SELECT| + |LANG_MOVE_SELECTED|:
+ +
+ |USERS| +
+
+ |CREATORS| +
+ + +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/confirmation.html b/directadmin-1.62.4/data/skins/enhanced/confirmation.html new file mode 100644 index 0000000..cd5775c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/confirmation.html @@ -0,0 +1,19 @@ +|?TREE=» `LANG_HOME`| +|HTM_HEADER_FULL| +

+ + + + + +
+

|LANG_PLEASE_CONFIRM|:

+ + +|TEXT| + + +

+
 
+

+|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/creation_check.js b/directadmin-1.62.4/data/skins/enhanced/creation_check.js new file mode 100644 index 0000000..068c1b1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/creation_check.js @@ -0,0 +1,83 @@ +var xmlhttp_array = new Array(); + +function ajax_run_js(str) +{ + if (str == '') + return; + + console.log(str); + + eval(str); +} + +function ajax_state_changed(xh) +{ + if (xmlhttp_array[xh].readyState==4 && xmlhttp_array[xh].status==200) + { + ajax_run_js(xmlhttp_array[xh].responseText); + } +} + +function ajax_start(url, xh, post) +{ + if (window.XMLHttpRequest) + {// code for IE7+, Firefox, Chrome, Opera, Safari + xmlhttp_array[xh]=new XMLHttpRequest(); + } + else + {// code for IE6, IE5 + xmlhttp_array[xh]=new ActiveXObject("Microsoft.XMLHTTP"); + } + + var method = 'GET'; + if (post.length > 0) + method='POST' + + xmlhttp_array[xh].onreadystatechange=function() { ajax_state_changed(xh); }; + xmlhttp_array[xh].open(method,url,true); + xmlhttp_array[xh].send(post); + +} + +function ajax_checkName() +{ + var u=document.getElementById("username").value; + var url="CMD_AJAX_CHECK_USERNAME?rand="+Math.random(); + + ajax_start(url, 'user', 'username='+encodeURIComponent(u)); +} + +function ajax_checkPass() +{ + var p=document.getElementById("passwd").value; + var url="CMD_AJAX_CHECK_PASSWORD?rand="+Math.random(); + + ajax_start(url, 'pass', 'passwd='+encodeURIComponent(p)); +} +function ajax_randomPass(extra_set) +{ + var url="CMD_AJAX_CHECK_PASSWORD?action=get&rand="+Math.random(); + + if (extra_set != '') + { + url=url+"&extra_set="+extra_set; + } + + ajax_start(url, 'rand_pass',''); +} + +function ajax_checkDomain() +{ + var d=document.getElementById("domain").value; + var url="CMD_AJAX_CHECK_DOMAIN?rand="+Math.random(); + + ajax_start(url, 'domain', 'domain='+encodeURIComponent(d)); +} + +function set_admin_level_updates() +{ + var pu=document.getElementById("plugin_updates"); + var url="CMD_AJAX_GET_COUNTS?plugin_updates=yes&program=yes&rand="+Math.random(); + + ajax_start(url, 'plugin_updates', ''); +} diff --git a/directadmin-1.62.4/data/skins/enhanced/files_admin.conf b/directadmin-1.62.4/data/skins/enhanced/files_admin.conf new file mode 100644 index 0000000..bc71c2b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/files_admin.conf @@ -0,0 +1,66 @@ +HTM_INDEX=admin/index.html +HTM_INDEX_RESELLER=reseller/index.html +HTM_INDEX_USER=user/index.html +HTM_ACCOUNT_ADMIN_CREATE=admin/create_admin.html +HTM_ACCOUNT_ADMIN_DELETE=admin/delete_admin.html +HTM_ACCOUNT_RESELLER_CREATE=admin/create_reseller.html +HTM_ACCOUNT_RESELLER_DELETE=admin/delete_reseller.html +HTM_HEADER=header.html +HTM_ADMIN_TOP=admin/template_admin_top.html +HTM_ADMIN_BOTTOM=admin/template_admin_bottom.html +HTM_MENU_ADMIN=admin/menu_admin.html +HTM_MENU_RESELLER=admin/menu_reseller.html +HTM_MENU_USER=admin/menu_user.html +HTM_ADMIN_MAIN=admin/main.html +HTM_ADMIN_CONTENT=admin/content_main.html +HTM_TAB_ADMIN=admin/tabs_admin.html +HTM_TAB_RESELLER=admin/tabs_reseller.html +HTM_TAB_USER=admin/tabs_user.html +CMD_ADMIN_SHOW=admin/show_admins.html +CMD_RESELLER_SHOW=admin/show_resellers.html +CMD_ALL_USER_SHOW=admin/show_all_users.html +CMD_SHOW_SERVICES=admin/show_services.html +CMD_ADMIN_SSL=admin/admin_ssl.html +CMD_MANAGE_RESELLER_PACKAGES=admin/manage_packages_reseller.html +CMD_SHOW_RESELLER_PACKAGE=admin/show_reseller_package.html +HTM_CUSTOMIZE_RESELLER=admin/create_customized_reseller.html +CMD_IP_MANAGER=admin/ip_manager.html +CMD_IP_MANAGER_DETAILS=admin/ip_manager_details.html +CMD_ADMIN_SETTINGS=admin/admin_settings.html +CMD_MODIFY_RESELLER=admin/modify_reseller.html +CMD_SHOW_RESELLER=admin/show_reseller.html +CMD_DNS_ADMIN=admin/dns_admin.html +CMD_DNS_ADMIN_CONTROL=admin/dns_admin_control.html +CMD_ADMIN_STATS=admin/admin_stats.html +CMD_LICENSE=admin/license.html +CMD_CUSTOM_HTTPD=admin/custom_httpd.html +CMD_ADMIN_CRON_JOBS=admin/admin_cron_jobs.html +CMD_CUSTOM_HTTPD_DOMAIN=admin/custom_httpd_domain.html +CMD_CUSTOM_HTTPD_FPM=admin/custom_httpd_fpm.html +CMD_PHP_SAFE_MODE=admin/safe_mode.html +CMD_PLUGIN_MANAGER=admin/plugin_manager.html +CMD_SYSTEM_BACKUP=admin/system_backup.html +CMD_LOG_VIEWER=admin/log_viewer.html +CMD_ADMIN_FILE_EDITOR=admin/file_editor.html +CMD_MULTI_SERVER=admin/multi_server.html +CMD_MAIL_QUEUE=admin/mail_queue.html +CMD_MAIL_ID=admin/mail_id_info.html +CMD_ADMIN_BACKUP=admin/admin_backup.html +CMD_ADMIN_BACKUP_MODIFY=admin/admin_backup_modify.html +CMD_ADMIN_BACKUP_MONITOR=admin/admin_backup_monitor.html +CMD_MOVE_USERS=admin/usermanagement.html +CMD_ADMIN_HISTORY=admin/show_history.html +CMD_PROCESS_MONITOR=admin/process_monitor.html +CMD_BRUTE_FORCE_MONITOR=admin/brute_force_monitor.html +CMD_BRUTE_FORCE_IP_INFO=admin/brute_force_ip_info.html +CMD_NGINX_TEMPLATES_ADMIN=admin/nginx_templates.html +CMD_NGINX_TEMPLATES_ADMIN_VIEW=admin/nginx_template_view.html +CMD_TEMPLATE_DIFF=admin/template_diff.html + +IMG_SKIN_CTRL_ASERVER=images/admin-server.gif +IMG_SKIN_CTRL_ATOOLS=images/admin-tools.gif +IMG_SKIN_CTRL_AFEATURES=images/admin-extra.gif + +LF_CUST_HTTPD=admin/custom_httpd_domain.html +LF_MAIL_QUEUE=admin/mail_queue.html +LF_IP_MANAGER=admin/ip_manager.html diff --git a/directadmin-1.62.4/data/skins/enhanced/files_reseller.conf b/directadmin-1.62.4/data/skins/enhanced/files_reseller.conf new file mode 100644 index 0000000..a624633 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/files_reseller.conf @@ -0,0 +1,42 @@ +HTM_INDEX=reseller/index.html +HTM_INDEX_USER=user/index.html +HTM_RESELLER_TOP=reseller/template_reseller_top.html +HTM_RESELLER_BOTTOM=reseller/template_reseller_bottom.html +HTM_USER_CREATE=reseller/user_create.html +HTM_ACCOUNT_USER_CREATE=reseller/create_user.html +HTM_ACCOUNT_USER_DELETE=reseller/delete_user.html +HTM_RESELLER_CONTENT=reseller/content_main.html +HTM_MENU_RESELLER=reseller/menu_reseller.html +HTM_MENU_USER=reseller/menu_user.html +HTM_LOGIN_AS_WARNINGS=reseller/login_as_warnings.html +CMD_USER_SHOW=reseller/show_users.html +HTM_USER_PASSWD=reseller/change_user_passwd.html +CMD_SHOW_SUB_DOMAIN=reseller/show_sub_domain.html +CMD_MANAGE_USER_PACKAGES=reseller/manage_packages_user.html +CMD_SHOW_USER_PACKAGE=reseller/show_user_package.html +HTM_IMPORT_PACKAGES=reseller/import_packages.html +HTM_CUSTOMIZE_USER=reseller/create_customized_user.html +CMD_IP_CONFIG=reseller/ip_config.html +CMD_NAME_SERVER=reseller/nameserver.html +CMD_TICKET_MANAGE=reseller/manage_tickets.html +CMD_TICKET_MANAGE_CLOSED=reseller/manage_tickets_closed.html +CMD_TICKET_VIEW_TECH=reseller/ticket_view_tech.html +CMD_MODIFY_USER=reseller/modify_user.html +CMD_SHOW_USER=reseller/show_user.html +CMD_EDIT_MESSAGE=reseller/edit_message.html +CMD_SKINS=reseller/skins.html +CMD_SKINS_CUSTOMIZE=reseller/skins_customize.html +CMD_RESELLER_STATS=reseller/reseller_stats.html +CMD_USER_BACKUP=reseller/backups.html +CMD_USER_BACKUP_MODIFY=reseller/backup_modify.html +CMD_RESELLER_HISTORY=reseller/show_history.html + +IMG_SKIN_CTRL_RACCOUNT=images/reseller-accounts.gif +IMG_SKIN_CTRL_RTOOLS=images/reseller-tools.gif +IMG_SKIN_CTRL_RFEATURES=images/reseller-extra.gif + +LF_LEVEL=lf_level.html +LF_BACKUPS=reseller/backup_modify.html +LF_CREATE=admin/create_reseller.html +LF_TICKETS=reseller/manage_tickets.html +LF_SKINS=reseller/skins.html diff --git a/directadmin-1.62.4/data/skins/enhanced/files_user.conf b/directadmin-1.62.4/data/skins/enhanced/files_user.conf new file mode 100644 index 0000000..39fd0d3 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/files_user.conf @@ -0,0 +1,232 @@ +CSS_STYLE=style.css +HTM_ADD_DOMAIN=user/add_domain.html +HTM_CONFIRMATION=confirmation.html + +HTM_EMAIL_AUTORESPONDER_CREATE=user/email/autoresponder_create.html +CMD_EMAIL_AUTORESPONDER_CREATE=user/email/autoresponder_create.html +HTM_EMAIL_POP_CREATE=user/email/pop_create.html +HTM_EMAIL_POP_MODIFY=user/email/pop_modify.html +HTM_EMAIL_FORWARDER_CREATE=user/email/forwarder_create.html +HTM_EMAIL_LIST_CREATE=user/email/list_create.html +HTM_EMAIL_REPLY_HEADERS=user/email/email_reply_headers.html + +HTM_FOOTER=footer.html +HTM_FOOTER_BAR_1=footer_bar_1.html +HTM_FOOTER_BAR_2=footer_bar_2.html +HTM_FOOTER_FULL=footer_full.html +HTM_FOOTER_WIDE=footer_wide.html +HTM_FTP_CREATE=user/ftp/ftp_create.html +HTM_INDEX=user/index.html +HTM_INDEX_USER=user/index.html +HTM_HEADER=header.html +HTM_HEADER_BAR=header_bar.html +HTM_HEADER_WIDE=header_wide.html +HTM_HEADER_FULL=header_full.html +HTM_TEMPLATE=template.html +HTM_USER_BOTTOM=user/template_user_bottom.html +HTM_USER_CONTENT=user/content_main.html +HTM_USER_TOP=user/template_user_top.html + +HTM_PREVENT_AUTOFILL=user/prevent_autofill.html + +CMD_DB=user/db/db.html +CMD_DB_VIEW=user/db/db_view.html +CMD_DB_USER_PRIVS=user/db/user_priv.html +CMD_DB_CREATE=user/db/db_create.html +CMD_DB_USER_CREATE=user/db/db_user_create.html +HTM_DB_CREATE=user/db/db_create.html +HTM_DB_USER_CREATE=user/db/db_user_create.html +HTM_DB_USER_MODIFY=user/db/db_user_modify.html + + +CMD_FRONTPAGE=user/frontpage.html +CMD_FTP=user/ftp/ftp.html +CMD_FTP_SETTINGS=user/ftp/anon_settings.html +CMD_FTP_SHOW=user/ftp/ftp_show.html + +CMD_SSL=user/ssl.html +CMD_SSL_CA=user/ssl_ca.html +CMD_SSL_REQUEST=user/ssl_request.html + +CMD_EMAIL_POP=user/email/pop.html +CMD_EMAIL_CATCH_ALL=user/email/catch_all.html +CMD_EMAIL_FORWARDER=user/email/forwarder.html +CMD_EMAIL_FORWARDER_MODIFY=user/email/forwarder_modify.html +CMD_EMAIL_AUTORESPONDER=user/email/autoresponder.html +CMD_EMAIL_USAGE=user/email/usage.html + +CMD_EMAIL_AUTORESPONDER_MODIFY=user/email/autoresponder_modify.html +CMD_EMAIL_VACATION=user/email/vacation.html +CMD_EMAIL_VACATION_CREATE=user/email/vacation_create.html +CMD_EMAIL_VACATION_MODIFY=user/email/vacation_modify.html +CMD_EMAIL_LIST=user/email/list.html +CMD_EMAIL_LIST_MODIFY=user/email/list_modify.html +CMD_EMAIL_LIST_VIEW=user/email/list_view.html + +CMD_EMAIL_FILTER=user/email/filter.html +CMD_SHOW_DOMAIN=user/show_domain.html +CMD_SUBDOMAIN=user/subdomains.html +CMD_DNS_CONTROL=user/dns_control.html +JS_DNS=user/dns.js +CMD_DNS_MX=user/dns_mx_control.html +CMD_SHOW_SUB_DOMAIN=user/show_sub_domain.html +CMD_TICKET=user/ticket/main.html +CMD_TICKET_CLOSED=user/ticket/main_closed.html +CMD_TICKET_CREATE=user/ticket/create.html +CMD_TICKET_CREATE_MULTIPLE=user/ticket/create_multiple.html +CMD_TICKET_VIEW=user/ticket/view.html +HTM_TICKET_REPLY=user/ticket/reply.html +CMD_FILE_MANAGER=user/filemanager/main.html +CMD_FILE_MANAGER_EDIT=user/filemanager/edit.html +CMD_FILE_MANAGER_RENAME=user/filemanager/rename.html +CMD_FILE_MANAGER_COPY=user/filemanager/copy.html +CMD_FILE_MANAGER_PROTECT=user/filemanager/protect.html +CMD_FILE_MANAGER_EXTRACT=user/filemanager/extract.html +CMD_PROTECTED_DIRECTORIES=user/filemanager/protected.html +CMD_MIME_TYPES=user/mime_types.html +CMD_MIME_TYPES_SYS=user/mime_types_sys.html +CMD_HANDLERS=user/apache_handlers.html +CMD_HANDLERS_SYS=user/apache_handlers_sys.html +CMD_LOGIN_HISTORY=user/login_history.html +CMD_CRON_JOBS=user/cronjobs.html +CMD_REDIRECT=user/redirects.html +CMD_HOTLINK=user/hotlink.html +CMD_DOMAIN_POINTER=user/domain_pointers.html +CMD_SITE_BACKUP=user/site_backup.html +CMD_SITE_RESTORE=user/site_restore.html +CMD_SYSTEM_INFO=user/server_info.html +CMD_PERL_MODULES=user/perl_modules.html +CMD_USER_STATS=user/user_stats.html +CMD_SHOW_LOG=user/show_log.html +HTM_ERROR_PAGES=user/error_pages.html +HTM_FILE_UPLOAD=user/filemanager/upload.html +HTM_MENU_USER=user/menu_user.html +IMG_BG_ALL=images/bg_all.gif +IMG_FOLDER=images/folder.png +IMG_FOLDER_LINK=images/folder_link.png +IMG_FILE=images/file.png +IMG_FILE_LINK=images/file_link.png +HTM_PASSWD=passwd.html +CMD_LOGOUT=loggedout.html +HTM_JAVASCRIPT=javascript.html +JS_JAVASCRIPT=javascript.html +HTM_LIVESEARCH=livesearch.js +JS_LIVESEARCH=livesearch.js +JS_CREATION_CHECK=creation_check.js +JS_VISIBILITY=visibility.js +CMD_CHANGE_DOMAIN=user/change_domain.html +CMD_ADDITIONAL_DOMAINS=user/additional_domains.html +CMD_ADDITIONAL_DOMAINS_VIEW=user/modify_domain.html +CMD_PLUGINS=user/plugin.html +CMD_USER_HISTORY=user/show_history.html +CMD_SPAMASSASSIN=user/email/spamassassin.html + +CMD_BANDWIDTH_BREAKDOWN=user/bandwidth_breakdown.html +CMD_DU_BREAKDOWN=user/du_breakdown.html + +CMD_LOGIN_KEYS=user/login_keys.html +CMD_LOGIN_KEY_CREATE=user/create_login_key.html +CMD_LOGIN_KEY_MODIFY=user/modify_login_key.html + +CMD_SSH_KEYS=user/ssh_keys.html +CMD_SSH_KEYS_EDIT=user/ssh_keys_edit.html + +CMD_SECURITY_QUESTIONS=user/security_questions.html +CMD_ASK_SECURITY_QUESTION=user/ask_security_question.html + +CMD_TWOSTEP_AUTH=user/twostep_auth.html +CMD_ASK_TWOSTEP_AUTH=user/ask_security_question.html + +CMD_NGINX_TEMPLATES=user/nginx_templates.html +CMD_NGINX_TEMPLATES_VIEW=user/nginx_template_view.html + + +IMG_SKIN_LEFT_SHADOW=images/left-shadow.gif +IMG_SKIN_RIGHT_SHADOW=images/right-shadow.gif +IMG_FOOTER_NEW=images/footer3.gif +IMG_FOOTER_FULL=images/footer4.gif +IMG_INNER_BG=images/inner-bg.gif + +IMG_SKIN_NAV_LOGOUT2=images/nav-logout2.gif +IMG_SKIN_NAV_LOGOUT2_OVER=images/nav-logout2-over.gif + +IMG_SKIN_HEADER=images/header.gif +IMG_SKIN_HEADER_NONAME=images/header-noname.gif +IMG_FOOTER_BAR=images/footer.gif +IMG_FOOTER_WIDE=images/footer_wide.gif + +IMG_SKIN_NAV_HOME=images/nav-home.gif +IMG_SKIN_NAV_HOME_OVER=images/nav-home-over.gif +IMG_SKIN_NAV_WEBMAIL=images/nav-webmail.gif +IMG_SKIN_NAV_WEBMAIL_OVER=images/nav-webmail-over.gif +IMG_SKIN_NAV_PASSWORD=images/nav-password.gif +IMG_SKIN_NAV_PASSWORD_OVER=images/nav-password-over.gif +IMG_SKIN_NAV_HELP=images/help.gif +IMG_SKIN_NAV_HELP_OVER=images/help-over.gif +IMG_SKIN_NAV_FILEMAN=images/nav-fileman.gif +IMG_SKIN_NAV_FILEMAN_OVER=images/nav-fileman-over.gif +IMG_SKIN_NAV_LOGOUT=images/nav-logout.gif +IMG_SKIN_NAV_LOGOUT_OVER=images/nav-logout-over.gif + +IMG_SKIN_CTRL_DOMAIN=images/left-currentdomain.gif +IMG_SKIN_CTRL_ACCOUNT=images/left-youraccount.gif +IMG_SKIN_CTRL_ACCESS=images/left-accesslevel.gif + +IMG_SKIN_BG=images/allbg.gif +IMG_SKIN_NAV_BG=images/nav-bg.gif + +IMG_SKIN_BODY_ACCOUNT=images/user-youraccount.gif +IMG_SKIN_BODY_EMAIL=images/user-email.gif +IMG_SKIN_BODY_ADVANCED=images/user-advanced.gif + +IMG_SKIN_GRADIENT=images/gradient.gif + + +IMG_SKIN_BAR_RIGHT_BLUE=images/right-blue2.gif +IMG_SKIN_BAR_LEFT_BLUE=images/left-blue.gif +IMG_SKIN_BAR_BG_BLUE=images/bg-blue2.gif + +IMG_SKIN_BAR_RIGHT_GREEN=images/right-green2.gif +IMG_SKIN_BAR_LEFT_GREEN=images/left-green.gif +IMG_SKIN_BAR_BG_GREEN=images/bg-green.gif + +IMG_SKIN_BAR_RIGHT_YELLOW=images/right-yellow2.gif +IMG_SKIN_BAR_LEFT_YELLOW=images/left-yellow.gif +IMG_SKIN_BAR_BG_YELLOW=images/bg-yellow.gif + +IMG_SKIN_BAR_RIGHT_ORANGE=images/right-orange2.gif +IMG_SKIN_BAR_LEFT_ORANGE=images/left-orange.gif +IMG_SKIN_BAR_BG_ORANGE=images/bg-orange.gif + +IMG_SKIN_BAR_RIGHT_RED=images/right-red2.gif +IMG_SKIN_BAR_LEFT_RED=images/left-red.gif +IMG_SKIN_BAR_BG_RED=images/bg-red.gif + +HTM_MENU=user/menu.html +LF_FOOTER=lf_footer.html +LF_STANDARD=lf_standard.html +LF_IMAGES=lf_images.html +LF_JS=javascript.html +LF_HANDLERS=user/apache_handlers.html +LF_DNS=admin/dns_admin_control.html +LF_MIME_TYPES=user/mime_types.html +LF_SITE_BACKUP=user/site_backup.html +LF_SSL=user/ssl.html +LF_DB=user/db/db.html +LF_AUTO_RESPONDER=user/email/autoresponder.html +LF_FORWARDER=user/email/forwarder.html +LF_LIST=user/email/list.html +LF_POP=user/email/pop.html +LF_VACATION=user/email/vacation.html +LF_FTP=user/ftp/ftp.html +LF_TICKET=user/ticket/main.html +LF_STATS=user/user_stats.html +LF_ADDITIONAL_DOMAINS=user/additional_domains.html +LF_LOGIN_KEYS=user/login_keys.html +LF_SSH_KEYS=user/ssh_keys.html + +IMG_CHECKBOX=images/checkbox.png +IMG_INCORRECT=images/incorrect.png + +IMG_EDIT_COG=images/cog.png +IMG_PENCIL=images/pencil.png diff --git a/directadmin-1.62.4/data/skins/enhanced/footer.html b/directadmin-1.62.4/data/skins/enhanced/footer.html new file mode 100644 index 0000000..74c2b6b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/footer.html @@ -0,0 +1,19 @@ + + + + + + + + + + + + +|*if TABLE_HIGHLIGHTING="1"| + +|*endif| + + diff --git a/directadmin-1.62.4/data/skins/enhanced/footer_bar_1.html b/directadmin-1.62.4/data/skins/enhanced/footer_bar_1.html new file mode 100644 index 0000000..5ffb658 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/footer_bar_1.html @@ -0,0 +1,12 @@ + + + + + +
+ |LANG_MESSAGE_SYSTEM||*if NEWMESSAGES!="0"||NEWMESSAGES||*endif| +

+ + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/footer_bar_2.html b/directadmin-1.62.4/data/skins/enhanced/footer_bar_2.html new file mode 100644 index 0000000..4ab9291 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/footer_bar_2.html @@ -0,0 +1,29 @@ + + + + + + + + + + + +|LF_FOOTER| + + + + + + + + + |USERNAME| |TREE| + + + + + |DEAMONNAME| |LANG_WEB_CP| © 2012-2018 JBMC Software + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/footer_full.html b/directadmin-1.62.4/data/skins/enhanced/footer_full.html new file mode 100644 index 0000000..ea1ca29 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/footer_full.html @@ -0,0 +1,2 @@ +|HTM_FOOTER_WIDE| +|HTM_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/footer_wide.html b/directadmin-1.62.4/data/skins/enhanced/footer_wide.html new file mode 100644 index 0000000..b11ba8f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/footer_wide.html @@ -0,0 +1,17 @@ +|LF_FOOTER| + + + + + + + + |USERNAME| |TREE| + + + + + |DEAMONNAME| |LANG_WEB_CP| © 2012-2018 JBMC Software + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/header.html b/directadmin-1.62.4/data/skins/enhanced/header.html new file mode 100644 index 0000000..e83cb82 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/header.html @@ -0,0 +1,105 @@ +|LF_STANDARD| +|LF_IMAGES| + + + + + |HOSTNAME||*if SHOW_INFO_IN_TITLE="1"| - |DEAMONNAME| v|VERSION||*endif| + + + + +|*if TABLE_HIGHLIGHTING="1"| + +|*endif| + + + + + + + +
+ + + + +
+ + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/header_bar.html b/directadmin-1.62.4/data/skins/enhanced/header_bar.html new file mode 100644 index 0000000..ea20b29 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/header_bar.html @@ -0,0 +1,21 @@ + +
+ + + +
+ + + + + + + + + + +
|LANG_HOME||LANG_WEBMAIL||LANG_PASSWORD||LANG_HELP||LANG_FILES||LANG_LOGOUT|
+ + + + + + + +|*endif| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/filter.html b/directadmin-1.62.4/data/skins/enhanced/user/email/filter.html new file mode 100644 index 0000000..c335097 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/filter.html @@ -0,0 +1,68 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_EMAIL_FILTERS`| +|?HELP_SECTION=`USER_HELPER`/email.html#filters| +|HTM_USER_TOP| +
+ + diff --git a/directadmin-1.62.4/data/skins/enhanced/header_full.html b/directadmin-1.62.4/data/skins/enhanced/header_full.html new file mode 100644 index 0000000..73152ab --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/header_full.html @@ -0,0 +1,2 @@ +|HTM_HEADER| +|HTM_HEADER_WIDE| diff --git a/directadmin-1.62.4/data/skins/enhanced/header_wide.html b/directadmin-1.62.4/data/skins/enhanced/header_wide.html new file mode 100644 index 0000000..547db90 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/header_wide.html @@ -0,0 +1,17 @@ + + + + + + + + + + + + + +
|LANG_HOME||LANG_WEBMAIL||LANG_PASSWORD||LANG_HELP||LANG_FILES||LANG_LOGOUT|
+ + + +LANG_ZONE_TRANSFER_DESCRIPTION= +LANG_DOMAIN_CHECK_DESCRIPTION= +LANG_OR_HOST=or server.host.com diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/plugin_manager.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/plugin_manager.html new file mode 100644 index 0000000..f4ff157 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/plugin_manager.html @@ -0,0 +1,8 @@ +LANG_PLUGING_MANAGER=Plugin Manager +LANG_ADD_PLUGIN=Add Plugin +LANG_SELECT_UP_METH=Select Upload Method +LANG_URL=Url +LANG_ENTER_URL=Enter the URL location where the plugin can be downloaded +LANG_UPLOAD_FROM_LOC=Upload the plugin from your local computer +LANG_FILE=File +LANG_INSTALL_AFTER_UP=Install after upload diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/process_monitor.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/process_monitor.html new file mode 100644 index 0000000..de4bdd1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/process_monitor.html @@ -0,0 +1,10 @@ +LANG_PROCESS_MONITOR=Process Monitor +LANG_START=Start +LANG_STOP=Stop +LANG_REFRESH=Refresh +LANG_AUTH_TO_SEND=Authenticate to send signals +LANG_ROOT_PASS=Root Password +LANG_AUTH=Authenticate +LANG_REMOVE_AUTH=Remove Authentication + + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/safe_mode.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/safe_mode.html new file mode 100644 index 0000000..2222da0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/safe_mode.html @@ -0,0 +1,9 @@ +LANG_SAFE_MODE_SETTINGS=Php Settings +LANG_SHOW_DOMAINS_THAT=Show Domains that +LANG_EQUAL=equal +LANG_CONTAIN=contain +LANG_START_WITH=start with +LANG_DEFAULT=Default Safe Mode for new domains +LANG_OBD=Default Open BaseDir for new domains +LANG_ON=On +LANG_OFF=Off diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_admins.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_admins.html new file mode 100644 index 0000000..19807d4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_admins.html @@ -0,0 +1,3 @@ +LANG_CREATE_ADMIN=Create Admin +LANG_DELETE_ADMIN=Delete Admin +LANG_SHOW_ADMINS=Show Admins diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_all_users.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_all_users.html new file mode 100644 index 0000000..d114eaf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_all_users.html @@ -0,0 +1,4 @@ +LANG_SHOW_ALL_USERS=Show All Users +LANG_DELETE_USER=Delete a User +LANG_SHOW_DOMAINS_THAT_CONTAIN=Show Domains that Contain +LANG_CLEAR_SEARCH=Clear Search diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_history.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_history.html new file mode 100644 index 0000000..6d1be6e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_history.html @@ -0,0 +1,2 @@ +LANG_ADMIN_STATS=Server Stats +LANG_ADMIN_HISTORY=Server History diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_reseller.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_reseller.html new file mode 100644 index 0000000..fbef8ee --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_reseller.html @@ -0,0 +1,8 @@ +LANG_SHOW_RESELLERS=Show Resellers +LANG_DETAILS_FOR=Details for reseller +LANG_MODIFY_RES=Modify Reseller +LANG_DELETE_RES=Delete +LANG_HIS_DATA='s User Data +LANG_USER_COMMENT_BOX=User Comment Box +LANG_SAVE_COMMENTS=Save Comments +LANG_LOGIN_AS=Login as diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_services.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_services.html new file mode 100644 index 0000000..0cc2c51 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/show_services.html @@ -0,0 +1,8 @@ +LANG_SHOW_SERVICES=Show Services +LANG_SERVICE=Service +LANG_STATUS=Status +LANG_START=Start +LANG_STOP=Stop +LANG_RESTART=Restart +LANG_RELOAD=Reload +LANG_REBOOT=Reboot diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/system_backup.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/system_backup.html new file mode 100644 index 0000000..ae70c6d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/system_backup.html @@ -0,0 +1,31 @@ +LANG_SYSTEM_BACKUP=System Backup +LANG_CONFIGURE_FULL_SYSTEM_BACKUP=Configure Full System Backup +LANG_BACKUP_PATH=Backup Path +LANG_MIN_DISK_SPACE=Minimum disk space required for backup (MB) +LANG_USE_REMOTE_TRANSFER=Use remote transfer: +LANG_REMOTE_TRANSFER_METHOD=Remote transfer method +LANG_DEL_AFTER_RTRANS=Delete the local backup after remote transfer +LANG_FILE_BY_FILE=Incremental file-by-file backup. +LANG_FILE_BY_FILE_COMMENT=(Deletes local file before creating the next one) +LANG_REMOTE_HOST=Remote Host +LANG_REMOTE_USER=Remote User +LANG_REMOTE_PASS=Remote Password +LANG_REMOTE_PATH=Remote Path + +LANG_BACKUP_HTTP_CONFIG=Backup httpd data +LANG_BACKUP_BIND_CONFIG=Backup DNS data +LANG_BACKUP_MYSQL_CONFIG=Backup MySQL Databases +LANG_BACKUP_DIRS_FILES=Backup Directories and Files listed below + +LANG_ADD_DIRECTORY=Add Directory +LANG_ADD_FILE=Add File + +LANG_CRON_SCHEDULE=Full System Backup - Cron Schedule +LANG_USE_CRON=Use Cron for Backup +LANG_DOWNLOAD_ID_DSA=id_dsa.pub for scp (~user/.ssh/authorized_keys2) +LANG_RUN_NOW=Run System Backup Now +LANG_VIEW_LOG=View Last Backup Log +LANG_ADD_USERS=Add user home directories to directory list below + +LANG_RUN_SYS_BK=Run System Backup +LANG_ON_PER_DAY=you can only store 1 backup per day in the same path diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/template_admin_bottom.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/template_admin_bottom.html new file mode 100644 index 0000000..227db92 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/template_admin_bottom.html @@ -0,0 +1,5 @@ +LANG_DISK_SPACE=Disk Space (mb) +LANG_BANDWIDTH=Bandwidth (gb) +LANG_DOMAINS=Domains +LANG_USERS=Users +LANG_RESELLERS=Resellers diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/template_diff.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/template_diff.html new file mode 100644 index 0000000..66b4842 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/template_diff.html @@ -0,0 +1 @@ +LANG_TEMPLATE_DIFF=Template Diff diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/usermanagement.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/usermanagement.html new file mode 100644 index 0000000..a894686 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/usermanagement.html @@ -0,0 +1,5 @@ +LANG_MOVE_USERS=Move Users between Resellers +LANG_MOVE_SELECTED=Move Selected Users to Reseller +LANG_SELECT_USERS_OF=Select the Users of + + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/confirmation.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/confirmation.html new file mode 100644 index 0000000..cfd5b82 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/confirmation.html @@ -0,0 +1,2 @@ +LANG_HOME=Home +LANG_PLEASE_CONFIRM=Please Confirm your request diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/footer_bar_1.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/footer_bar_1.html new file mode 100644 index 0000000..d0c0107 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/footer_bar_1.html @@ -0,0 +1,2 @@ +LANG_MESSAGE_SYSTEM=Message System +LANG_NEW=new diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/authentication.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/authentication.txt new file mode 100644 index 0000000..9f4cbc5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/authentication.txt @@ -0,0 +1,65 @@ +1=The lost password feature is disabled +2=Invalid username +3=Invalid code +4=No such user +5=Account is suspended +6=Invalid email address on file. Contact your webhost. +7=No such username in the request list. Your request may have expired. +8=Your request has expired. +9=Code does not match +10=Error changing password. Contact your webhost. +11=If the username entered is correct, you will receive a confirmation email shortly. +12=Error writing password request file. +13=Cannot find that code. It's likely expired. +14=Error reading admin list file. +15=Report of false password reset request +16=%s is reporting that IP %s has issued a password change request for user '%s' without approval.%cIf this continues, consider putting %s in the ip_blacklist file. +17=Report sent to the server admins +18=Invalid action +19=Missing template +20=Error while sending email +21=The e-mail containing your new password has been sent. +22=Select +23=Key Name +24=Expiry +25=Uses +26=Max Uses +27=Commands +28=Modify +29=Key Name must be simple: a-zA-Z0-9 +30=Key contains invalid characters +31=Ensure the 2nd key matches the first +32=Expiry must be a valid number (no decimals) +33=Please provide a valid unit of time for the expiry +34=Max number of uses must be a valid number (no decimals) +35=The expiry entered is too far in the future +36=A key with that name already exists +37=Never +38=Provided password is not correct. +39=You're using the login-as option, so use your own password. Not the User's password. +40=Delete +41=%sAre you sure you want to Delete the selected keys?%s +42=No keys have been selected +43=Unlimited +44=Expired +45=That key does not exist +46=Allow +47=Deny +48=%s is not in your commands list +49=%s is not a valid IP or range +50=Error writing %s: %s +51=Reset Uses +52=Unable to read %s: %s +53=Unable to write %s: %s +54=Your Login Key '%s' has been created +55=Notification that Login Key %s has been successfully created by %s +56=IPs +57=All +58=Cannot find key value in %s +59=Key value must differ from your DirectAdmin password +60=Script output +61=Log +62=View +63=Tail +64=UTF-8 +65=This is a Hash URL login. You can delete it, but you cannot modify it. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/backup.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/backup.txt new file mode 100644 index 0000000..c88f6df --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/backup.txt @@ -0,0 +1,153 @@ +1=Major Error: Error finding home for +2=Error Compressing the backup file +3=Click Here to Download the Latest Backup +4=A file is required +5=That is an invalid filename +6=File does not exist or you don't have access to file +7=Reason: +8=Restore Complete! +9=Script output +10=already exists on the server. +11=already exists on a remote server. +12=Domain %s Created +13=Error Creating Domain +14=Unable to read backups directory +15=User +16=Select +17=File +18=You do not own any IPs +19=When +20=Who +21=Where +22=Modify +23=Delete +24=Minute +25=Hour +26=Day of Month +27=Month +28=Day of Week +29=All Users +30=%sModify%s +31=Invalid Cron ID +32=You do not own that that cron ID +33=Unable to create backup directory +34=User %s has been backed up. +35=You have not selected any Users. Please go back and select some before creating the backup. +36=User %s does not exist on the system. +37=User %s is not on your list. You cannot make a backup for them. +38=Invalid IP/Domain for the ftp connection +39=Invalid ftp username +40=Invalid ftp path +41=Invalid ftp password +42=Invalid local path +43=Backup path %s has been created. +44=Using path %s is not allowed. +45=Path %s does not exist or is not accessible by the %s user. +46=You must use a number for the minute (0-59). You can only have a cron run once per day. (You can make more than one cron) +47=You must use a number for the hour (0-23). You can only have a cron run once per day. (You can make more than one cron) +48=The day of month is not a valid cron value (1-31) +49=The month is not a valid cron value (1-12) +50=The day of week is not a valid cron value (0-7) +51=The %s backups have been created in %s +52=Admin +53=User +54=The User backups have been uploaded to +55=Unknown backup destination +56=is not a valid username +57=Unable to extract user.conf, reseller.conf or ip.list from +58=Unable to extract %s from +59=The IP %s does not exist. User %s will not be created +60=You do not own the IP %s. User %s will not be created +61=is an invalid email address. User %s will not be created +62=Error while creating User +63=The file: '%s' is not in the form username.tar.gz +64=You don't have permission to restore user +65=User %s exists on the system but is not in your User list +66=System account exists, but unable to read the User data files for +67=User %s has been restored +68=User %s was suspended in the backup. Account suspended. +69=User %s was suspended in the backup. Error suspending the account: +70=You have not selected any Files. Please go back and select some before restoring the backup. +71=Invalid filename: +72=The file must be of the form: type.creator.username.tar.gz +73=The file must be of the form: username.tar.gz +74=That IP does not exist +75=You do not own that IP +76=You cannot restore multiple Users on one free IP. The IP must first be shared. +77=The User files have been restored from +78=The User files have been restored from +79=That ID is not of type 'admin' +80=Type +81=Reseller +82=All Users Except: +83=%s is not chowned to %s which is a likely cause for extraction failure +84=User %s has one or more hard links in their path: +85=Backup Abort (%d): A hard link was found under User %s's path +86=The following hard links have been found under User %s: +87=Error writing %s : %s +88=Invalid ftp port +89=What +90=All Data +91=Selected Data +92=No User Data +93=Account %s skipped due to suspension +94=Skip Suspended +95=FTP information invalid. +96=Unable to restore '%s' because the Reseller or Admin '%s' cannot be found. Rename the file if needed. +97=Duplicate +98=Run Now +99=Pre-backup hard-link check +100=Preparing 'domains' data +101=Preparing data (no 'domains') +102=Copying unreadable data +103=Compressing %s +104=Cleaning %s +105=Post scripts +106=Copying Reseller Data +107=Copying Admin Data +108=Kill +109=Details +110=PID +111=Backup ID +112=Start Time +113=Progress +114=Refresh +115=Owner +116=Overview +117=PID '%s' is not a number +118=Backup %d is not currently running. +119=Process ID %d is not 'dataskq'. It's '%s' +120=Error sending signal to %d: %s +121=Backup Halted +122=Although a backup error has occurred, the upload of valid backups would have still been attempted to +123=File being read as '%s' +124=File %s cannot be read as %s.%cCheck it's permissions and ownership. +125=Full Date +126=Nothing +127=%s: %s +128=Invalid path append value +129=These are dynamic values. They change with the date. +130=Week of Month +131=Custom +132=Backing up User Data +133=Backing up E-Mail Data +134=Backing up extra E-Mail items +135=Backing up E-Mail Settings +136=Backing up FTP +137=Backing up Databases +138=Backing up User Configs +139=No +140=Tried to restore '%s' to '%s', but this path is not in the %s +141=Account created in directory '%s' +142=Encryption of %s has failed +143=Decryption of %s has failed +144=Invalid encryption password +145=Unable to lock the '%s' account actions +146=User '%s' removed from the backup list. +147=Cannot find %s to convert %s +148=Restore of account '%s' to creator '%s' has been denied, as this account already exists under the control of creator '%s' +149=This account already exists on the system. If you restore, it will overwrite and/or merge the data. +150=Backup +151=Restore +152=Please see this URL and check for curl exit code '(%d)': %s +153=Accounts restored to %s partition. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/clear_message_system_list.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/clear_message_system_list.txt new file mode 100644 index 0000000..18811be --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/clear_message_system_list.txt @@ -0,0 +1,8 @@ +1=8 +2=-- anything -- +3=Brute-Force Attack detected in service log +4=is currently down +5=Your backups are now ready +6=An error occurred during the backup +7=emails have just been sent by +8=Warning: The system load average is diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/command.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/command.txt new file mode 100644 index 0000000..c5675c8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/command.txt @@ -0,0 +1,647 @@ +1=Cannot Execute Your Request +2=Cannot change password +3=Your password is invalid +4=Unable to change password +5=You must enter the password in both fields +6=Password is too short +7=Password is too long +8=Invalid characters in password +9=Passwords do not match +10=Cannot Execute Your Request +11=That user does not exist +12=That user does not belong to you +13=Old password incorrect +14=New password isn't different +15=Users deleted +16=Error while deleting Users +17=Delete the following users +18=User +19=Delete +20=Confirm +21=Cancel +22=Cannot Create a Message +23=You didn't select anyone to send it to +24=You cannot suspend yourself +25=You do not have control over user +26=Success +27=All selected Users have been suspended +28=You cannot suspend/unsuspend yourself +29=is already unsuspended +30=is already suspended +31=You cannot modify yourself +32=The username is invalid. Usernames must start with a-z, contain >= 3 characters and <= %d. +33=Cannot Create Account +34=That username already exists on the system +35=Package not found +36=Invalid Password +37=Do not use CAPS in the domain name. +38=That domain already exists +39=That domain already exists on another server +40=That domain is on the forbidden domains list +41=Cannot create that domain +42=That is the hostname which is reserved. Either change the hostname, or use a different domain +43=Cannot create user using those settings +44=User %s created +45=Error Creating User +46=User Comment Box +47=Save Comments +48=Creator Duplicate +49=User %s Removed +50=Error removing +51=Your request will be executed within 1 minute +52=The process is currently being used to execute this request so it will be executed shortly by the Task Queue. +53=Stop +54=Start +55=Restart +56=Reload +57=Process is stopped +58=Process is running +59=Reboot +60=Your password +61=Name +62=Creator +63=Bandwidth +64=Disk Usage +65=# of Domains +66=Suspended +67=IP +68=Domain(s) +69=Select +70=With Selected +71=Send a Message +72=Email Only +73=Suspend +74=Unsuspend +75=Domain Pointer on +76=# of Users +77=Domain +78=SubDomain Name +79=Subdomain Stats +80=Bandwidth Usage +81=Usage Log +82=Error Log +83=Stats +84=Log +85=Errors +86=Remove Directory Contents +87=Delete Selected +88=Could not execute your request +89=You do not own that domain +90=Unable to read domain configuration files +91=Cannot Create Another Subdomain +92=Unable to create subdomain +93=Error removing subdomain(s) +94=Cannot Add Record +95=You must provide a valid name and value +96=The value must be an IP address +97=There is already a CNAME record with that name +98=There is already a A record with that name +99=Cannot View Dns Record +100=Error Reading db file +101=Unable to create zone +102=You must provide a valid domain, ip, ns1 and ns2 +103=Unable to create reverse IP lookup +104=That zone already exists +105=Unable to create zone.

It already exists on the following system(s): +106=Zone Reset +107=Error Resetting Zone +108=%sAre you sure you want to delete the selected zones?%s +109=has been removed from the list. +110=could not be removed, you must free it first. +111=is now controlled by +112=could not be assigned, it must first be free and unassigned. +113=is now unassigned. +114=could not be removed, it must first be free. +115=no longer has a Name Server Label. +116=can now be shared. +117=could not be shared, it must first be free. +118=is now free. +119=could not be freed, it must first have zero domain if it is shared, or must be reserved. +120=Unable to create a Reseller +121=You must first create some packages +122=Your reseller has reached their assigned limit +123=Your reseller account has reached its assigned limit +124=You have already reached your assigned limit +125=Unable to create a User +126=You must first own an IP +127=Cannot Create Another POP Account +128=Account created +129=Error creating account +130=Account password changed +131=Error changing password +132=You cannot delete the account %s because it is linked to your system account +133=Unable to delete the main email account +134=Error deleting account(s) +135=Catch-All Email has been disabled on this account +136=Error updating Catch-All value +137=catch is required +138=value is required +139=Catch-All email updated successfully +140=Cannot Create Another Forwarder +141=Forwarder created +142=Error creating forwarder +143=Forwarder updated +144=Error updating forwarder +145=Cannot Create Vacation Message +146=A message for that user already exists +147=Error creating Vacation Message +148=Error updating Vacation Message +149=Cannot Create Another Autoresponder +150=Cannot Create Autoresponder +151=An autoresponder with that name already exists +152=Error creating Autoresponder +153=Autoresponder updated +154=Error updating Autoresponder +155=Error deleting autoresponder(s) +156=Error setting the filter +157=Error deleting filter(s) +158=Cannot Create Another Mailing List +159=An error has occurred +160=List Configurations Saved. +161=Cannot Create Another Database +162=Database Created +163=Error creating the database +164=Results +165=User added to database +166=Error Creating User +167=User Updated +168=Error Updating User +169=Error Restoring database +170=Database has been successfully Restored +171=All privileges have been set +172=Unable to add access host: +173=Access host has been added +174=Access hosts have been removed +175=Unable to download backup +176=Cannot Create Another FTP Account +177=Click +178=HERE to go back. +179=Ftp settings saved +180=Frontpage is not active on this server +181=Frontpage changes successful. +182=You are not allowed to modify your ssl settings +183=You can only add a certificate if you own the ip you are using

Info for Admins: Assigning an owned IP +184=Certificate and Key Saved. +185=File does not exist +186=You must wait for the stats to be computed. This will only happen *after* logs exist (domain must resolve and be used).

Info for Admins: Downloading a new webalizer binary +187=The Ticket System is not enabled. +188=Reply Sent +189=Messages Updated +190=Message is being sent +191=Your message is being sent in the background +192=Your message has been sent +193=Tickets Updated +194=Upload successful +195=An Error Occurred +196=Compressed File Created +197=An error occured while creating the compressed file +198=File ownership reset +199=An error occured while resetting the file ownership +200=File Extracted +201=An error occured during extraction +202=Directory Protection Settings have been saved. +203=An error occurred while attempting to protect the directory +204=An error occurred while attempting to rename the file +205=An error occurred while attempting to copy the file +206=An error occurred while attempting to create the directory +207=Unable to set file permissions +208=Result of file copy +209=Result of file move +210=Unable to delete files +211=Unable to create create new file +212=Unable to edit file +213=Unable to save your changes +214=It's already associated with +215=You cannot add that extension +216=Date +217=Attempts +218=Invalid values +219=Make sure that the values passed are valid for their type +220=The max upload size cannot be 0 +221=If you set it to 0, no basic httpd request will work. You wont even be able to login. +222=Invalid session timeout or max filesize values +223=Keep the numbers to a realistic value please. +224=Error Creating Cron Job +225=Cron Created +226=Cron job has been created +227=Changes saved +228=%sBack%s +229=Error while saving changes +230=Please select only 1 cronjob to edit +231=Cron Job(s) Deleted +232=Unable to read the user's files +233=Here are the results: +234=Unable to change the E-Mail Address +235=Invalid E-Mail address +236=E-Mail Address has been successfully changed +237=Unable to change the Name +238=Invalid Name +239=Full Name has been successfully changed +240=Language has been successfully changed +241=Skin has been successfully changed +242=Cannot Modify User +243=User Modified +244='s current IP +245=Options changed successfully +246=Redirect Added +247=Redirect(s) deleted +248=Cannot Create Another Domain Pointer +249=Domain Pointer Added +250=Unable to show the system information +251=It has been disabled +252=Namesevers have been changed. +253=You must select a nameserver ip pair (ns1.domain.com and ns2.domain.com) +254=Nameservers deleted +255=Message Reset +256=Your message has been saved +257=%sClick here to close this window%s +258=Setting +259=Current Usage +260=Allocated +261=Maximum Usage +262=Bandwidth (MB) +263=Disk Space (MB) +264=# of SubDomains +265=POP Email Accounts +266=Email Forwarders +267=Mailing Lists +268=AutoResponders +269=# of MySQL DBs +270=Domain Pointers +271=Ftp Accounts +272=# of IPs +273=Name Server 1 +274=Name Server 2 +275=Shell Access (ssh) +276=Shell for Resellers's Users +277=Secure Socket Layer (ssl) +278=CGI-Bin +279=PHP +280=SpamAssassin +281=Catch-All Email +282=Anonymous Ftp +283=Cron Jobs +284=System Info +285=DNS Control +286=Allow Overselling +287=Can use Server IP +288=Reseller History +289=Username +290=Details +291=Total Disk Usage (MB) +292=%sEmail Disk Usage +293=%sDatabase Disk Usage +294=E-Mail +295=%sSave E-Mail%s +296=%sSave Name%s +297=Language +298=%sSave Language%s +299=Date Created +300=Package +301=Skin +302=%sSave Skin%s +303=Usertype +304=User History +305=Log Usage +306=Subdomains +307=Present +308=Update +309=Suspend at Limit +310=Domain AWstats + Webalizer +311=Domain AWstats +312=Domain Webalizer Stats +313=Set selected domains to be publicly viewable from +314=Set +315=Awstats ... +316=No Awstats +317=Webalizer +318=# of free IPs +319=# of Resellers +320=Load Average +321=%sServer History%s +322=Filesystem +323=1k-blocks +324=Used +325=Available +326=Use%% +327=Mounted on +328=You must wait at least %d minutes between updates.
You have %d:%.2d left. +329=Unable to update your Disk Usage +330=Your disk usage has been updated +331=E-Mail has been changed to %s +332=Your Name has been changed to %s +333=Language has been changed to %s +334=Skin Installed +335=Skins Deleted +336=Please pick only one skin to apply +337=Skin Set +338=Skin applied to all users +339=User backups have been disabled. +340=Allowance threshold is 0%% +341=You have used %d%% of your disk usage, which is more than the allowed threshold of %d%%. +342=Cannnot create User Backup +343=Backup creation added to queue +344=You will receive a message when it's complete. +345=Restore Complete. +346=Update queued +347=Your request for an updated license file will begin in under a minute. You should be notified via the Message system when it is complete.

If you aren't expecting a new license the same license file will be generated. +348=Your request for an update will begin in under a minute. You should be notified via the Message system when it is complete +349=%d days, %d hours and %d minutes +350=Command Returned +351=You cannot execute that command +352=The request you've made cannot be executed because it does not exist in your authority level +353=Open Basedir enabled on selected domains +354=Open Basedir disabled on selected domains +355=Safe Mode Enabled on selected domains +356=Safe Mode Disabled on selected domains +357=The default has been set +358=Customization written +359=Set as Default +360=Suspend / Unsuspend +361=Cannot set default domain +362=Please select 1 domain to be your default domain +363=is now your default domain. +364=will now point to +365=Your default domain has been set +366=Unable to set bandwidth +367=You cannot assign the domain more bandwidth than your account +368=Unable to set quota +369=You cannot assign the domain more quota than your account +370=Cannot Create Another Domain +371=Invalid Domain Name +372=Domain Created +373=Error Creating Domain +374=You did not select any domains to modify +375=Domain(s) modified +376=deleted successfully. +377=Domain Deletion Results +378=Delete the following domains: +379=Setting changed +380=Password Changed

Click here to return to the main page
+381=Error changing password

Click here to return to the main page
+382=Subdomain created +383=Subdomains deleted +384=Unable to reboot +385=You must provide the passwd variable +386=That password is incorrect +387=System Rebooting Now! +388=You have successfully issued a server reboot command. It may take a few minutes for the system boot up and become live again. +389=Cannot resend welcome email +390=That is an invalid email address / email list +391=* irretrievable * +392=Email Sent +393=The welcome email(s) has successfully been resent. +394=Feature Disabled +395=The Administrator has disabled the User Backup Function +396=Backups added to Queue +397=You will be notified via the Message System when the process is complete +398=Restores added to Queue +399=Selected Plugins Activated +400=Selected Plugins De-Activated +401=Selected Plugins Deleted +402=Plugin(s) Updated +403=Plugin(s) Installed +404=Plugin(s) Un-Installed +405=Plugin Uploaded +406=Unable to show User History +407=Unable to read History File.
The file is generated when the account is reset. +408=Unable to show Reseller History +409=Unable to show Admin History +410=new_domain is not a valid domain +411=Unable to use that new domain name +412=Domain name has been successfully changed +413=SpamAassassin is disabled on your account +414=Settings Saved +415=Spamassassin disabled +416=Unable to set stats link +417=You have not selected any domains +418=Unable to set stats link +419=The entered path must be a-zA-Z0-9 +420=Stats links created +421=Users will be deleted in the background. +422=The disk usage for the selected Users totals more than %d MB, thus will be removed in the background.
You will be notified via the Message System upon completion. +423=You can only add a certificate to your main domain +424=All selected Users have been unsuspended +425=Unable to add domain pointer +426=Cannot Delete those NS records +427=Deleting them will leave you with 0. You must have more than 0 NS records or named may not start.
Add the new NS records first. +428=Local Data +429=Yes +430=No +431=Current IPs Assigned to %s +432=It must not be an IP +433=Unable to add IP +434=That domain does not belong to you +435=IP Added +436=Error reading user_ip.list file +437=Current IPs +438=IP Type +439=Main +440=Additional +441=Unable to remove IP(s) +442=IP(s) removed +443=-- None Available -- +444=Remove DNS records for IP(s) +445=IP(s) +446=No IPs selected +447=unlimited +448=Apache +449=Email +450=Ftp +451=Other +452=Total +453=Email Deliveries (Sent) +454=Cannot View Domain Settings +455=
*** WARNING ***
You are deleting Admin or Reseller accounts that have %d Users under their control.
If you proceed, these User accounts, along with ALL the associated website and email contents, which are not listed here, will also be removed. +456=Subdomain Created +457=Email Deliveries +458=%sTemporary Bandwidth Increase +459=%sSave Increase%s +460=Unable to change the temporary bandwidth increase +461=Invalid number +462=Number must be greater than zero +463=Temporary bandwidth increase has been set +464=Cannnot set TTL +465=Both DNS Control and ttl override must be enabled +466=Sorry, this function does not support domain pointers at this time +467=The 'ttl' value passed is not a number or is too large +468=Error reading domain config file +469=Error writing domain config file +470=TTL has been saved +471=All Months (cgi) +472=Downloaded: %s +473=Uploaded: %s +474=The full format name entered does not end with the name of the zone +475=Script Output +476=Sent Emails +477=Received Emails +478=Original Package +479=Invalid Email limit +480=It must be a positive integer. +481= / Day +482=Unable to change the Message System E-Mail Address +483=Counted +484=Pop +485=Imap +486=Unable to show current E-Mail usage +487=Username changed to lower case. +488=Key Created. Take note of it's value and keep it safe. +489=Cannot Modify Key +490=Key Modified. If you've modified its value, take note of it and keep it safe. +491=Key(s) Deleted +492=Error Deleting Key(s) +493=Error Creating Key +494=Error Resetting Key Uses +495=Key Uses Reset +496=Login Keys are disabled +497=Systems Quotas are size 0. See this guide to fix it. +498=  (Today: %lld%s%s) +499=Reset Today +500=Only Admins can reset the usage count +501=%s appears to be a link. Aborting. +502=Error Deleting %s +503=Today's E-Mail count has been reset for User %s +504=The following file could not be found. No reset required. +505=Error saving Cron E-Mail +506=Cron E-Mail set +507=View previous sort +508=Message(s) removed +509=Login Keys +510=Date Suspended +511=Local Mail +512=Save Limit +513=Unable to set the E-Mail Limit +514=E-Mail Limt has been set +515=reseller_can_set_email_limit=0 is set, thus you cannot set a limit +516=Set 0 for unlimited. Set a blank value to reset to default. +517= and %d Users +518=Service +519=Status +520=Memory Usage +521=Cannot find IP +522=IP Link Added +523=IP Link(s) Removed +524=The Users display cache will be updated momentarily. +525=Security Questions are disabled +526=Error setting Security Question +527=Security Question set +528=Please select 1 Security Question +529=Error deleting Security Questions +530=Security Questions deleted +531=Error Writing %s +532=Error with Security Questions +533=Cron Jobs Duplicated +534=Error setting PHP versions +535=PHP versions saved +536=Cron Jobs will run in the background +537=Inodes +538=Last Tally Completion +539=UserDir: %s +540=DNSSEC is not enabled +541=Error generating zone keys +542=Zone keys generated +543=Error signing zone +544=Zone signed +545=Back +546=Cannot manage zone +547=Zone is of type DNSSEC. Edit the zone on the master server.
%sClick Here%s to view the local raw zone data +548=MySQL is not enabled on this server +549=Archives purged +550=Error purging archives +551=| +552=Leave DNS +553=%sThis will skip the removal of the dns zone, leaving it in place.%s +554=%s Edit the User Welcome Message to ensure the subject and message are set. +555=Invalid Log Rotate Value: %d +556=The maximum value is %d +557=Invalid Session Minutes value: %d +558=Unable to Locate that domain +559=User DNSSEC Control is disabled +560=Error Unblocking paths +561=Paths Unblocked +562=Double click for main domain page +563=Nginx is not enabled +564=Settings +565=Error with Two-Step Authentication +566=Two-Step Authentication is disabled +567=Error generating scratch codes +568=Scratch codes +569=%s Removed +570=Trust cookie has been cleared +571=Sent E-mails +572=%sSave Nameservers%s +573=Error saving Nameservers +574=Nameservers have been changed +575=LetsEncrypt files have been cleared +576=Error clearing LetsEncrypt files +577=user_modify_pre.sh error +578=Active +579=or +580=Custom Skin Logos are not enabled +581=Custom Skin Logo uploaded +582=Error with Mail SNI +583=mail_sni is not enabled +584=Mail SNI entries added +585=Mail SNI entries removed +586=Failed Referer Check +587=Invalid request: '%s' +588=The referer request set (%s) is not in the allowed list: %s +589=The referer used is not safe as it can be controlled by a User: %s +590=Unable to Logout +591=%sOther Disk Usage +592=Restore will run in the background +593=Home path '%s' is not in the allowed home_override_list +594=Home Directory +595=Does not match setting: %s +596=Server +597=Delete web data +598=Preserving the web data only applies to /domains/domain.com. Other areas like E-Mail data will not be preserved. +599=%s License +600=%sVerify%s +601=Check to see if the current software is valid +602=License verified +603=Issue verifying license +604=E-Mail Updated +605=Confirm results on the DirectAdmin Website +606=Awstats +607=%sSave %s +608=On +609=Off +610=Awstats setting changed +611=Suspend Reason +612=Customization Disabled +613=SSH is not enabled +614=SSH Key created +615=Error creating SSH Key +616=Error authorizing SSH Key +617=SSH Key authorized +618=E-Mail Accounts Deleted +619=Error deleting SSH Key +620=SSH Key deleted +621=Global Key set +622=Error setting global key +623=Error modifying SSH key +624=SSH Key Modified +625=Default +626=Limit Notice +627=%s account %s has just been created +628=Reseller +629=Admin +630=Account %s has just created %s %s from IP %s +631=MX Template set +632=Error setting MX Template +633=Un-Set +634=Stats links removed +635=Reload Requested +636=Login as %s +637=Single value for %s has been set +638=License limits exceeded +639=Set to +640=User Accounts +641=One-Time Login URL Created +642=IP Netmask Set +643=Records Deleted +644=Record Added +645=Error deleting records +646=Deleted User Bandwidth +647=DocumentRoot diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/command_texts.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/command_texts.txt new file mode 100644 index 0000000..8684f43 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/command_texts.txt @@ -0,0 +1,81 @@ +1=Change Password +2=Security Questions +3=Two-Step Authentication +4=Logout +5=Show Domain +6=DNS Management +7=MX Records +8=Domain Setup +9=Rename Domain +10=Subdomains +11=Plugins +12=E-Mail Accounts +13=Catch-All E-Mail +14=Forwarders +15=SpamAssassin +16=E-Mail Usage +17=Autoresponders +18=Vacation Messages +19=Mailing Lists +20=Spam Filters +21=Databases +22=Ftp Management +23=SSL Certificates +24=Message System +25=File Manager +26=Password Protected Directories +27=Mime Types +28=Apache Handlers +29=Login History +30=Cron Jobs +31=Site Redirection +32=Domain Pointers +33=System Information +34=Perl Modules +35=Site Summary / Statistics / Logs +36=Create/Restore Backups +37=User History +38=Bandwidth Breakdown +39=Disk Usage Details +40=Login Keys +51=List Users +41=Manage User Packages +42=Reseller IP Management +43=Manage Tickets +44=Name Servers +45=Edit User Welcome Message +46=Skins +47=Reseller Statistics +48=Manage User Backups +49=Reseller History +50=Reseller Plugins +52=List Resellers +53=List Admins +54=Show All Users +55=Service Monitor +56=Manage Reseller Packages +57=Admin IP Management +58=Admin Settings +59=Admin DNS Administration +60=Edit Admin Welcome Message +61=Edit Reseller Welcome Message +62=Admin Statistics +63=Admin History +64=Licensing / Updates +65=Custom HTTPD Configurations +66=Move Users between Resellers +67=PHP Configuration +68=Plugin Manager +69=System Backup +70=Log Viewer +71=Multi-Server Setup +72=Admin File Editor +73=Mail Queue Administration +74=Admin Backup/Transfer +75=All User Cron Jobs +76=Process Monitor +77=Admin Plugins +78=Brute Force Monitor +79=SSH Keys +80=Admin Certificate Management +81=Hotlink Protection diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/cron.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/cron.txt new file mode 100644 index 0000000..3786197 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/cron.txt @@ -0,0 +1,15 @@ +1=To add a cron job, you require all of the following: minute, hour, dayofmonth, month, dayofweek and command +2=The times must formatted like one of the following (eg. hour, no spaces):
*
1
1-5
0-23/2
1,2,3,13,22
0-4,8-12 +3=The command cannot contain any newline characters +4=Minute +5=Hour +6=Day of
Month +7=Month +8=Day of
Week +9=Command +10=Save +11=Edit +12=Delete +13=Select +14=User +15=Invalid E-Mail address. Multiple and DirectAdmin login username, or blank also allowed diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/database.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/database.txt new file mode 100644 index 0000000..4cd1400 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/database.txt @@ -0,0 +1,98 @@ +1=Error with command: +2=Error Flushing Privileges: +3=You require a database name +4=You require name, user, passwd and passwd2 +5=Script output +6=That user already Exists +7=Cannot find the user +8=which should already exist +9=Unable to create database +10=Unable to add user +11=Your database has been setup. Use the following values: +12=Database: +13=Host: +14=Username: +15=Password: +16=Click +17=HERE to go back +18=An error occurred listing the databases: +19=That database already exists +20=is not a valid database name +21=does not belong to you +22=Database %s was removed successfully +23=All databases removed succesfully +24=The database +25=The user +26=does not exist +27=User %s has been added to your database. Use the following values: +28=That user doesn't exist +29=Unable to update user +30=User %s has been updated. Use the following values: +31=You require the name and user +32=That user does not belong to you +33=That user does not exist, please create the user before changing their privileges +34=That database does not exist +35=That database does not belong to you +36=All Users deleted successfully +37=Unable to get privileges for +38=Database +39=Number of Users +40=Download Backup +41=Size +42=Select +43=too many tables +44=Repair +45=Check +46=Optimize +47=Total Size: +48=Delete +49=%sAre you sure you want to Delete the selected databases?%s +50=User +51=Modify Password +52=Privileges +53=modify password +54=modify privileges +55=Delete Selected +56=Access Hosts +57=%sAdd Host%s +58=Unable to connect to the database +59=Invalid password (empty) +60=Password is too long for the database +61=That file was empty +62=Invalid User +63=Invalid Password +64=Password cannot contain single quotes +65=Unable to restore database +66=You forgot to include a filename +67=That isn't a gzip file +68=Unable to find %s to create mysql backup +69=Error while creating the backup +70=Error writing settings file for +71=Error while backing up database +72=Cannot find the sql file after backup was run: +73=The sql file is 0 bytes in size: +74=mysqldump error output: +75=Error Adding Main Username to database: +76=Unable to open %s to restore the databases +77=Invalid database name: +78=That is not a valid access host +79=Cannot get the user list for database +80=is not a valid access host +81=Error selecting database +82=Table +83=Operation +84=Message Type +85=Text +86=Please select one or more Databases +87=Yes +88=No +89=Download +90=Your database username (%s) contains invalid characters (%s). MySQL account will not be created on %s. +91=Your database name (%s) contains invalid characters (%s). +92=Error Granting Main Username access to database: +93=Value is too long. Max=%d +94=Revoking all privileges would delete the User from the mysql.db. Please grant at least 1 privilege. +95=phpMyAdmin is missing direct_login option. Please re-install phpMyAdmin. +96=The following test database tables have been found: +97=They should not exist. To delete them, run: +98=You must have at least one database to login to phpMyAdmin diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/difficult_password.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/difficult_password.txt new file mode 100644 index 0000000..bd32101 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/difficult_password.txt @@ -0,0 +1,5 @@ +0=Password OK +1=Password is too short (%d). Use at least %d characters +2=Password must have both upper and lower case characters +3=Password must have at least one special character such as !@#%$ etc.. +4=Password must have numbers diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/domain.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/domain.txt new file mode 100644 index 0000000..a01ebcb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/domain.txt @@ -0,0 +1,40 @@ +1=Script output +2=Unable to create directory +3=Secured Home of +4=Welcome to +5=To change this page, upload a new index.html to your private_html folder +6=Domain Created Successfully +7=Error Creating Domain +8=Invalid subdomain name +9=Subdomain already exists +10=This is a placeholder for the subdomain +11=%s's config files have been removed +12=Domains directory created successfully +13=Domains directory created successfully in user's home +14=Users's domains directory removed. +15=Unable to delete users's domains directory +16=That domain is suspended. Unsuspend it before changing it's name +17=The domain %s does not belong to you. The subdomain will not be created. +18=The provided IP is not valid +19=That IP does not exist in your User's IP list +20=Error writing %s : %s +21=That IP already exists on the domain +22=Subdomain name too long. Maximum %d characters. +23=%s is not on your domain's IP list +24=You cannot delete all of your IPs +25=Error removing IP(s) from %s +26=Unable to find %s +27=The owner of %s is not %s +28=Related: http://www.directadmin.com/features.php?id=925 +29=php1_select and php2_select must be 0-%d +30=PHP Version Selector +31=Handler +32=Extension +33=Save +34=First PHP +35=Second PHP +36=The subdomain '%s' already exists under the %s domain. +37=Enabled +38=Disabled +39=Off +40=Error reading %s: %s diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/email.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/email.txt new file mode 100644 index 0000000..8497be6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/email.txt @@ -0,0 +1,236 @@ +1=Account +2=Login +3=Usage (Meg) +4=Max Usage (Meg) +5=Password/Quota +6=Outlook Settings +7=Download +8=change +9=Select +10=You require user, domain and passwd to add a pop account +11=Script output +12=There is already a mailing list alias with that name +13=Cannot open the password file to add the user +14=That user already exists +15=Unable to write to the password file. Let your administrator know that %s is unwritable. +16=Unable to write the quota file. Let your administartor know that %s is unwriteable. +17=Email created but +18=Invalid new user value +19=Cannot use the main account username +20=You require user and domain to change a pop account +21=You require either the passwd or quota +22=Invalid Password +23=That is not a valid quota +24=Cannot open the password file to change the password +25=That email user does not exist +26=Your account +27=has been changed. +28=your new password is +29=your new quota is +30=Click +31=HERE to go back +32=does not exist +33=Unable to write the usage.cache file. Let your administartor know that %s is unwriteable. +34=Imap +35=Inbox +36=Imap Folders +37=Webmail +38=unlimited +39=Total Usage +40=Meg +41=Empty: +42=Spambox +43=Delete +44=Are you sure you want to Delete the selected accounts? +45=Catch all is now set to +46=Catch-All is now set to ignore wrong addresses +47=Catch-All is now set to fail +48=default user +49=or select from +50=String contains an invalid email address +51=Invalid Email Name +52=Do not use any spaces between the email names. +53=There is already a mailing list alias with that name +54=Forwarder '%s' already exists. +55=Alias +56=has been created +57=HERE to return to the forwards list +58=All specified forwarders removed +59=Forwarder +60=Value +61=Modify +62=Delete Selected +63=There is already an account with that name +64=That username is an invalid email username. +65=Invalid CC email address +66=The CC value entered will create an infinite loop. Please use a different CC value. +67=Autoresponder +68=CC Address +69=Hello, this is my autoresponder +70=There is already an autoresponder with that name +71=That pop account doesn't exist +72=Vacation Account +73=Start Time +74=End Time +75=Hi,%c I am currently on vacation. I will view your message when I get back. +76=Mailing List +77=Subscribers +78=Digest Subscribers +79=View +80=Subscriber +81=Digest Subscriber +82=The E-Mail '%s' contains invalid characters +83=Open +84=Closed +85=List +86=Yes +87=No +88=Auto +89=Open+Confirm +90=Closed+Confirm +91=Auto+Confirm +92=This is information about my mailing list +93=You must provide a valid name and it must exist. +94=You must provide a list name +95=Listname must be all lower case letters +96=Listname must be %d characters or less +97=A list alias already exists with that name +98=A pop account already exists with that name +99=A forwarder already exists with that name +100=An auto responder already exists with that name +101=You can't make a list named majordomo as its a reserved alias +102=You must select at least one mailing list to delete +103=Can't get file lock on +104=Can't open file %s for reading +105=Can't reopen file %s for appending +106=Jan +107=Feb +108=Mar +109=Apr +110=May +111=Jun +112=Jul +113=Aug +114=Sep +115=Oct +116=Nov +117=Dec +118=Morning +119=Afternoon +120=Evening +121=Invalid E-Mail +122=Invalid domain +123=Invalid characters in word +124=Size is not a number +125=Invalid filter type +126=That filter already exists +127=Filter +128=Enable +129=Enabled +130=Disable +131=Disabled +132=high_score must be in the range 1 to 99 +133=Error in post. Requires domain, type and value. +134=Purge From +135=All E-Mail +136=Older than +137=days +138=Webmail Attachments +139=account ... +140=of +141=Suspended +142=Suspend +143=Unsuspend +144=No changes were needed. Skipping write. +145=Skipping system E-Mail account +146=Cannot find %s, skipping. +147=Unable to read %s. This file is only created when emails are delivered. +148=Time +149=Sender +150=Authentication +151=ID +152=Sender Host +153=Size +154=Destination +155=Path +156=Highest +157=Count +158=Percent +159=retry +160=Unable to read %s. This file is only created after a tally is run. +161=Limit is not a number +162=Cannot find %s. Ensure the domain exists and is not suspended +163=Sent +164=%sE-Mails sent today%s +165=Send limit must be a valid number, or blank. +166=You cannot set an unlimited send limit. +167=Please set a limit between 1 and %d +168=your new send limit is: %s +169=%sClean Forwarders%s +170=Until the cache is created, the values may not be correct. Refresh the page in 1 minute. +171=The cache is being updated. Please refresh the page in 1 minute. +172=User %s has one or more hard links in their path: +173=Backup Abort (%d): A hard link was found under User %s's path +174=(%d) The following hard links have been found under User %s: +175=Archive Size +176=Purge Archives +177=older than %s days. +178=Archives purged +179=Error purging archives +180=You must select at least one mailing list to purge +181=Days must be a valid number. +182=Unable to read RoundCube backup script: %s +183=Unable to read RoundCube restore script: %s +184=Because the script meets the required criteria, it has been disabled via chmod to 0. +185=Blocked +186=This account is blocked via BlockCracking.%cChange the password to unblock it. +187=This account is blocked via BlockCracking.%cEither have your account creator change your password to unblock it, or use the Lost Password feature on the login page (if enabled). +188=This account is blocked via BlockCracking. Unblocking is disabled. +189=Account has been unblocked from BlockCracking +190=An error occurred when unblocking the account +191=sent +192=BlockCracker Blocked Paths +193=Unblock +194=Date Blocked +195=Before Unblocking, ensure that any compromised scripts have been removed or fixed. +196=Paths must be within your home directory +197=Unblocking is disabled. +198=No paths were provided. +199=PHP Script Name +200=mail() Line Number +201=Send Count +202=Block Usage +203=Apparent Size +204=Selected character-set encoding is not valid. +205=Selected Content-Type is not valid. +206=Autoreply +207=Subject prefix contains invalid characters. Use %s +208=%s is not a valid exim date. +209=minutes +210=hours +211=Purge +212=Last Login: %s +213=Last Login IP: %s +214=Password Changed: %s +215=Changed by IP: %s +216=Forwarder %s@%s deleted as it had zero recipients remaining. +217=Forwarder %s cannot point to itself +218=Forwarder contains a local_part_suffix character: '%s' meaning everything after it will be ignored and the forwarder will never match. +219=Error writing %s +220=DKIM disabled +221=DKIM enabled +222=That is not your domain +223=One-Click login requires does not support webmail_link=%s. Try webmail_link=roundcube. +224=RoundCube missing direct_login option. Please re-install RoundCube. +225=Webmail SSO +226=You can click the E-Mail below to be immediately logged into %s as this User, without knowing their password. +227=Cannot have unlimited E-Mail quotas +228=E-Mail quota must not exceed %s +229=Default +330=Dovecot file '%s' is missing data. Run './build dovecot_conf' +331=Your account %s@%s has been setup. In your e-mail program, use +332=Username +333=Password +334=POP/IMAP Server +335=SMTP Server +336=port diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/filemanager.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/filemanager.txt new file mode 100644 index 0000000..c2026af --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/filemanager.txt @@ -0,0 +1,88 @@ +1=Type +2=Name +3=Size +4=Perm. +5=Action +6=Date +7=UID +8=GID +9=Select +10=With Selected    +11=%sset Permission%s +12=%sAdd to Clipboard%s +13=Delete +14=%sAre you sure you want to delete these files?%s +15=View Clipboard +16=Copy Clipboard Files here +17=Do you want to overwrite any existing files? +18=Move Clipboard Files here +19=Empty Clipboard +20=Up a Level +21=Protect +22=Rename +23=Copy +24=Reset Owner +25=Recursively +26=Edit +27=Extract +28=Path must start with a forward slash (/) +30=Disk Usage +31=Last Accessed +32=Last Modified +33=Last Changed +34=You must enter a chmod value. eg: 755 +35=Sticky bit's not allowed: 777 is the max allowed permission +36=Attempting to move %s onto itself, file skipped. +37=Cannot move a directory (%s) onto an existing file or directory (%s) +38=File %s already exists, file skipped. +39=Unable to rename %s to %s: %s +40=Attempting to copy %s onto itself, file skipped. +41=Unable to copy directory %s to %s: %s +42=Unable to copy %s to %s: %s +43=Unable to delete %s: %s +44=Unable to delete directory %s: %s +45=Unable to get file stats on +46=Warning: Saved filesize is less than uploaded filesize. Check quotas. +47=Warning: Quota limit reached. File(s) may be empty. +48=Click %s%s%s here%s to go back +49=has been saved as +50=Cannot rename a directory onto an existing file or directory +51=The path %s already exists +52=has been renamed to +53=has been copied to +54=You must enter a folder 'name'. eg: images +55=Private Directory +56=Username +57=You must provide a protected directory password prompt. eg: Member's Area +58=Protected directory name contains invalid characters. Keep it simple +59=The username is invalid. Usernames must use a-z0-9 +60=You must enter both password +61=Passwords do not match or are invalid +62=That path isn't protectable +63=Current Protected Directories +64=You do not yet have any protected directories.
Follow the link above to find a directory and protect it +65=Creating zip files is disabled +66=is not a valid file +67=Unable to read the %s file. Make sure it exists. +68=You have not added any files to the clipboard. +69=Error while compressing file +70=Go to +71=The file %s does not have apache as the UID or GID +72=| +73=Recursive +74=The file %s has more than 1 hard link +75=The file %s has group is apache, but user is not apache or account holder +76=Ensure %s exists and is chmod to 1777. +77=No files have been selected for upload. +78=The directory %s seems to be owned by 'apache'. Try using the 'Reset Owner' option, then try again. +79=The path already exists, but is not a directory +80=Clipboard +81=Filename +82=OK +83=Unable to open directory +84=Recursive search at max depth on %s +85=Uploaded file is not valid for copy +86=Script Output +87=Password must be more than %d characters +88=Maximum number of files listed (%d). Suppressing further output. +89=Error writing %s: %s diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/frontpage.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/frontpage.txt new file mode 100644 index 0000000..570153b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/frontpage.txt @@ -0,0 +1,10 @@ +1=You required a password +2=That is not your system password +3=is a symbolic link.
Enabling frontpage on this domain would be a security risk +4=Domain and password are required +5=Frontpage Successfully installed on +6=Enabled +7=Disabled +8=Enable +9=Disable +10=Frontpage Not Installed diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ftp.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ftp.txt new file mode 100644 index 0000000..ae0cd71 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ftp.txt @@ -0,0 +1,33 @@ +1=Unable to create directory +2=Unable to write to the system ftp passwd file to add the user to it. +3=Unable to read the system ftp passwd file to add the user to it. +4=Unable to get the user's crypted password for the ftp passwd file +5=Unable to write the main ftp password file. Your changes will not take effect. +6=Unable to write the system ftp passwd file to remove the system ftp user +7=Unable to read the system ftp passwd file to remove the system ftp user +8=user, passwd, passwd2 and type are required +9=That user already exists +10=That user is reserved for the anonymous account +11=That is not a valid path. Either it is not in your home directory, it doesn't exist, it contains symbolic links, or it contains invalid characters +12=Unknown ftp type +13=That user doesn't exist +14=Ftp account changed +15=Account +16=Server Path +17=Password +18=Select +19=change +20=Delete Selected +21=The ftp user %s does not exist in passwd file %s +22=You require a domain, anon, anonup and a message +23=You are not allowed to enable anonymous ftp +24=You need to specify a domain +25=Cannot restore the ftp account for %s. You have reached your limit (%s). +26=Script output +27=Unable to get lock on %s +28=That user contains the ftp separator (%c) which cannot be in the username. +29=Suspend +30=Unsuspend +31=Suspended +32=Yes +33=No diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ip.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ip.txt new file mode 100644 index 0000000..04ebb9f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ip.txt @@ -0,0 +1,46 @@ +1=-- None Available -- +2=Script output +3=Not a valid IP Address +4=There are still Users on %s. Remove them from the IP first and set it to 'free'. +5=%s is not set to 'free' or is still assigned to a reseller +6=%s is not a valid ip range. Use: 1.2.3.4-10 +7=Invalid IP (1.2.3.4) or IP range (1.2.3.4-5) +8=or IPv6 (1:2:3:4:5:6:7:8) or IPv6 range (1:2:3:4:5:6:7:8-9) +9=Invalid Netmask +10=Select +11=Share Selected +12=Free Selected +13=IP +14=Status +15=User(s) +16=Nameserver +17=Assign to +18=Remove from Reseller +19=Clear NS +20=Delete Selected +21=Reseller +22=Netmask +23=Gateway +24=Add to DNS +25=Linked IPs +26=Un-Link +27=With selected +28=Add to Apache +29=Select an IP to Link to %s +30=Link +31=That IP is not available for linking +32=Error writing %s: %s +33=One (or more) of the selected IPs are not currently in your list +34=Flush from DNS +35=Rewrite Apache +36=Apply to existing Domains +37=Variable 'ip' is missing from the submission +38=Couldn't find any IPs of any type to give User. Ensure the Reseller's ip.list has some usable IPs. +39=That IP does not exist in your list +40=That IP is already owned +41=Set Global Shared +42=Error reading %s: %s +43=Shared - randomly selected +44=Link in Background +45=For cases where the large number of domains to process may cause a timeout +46=Free - randomly selected diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/mimetypes.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/mimetypes.txt new file mode 100644 index 0000000..f027a90 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/mimetypes.txt @@ -0,0 +1,12 @@ +1=Must provide a mime type or handler name and a single extention. eg: text/html or cgi-script and html +2=Only provide one extension at a time. eg: jpg and NOT jpg jpeg jpe +3=Invalid name or extension +4=Handler +5=Extensions +6=MimeType +7=Select +8=With Selected +9=Delete Extension +10=Delete Handler +11=Delete MimeType +12=or diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/named.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/named.txt new file mode 100644 index 0000000..7905bea --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/named.txt @@ -0,0 +1,47 @@ +1=User added to named.conf file successfully +2=Script output +3=Domain has already been deleted. It wasn't in the named.conf file +4=Unable to read zone file to increase serial +5=Unable to write zone file to increase serial +6=Unable to save dns zone: named-checkzone returned: +7=Warning from named-checkzone: +8=Added record %s %s %s to satisfy %s NS %s +9=Please check the zone for %s to ensure the nameserver A records are correct. +10=DNSSEC - DNS Security +11=Keys +12=Not yet generated +13=Signed +14=Not yet signed +15=Sign +16=Generate Keys +17=Keys listed below +18=Created +19=Publish +20=Activate +21=Key ID +22=Key +23=Info below +24=Invalid Domain Name +25=%sZone Keys are newer than the Zone Signinging. Re-sign your zone.%s +26=%sZone Signing has expired. Re-sign your zone.%s +27=Expiry +28=Unable to read DS file %s +29=Unable to read zonefile for %s +30=Unable to write zonefile for %s +31=DNSSEC Keys generated +32=There is only 1 %s record for %s=%s, not removing it +33=Error adding DS records for %s to remote parent zone: %s +34=Select MX Template +35=Local Default +36=Template does not exist +37=MX Templates are disabled +38=You must provide a valid name and value +39=The 'ttl' value passed is not a number or is too large +40=Deleting these NS records will leave you with 0. You must have more than 0 NS records or named may not start.
Add the new NS records first. +41=The value must be an IP address +42=The full format name entered does not end with the name of the zone +43=There is already a CNAME record with that name +44=There is already an A record with that name +45=Type '%s' is disabled +46=Cannot add record +47=Cannot delete records diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/pass_change.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/pass_change.txt new file mode 100644 index 0000000..a673005 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/pass_change.txt @@ -0,0 +1,22 @@ +1=
%s
+2=The password changing feature has been disabled +3=The new passwords do not match +4=You must provide a valid ftp address, oldpassword, password1 and password2 +5=Cannot find that domain in the domainowners file +6=You must provide a valid email address, oldpassword, password1 and password2 +7=Password is not valid +8=Cannot find a valid system username in the domainowners file. +9=Cannot change the password for a system account. Login to the control panel to do that. +10=Cannot change the password for this email account. The account is currently on a suspended domain. +11=That ftp_password file does not exist +12=That domain does not exist +13=Invalid Username or Password +14=Error Saving Password: %s +15=Unable to read domainowners file +16=Error while saving password +17=Password Saved! +18=A message for that user already exists +19=Vacation Message set +20=Vacation Message updated +21=Vacation Message Deleted +22=No vacation message set diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/perlmodules.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/perlmodules.txt new file mode 100644 index 0000000..6e0b1d6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/perlmodules.txt @@ -0,0 +1,2 @@ +1=Error Executing Perl +2=Installed Perl Modules diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/redirect.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/redirect.txt new file mode 100644 index 0000000..0077b18 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/redirect.txt @@ -0,0 +1,33 @@ +1=You require the source url path (eg: /redirect) and the destination url (eg: www.redirect.com) +2=The local url path or the destination url is invalid. +3=is not one of the listed redirect types +4=Local URL Path +5=Type +6=Redirect URL +7=Delete +8=The domain entered is invalid. It must be of the form 'sourcedomain.com' +9=That domain is on the forbidden domains list +10=You cannot use that domain as a pointer. It already exists on the server +11=Script output +12=Source Domain +13=Type +14=DNS +15=Select +16=Domain pointer %s for domain %s for user %s already exists +17=Cannot add pointer %s, you have reached your limit of %s +18=You may not use an IP for a domain name +19=Error reading domain config files +20=IP in domain config file (%s) is not valid. +21=Local Mail +22=Yes +23=No +24=Local Mail +25=Remote Mail +26=Set selected to +27=Pointer '%s' does not belong to you. +28=Error reading %s: %s +29=URL +30=Invalid file extension list +31=Invalid redirect URL +32=Invalid list of allowed domains +33=Error writing %s: %s diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/security_questions.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/security_questions.txt new file mode 100644 index 0000000..3ba6ce2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/security_questions.txt @@ -0,0 +1,22 @@ +1=22 +2=What is the name of your favorite childhood friend? +3=In what city did you meet your spouse/significant other? +4=What was your childhood nickname? +5=What street did you live on in third grade? +6=What is your oldest sibling's birthday month and year? (e.g: January 1970) +7=What is the middle name of your oldest child? +8=What is your oldest sibling's middle name? +9=What school did you attend for sixth grade? +10=What was your childhood phone number including area code? (e.g: 000-000-0000) +11=What is your oldest cousin's first and last name? +12=What was the name of your first stuffed animal? +13=In what city or town did your mother and father meet? +14=Where were you when you had your first kiss? +15=What is the first name of the boy or girl that you first kissed? +16=What was the last name of your third grade teacher? +17=In what city does your nearest sibling live? +18=What is your oldest brother's birthday month and year? (e.g: January 1970) +19=What is your maternal grandmother's maiden name +20=In what city or town was your first job? +21=What is the name of the place your wedding reception was held? +22=What is the name of a college you applied to but didn't attend? diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/serverinfo.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/serverinfo.txt new file mode 100644 index 0000000..224f493 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/serverinfo.txt @@ -0,0 +1,54 @@ +1=Unable to read system uptime +2=%d Days, %d Hours and %d Minutes +3=Running +4=*** Stopped *** +5=Name +6=Value +7=Processor Name +8=Vendor ID +9=Processor Speed (MHz) +10=Total Memory +11=Free Memory +12=Total Swap Memory +13=Free Swap Memory +14=System Uptime +15=Select +16=Send Signal +17=%sAre you sure you want to kill these processes?%s +18=Unable to authenitcate: Check your password for syntax +19=Unable to authenticate: Invalid password +20=Installed +21=ID +22=IP +23=User +24=Attempts +25=Filter +26=Log Entry +27=Login Failures +28=Notified +29=Yes +30=No +31=IP Info +32=First +33=Last +34=IP/User +35=You must select something +36=Error writing %s : %s +37=Date Added +38=Comments +39=Remove From Skip List +40=Provided value is not an IP +41=Provided value is not a Username or Email address +42=show_blocked_ips.sh output: +43=Cannot find show_blocked_ips.sh +44=UnBlock +45=Date Blocked +46=Cannot find %s +47=Info +48=Provided value is not valid. Provide either an IP, an IP range, domain, or wildcard domain (*.domain.com)
More Info +49=Blocked +50=user_brutecount disabled +51=Stopped +52=Reload +53=Thread Count +54=Timezone does not exist diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/skin.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/skin.txt new file mode 100644 index 0000000..7f5a42b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/skin.txt @@ -0,0 +1,43 @@ +1=Invalid Characters in the skin name. Only use a-zA-Z0-9._-[] Must not start with '.' +2=Thats a reserved skin name +3=That skin name already exists in your Reseller skin list +4=The skin package did not install properly. Either there were files missing, or their permissions were incorrectly set +5=A skin name is required +6=That skin does not exist +7=Skin Name +8=Skin Owner +9=Select +10=Apply to Me +11=Apply to All Users +12=Server +13=Install Serverwide +14=Uploaded file is not valid for copy +15=Cannot get mime-type for %s +16=mime type (%s) for '%s' is not of type 'image/' +17=Image filenames only have 1 dot +18=Error copying logo file: %s +19=Clear Customizations +20=Delete +21=That skin is not in your list +22=That skin cannot be customized. It's skin.conf requires %s +23=Cannot find logo file for token %s in skin %s +24=Custom logo deleted +25=You may need to press F5 to reload the logo +26=Skin has been customized +27=Customize the skin +28=Custom Color +29=Clear Customization +30=Default +31=Color has been customized +32=Save +33=No colors have been selected +34='%s' is not a valid css hex color +35=Skin '%s' does not have any custom color variables to set +36=Color %s (%s) is not from the list: %s +37=Write error with %s: %s +38=Read error with %s: %s +39=Error removing %s: %s" +40=Uploaded %s value is not valid json +41=Set Global +42=Cannot delete the skin you're currently using. +43=Click for more information diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/spam.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/spam.txt new file mode 100644 index 0000000..3852e3c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/spam.txt @@ -0,0 +1,5 @@ +1=Spamd is not running on your system. +2=Click Here +3=to learn how to enable it +4=Error setting the spam filter +5=Script output diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/sshd.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/sshd.txt new file mode 100644 index 0000000..53de3f0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/sshd.txt @@ -0,0 +1,48 @@ +1=Unable to set the shell +2=User added to SSH config file successfully +3=Cannot find User '%s' +4=Unable to open %s for reading +5=Invalid key type: '%s' +6=Invalid key bit length: '%s' +7=Passwords do not match +8=Invalid Password +9=Cannot find %s +10=%s is a link +11=%s not a directory +12=Error creating %s +13=Invalid RSA id. Use simple characters: a-zA-Z0-9 +14=Invalid RSA comment +15=%s already exists. Pass ovewrite=yes to force +16=Error removing %s: %s +17=Invalid RSA key +18=Parsing Error. Check logs +19=Type must be either 'paste' or 'id' +20=Empty variable %s +21=Cannot find that key id +22=Key already exists via fingerprint matching +23=Unable to open %s for appending +24=No keys selected +25=Error Reading %s +26=Error Writing %s +27=Global ssh keys not available to Users +28=Invalid key option name or value: %s=%s +29=You must select exactly one key +30=Comment +31=Fingerprint +32=Type +33=Size +34=Options +35=Select +36=Invalid Fingerprint +37=Option '%s' has already been set +38=Authorize +39=Key ID +40=Users +41=All Users +42=All Users Except Selected Users +43=Selected Users +44=Enabled +45=Yes +46=No +47=Global Key +48=The new key was created, but there was an issue during authorization diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ssl.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ssl.txt new file mode 100644 index 0000000..e5f095b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ssl.txt @@ -0,0 +1,68 @@ +1=Error reading domain config file +2=Country code must be 2 letters +3=State/Province must only contain letters, spaces and/or periods +4=City must only contain letters, spaces and/or periods +5=Company must only contain letters, numbers, spaces, and/or periods +6=Division must only contain letters, numbers, spaces, and/or periods +7=Name must only contain letters, spaces and/or periods +8=Invalid email address +9=The CA Certificate will not be used. The file will remain, but will not be included. +10=CA Certificate is ok. Your site should be secure within a few minutes. +11=Unknown certificate type. Only server, create and paste are allowed +12=Unable to write the domain config file +13=NOTE: You are using the server IP, so your certificate and key have been saved to +14=No text provided +15=Unable to find CA certificate +16=CA Certificate is Invalid +17=Unable to open certificate file (%s)to write to: %s +18=Unable to find certificate +19=Certificate is Invalid +20=Unable to find key +21=Key is Invalid +22=The certificate and key do not match. Please ensure you are using the correct key with this certificate +23=Your old %s-bit key has been backed up to %s +24=Newly installed key is %s-bit +25=This domain will now temporarily use the Shared Server Certificate, unless you restore the backup key (but backup the new key first or it will become lost) +26=Unable to open ca certificate file (%s)to write to: %s +27=NOTE: You are using the server IP, so your CA Root Certificate has been saved to +28=Let's Encrypt is not enabled. You cannot use this option. +29=Invalid keysize. Valid values: %s +30=Unable to create %s: %s +31=Error during automated certificate renewal for %s +32=Automated certificate renewal for %s has succeeded +33=Script output +34=Must use letsencrypt=1 for options. letsencrypt=%d is currently set. +35=Let's Encrypt Certificate Entries +36=Select +37=Requested LetsEncrypt value of '%s' is not an allowed value. +38=Must select more than zero LetsEncrypt entries. +39=Must include your domain %s in the LetsEncrypt entries. +40=Error Deleting %s +41=SSL is not enabled for this domain +42=Cannot enable SNI for Dovecot +43=Mail SNI Hosts +44=Enabled +45=Yes +46=No +47=Enable +48=Disable +49=Please select at least one Mail SNI Host +50='%s' does not exist in the certificate +51=Error reading %s: %s +52=Error writing %s: %s +53=SNI Host '%s' does not belong to you +54=Back +55=SNI is disabled for this doamin +56=Cannot find domain in the certificate. +57=Not setting up Mail SNI. +58=Cannot find any SAN values in the certificate. +59=Certificate is Self-Signed +60=Your request will run in the background. Once completed, you'll be notified in the Message System. +61=LetsEncrypt request successful +62=Error with LetsEncrypt request +63=Note: the previous Let's Encrypt config is still set to renew in %d days. +64=If you do not wish to overwrite the current certificate, please disable the auto-renewal. +65=Disable Auto-Renew +66=Domain is already processing an SSL request. Please allow it to finish before making other changes. +67=Cannot find the letsencrypt.sh script +68=There have been %d renew failures, thus no more attempts will be made.%s diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/suspension.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/suspension.txt new file mode 100644 index 0000000..c6d5a7a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/suspension.txt @@ -0,0 +1,26 @@ +1=Unable to lock user %s: %s +2=Error suspending cronjobs: %s +3=Unable to write %s's user files +4=Error suspending %s's user %s: %s +5=Script output +6=You can't suspend root. That would be BAD +7=Unable to read %s's user files +8=Won't activate %s's account because its off +9=Unable to unlock user %s: %s +10=Error activating cronjobs: %s +11=Error activating %s's user %s: %s +12=User Bandwidth +13=User Quota +14=Domain Bandwidth +15=Domain Quota +16=Reseller Bandwidth +17=Reseller Quota +18=Billing Issue +19=Abuse +20=Spam +21=Other +22=-- Reason: +23=Inactive +24=Account %s was suspended by an Admin and you only have Reseller access. You cannot unsuspend this account. +25=Domain %s was suspended by an Admin and you not have this access. You cannot unsuspend this domain. +26=Text contains invalid characters diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/system.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/system.txt new file mode 100644 index 0000000..af8e331 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/system.txt @@ -0,0 +1,5 @@ +1=KB +2=MB +3=GB +4=B +5=TB diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/table.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/table.txt new file mode 100644 index 0000000..b20a1e8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/table.txt @@ -0,0 +1,27 @@ +1=Clear Search Filter +2=Sort Selected Column in +3=Order +4=Ascending +5=Decending +6=Sub Sort Selected Column in +7=Order (when the first sort values are equal) +8=All +9=Items per page +10=Search +11=Page +12=First Page +13=Last Page +14=Advanced Search +15=No Data to Show +16=equals +17=at least +18=at most +19=contains +20=starts with +21=selected +22=Show +23=Results +24=| +25=Sort +26=Column in +27=Sub Sort diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ticket.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ticket.txt new file mode 100644 index 0000000..e75342e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/ticket.txt @@ -0,0 +1,59 @@ +1=Could not read tickets +2=Could not write tickets +3=You must enter user, subject, priority and message +4=Invalid message type. Only request, reply and message are allowed +5=Your ticket number is +6=. Keep it for future reference. +7=The number and type of ticket is required +8=You don't have permission to view that ticket +9=There are no messages for that ticket +10=Reply +11=Open +12=Closed +13=You aren't allowed to modify that ticket +14=Error Reading Message File +15=Today at +16=Subject +17=From +18=You must enter number, user, subject, priority, status and message +19=You don't have permission to respond to that ticket +20=All Users +21=All Resellers +22=All of Your Users +23=Ticket # +24=Replies +25=Status +26=Last Message +27=Message # +28=Received +29=Select +30=Mark as read +31=Delete Selected +32=New Message(s) Inside +33=User +34=Priority +35=Close +36=Low +37=Medium +38=High +39=Clear Message System +40=Delete +41=Subject Contains +42=When +43=-- any time -- +44=newer than +45=older than +46=day(s) +47=Cannot find any message subjects from clear_message_system_list +48=Cannot have newline characters in subject +49=subject_select != %d, but subject is not set. This shouldn't happen. +50='when' should be all, newer or older +51=Invalid %s days. Should be a positive integer. +52=Invalid %s days. Too big. Max = +53=message +54=ticket +55=Invalid delete_messages_days or delete_tickets_days. Should be 0 or a positive integer. +56=Invalid delete_messages_days or delete_tickets_days. Too big. Max = +57=Unable to read ticket config file +58=Unable to write ticket config +59=Script Output diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/twostep_auth.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/twostep_auth.txt new file mode 100644 index 0000000..bbb6c57 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/twostep_auth.txt @@ -0,0 +1,31 @@ +1=%s does not exist. +2=Unable to read data from %s +3=Unable to get lock on %s +4=Error writing %s: %s +5=%s%s has been blocked in %s to prevent further attempts on the account. +6=Warning: %s has a valid password for %s but failed the Two-Step Authentication code %s times. +7=The IP %s has provided the correct password for the %s account.%cHowever, after %s attempts, they were not able to provide a valid Two-Step Authentication code, so no access was granted.%cIf this is not your IP, change your password.%s +8=Two-Step Auth secret is not set. +9=Enter your Two-Step Authentication Code +10=Submit +11=Code +12=%sYour IP will be blacklisted +13=Invalid Two-Step Auth code +14=Scratch Codes +15=Date Created +16=Select +17=Delete +18=Add Codes +19=New Secret Set: %s
Be sure to re-scan the QR code, as all old codes become invalid. +20=Valid +21=Get the code from your phone's app, or use a backup scratch code. +22=Never +23=%s Day(s) +24=%s Week(s) +25=%s Month(s) +26=Expires +27=Invalid characters in description. Allowed %s +28=Print +29=The code is valid, but for a different time.
Check the time on both your server and your phone.
Time slice discrepancy = %d
+30=%s Trust this device for %d days +31=Please generate a secret before adding the scratch codes diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/user.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/user.txt new file mode 100644 index 0000000..9a5a3fd --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/internal/user.txt @@ -0,0 +1,145 @@ +1=No options were selected +2=Script output +3=User password changed, however the account is still suspended +4=Invalid Username +5=That username is a reserved system name +6=User %s already exists. Please chose a different username. +7=Unix User created successfully +8=Error creating User +9=Unable to create user's data directory +10=User's data directory created successfully +11=User added to ssh config file. +12=Unable to add user to ssh config file +13=User removed from SSH +14=Unix User removed from the server +15=Unable to remove Unix User. Continuing with the other files. +16=User's config files deleted +17=User's data directory removed. +18=Removed user from %s's list +19=Left user on %s's list +20=Error with system Quotas +21=Debug Guide +22=User's System Quotas set +23=You must provide a valid ip +24=You didn't chose a different ip, no changes have been made +25=has been updated with the new ip +26=Apache config file re-written with new ip +27=Ftp IPs successfully swapped +28=Only 'Additional' IPs can be removed from a User using this method +29=That IP is already in your list of Additional IPs +30=User config file updated. +31=You have not given the reseller any IP's. Unable to create an assigned IP domain or any nameservers without any +32=Your account for |domain| is now ready for use. +33=Username must be Alphanumeric (a-z, A-Z, 0-9), with the first character being a letter +34=Username is too short. It must be at least 2 characters long +35=Reseller only got %s of their %s ips. +36=Reseller is assigned zero IP's. Cannot create a domain without an ip +37=Unable to assign the Reseller ANY ips. Make sure to have free, un-assigned ips. +38=Not enough IP's to create nameservers. It requires at least 2 free, un-assigned ips +39=Not enough IP's to create nameservers. It requires at least 3 free, un-assigned ips +40=Unable to set ip %s to be nameserver. Continuing anyway. +41=Added ns1 as %s and ns2 as %s +42=Couldn't read db file for %s. Unable to add ns1 and ns2 to it. +43=Unable to write reseller's IP list +44=Reseller created +45=Unable to remove all the of the reseller's users +46=Unable to delete the reseller's ip.list file. +47=Reseller deleted +48=Child user %s deleted +49=Error during deletion of child user %s +50=User %s did not exist on the server. Removing it from your list. +51=Error reading user files for %s, continuing anyway. +52=Error Removing User %s +53=User %s not deleted. Unable to delete all of their users. +54=User %s was not created by you-> Not Deleted. +55=Your message is empty. Users might appreciate knowing what they're getting. +56=Your subject contains invalid characters. +57=Creating that many %s would put you over your limit of %s +58=Allowing that much %s would put you over your limit of %s +59=This Reseller account is unable to allocate unlimited %s, yet that amount has alredy been allocated. +60=Unable to allocate unlimited %s. This account is not allowed to create that amount. +61=Domains +62=E-Mail Accounts +63=Ftp Accounts +64=You cannot create more Users than you are allowed domains. +65=You currently have %s Users and a maximum of %s domains. +66=Disk Space +67=Bandwidth +68=Sub Domains +69=Email Forwarders +70=Mailing Lists +71=AutoResponders +72=Databases +73=Domain Pointers +74=Please use all lower case characters in the username +75=That User already exists on another server +76=Security Question +77=Delete +78=ID +79=or +80=Set to +81=Add new Security Question +82=Add +83=Cannot find any security questions from security_questions.txt +84=Invalid characters in security answer +85=Error writing %s +86=Cannot find Security Question ID %d in the User list +87=Security Answer is too long max=%d +88=Please answer this Security Question +89=Submit +90=Wrong Answer. You have %d more attempts.%s +91=Warning: %s has a valid password for %s but failed the security questions %s times. +92=The IP %s has provided the correct password for the %s account.%cHowever, after %s attempts, they were not able to provide a valid answer for the security questions, so no access was granted.%cIf this is not your IP, change your password.%s +93=%s%s has been blocked in %s to prevent further attempts on the account. +94=%sYour IP will be blacklisted +95=Custom Question +96=Answer +97=Invalid characters in security question +98=Security Question is too long max=%d +99=%sThe question was:%c'%s'%swith the incorrect answer of:%c'%s' +100=hidden +101=Case Sensitive +102=Inodes +103=Group %s already exists. Please chose a different username. +104=Too short +105=Too long +106=Already Exists +107=Password is not valid +108=Unable to satisfy difficult password check. +109=Invalid Domain +110=Domain exists on %s +111=Domain is forbidden +112=You cannot delete yourself (%s) +113=ns1 or ns2 are not valid nameservers +114=No changes have been made +115=User +116=Reseller +117=Admin +118=E-Mail +119=FTP +120=Database +121=Invalid E-Mail +122=Domain is not in your list +123=E-Mail account already exists +124=Invalid Subdomain +125=Subdomain already exists +126=Forwarder already exists +127=Invalid FTP account +128=FTP account already exists +129=Invalid DNS name +130=Invalid DNS value +131=Invalid MX value +132=Error reading %s: %s +133=A %s record already exists with that name +134=Full format name '%s' does not end with zone name +135=MX priority should be an positive number +136=There is already a mailing list alias with that name +137=Disabled Reseller settings will be applied to Users and Packages in the background. +138=Error activating data for %s: %s +139=An error occurred while applying settings to your Users +140=IP List is empty +141=License is limited to %d accounts, and you currently have %d +142=License is limited to %d domains, and you currently have %d +143=License is limited to %d Admins/Resellers, and you currently have %d +144=Path %s already exists before User creation. Please remove this path first. +145=User Accounts diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/javascript.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/javascript.html new file mode 100644 index 0000000..9f89e9d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/javascript.html @@ -0,0 +1,12 @@ +LANG_INVALID_USERNAME=Invalid Username +LANG_SHORT_USERNAME=Username must be at least 2 characters +LANG_USERNAME_NO_MORE=Username must be no more than +LANG_CHARACTERS=characters +LANG_PASS_NO_MATCH=Passwords do not match +LANG_SHORT_PASS=Password is too short +LANG_SHORT_DOMAIN=Domain is too short +LANG_DOMAIN_DOT=Domain needs a dot +LANG_INVALID_DOMAIN=Invalid Domain +LANG_INVALID_IP=Invalid IP +LANG_INVALID_EMAIL=Invalid E-Mail Address + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_footer.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_footer.html new file mode 100644 index 0000000..3210f5a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_footer.html @@ -0,0 +1 @@ +LANG_WEB_CP=Web Control Panel diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_images.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_images.html new file mode 100644 index 0000000..83d2698 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_images.html @@ -0,0 +1,29 @@ +LANG_IMG_SKIN_NAV_HOME_OVER=IMG_SKIN_NAV_HOME_OVER +LANG_IMG_SKIN_NAV_WEBMAIL_OVER=IMG_SKIN_NAV_WEBMAIL_OVER +LANG_IMG_SKIN_NAV_PASSWORD_OVER=IMG_SKIN_NAV_PASSWORD_OVER +LANG_IMG_SKIN_NAV_FILEMAN_OVER=IMG_SKIN_NAV_FILEMAN_OVER +LANG_IMG_SKIN_NAV_HELP_OVER=IMG_SKIN_NAV_HELP_OVER +LANG_IMG_SKIN_NAV_LOGOUT_OVER=IMG_SKIN_NAV_LOGOUT_OVER +LANG_IMG_SKIN_NAV_LOGOUT2_OVER=IMG_SKIN_NAV_LOGOUT2_OVER +LANG_IMG_SKIN_HEADER=IMG_SKIN_HEADER +LANG_IMG_SKIN_HEADER_NONAME=IMG_SKIN_HEADER_NONAME +LANG_IMG_SKIN_NAV_HOME=IMG_SKIN_NAV_HOME +LANG_IMG_SKIN_NAV_WEBMAIL=IMG_SKIN_NAV_WEBMAIL +LANG_IMG_SKIN_NAV_PASSWORD=IMG_SKIN_NAV_PASSWORD +LANG_IMG_SKIN_NAV_HELP=IMG_SKIN_NAV_HELP +LANG_IMG_SKIN_NAV_FILEMAN=IMG_SKIN_NAV_FILEMAN +LANG_IMG_SKIN_NAV_LOGOUT2=IMG_SKIN_NAV_LOGOUT2 +LANG_IMG_SKIN_NAV_LOGOUT=IMG_SKIN_NAV_LOGOUT +LANG_IMG_SKIN_CTRL_ACCESS=IMG_SKIN_CTRL_ACCESS +LANG_IMG_SKIN_CTRL_ASERVER=IMG_SKIN_CTRL_ASERVER +LANG_IMG_SKIN_CTRL_ATOOLS=IMG_SKIN_CTRL_ATOOLS +LANG_IMG_SKIN_CTRL_AFEATURES=IMG_SKIN_CTRL_AFEATURES +LANG_IMG_SKIN_CTRL_RACCOUNT=IMG_SKIN_CTRL_RACCOUNT +LANG_IMG_SKIN_CTRL_RTOOLS=IMG_SKIN_CTRL_RTOOLS +LANG_IMG_SKIN_CTRL_RFEATURES=IMG_SKIN_CTRL_RFEATURES +LANG_IMG_SKIN_CTRL_ACCOUNT=IMG_SKIN_CTRL_ACCOUNT +LANG_IMG_SKIN_CTRL_DOMAIN=IMG_SKIN_CTRL_DOMAIN +LANG_IMG_SKIN_BODY_ACCOUNT=IMG_SKIN_BODY_ACCOUNT +LANG_IMG_SKIN_BODY_EMAIL=IMG_SKIN_BODY_EMAIL +LANG_IMG_SKIN_BODY_ADVANCED=IMG_SKIN_BODY_ADVANCED + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_level.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_level.html new file mode 100644 index 0000000..cd3669a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_level.html @@ -0,0 +1,4 @@ +LANG_ADMIN_LEVEL=Admin Level +LANG_RESELLER_LEVEL=Reseller Level +LANG_USER_LEVEL=User Level + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_standard.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_standard.html new file mode 100644 index 0000000..b98f407 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/lf_standard.html @@ -0,0 +1,70 @@ +LANG_ACCESS=Access +LANG_ADD=Add +LANG_ADMIN=Admin +LANG_ANON_FTP_ACCOUNTS=Anonymous Ftp Accounts +LANG_AUTO_RESPONDERS=AutoResponders +LANG_BANDWIDTH=Bandwidth +LANG_CANCEL=Cancel +LANG_CONTAINS=contains +LANG_CGI=CGI +LANG_CLICK_TO_UPDATE=Click to Update Usage +LANG_CREATE=Create +LANG_CUSTOMIZE=Customize +LANG_DATABASES=Databases +LANG_DELETE=Delete +LANG_DISK_SPACE=Disk Space +LANG_DOMAIN=Domain +LANG_DOMAIN_NAME=Domain Name +LANG_DOMAINS=Domains +LANG_DOMAIN_PTRS=Domain Pointers +LANG_EMAIL=E-Mail +LANG_EMAILS=E-Mails +LANG_EMAIL_ACCOUNTS=Email Accounts +LANG_EMAIL_FORWARDERS=Email Forwarders +LANG_ENCODING=UTF-8 +LANG_ENTER_PASS=Enter Password +LANG_FILES=File Manager +LANG_FTP_ACCOUNTS=Ftp Accounts +LANG_GB=(GB) +LANG_HELP=Help +LANG_HOME=Home +LANG_INODES=Inodes +LANG_IP=IP +LANG_IP_ADDRESS=IP Address +LANG_IPS=IPs +LANG_LANGUAGE=Language +LANG_LOGOUT=Logout +LANG_NAME_SERVER_1=Name Server 1 +LANG_NAME_SERVER_2=Name Server 2 +LANG_NS1=NS1 +LANG_NS2=NS2 +LANG_NEW=new +LANG_MAILING_LISTS=Mailing Lists +LANG_MAX=Max +LANG_MB=(MB) +LANG_MODIFY=Modify +LANG_MYSQL_DBS=MySQL Databases +LANG_PASSWORD=Password +LANG_PHP=PHP +LANG_RANDOM=Random +LANG_RESELLER=Reseller +LANG_RE-ENTER_PASS=Re-Enter Password +LANG_RESET=Reset +LANG_SAVE=Save +LANG_SEARCH=Search +LANG_SELECT=Select +LANG_SPAM=SpamAssassin +LANG_CATCHALL=Catch-All E-mail +LANG_SSL=SSL +LANG_SSH=SSH +LANG_SUBDOMAINS=Sub-Domains +LANG_SUBMIT=Submit +LANG_UNLIMITED=Unlimited +LANG_USED=Used +LANG_USER=User +LANG_USERS=Users +LANG_USERNAME=Username +LANG_WEBMAIL=Webmail +LANG_SSH_KEYS=SSH Keys +LANG_USER_ACCOUNTS=User Accounts +LANG_IS_TRIAL=This is a Trial License of DirectAdmin diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/loggedout.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/loggedout.html new file mode 100644 index 0000000..c3d9444 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/loggedout.html @@ -0,0 +1,5 @@ +LANG_LOGOUT_TITLE=You have been logged out +LANG_LOGOUT_TEXT=You have been successfully logged out +LANG_CLICK=click +LANG_HERE=here +LANG_TO_LOG_IN=to log in diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/passwd.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/passwd.html new file mode 100644 index 0000000..f8c9cd7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/passwd.html @@ -0,0 +1,7 @@ +LANG_CHANGE_YOUR_PASS=Change your Password +LANG_ENTER_OLD_PASS=Current DirectAdmin Password +LANG_PASS_DA=DirectAdmin Account +LANG_PASS_FTP=Main FTP Account +LANG_PASS_DB=Main Database Account +LANG_MANAGE_SECURITY_QUESTIONS=Manage Security Questions +LANG_TWO_STEP_AUTH=Two-Step Authentication diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/backup_modify.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/backup_modify.html new file mode 100644 index 0000000..df5ad9a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/backup_modify.html @@ -0,0 +1,71 @@ +LANG_MANAGE_USER_BACKUPS=Manage User Backups +LANG_CREATE_BACKUP=Create Backup +LANG_MODIFY_BACKUP=Modify Backup +LANG_STEP_1=Step 1 +LANG_STEP_2=Step 2 +LANG_STEP_3=Step 3 +LANG_STEP_4=Step 4 +LANG_STEP_5=Step 5 +LANG_WHO=Who +LANG_WHEN=When +LANG_WHERE=Where +LANG_WHAT=What +LANG_NOW=Now +LANG_ALL_USERS=All Users +LANG_SELECTED_USERS=Selected Users +LANG_CRON_SCHED=Cron Schedule +LANG_MINUTE=Minute +LANG_HOUR=Hour +LANG_DAY_OF_MONTH=Day of Month +LANG_MONTH=Month +LANG_DAY_OF_WEEK=Day of Week +LANG_LOCAL=Local +LANG_FTP=Ftp +LANG_REMOTE_PATH=Remote Path +LANG_REMOTE_PORT=Port +LANG_RESTORE_BACKUP=Restore Backup +LANG_FROM_WHERE=From Where +LANG_UPDATE_FILES=Update Files +LANG_SELECT_IP=Select IP +LANG_USE_STORED_IP=Use the IP stored in the backup +LANG_USE_IP_FROM_LIST=Use the IP from the list +LANG_NOTE=* Note that you must set the IP to be
shared if you want to add multiple
users to it. If you select a non-shared
IP, you can only restore 1 user to it.

* If the user already exists, this
setting will have no effect. +LANG_NOTE2=* When restoring a Reseller or Admin,
if you select an IP from the list, that
Reseller will only receive the single IP.
You would need to add extra IPs to
that accounts IP list after he's created.

* If using the IPs from within the
backup, any IPs that don't exist on
this system will not be included. If
there no IPs to be used, a Reseller
or Admin will be restored to the
server IP. +LANG_SELECT_FILES=Select File(s) +LANG_LOCATION=Location +LANG_CURRENT_BACKUP_CRONS=Current Backup Crons +LANG_BACKUP_SETTINGS=Backup / Restore Settings +LANG_SEND_MESSAGE=Send a message when a backup has finished. +LANG_LOCAL_NS=Restore with Local NameServers. (unchecked: Use NS values from backup) +LANG_RESTORE_SPF=Restore with SPF values from backup. (unchecked: Use local spf values) +LANG_ADMIN_ACCOUNT=Admin +LANG_EXCEPT_USERS=Except Selected Users +LANG_ALL_DATA=All Data +LANG_SELECTED_DATA=Selected Data +LANG_OPT_DOMAINS_DIR=Domains Directory +LANG_OPT_EMAIL_ACCOUNTS=E-Mail Accounts +LANG_OPT_SUB_LISTS=Subdomain Lists +LANG_OPT_FORWARDERS=Forwarders +LANG_OPT_FTP_ACCOUNTS=Ftp Accounts +LANG_OPT_AUTORESPONDERS=Autoresponders +LANG_OPT_FTP_SETTINGS=Ftp Settings +LANG_OPT_VACATION_MESSAGES=Vacation Messages +LANG_OPT_DATABASES=Database Settings +LANG_OPT_DATABASE_DATA=Database Data +LANG_OPT_EMAIL_SETTINGS=E-Mail Settings +LANG_OPT_EMAIL_DATA=E-Mail Data +LANG_OPT_MAILING_LISTS=Mailing Lists +LANG_BKP_ADD=Add +LANG_BKP_USERS=Users +LANG_SKIP_SUSPENDED=Skip Suspended +LANG_SELECT=Select +LANG_NONE=None +LANG_ALL=All +LANG_CONFIRM_WITH_DOMAINOWNERS=On restore, check for domain conflict in domainowners, rather than the named.conf, or remote named.conf files. +LANG_APPEND_TO_PATH=Append to path +LANG_APPEND=Append +LANG_SECURE_FTP=Secure FTP +LANG_BACKUP_ENCRYPTION=Backup Encryption +LANG_OMIT_NO_ENC=Omit for no encryption +LANG_BACKUP_DECRYPTION=Backup Decryption +LANG_RESTORE_TO_PARTITION=Restore to Partition diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/change_user_passwd.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/change_user_passwd.html new file mode 100644 index 0000000..6890f04 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/change_user_passwd.html @@ -0,0 +1,3 @@ +LANG_CHANGE_PASS=Change A Password +LANG_SHOW_USERS=Show Users +LANG_AJAX_HOWTO=Either click value with mouse, or use arrows & tab. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/content_main.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/content_main.html new file mode 100644 index 0000000..ea4a584 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/content_main.html @@ -0,0 +1,14 @@ +LANG_ADD_NEW_USER=Add New User +LANG_LIST_USERS=List Users +LANG_MANAGE_TICKETS=Manage Tickets +LANG_ADD_PACKAGE=Add Package +LANG_LIST_PACKAGES=Manage User Packages +LANG_CHANGE_PASSWORDS=Change Passwords +LANG_RESELLER_STATS=Reseller Statistics +LANG_IP_MANAGER=IP Management +LANG_SKIN_MANAGER=Skin Manager +LANG_USER_BACKUPS=Manage User Backups +LANG_SYSTEM_INFO=System Information +LANG_NAMESERVERS=Nameservers +LANG_MESSSAGE_ALL_USERS=Message All Users +LANG_CONTACT_ADMIN=Contact Administrator diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/delete_user.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/delete_user.html new file mode 100644 index 0000000..cd7ff08 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/delete_user.html @@ -0,0 +1,2 @@ +LANG_SHOW_USERS=Show Users +LANG_DELETE_USER=Delete User diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/edit_message.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/edit_message.html new file mode 100644 index 0000000..e4b457a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/edit_message.html @@ -0,0 +1,4 @@ +LANG_EDIT_MESS=Edit E-Mail Message +LANG_SUBJECT=Subject +LANG_MESSAGE=Message +LANG_RESET=Reset to Default diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/import_packages.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/import_packages.html new file mode 100644 index 0000000..05f0e8a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/import_packages.html @@ -0,0 +1,3 @@ +LANG_IMPORT_PACKAGES=Import Packages +LANG_B64_ENC_PACKAGES_LIST=Base 64 encoded packages list +LANG_IMPORT=Import diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/ip_config.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/ip_config.html new file mode 100644 index 0000000..1753eb9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/ip_config.html @@ -0,0 +1,2 @@ +LANG_IP_CONFIG=IP Config +LANG_IP_FREE_IF=Ip's can only be freed if there are zero users on that ip. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/login_as_warnings.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/login_as_warnings.html new file mode 100644 index 0000000..cb69973 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/login_as_warnings.html @@ -0,0 +1,3 @@ +LANG_RESELLER_SKIN_OWNED=Reseller Skin owned by +LANG_WILL_USE_YOURS=Will use your current skin instead +LANG_CANNOT_CONFIRM_OWNER=Cannot confirm skin ownership diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/manage_packages_user.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/manage_packages_user.html new file mode 100644 index 0000000..5dfef7b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/manage_packages_user.html @@ -0,0 +1,2 @@ +LANG_MANAGE_USER_PACKS=Manage User Packages +LANG_ADD_PACKAGE=Add Package diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/manage_tickets.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/manage_tickets.html new file mode 100644 index 0000000..2e77a9a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/manage_tickets.html @@ -0,0 +1,12 @@ +LANG_MANAGE_TICKETS=Manage Tickets +LANG_SEND_MESS=Send a Message +LANG_VIEW_CLOSED=View Closed Tickets +LANG_TICK_OPTIONS=Ticket Options +LANG_TICK_ENABLED=Ticket System Enabled.   If disabled, show +LANG_EMAIL_TO=Email a copy of all messages to +LANG_VIEW=View +LANG_SET_MESS_1=Set Current Message to +LANG_SET_MESS_2=without adding a reply. +LANG_REPLY_TO_TICK=Reply to Ticket +LANG_STATUS=Status +LANG_MESSAGE=Message diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/nameserver.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/nameserver.html new file mode 100644 index 0000000..6013033 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/nameserver.html @@ -0,0 +1,2 @@ +LANG_NAME_SERVERS=Name Servers +LANG_SET_NS=Set the Nameservers that will be assigned to new users diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/reseller_stats.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/reseller_stats.html new file mode 100644 index 0000000..d9d9f4c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/reseller_stats.html @@ -0,0 +1,3 @@ +LANG_STATS_FOR=Reseller Stats for +LANG_RESELLER_HISTORY=Reseller History +LANG_SHOW_ALL_USERS=Show All Users diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_history.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_history.html new file mode 100644 index 0000000..8668ed3 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_history.html @@ -0,0 +1,3 @@ +LANG_RESELLER_STATS=Reseller Stats +LANG_RESELLER_HISTORY=Reseller History +LANG_STATS_FOR=Stats For diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_user.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_user.html new file mode 100644 index 0000000..50fa55c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_user.html @@ -0,0 +1,13 @@ +LANG_SHOW_USERS=Show Users +LANG_DETAILS=Details for User +LANG_LOGIN_AS=Login as +LANG_MODIFY_USER=Modify User +LANG_DELETE_USER=Delete User +LANG_RESEND_WELCOME_EMAIL=Resend Welcome E-Mail +LANG_SEND_TO=Send To +LANG_SEND=Send +LANG_USER_COMMENTS=User Comments Box +LANG_SAVE_COMMENTS=Save Comments +LANG_RANDOM_PASS=New Random Password +LANG_SUSPEND=Suspend +LANG_UNSUSPEND=Unsuspend diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_users.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_users.html new file mode 100644 index 0000000..91feaed --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/show_users.html @@ -0,0 +1,8 @@ +LANG_SHOW_USERS=Show Users +LANG_CREATE_USER=Create User +LANG_DELETE_USER=Delete User +LANG_CHANGE_A_PASS=Change A User's Password +LANG_MODIFY_OWN_DATA=Modify your own User data +LANG_CLICK_USERNAME=Click on the username to modify their account +LANG_SHOW_DOMAINS_THAT_CONTAIN=Show Domains that Contain +LANG_CLEAR_SEARCH=Clear Search diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/skins.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/skins.html new file mode 100644 index 0000000..e9aa010 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/reseller/skins.html @@ -0,0 +1,14 @@ +LANG_MANAGE_SKINS=Import / Manage Skins +LANG_UPLOAD_SKIN=Upload New Skin +LANG_FILE=File +LANG_SKIN_NAME=Skin Name +LANG_CURRENTLY_USING=You are currently using +LANG_UPLOAD=Upload +LANG_UPLOAD_LOGO=Upload logo to override the default +LANG_CUSTOMIZE_SKIN=Customize Skin +LANG_CURRENT_SETTINGS=Current Skin Settings for +LANG_DEFAULT_LOGO=Default Logo +LANG_CUSTOM_LOGO=Custom Logo +LANG_DELETE=Delete +LANG_GLOBLAL_DOCSROOT=Global Document Root +LANG_FOR_LOGIN_PAGE=for login page and defaults diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/template.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/template.html new file mode 100644 index 0000000..f2e982a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/template.html @@ -0,0 +1,2 @@ +LANG_BACK=Back +LANG_DETAILS=Details diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/add_domain.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/add_domain.html new file mode 100644 index 0000000..0b4582c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/add_domain.html @@ -0,0 +1,5 @@ +LANG_CREATE_DOMAIN=Create Domain +LANG_SECURE_SSL=Secure SSL +LANG_IGNORED=(Ignored if not allowed) +LANG_NO_CAPS=Do not use CAPS, www, or http:// in your domain name. +LANG_SAME_AS_MAIN=Same as Main Account diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/additional_domains.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/additional_domains.html new file mode 100644 index 0000000..f5e832b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/additional_domains.html @@ -0,0 +1,7 @@ +LANG_ADDITIONAL_DOMAINS=Additional Domains +LANG_ADD_DOMAIN=Add Another Domain +LANG_CHANGE_DOMAIN=Change a Domain Name +LANG_ENTER_NEW_VALUE=Select the domain to change and enter it's new value +LANG_CHANGE_1=Change +LANG_CHANGE_2=to +LANG_CHANGE=Change diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/apache_handlers.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/apache_handlers.html new file mode 100644 index 0000000..8282841 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/apache_handlers.html @@ -0,0 +1,8 @@ +LANG_APCHE_HANDLERS=Apache Handlers +LANG_ADD_HANDLER=Add Apache Handler +LANG_HANDLER=Handler +LANG_EXTENSION=Extension +LANG_USER_HANDLERS=User Installed Apache Handlers +LANG_LIST_OF_SYSTEM_HANDLERS=Click here for a list of the current Apache Handlers installed on the system +LANG_SYSTEM_HANDLERS=System Apache Handlers +LANG_LIST_OF_USER_HANDLERS=Click here for your list of installed Handlers diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/bandwidth_breakdown.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/bandwidth_breakdown.html new file mode 100644 index 0000000..61d19cf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/bandwidth_breakdown.html @@ -0,0 +1,2 @@ +LANG_BW_D=Bandwidth Details for +LANG_CLOSE=Close Window diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/content_main.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/content_main.html new file mode 100644 index 0000000..a7ce06d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/content_main.html @@ -0,0 +1 @@ +LANG_DOMAIN_ADMIN=Domain Administration diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/cronjobs.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/cronjobs.html new file mode 100644 index 0000000..5cc6a14 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/cronjobs.html @@ -0,0 +1,22 @@ +LANG_CRON_JOBS=Cron Jobs +LANG_VALID_CRON=Valid cron time values are the numbers indicated and *. +LANG_EXACT_TIMES=You can specifiy exact times using commas to separate them. eg: 1,2,3 (minutes 1,2 and 3) +LANG_DASH=You can specify spans using a dash. eg: 5-7 (minutes 5 to 7) +LANG_INTERVALS=You can specify intervals using a star and a forward slash. eg: */2 (every 2nd minute) +LANG_COMBINE=You can combine them to create a more precise schedule. eg: 1,5,11-15,30-59/2 (minutes 1, 5, 11 to 15 and every 2nd minute between 30 and 59) +LANG_NO_SPACES=Note that there are no spaces +LANG_CURRENT_TIME=Current Time +LANG_CREATE_NEW_CRON=Create a New Cron Job +LANG_MINUTE=Minute +LANG_HOUR=Hour +LANG_DAY_OF_MONTH=Day of Month +LANG_MONTH=Month +LANG_DAY_OF_WEEK=Day of Week +LANG_COMMAND=Command +LANG_SUNDAY=Sunday +LANG_PREVENT_EMAIL=Prevent Email +LANG_SEND_OUTPUT_TO=Send all Cron output to E-Mail +LANG_VALID_EMAIL=Valid values are an E-Mail address, your DA username +LANG_OR_BLANK_FIELD=or a blank field to prevent any email +LANG_SAMPLE_CRON=Sample cron commands +LANG_RUN_ON_REBOOT=Run on @reboot diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/db/db.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/db/db.html new file mode 100644 index 0000000..735a421 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/db/db.html @@ -0,0 +1,46 @@ +LANG_MYSQL_SETUP=MySQL Setup +LANG_CREATE_DB=Create new Database +LANG_CREATE_DB_USER=Create New Database User +LANG_PMA=phpMyAdmin +LANG_UPLOAD_DB=Upload a Database Backup (.gz) +LANG_SELECT_DB=Select Database +LANG_UPLOAD=Upload +LANG_DB_NAME=Database Name: +LANG_DB_USERNAME=Database Username: +LANG_DB_PASS=Username Password: +LANG_DB_PASS_AGAIN=Confirm Password: +LANG_VIEW=View +LANG_NEW_USER=New MySQL User +LANG_ADD_USER_TO=Add Database User to +LANG_MODIFY_1=Modify User +LANG_MODIFY_2=in database +LANG_USER_PRIVS=User Privileges +LANG_PRIVS_1=Modify User Privileges for +LANG_PRIVS_2=in database +LANG_SELECT=Select +LANG_INSERT=Insert +LANG_UPDATE=Update +LANG_DROP=Drop +LANG_ALTER=Alter +LANG_INDEX=Index +LANG_GRANT=Grant +LANG_REFERENCE=Reference +LANG_TMP_TABLE=Create tmp tables +LANG_LOCK=Lock Tables +LANG_DB_USE_EXISTING=OR select existing user +LANG_SELECT_CONN_METH=Select connection method +LANG_YOUR_ACC_LOGIN=Your current login information +LANG_A_SPECIFIED=A specified +LANG_A_SPECIEID_USER=user +LANG_AND_PASS=& pass +LANG_DB_BEFORE_PMA=You won't be able to login to phpMyAdmin until you create a Database. +LANG_SHOW_VIEW=Show View +LANG_CREATE_ROUTINE=Create Routine +LANG_ALTER_ROUTINE=Alter Routine +LANG_EXECUTE=Execute +LANG_CREATE_VIEW=Create View +LANG_EVENT=Event +LANG_TRIGGER=Trigger +LANG_PMA_SSO=phpMyAdmin SSO +LANG_PMA_NO_PASS=Login, no password required. +LANG_PHPMYADMIN=phpMyAdmin diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/domain_pointers.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/domain_pointers.html new file mode 100644 index 0000000..ca47f12 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/domain_pointers.html @@ -0,0 +1,5 @@ +LANG_DOMAIN_POINTERS=Domain Pointers +LANG_ADD_NEW_DOMAIN_POINTER=Add New Domain Pointer +LANG_SOURCE_DOMAIN=Source Domain +LANG_EG=eg: sourcedomain.com +LANG_CREATE_ALIAS=Create as an Alias diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/du_breakdown.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/du_breakdown.html new file mode 100644 index 0000000..e6a116a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/du_breakdown.html @@ -0,0 +1,6 @@ +LANG_DU_D=Disk Usage Details for +LANG_CLOSE=Close Window +LANG_HIDE_ZERO=Hide entries which use 0 bytes +LANG_HIDE_NOT_COUNTED=Hide entries which are already included in the System Quotas +LANG_UPDATE=Update +LANG_EXPLANATION=Many entries that DirectAdmin counts are not added to the totals because they are already included in some other counted item such as the System Quotas. Unhiding these entries will help you track account disk usage, but are not included in the totals. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/autoresponder.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/autoresponder.html new file mode 100644 index 0000000..e6f882c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/autoresponder.html @@ -0,0 +1,14 @@ +LANG_CREATE_AUTO=Create New Autoresponder +LANG_CREATE_AUTO_MESS=Create Autoresponder Message +LANG_MOD_AUTO_MESS=Modify Autoresponder Message +LANG_RESP_ADDR=Responder Address: +LANG_RESP_MESS=Responder Message: +LANG_RESP_CC_TO=Send a CC to: +LANG_SUBJECT_PREFIX=Subject Prefix +LANG_ORIGINAL_SUBJECT=original subject +LANG_REPLY_ENCODING=Reply Encoding +LANG_CONTENT_TYPE=Content-Type +LANG_BROWSER_ENCODING=browser encoding +LANG_BROWSER=browser +LANG_REPLY_FREQUENCY=Reply Frequency +LANG_MIN_TIME_BEFORE_REPLY=Minimum time before a repeated reply diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/catch_all.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/catch_all.html new file mode 100644 index 0000000..bb8499b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/catch_all.html @@ -0,0 +1,11 @@ +LANG_SET_CATCH=Set Catch All E-Mail +LANG_CATCHALL_DISABLED=Catch-All Email addresses have been disabled on this account. +LANG_THIS_EMAIL=This e-mail address will catch all improperly addressed mail (i.e. to a user that doesn't exist) to your site. This address may be your defaultusername@yourdomain.com, or any other POP3 account you have created. +LANG_FAIL=Fail: +LANG_SENDER=The sender is notified that the address doesn't exist (recommended) +LANG_FAIL_EXPLANATION=This is the recommended option for the catch-all setting. Catch-all's will increase the server load due to spam, so having them disable is highly recommended unless you absolutely need the feature on. +LANG_IGNORE=Ignore: +LANG_DROPPED=The email is dropped and completely ignored (not recommended) +LANG_DROPPED_EXPLANATION=Avoid using the Ignore option unless you know what you are doing. Spammers will be sending you emails to random addresses, and this option will accept those emails. You will not know it because the accepted emails would be discarded. This greatly increases the server load unnecessarily. If you do not want the catch-all to be on, then use the Fail option instead. +LANG_ADDR=Address: +LANG_UPDATE=Update diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/filter.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/filter.html new file mode 100644 index 0000000..6cad53e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/filter.html @@ -0,0 +1,12 @@ +LANG_EMAIL_FILTERS=E-Mail Filters +LANG_BLOCK_EMAIL=Block a specific e-mail address: +LANG_BLOCK_DOMAIN=Block mail from an entire domain: +LANG_BLOCK_WORD=Block all e-mail containing the word: +LANG_BLOCK_SIZE=Block all e-mail larger than: +LANG_BLOCK_ADULT=Enable adult filter: (blocks out common adult phrases, words, and addresses) +LANG_BLOCK=Block +LANG_ACTION_FILTER=Action for filter matches +LANG_ACTION_DROP=Drop Email +LANG_ACTION_TO_SPAM=Send to spambox +LANG_WORD_WARNING=Note: the word filter matches partial words. For example, if you block the word "put" and the email contains "computer", then the email will be blocked. If you expect it to be its own word, then block " put ", with spaces beside it to avoid partial matching. +LANG_KB=KB diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/forwarder.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/forwarder.html new file mode 100644 index 0000000..9d53b77 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/forwarder.html @@ -0,0 +1,9 @@ +LANG_CREATE_FORWARD=Create new E-Mail Forwarder +LANG_MOD_FORWARD=Modify E-Mail Forwarder +LANG_FORWARD_NAME=Forwarder Name: +LANG_DEST=Destination Email: +LANG_WHERE_YOU_WANT=(Where you want it to go) +LANG_FEMAIL=Email +LANG_FORWARDERS=Forwarders +LANG_FWD_NOTE=Note, you can specify multiple email addresses in the "Destination Email" field if you wish:
email1@domain.com,email2@domain.com

You can also specify multiple entries in the "Forwarder Name" field:
fred,bob
This will simply add multiple forwarders. +LANG_FWD_MODIFY_NOTE=Note, you can specify multiple email addresses in the "Destination Email" field if you wish:
email1@domain.com,email2@domain.com diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/list.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/list.html new file mode 100644 index 0000000..fa31717 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/list.html @@ -0,0 +1,43 @@ +LANG_LISTS=Mailing Lists +LANG_CREATE_LIST=Create Mailing List +LANG_LIST_NAME=List Name: +LANG_VIEW_LIST=View List +LANG_MOD_LIST=Modify Mailing List +LANG_ADMIN_PASS=Admin Password +LANG_APP_PASS=Approve Password +LANG_REPLY_TO=Reply-To +LANG_DESC=Description +LANG_D_ISSUE=Digest Issue +LANG_D_VOLUME=Digest Volume +LANG_D_MAXDAYS=Digest MaxDays +LANG_D_MAXLINES=Digest MaxLines +LANG_GET_A=Get Access +LANG_INDEX_A=Index Access +LANG_INFO_A=Info Access +LANG_INTRO_A=Intro Access +LANG_WHICH_A=Which Access +LANG_WHO_A=Who Access +LANG_WELCOME=Welcome +LANG_MUNG=Mungedomain +LANG_MODERATE=Moderate +LANG_MODERATOR=Moderator +LANG_PREC=Precedence +LANG_PURGE=Purge Received +LANG_RESTRICT_POST=Restrict Post +LANG_STRIP=Strip +LANG_SUB_PRE=Subject Prefix +LANG_MAX_L=MaxLength +LANG_SUB_POL=Subscribe Policy +LANG_UNSUB_POL=Unsubscribe Policy +LANG_LIST_INFO=List Information +LANG_TABOO_BODY=Taboo Body +LANG_TABOO_HEAD=Taboo Headers +LANG_MESS_FOOT=Message Footer +LANG_MESS_FRONT=Message Fronter +LANG_MESS_HEAD=Message Headers +LANG_RESET=Reset +LANG_CHANGE_1=To change list and digest settings, +LANG_CHANGE_2=click here +LANG_ADD_EMAIL=Add an E-Mail Address to the list +LANG_ADD_TO=Add to +LANG_ADMINISTRIVIA=Administrivia diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/pop.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/pop.html new file mode 100644 index 0000000..bfb039e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/pop.html @@ -0,0 +1,13 @@ +LANG_POP_ACCOUNTS=Pop Accounts +LANG_POP_CREATE=Create mail account +LANG_POP_MODIFY=Modify mail account +LANG_POP_USERNAME=Username: +LANG_EMAIL_QUOTA=Email Quota (Meg): +LANG_ZERO_UNLIMITED=Zero is unlimited +LANG_NEW_PASS=Enter New Password: +LANG_LEAVE_BLANK=Leave blank to just change quota +LANG_EMAIL_USAGE=E-Mail Usage +LANG_SEND_LIMIT=Send Limit +LANG_SEND_LIMIT_DESC=Zero is unlimited. Blank will default to +LANG_DKIM_ENABLED=DKIM is enabled +LANG_DKIM_DISABLED=DKIM is disabled diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/spamassassin.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/spamassassin.html new file mode 100644 index 0000000..13f329c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/spamassassin.html @@ -0,0 +1,41 @@ +LANG_SPAM_SETUP=Spamassassin Setup +LANG_WHERE_TO_GO=Where do you want the spam to go? +LANG_TO_RECIPIENT=Inbox (don't block it) +LANG_TO_FOLDER=Redirect it to the catch-all spam folder in your main imap account. +LANG_TO_USER_FOLDER=Send the spam to the email account's spam folder. +LANG_DELETE_SPAM=Delete the spam. +LANG_SCORE_THRESH=What score threshold do you wish to use? +LANG_LOW_THRESH_DESC=A lower threshold will block more spam, but can potentially tag legitimate mail.
+LANG_HIGH_THRESH_DESC=A higher threshold will let more spam through, but is less likely to tag legitimate mail. +LANG_LOW_THRESH=Low Threshold +LANG_MED_THRESH=Medium Threshold +LANG_HIGH_THRESH=High Threshold +LANG_CUSTOM_THRESH=Custom Threshold +LANG_REWRITE_SUBJECT=Do you wish to rewrite the subject of a spam email? +LANG_YES_SET_SUBJECT=Yes, set the subject to the following +LANG_NO_LEAVE_SUBJECT=No, leave the subject unchanged. +LANG_HOW_DELIV=How should the spam be delivered? +LANG_DELIV_1=Attachments will separate the spam into its own message, preventing scripts from being run.
+LANG_DELIV_2=Text-only attachements are used for increased safety.
+LANG_DELIV_3=Not using attachments will leave the spam unaltered except for spam headers. +LANG_ATTACH_1=Don't use attachments (dangerous). +LANG_ATTACH_2=Use attachments. +LANG_ATTACH_3=Use text-only attachments. +LANG_EMAIL_BL=Email Blacklist +LANG_LIST_OF_BLOCKED=This is the list of email address that will be blocked.
+LANG_TAGGED_AS_SPAM=Any email from these addresses will automatically be tagged as spam.
+LANG_ONE_EMAIL=One email per line, no commas etc. * and ? are both valid.
+LANG_EG_DOMAIN=eg: *@domain.com +LANG_EMAIL_WL=Email Whitelist +LANG_THROUGH=This is the list of email address that will be allowed through, regardless of content.
+LANG_SAME_FORMAT=The format is the same as the Email Blacklist +LANG_MANUALLY_EDIT=Manually edit the config file yourself +LANG_DISABLE=Disable +LANG_SA_ENABLED=SpamAssassin is currently enabled. +LANG_SA_DISABLED=SpamAssassin is not currently enabled.
Click "Save" (below) to enable it. +LANG_DELETE_HS_SPAM=Would you like to delete high scoring spam? +LANG_YES_DELETE_HS_SPAM=Yes, block all spam scoring higher than: +LANG_1_99_NO_DEC=(1-50, no decimals) +LANG_NO_DO_NOT_DEL_HSS=No, do not block high scoring spam. Use only the threshold in the previous section. +LANG_THIS_BUTTON=This button will remove data learned by spamassassin.
It will free up some space, but will reset any
learned progress SpamAssassin has previously made. +LANG_DELETE_BAYES=Delete Bayes Data diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/usage.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/usage.html new file mode 100644 index 0000000..442b8df --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/usage.html @@ -0,0 +1,13 @@ +LANG_EMAIL_USAGE=E-Mail Usage +LANG_SHOW_USAGE=Show usage from +LANG_TODAY=Today +LANG_THIS_MONTH=This month +LANG_THIS_MONTH_EXCLUDING=This month, excluding today +LANG_COUNT_NOTE=Note: For older exim.pl files before version 13, each delivery attempt is counted, including retries. +LANG_SENDER_NOTE=Sender: The 'From' value set in the email header. This value should not be considered accurate as a sender can specify any value they wish. +LANG_AUTH_NOTE=Authentication: If smtp authentication is used, this will show the login name used. Scripts will show the owner of the script. Can be considered accurate. +LANG_SENDER_HOST_NOTE=Sender Host: If this is set, it will show the IP that connect to the server. If no IP is set, then the email was sent via a local script. +LANG_PATH_NOTE=Path: If the email was generated from a script, the path value will show the working directory the script was in. An email in the spool will have a path value of "retry" for each attempt. +LANG_ID_NOTE=ID: Exim ID of the message. Click the ID to get more information on it's delivery status. +LANG_OUTGOING=Outgoing +LANG_INCOMING=Incoming diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/vacation.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/vacation.html new file mode 100644 index 0000000..aa188ac --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/email/vacation.html @@ -0,0 +1,8 @@ +LANG_VAC_MESS=Vacation Messages +LANG_SET_VAC=Set Vacation Message +LANG_VAC_ACCOUNT=Vacation Account: +LANG_VAC_MESSAGE=Vacation Message: +LANG_VAC_START=Vacation Start: +LANG_VAC_END=Vacation End: +LANG_CURRENT=Current Server Time: +LANG_OF=of diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/error_pages.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/error_pages.html new file mode 100644 index 0000000..04481c0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/error_pages.html @@ -0,0 +1,7 @@ +LANG_EDIT_ERROR_PAGES=Edit Apache Error Pages +LANG_401=401 Unauthorized +LANG_403=403 Forbidden +LANG_404=404 Not Found +LANG_500=500 Internal Server Error +LANG_VIEW=View +LANG_NOTE=*Note: Internet explorer requires the error pages to be greater than or equal to 512 bytes in size or it will use its own error pages.
diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/copy.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/copy.html new file mode 100644 index 0000000..892d790 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/copy.html @@ -0,0 +1,6 @@ +LANG_FILEMANAGER=FileManager +LANG_COPY_1=Copy the file/folder +LANG_COPY_2=to +LANG_OVERWRITE=Overwrite if file exists +LANG_COPY=Copy + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/edit.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/edit.html new file mode 100644 index 0000000..a4d576d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/edit.html @@ -0,0 +1,8 @@ +LANG_FILEMANAGER=FileManager +LANG_SAVE_CHANGES_1=Do you want to save your changes to +LANG_SAVE_CHANGES_2=? +LANG_EDIT_FILE=Edit a file +LANG_PREVIEW=Preview Html +LANG_SAVE_AS=Save As +LANG_CANCEL=Cancel +LANG_DISCARD=Do you want to discard your changes? diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/extract.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/extract.html new file mode 100644 index 0000000..774db76 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/extract.html @@ -0,0 +1,6 @@ +LANG_FILEMANAGER=FileManager +LANG_EXTRACT_1=Extract +LANG_EXTRACT_2=to +LANG_EXTRACT=Extract +LANG_DIRECTORY=Directory +LANG_CONTENTS=Contents of diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/main.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/main.html new file mode 100644 index 0000000..a78ddbe --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/main.html @@ -0,0 +1,8 @@ +LANG_FILEMANAGER=FileManager +LANG_TO_MOVE=To copy/move files with the clipboard, add the source files to the clipboard with "Add to Clipboard", go to the directory where you wish to copy/move the files, then click "Copy Clipboard Files here" or "Move Clipboard Files here" +LANG_TOOLS=Filesystem Tools +LANG_NEW_FOLDER=Create New Folder +LANG_NEW_FILE=Create New File +LANG_TEMPLATE=Html template +LANG_UPLOAD_TO_HERE=Upload files to current directory +LANG_COMPRESS=Compress clipboard files to diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/protect.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/protect.html new file mode 100644 index 0000000..2f19c8b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/protect.html @@ -0,0 +1,10 @@ +LANG_FILEMANAGER=FileManager +LANG_PROTECTION_ON=Password Protection on +LANG_PROTECTION_ENABLED=Protection Enabled +LANG_PROMPT=Protected Directory Prompt: +LANG_SET_USER=Set/Update User: +LANG_AND_PASS=and Password: +LANG_EG=eg: Member's Area +LANG_GO_BACK=Go back to the list of Password Protect Directories +LANG_PROTECT_NOT_REQUIRED_DESC=Note: You need to add at least one User to the directory in order to access it. Once enabled with a User, only then is the Set/Update User field not required. It is needed to set it up the first time though. +LANG_NOT_REQUIRED=(Not required) diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/protected.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/protected.html new file mode 100644 index 0000000..31fc8ab --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/protected.html @@ -0,0 +1,2 @@ +LANG_PROTECTED=Protected Directories +LANG_FIND_DIR=Find a Directory to Password Protect diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/rename.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/rename.html new file mode 100644 index 0000000..766dd7e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/rename.html @@ -0,0 +1,5 @@ +LANG_FILEMANAGER=FileManager +LANG_RENAME_1=Rename the file +LANG_RENAME_2=to +LANG_OVERWRITE=Overwrite if file exists +LANG_RENAME=Rename diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/upload.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/upload.html new file mode 100644 index 0000000..63ae6be --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/filemanager/upload.html @@ -0,0 +1,9 @@ +LANG_FILEMANAGER=FileManager +LANG_MULTIPLE=Upload Multiple Files +LANG_NOT_A_NUMBER=That is not a number +LANG_UP_FILES=Upload Files +LANG_UP_TO=Upload Files to +LANG_UP_MORE=Upload Even More Files +LANG_MAX_SIZE=Max Filesize +LANG_SELECT_FILES=Select files to upload +LANG_HOW_MANY=How many files do you want to upload? diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/frontpage.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/frontpage.html new file mode 100644 index 0000000..b492774 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/frontpage.html @@ -0,0 +1,7 @@ +LANG_FP_EXT=Frontpage Extensions +LANG_STATUS=Status +LANG_SYSTEM_PASS=Your Password +LANG_REQUIRED=(Required for install) +LANG_ENABLE=Enable +LANG_DISABLE=Disable +LANG_FRONTPAGE_ADMIN=Frontpage Admin diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ftp/ftp.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ftp/ftp.html new file mode 100644 index 0000000..a061779 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ftp/ftp.html @@ -0,0 +1,15 @@ +LANG_FTP_SETUP=Ftp Setup +LANG_CREATE_FTP=Create FTP account +LANG_MODIFY_FTP=Modify FTP account +LANG_ANON_FTP_SETTINGS=Anonymous FTP settings +LANG_ALLOW_ANON=Allow Anonymous Access: +LANG_ALLOW_ANON_UP=Allow Anonymous Upload: +LANG_WELCOME_MESS=Welcome Message: +LANG_FTP_USERNAME=FTP Username: +LANG_FTP=Ftp +LANG_CUSTOM=Custom +LANG_DOMAIN_USER=Ftp account with the root directory in the domains home directory (one up from the public_html) +LANG_FTP_USER=Ftp account with the root directory in the domains public_ftp directory +LANG_USER_USER=Ftp account with the root directory as the users name in the public_html directory +LANG_FLOGIN=Login +LANG_FTP_SAVE_PASSWORD=Save Password diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/hotlink.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/hotlink.html new file mode 100644 index 0000000..a52a8e8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/hotlink.html @@ -0,0 +1,13 @@ +LANG_HOTLINK_PROTECTION=Hotlink Protection +LANG_HOTLINK_NOT_ENABLED=Hotlink Protection is not enabled. Add URLs below and enable using the checkbox. +LANG_ADD_URLS=Add URLs +LANG_HOTLINK_ENABLED=Hotlink Protection Enabled +LANG_ALLOW_BLANK_REFERER=Allow Blank Referer +LANG_ADD_MY_DOMAINS=Add my domains to the list +LANG_OR_NO_ACCESS=or they will not be able to access these files +LANG_URLS=URLs +LANG_ALLOW_DOMAINS=Allow the following domains +LANG_PROTECTED_FILES=Protected File Types +LANG_REDIRECT_TO=Redirect to +LANG_FORBIDDEN=Forbidden +LANG_URL=URL \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/login_history.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/login_history.html new file mode 100644 index 0000000..34926ed --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/login_history.html @@ -0,0 +1,2 @@ +LANG_LOGIN_HIST=Login History +LANG_HISTORY=Here is the Login History for your latest visits diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/login_keys.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/login_keys.html new file mode 100644 index 0000000..9d533d7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/login_keys.html @@ -0,0 +1,24 @@ +LANG_LOGIN_KEYS=Login Keys +LANG_CREATE_NEW_LOGIN_KEY=Create new Login Key +LANG_LOGIN_KEY_EXPLANATION=- Login keys allow you to create extra passwords for your account.
- However, these password have attributes, such as the ability to expire, usage limit, and can be limited to certain functions.
- Note that the Login Keys are one-way encrypted, just like passwords. They cannot be retrieved if you forget them.
- The login username used will still be your normal DA username.
+LANG_KEY_NAME=Key Name +LANG_KEY_VALUE=Key Value +LANG_RE_ENTER_KEY=Re-Enter Key +LANG_EXPIRES_ON=Expires on +LANG_NEVER=Never +LANG_USES=Uses +LANG_USES_EXPLANATION=Number of requests allowed with this key. 0=Unlimited +LANG_CURRENT_PASSWORD=Current Password +LANG_COMMANDS=Commands +LANG_ALLOWED_IPS=Allowed IPs +LANG_IPS_EXPLANATION=One IP per line.
Ranges allowed: 1.2.3.4-5
Leave blank to allow any IP. +LANG_LOGIN_KEYS_RULES=If no commands are checked (allow and deny), all commands are allowed.
The priorities for allow and deny are listed here.
The ALL_USER type commands are replaced with all commands the User is allowed, at that level. +LANG_MODIFY_LOGIN_KEY=Modify Login Key +LANG_LEAVE_BLANK_FOR_NO_CHANGE=Leave key values blank for no change +LANG_CLEAR_KEY=Clear Key +LANG_AUTO_DELETE=Automatically delete the key once the key expires, or all uses are used. +LANG_KEY_DEFINITION=A label to manage the keys. This is not the login username. +LANG_ALLOW_HTM=Allow HTM +LANG_ALLOW_HTM_EXPLANATION=Allows browsing of the DA interface to HTM, IMG and CSS files. +LANG_ALL_USER_WARNING=Please Note that if a key is allowed to access ALL_USER, CMD_LOGIN_KEYS, or CMD_API_LOGIN_KEYS,
that key will have sufficient privileges to create another key of higher privilege.
Please keep this is mind when chosing a key's privileges. +LANG_ONE_TIME_LOGIN_URL=One-Time Login URL diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/mime_types.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/mime_types.html new file mode 100644 index 0000000..027bf7c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/mime_types.html @@ -0,0 +1,8 @@ +LANG_MIME_TYPES=MimeTypes +LANG_ADD_MIME_TYPE=Add MimeType +LANG_MIME_TYPE=MimeType +LANG_EXTENSION=Extension +LANG_USER_MIME_TYPES=User Installed MimeTypes +LANG_LIST_SYSTEM_MIMES=Click here for a list of the current MimeTypes installed on the system +LANG_LIST_USER_MIMES=Click here for your list of installed MimeTypes +LANG_SYSTEM_MIME_TYPES=System MimeTypes diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/modify_domain.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/modify_domain.html new file mode 100644 index 0000000..c6a1eb2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/modify_domain.html @@ -0,0 +1,17 @@ +LANG_IGNORED=(Ignored if not allowed) +LANG_SECURE_SSL=Secure SSL +LANG_SAME_AS_MAIN=Same as Main Account +LANG_CONFIRM_DIR=Using a symbolic link will delete the private_html directory and all files in it. Do you wish to continue? +LANG_SETUP_FOR=private_html setup for +LANG_SSL_REQUIRED=(SSL must be enabled above) +LANG_USE_DIR=Use a directory named private_html +LANG_USE_SYMLINK=Use a symbolic link from private_html to public_html - allows for same data in http and https +LANG_ADD_ANOTHER_IP=Add Another IP to +LANG_SELECT_IP_TO_ADD=Select IP to Add +LANG_ADD_DNS_RECORDS=Add dns records for this IP +LANG_ADD_IP=Add IP +LANG_FORCE_SSL_REDIRECT=Force SSL with https redirect +LANG_REDIRECT_TO=Redirection for domain, pointers,
and sub-domains. +LANG_WWW_REDIRECT=Force Redirect +LANG_NO_REDIRECT=No redirection +LANG_CL_SELECTOR_WARNING=CloudLinux Php Selector Plugin is present. To use it, above must use diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/perl_modules.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/perl_modules.html new file mode 100644 index 0000000..db625c8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/perl_modules.html @@ -0,0 +1 @@ +LANG_INSTALLED_PERL_MODS=Installed Perl Modules diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/plugin.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/plugin.html new file mode 100644 index 0000000..47dad43 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/plugin.html @@ -0,0 +1 @@ +LANG_PLUGINS=Plugins diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/redirects.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/redirects.html new file mode 100644 index 0000000..8ff464d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/redirects.html @@ -0,0 +1,10 @@ +LANG_SITE_REDIRECTS=Site Redirects +LANG_ADD_NEW_REDIRECT=Add New Redirect +LANG_LOCAL_URL=Local URL Path +LANG_EG_REDIRECT=eg: /redirect    or: / +LANG_DESTINATION_URL=Destination URL +LANG_EG_DOMAIN=eg: http://www.redirected.com +LANG_REDIRECT_TYPE=Redirect Type +LANG_PERMANENT=Permanent +LANG_TEMPORARY=Temporary +LANG_REPLACED=Replaced diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/security_questions.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/security_questions.html new file mode 100644 index 0000000..88063e7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/security_questions.html @@ -0,0 +1,9 @@ +LANG_SECURITY_QUESTIONS=Security Questions +LANG_FEATURE_OFF=This feature is not turned on. +LANG_ADD_A_SECURITY_QUESTION=Add one or more Security Question, and then enable it in the options at the bottom of the page. +LANG_SECURITY_QUESTION_OPTIONS=Security Question options +LANG_REQUIRE_VALID_ANSWER=Require valid answers to the Security Questions for login on this account +LANG_ALLOW_AP_LOGIN=Allow API logins with the current User/password. Login Keys and Session Keys are always allowed. +LANG_NOTIFY_ME=Notify me on all failed question attempts. Disabling this option will still notify you after +LANG_FAILED_ATTEMPTS=failed attempts. +LANG_SECURITY_QUESTION_NOTES=- You must add a Security Question before you can turn on the feature.
- Security Question answers are Case Sensitive.
- If you disable API logins, any call to a CMD_API function will be blocked when using the current User/password.
   Login Keys and Session Keys will always work and are not blocked with this feature. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/server_info.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/server_info.html new file mode 100644 index 0000000..484489a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/server_info.html @@ -0,0 +1 @@ +LANG_SYS_INFO=System Information diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/show_domain.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/show_domain.html new file mode 100644 index 0000000..4a0d9f8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/show_domain.html @@ -0,0 +1,38 @@ +LANG_DOMAIN_SETUP=Domain Setup +LANG_CHANGE_PASSWORD=Change Password +LANG_LOGIN_HISTORY=Login History +LANG_DNS_MANAGEMENT=DNS Management +LANG_SUPPORT_CENTER=Support Center +LANG_INSTALLED_PERL_MODULES=Installed Perl Modules +LANG_CREATE_RESTORE_BACKUPS=Create/Restore Backups +LANG_SITE_SUM_STATS_LOGS=Site Summary / Statistics / Logs +LANG_FTP_MANAGEMENT=FTP Management +LANG_SUBDOMAIN_MANAGEMENT=Subdomain Management +LANG_FRONTPAGE_EXTENSIONS=Frontpage Extensions +LANG_MYSQL_MANAGEMENT=MySQL Management +LANG_PASS_PROC_DIRS=Password Protected Directories +LANG_FILE_MANAGER=File Manager +LANG_POP_EMAIL_ACCOUNTS=E-Mail Accounts +LANG_CATCH_ALL_EMAIL=Catch-All E-Mail +LANG_FORWARDERS=Forwarders +LANG_AUTORESPONDERS=Autoresponders +LANG_VAC_MESSAGES=Vacation Messages +LANG_MAILING_LISTS_OLD=Mailing Lists +LANG_SPAM_FILTERS=SPAM Filters +LANG_MX_RECORDS=MX Records +LANG_WEBMAIL_SM=Webmail: Squirrelmail +LANG_WEBMAIL_UEBI=Webmail: UebiMiau +LANG_WEBMAIL_ROUNDCUBE=Webmail: Roundcube +LANG_WEBMAIL_ATMAIL=Webmail: Atmail +LANG_SERVER_INFO=Server Information +LANG_SSL_CERTS=SSL Certificates +LANG_CRONJOBS=Cronjobs +LANG_MIMETYPES=Mime Types +LANG_APACHE_HANDLERS=Apache Handlers +LANG_CUSTOM_ERROR_PAGES=Custom Error Pages +LANG_PHPMYADMIN=phpMyAdmin +LANG_SITE_REDIRECTION=Site Redirection +LANG_HOTLINK_PROTECTION=Hotlink Protection +LANG_DOMAIN_POINTERS=Domain Pointers +LANG_SPAMASSASSIN=Spamassassin Setup +LANG_LOGIN_KEYS=Login Keys diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/show_log.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/show_log.html new file mode 100644 index 0000000..0624bcb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/show_log.html @@ -0,0 +1,2 @@ +LANG_USER_STATS_FOR=User Stats for +LANG_APACHE_LOGS=Apache Logs diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/site_backup.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/site_backup.html new file mode 100644 index 0000000..881cd8c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/site_backup.html @@ -0,0 +1,29 @@ +LANG_SITE_BACKUP=Site Backup +LANG_SITE_RESTORE=Site Restore +LANG_BACKUP_ALL_DOMAINS=Backup All Domains +LANG_SELECT_ITEMS=Select Items to include in Backup +LANG_WEB_DATA=Website Data +LANG_DOMAINS_DIR=Domains Directory: Backs up all user files for all domains +LANG_SUBDOMAIN_LIST=Subdomain Lists: Backs up the list of subdomains for each domain +LANG_POP_ACCOUNTS=E-Mail Accounts List for all domains (names and passwords) +LANG_FOWARDERS=Forwarders: Includes all forwarding addresses. +LANG_AUTORESPONDERS=Autoresponders: Includes all autoresponders and messages. +LANG_VAC_MESSAGES=Vacation Messages: Includes all vacation messages and times. +LANG_MAILING_LISTS_INCLUDE=Mailing Lists: Includes the list, digest-list and archives. +LANG_EMAIL_SETTINGS=E-Mail Settings: Includes the filters and the catchall address. +LANG_EMAIL_DATA=E-Mail Data: Includes the messages from the Inbox, IMAP Folders, and webmail data. +LANG_FTP=Ftp +LANG_FTP_ACCOUNTS=Ftp Accounts +LANG_FTP_SETTINGS=Ftp Settings +LANG_DATABASES=Databases +LANG_DBS_INCLUDE=Database Settings: Backs up all DB Users and DB Settings +LANG_DB_DATA=Database Data: If 'Databases' is selected, include the actual DB data +LANG_CREATE_BACKUP=Create Backup +LANG_CLICK_FOR_BACKUPS=Click here for a list of your current backups +LANG_SELECT_FILE=Select a File to Restore +LANG_SELECT_RESTORE_OPS=Select Restore Options +LANG_RESTORE_FROM_FILE=Restore from File +LANG_SELECT_ITEMS_TO_REST=Select Items to Restore from +LANG_RESOTRE_SELECTED_ITEMS=Restore Selected Items +LANG_DNS_ZONES=DNS +LANG_DNS_INCLUDE=DNS Zones: Includes all A records and MX records diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ssh_keys.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ssh_keys.html new file mode 100644 index 0000000..d4cf334 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ssh_keys.html @@ -0,0 +1,16 @@ +LANG_AUTH_KEYS=Authorized Keys +LANG_PUB_KEYS=Public Keys +LANG_CREATE_SSH_KEY=Create SSH Key +LANG_AUTHORIZE=Authorize +LANG_KEY_ID=Key ID +LANG_FILENAME_OF_NEW_KEY=filename of the new key +LANG_COMMENT=Comment +LANG_DESCRIPTOR_FOR_KEY=Descriptor for the key +LANG_KEY_SIZE=Key Size +LANG_PASSWORD=Password +LANG_PASSWORD_AGAIN=Password again +LANG_OPTIONAL_PASSWORD=Optional Password +LANG_REPEAT_PASSWORD=Repeat Password +LANG_CREATE=Create +LANG_PASTE_AUTH_KEY=Paste Authorized Key +LANG_EDIT_AUTH_KEY=Edit Authorized Key diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ssl.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ssl.html new file mode 100644 index 0000000..ba5b9fa --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ssl.html @@ -0,0 +1,42 @@ +LANG_CERT_COPIED=Certificate Copied to the Clipboard +LANG_SSL_CERTS=SSL Certificates +LANG_USE_SERVERS=Use the server's certificate +LANG_USE_SHARED=Use the server's shared signed certificate. +LANG_CREATE_SELF_SIGNED=Create your own self signed certificate +LANG_CREATE_CSR=Create A Certificate Request +LANG_COUNTRY=2 Letter Country Code +LANG_STATE=State/Province +LANG_CITY=City +LANG_COMPANY=Company +LANG_COMPANY_DIV=Company Division +LANG_COMMON_NAME=Common Name +LANG_PASTE=Paste a pre-generated certificate and key +LANG_PASTE_FROM=Paste from Clipboard +LANG_COPY_TO=Copy to Clipboard +LANG_IE_ONLY=(IE only) +LANG_CLICK_HERE=Click Here to paste a CA Root Certificate +LANG_NOTE=When creating a certificate request, the key will be saved and shown in the field above. The request will be shown on a new page. When you get the certificate from the Certificate Authority using the request, simply paste the certificate in the field after the key on a new line and click "Save" +LANG_CA_SSL=CA SSL +LANG_CA_CERT=Certificate Authority SSL Certificate +LANG_USE_CA=Use a CA Cert. +LANG_SSL_CSR=SSL Certificate Request +LANG_HERE_IS_CSR=Here is your SSL Certificate Request. You will send this text to a Certificate Authority and they will give you a Signed Certificate. To use it, paste the Signed Certificate on the next line after
"-----END RSA PRIVATE KEY-----" on the previous page and click "Save". +LANG_ADMIN_SAVE_KEY=Be sure to copy and backup the "RSA PRIVATE KEY" along with the the request. You will need it when installing the certificate. Because you're an admin, you will be saving to the "shared server certificate" and the key is not saved anywhere until you paste it with the certificate. +LANG_SSL_ENABLED=SSL is currently enabled for this domain. You can disable it +LANG_SSL_DISABLED=SSL is currently disabled for this domain. You can enable it +LANG_SSL_HERE=here +LANG_KEYSIZE=Key Size (bits) +LANG_CERT_TYPE=Certificate Type +LANG_FREE_LETS_ENCRYPT=Free & automatic certificate from +LANG_LETSENCRYPT_IN_USE_AUTO_RENEWAL=Let's Encrypt in use. Auto-renewal in +LANG_LETSENCRYPT_DAYS=Days +LANG_LE_MORE_THAN_ZERO=Must select more than zero entries. +LANG_LE_CANNOT_EXCEED=Cannot exceed +LANG_LE_REQUESTS_PER_WEEK=requets per week. +LANG_LE_MUST_INCLUDE_MAIN_DOMAIN=You must include your main domain: +LANG_LE_SELECTED=Selected Entries +LANG_LE_MAX=Maximum requests per week +LANG_LE_DISABLE_AUTORENEW=Disable Auto-Renew +LANG_CERTIFICATE_HOSTS=Certificate Hosts +LANG_CERTIFICATE_EXPIRY=Certificate Expiry +LANG_FORCE_SSL_REDIRECT=Force SSL with https redirect diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/subdomains.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/subdomains.html new file mode 100644 index 0000000..bbd8f2b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/subdomains.html @@ -0,0 +1 @@ +LANG_ADD_SUB=Add Sub-Domain: diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ticket/main.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ticket/main.html new file mode 100644 index 0000000..38c5e44 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/ticket/main.html @@ -0,0 +1,26 @@ +LANG_MESS_SYS=Messaging System +LANG_CREATE_TICKET=Create a Ticket +LANG_VIEW_CLOSED_TICKETS=View Closed Tickets +LANG_EMAIL_TO=Email a copy of all messages to +LANG_EMAIL_ONLY=Email Only +LANG_LIST_OF_CLOSED=List of closed tickets +LANG_REPLY_TO=Reply to Ticket +LANG_ADD_REPLY=Add a Reply to Ticket +LANG_SUBJECT=Subject: +LANG_MESSAGE=Message: +LANG_VIEW=View +LANG_CREATE_A=Create a +LANG_TO=To: +LANG_PRIORITY=Priority: +LANG_LOW=Low +LANG_MED=Medium +LANG_HIGH=High +LANG_SHOW_USERS=Show Users +LANG_MESS_MULTIPLE=Message Multiple Users +LANG_CREATE_MESS=Create Message +LANG_MULTIPLE_USERS=Multiple Users +LANG_DELETE_TICKETS=Automatically delete tickets older than +LANG_DELETE_MESSAGES=Automatically delete messages older than +LANG_DAY_ZERO_NEVER=days. (0 = never) +LANG_ALL_EMAIL_ACCOUNTS=All E-Mail Accounts +LANG_ALL_EMAIL_ACCOUNTS_DESC=Selecting this option will apply only to E-Mail accounts under to the selected DirectAdmin accounts at or below your level diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/twostep_auth.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/twostep_auth.html new file mode 100644 index 0000000..95713c1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/twostep_auth.html @@ -0,0 +1,21 @@ +LANG_TWOSTEP_AUTH=Two-Step Authentication +LANG_FEATURE_OFF=This feature is not turned on. +LANG_SETTINGS=Settings +LANG_NEW_SECRET=New Secret +LANG_CREATE_A_SECRET=Create a new secret to begin. +LANG_SAVE=Save +LANG_REQUIRE_AUTH_CODE=Require valid Two-Step Authentication Code to login to this account. +LANG_ALLOW_AP_LOGIN=Allow API logins with the current User/password. Login Keys and Session Keys are always allowed. +LANG_NOTIFY_ME=Notify me on all incorrect codes entries. Disabling this option will still notify you after +LANG_FAILED_ATTEMPTS=failed attempts. +LANG_NEW_SECRET_NOTE=Note: Creating a new secret voids your current codes. Re-Scan the QR code and re-print your scratch codes. +LANG_SCAN_TO_PHONE=Scan this code into your phone. +LANG_DESCRIPTION=Description +LANG_DESC_IN_PHONE=This describes your code. Shown in your phone. +LANG_CHECK_BEFORE_LOGOUT=Before logging out, test your phone's code +LANG_TEST_CODE=Test code +LANG_SECRET=Secret +LANG_TWOSTEP_AUTH_INFO=To use this feature, download the Google Authenticator App for your phone (or equivalent), and scan in the QR code.
The App will show you a code, which you'll use to Login to DirectAdmin.
Scratch Codes are one-time use codes in case you don't have your phone, so keep them safe. +LANG_CURRENTLY_TRUSTED=This device is currently trusted. +LANG_REMOVE_TRUST=Remove Trust +LANG_REMOVE_TRUST_EXPLANATION=This simply clears the cookie and will ask for code upon your next login. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/user/user_stats.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/user_stats.html new file mode 100644 index 0000000..5a876e2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/user/user_stats.html @@ -0,0 +1,16 @@ +LANG_STATS_FOR=User Stats for +LANG_DETAILS_FOR=Details for user +LANG_APACHE_LOGS=Backed up Web Logs +LANG_FULL_LOG=Full Log +LANG_LAST_LINES=Last lines in the file +LANG_APACHE_USAGE=Web Usage Log +LANG_FULL_USAGE=Full Usage Log +LANG_10_LINES=10 lines +LANG_100_LINES=100 lines +LANG_APACHE_ERROR=Web Error Log +LANG_FULL_ERROR=Full Error Log +LANG_WEBALIZER=Click on the domain name to view its stats. +LANG_NOTE=The domain statistics (above table) represent domain directory traffic/space, not total account traffic/space. The statistics below represent total usage. +LANG_LOG_TYPE=Log Type +LANG_USER_HISTORY=User History + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/widgets/WGT_ALL_USERS.txt b/directadmin-1.62.4/data/skins/enhanced/lang/en/widgets/WGT_ALL_USERS.txt new file mode 100644 index 0000000..0d76d75 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/widgets/WGT_ALL_USERS.txt @@ -0,0 +1,2 @@ +TITLE=All Users +DESCRIPTION=All Accounts on the Server diff --git a/directadmin-1.62.4/data/skins/enhanced/livesearch.js b/directadmin-1.62.4/data/skins/enhanced/livesearch.js new file mode 100644 index 0000000..8359d14 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/livesearch.js @@ -0,0 +1,249 @@ +var xmlhttp; + +var loadedat=0; + +var ajax_highlight = new Array(); + +function setLoaded() +{ + var d = new Date(); + loadedat = d.getTime(); +} + +function hideit(delayed, command) +{ + if (delayed == 1) + { + return setTimeout("hideit(0, '"+command+"')", 1000); + } + + document.getElementById("livesearch").innerHTML=""; + document.getElementById("livesearch").style.border="0px;"; + document.getElementById("livecontainer").style.visibility="hidden"; + + if (command != '') + ajax_highlight[command] = -1; + + return; +} + +function is_visible(id) +{ + if (document.getElementById(id).style.visibility == "visible") + { + return 1; + } + return 0; +} + +function handle_key_press(key_pressed, command) +{ + + if (ajax_highlight[command] === undefined) + ajax_highlight[command] = -1; + var selected = ajax_highlight[command]; + + + + if (key_pressed == 9 || key_pressed == 13 || key_pressed == 32) + { + + if (is_visible("livecontainer") && selected >= 0) + { + //9 = tab + //13 enter + //32 space + + var id_name = command+'-'+selected; + var item_element = document.getElementById(id_name); + + if (item_element != null) + { + if (typeof item_element.onclick == 'function') + { + item_element.onclick(); + } + else if (typeof item_element.click == 'function') + { + item_element.click(); + } + + hideit(0, command); + } + } + return; + } + + + + if (key_pressed == 38 || key_pressed == 40) + { + var old_selected = selected; + + if (key_pressed == 38) //up + { + selected = (+selected) - 1; + } + + if (key_pressed == 40) //down + { + selected = (+selected) + 1; + } + + + if (selected == -2) + selected = -1; + + //alert("new selected will be "+selected); + + if (selected >= 0) + { + var id_name = command+'-'+selected; + var item_element = document.getElementById(id_name); + if (item_element == null) + { + return; //nope, doesn't exist. Can't go here. + } + + + if (old_selected >= 0) + { + var old_id_name = command+'-'+old_selected; + var old_item_element = document.getElementById(old_id_name); + if (old_item_element != null) + { + outof(old_item_element, 0); + } + } + + over(item_element,0); + } + } +} + +function showResult(str, command) +{ + var d = new Date(); + + if (is_visible("livecontainer")) + { + var key_pressed = document.layers ? event.which : document.all ? event.keyCode : document.getElementById ? event.keyCode : 0; + + if (key_pressed == 38 || key_pressed == 40 || key_pressed == 9 || key_pressed == 13 || key_pressed == 32) + { + handle_key_press(key_pressed, command); + return; + } + } + + //we need to ensure at least 200 milliseconds has passed because keyup from form submission can happen after the next page has loaded. + if (str.length < 2 || d.getTime() - loadedat < 200 || loadedat == 0) + { + return hideit(0, command); + } + + xmlhttp=GetXmlHttpObject() + if (xmlhttp==null) + { + alert ("Your browser does not support XML HTTP Request"); + return; + } + + str = str.replace(/&/, '%26'); + + var url=command; + url=url+"?query="+str; + url=url+"&sid="+Math.random(); + xmlhttp.onreadystatechange=stateChanged; + + xmlhttp.open("GET",url,true); + xmlhttp.send(null); +} + +function stateChanged() +{ + if (xmlhttp.readyState==4) + { + document.getElementById("livesearch").innerHTML=xmlhttp.responseText; + document.getElementById("livesearch").style.border="1px solid #A5ACB2"; + + + //new + if (document.getElementById("livesearch").innerHTML == "") + { + hideit(0, ''); + } + else + { + document.getElementById("livecontainer").style.visibility="visible"; + } + } +} + +function GetXmlHttpObject() +{ + if (window.XMLHttpRequest) + { + // code for IE7+, Firefox, Chrome, Opera, Safari + return new XMLHttpRequest(); + } + if (window.ActiveXObject) + { + // code for IE6, IE5 + return new ActiveXObject("Microsoft.XMLHTTP"); + } + return null; +} + +function get_ajax_name(id_str) +{ + if (id_str == "") + return 'default'; + + var id_split = id_str.split('-', 2); + var ajax_name = id_split[0]; + if (ajax_name != "") + return ajax_name; + + return 'default'; +} + +function get_ajax_number(id_str) +{ + if (id_str == "") + return 0; + + var id_split = id_str.split('-', 2); + var ajax_number = id_split[1]; + if (ajax_number != "") + return ajax_number ; + + return 0; +} + +function over(div, is_mouse) +{ + div.className='hoverin'; + + var ajax_name = get_ajax_name(div.id); + var ajax_number = get_ajax_number(div.id); + + if (ajax_highlight[ajax_name] === undefined) + ajax_highlight[ajax_name] = -1; + + var old_selected = ajax_highlight[ajax_name]; + ajax_highlight[ajax_name] = ajax_number; + + if (is_mouse == 0) return; + if (old_selected == -1) return; + + var old_name = ajax_name+'-'+old_selected; + var old_element = document.getElementById(old_name); + if (old_element == null) return; + + old_element.className='hoverout'; +} +function outof(div, is_mouse) +{ + div.className='hoverout'; +} diff --git a/directadmin-1.62.4/data/skins/enhanced/loggedout.html b/directadmin-1.62.4/data/skins/enhanced/loggedout.html new file mode 100644 index 0000000..646e6d1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/loggedout.html @@ -0,0 +1,12 @@ + + +|LANG_LOGOUT_TITLE| + + +


+
+|LANG_LOGOUT_TEXT|
+|LANG_CLICK| |LANG_HERE| |LANG_TO_LOG_IN|
+
+ + diff --git a/directadmin-1.62.4/data/skins/enhanced/nothing.html b/directadmin-1.62.4/data/skins/enhanced/nothing.html new file mode 100644 index 0000000..e69de29 diff --git a/directadmin-1.62.4/data/skins/enhanced/passwd.html b/directadmin-1.62.4/data/skins/enhanced/passwd.html new file mode 100644 index 0000000..654e0c4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/passwd.html @@ -0,0 +1,33 @@ +|LF_STANDARD| +|?TREE=» `LANG_CHANGE_YOUR_PASS`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#password| +|HTM_USER_TOP| +


+
diff --git a/directadmin-1.62.4/data/skins/enhanced/images/admin-extra.gif b/directadmin-1.62.4/data/skins/enhanced/images/admin-extra.gif new file mode 100644 index 0000000..8b6b653 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/admin-extra.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/admin-server.gif b/directadmin-1.62.4/data/skins/enhanced/images/admin-server.gif new file mode 100644 index 0000000..ec06b54 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/admin-server.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/admin-tools.gif b/directadmin-1.62.4/data/skins/enhanced/images/admin-tools.gif new file mode 100644 index 0000000..0dab7ca Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/admin-tools.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/allbg.gif b/directadmin-1.62.4/data/skins/enhanced/images/allbg.gif new file mode 100644 index 0000000..aa78be9 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/allbg.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/bg-blue.gif b/directadmin-1.62.4/data/skins/enhanced/images/bg-blue.gif new file mode 100644 index 0000000..d16dc95 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/bg-blue.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/bg-blue2.gif b/directadmin-1.62.4/data/skins/enhanced/images/bg-blue2.gif new file mode 100644 index 0000000..859d096 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/bg-blue2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/bg-green.gif b/directadmin-1.62.4/data/skins/enhanced/images/bg-green.gif new file mode 100644 index 0000000..3deaf65 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/bg-green.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/bg-orange.gif b/directadmin-1.62.4/data/skins/enhanced/images/bg-orange.gif new file mode 100644 index 0000000..0ff9c69 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/bg-orange.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/bg-red.gif b/directadmin-1.62.4/data/skins/enhanced/images/bg-red.gif new file mode 100644 index 0000000..8b10f97 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/bg-red.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/bg-yellow.gif b/directadmin-1.62.4/data/skins/enhanced/images/bg-yellow.gif new file mode 100644 index 0000000..4dbb6dd Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/bg-yellow.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/checkbox.png b/directadmin-1.62.4/data/skins/enhanced/images/checkbox.png new file mode 100644 index 0000000..23d4e84 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/checkbox.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/cog.png b/directadmin-1.62.4/data/skins/enhanced/images/cog.png new file mode 100644 index 0000000..e34e050 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/cog.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/favicon.ico b/directadmin-1.62.4/data/skins/enhanced/images/favicon.ico new file mode 100644 index 0000000..39f6fdf Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/favicon.ico differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/file.gif b/directadmin-1.62.4/data/skins/enhanced/images/file.gif new file mode 100644 index 0000000..01bf07a Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/file.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/file.png b/directadmin-1.62.4/data/skins/enhanced/images/file.png new file mode 100644 index 0000000..cd74c43 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/file.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/file_link.gif b/directadmin-1.62.4/data/skins/enhanced/images/file_link.gif new file mode 100644 index 0000000..d1cd1a8 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/file_link.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/file_link.png b/directadmin-1.62.4/data/skins/enhanced/images/file_link.png new file mode 100644 index 0000000..7db5032 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/file_link.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/folder.gif b/directadmin-1.62.4/data/skins/enhanced/images/folder.gif new file mode 100644 index 0000000..c8da454 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/folder.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/folder.png b/directadmin-1.62.4/data/skins/enhanced/images/folder.png new file mode 100644 index 0000000..0f3a719 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/folder.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/folder_link.gif b/directadmin-1.62.4/data/skins/enhanced/images/folder_link.gif new file mode 100644 index 0000000..c3fd0ab Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/folder_link.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/folder_link.png b/directadmin-1.62.4/data/skins/enhanced/images/folder_link.png new file mode 100644 index 0000000..bf24c87 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/folder_link.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/footer.gif b/directadmin-1.62.4/data/skins/enhanced/images/footer.gif new file mode 100644 index 0000000..25c1b2f Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/footer.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/footer_wide.gif b/directadmin-1.62.4/data/skins/enhanced/images/footer_wide.gif new file mode 100644 index 0000000..c5ec170 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/footer_wide.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/gradient.gif b/directadmin-1.62.4/data/skins/enhanced/images/gradient.gif new file mode 100644 index 0000000..1fc4fb6 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/gradient.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/gradient2.gif b/directadmin-1.62.4/data/skins/enhanced/images/gradient2.gif new file mode 100644 index 0000000..584655e Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/gradient2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/header-noname.gif b/directadmin-1.62.4/data/skins/enhanced/images/header-noname.gif new file mode 100644 index 0000000..7ce02ac Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/header-noname.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/header.gif b/directadmin-1.62.4/data/skins/enhanced/images/header.gif new file mode 100644 index 0000000..842bbf3 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/header.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/help-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/help-over.gif new file mode 100644 index 0000000..50cf580 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/help-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/help.gif b/directadmin-1.62.4/data/skins/enhanced/images/help.gif new file mode 100644 index 0000000..3c432cf Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/help.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/incorrect.png b/directadmin-1.62.4/data/skins/enhanced/images/incorrect.png new file mode 100644 index 0000000..e09f2a2 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/incorrect.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/inner-bg.gif b/directadmin-1.62.4/data/skins/enhanced/images/inner-bg.gif new file mode 100644 index 0000000..77667ef Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/inner-bg.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-accesslevel.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-accesslevel.gif new file mode 100644 index 0000000..2719691 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-accesslevel.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-blue.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-blue.gif new file mode 100644 index 0000000..3f48f91 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-blue.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-currentdomain.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-currentdomain.gif new file mode 100644 index 0000000..4c4a569 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-currentdomain.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-green.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-green.gif new file mode 100644 index 0000000..9b8b1ff Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-green.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-orange.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-orange.gif new file mode 100644 index 0000000..637384f Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-orange.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-red.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-red.gif new file mode 100644 index 0000000..0dd7efb Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-red.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-shadow.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-shadow.gif new file mode 100644 index 0000000..0eb6378 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-shadow.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-yellow.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-yellow.gif new file mode 100644 index 0000000..3bea93e Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-yellow.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/left-youraccount.gif b/directadmin-1.62.4/data/skins/enhanced/images/left-youraccount.gif new file mode 100644 index 0000000..9692d0b Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/left-youraccount.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-bg.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-bg.gif new file mode 100644 index 0000000..9ffd80b Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-bg.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-fileman-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-fileman-over.gif new file mode 100644 index 0000000..af04070 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-fileman-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-fileman.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-fileman.gif new file mode 100644 index 0000000..eb46a21 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-fileman.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-home-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-home-over.gif new file mode 100644 index 0000000..6905819 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-home-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-home.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-home.gif new file mode 100644 index 0000000..7095758 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-home.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-logout-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout-over.gif new file mode 100644 index 0000000..4cc7ec6 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-logout.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout.gif new file mode 100644 index 0000000..ecca16b Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-logout2-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout2-over.gif new file mode 100644 index 0000000..ecdbfb8 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout2-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-logout2.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout2.gif new file mode 100644 index 0000000..b3638fb Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-logout2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-password-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-password-over.gif new file mode 100644 index 0000000..4919053 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-password-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-password.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-password.gif new file mode 100644 index 0000000..71adab7 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-password.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-webmail-over.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-webmail-over.gif new file mode 100644 index 0000000..9c89077 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-webmail-over.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/nav-webmail.gif b/directadmin-1.62.4/data/skins/enhanced/images/nav-webmail.gif new file mode 100644 index 0000000..3fa0d0b Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/nav-webmail.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/pencil.png b/directadmin-1.62.4/data/skins/enhanced/images/pencil.png new file mode 100644 index 0000000..94ead1f Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/pencil.png differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/reseller-accounts.gif b/directadmin-1.62.4/data/skins/enhanced/images/reseller-accounts.gif new file mode 100644 index 0000000..927ef4a Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/reseller-accounts.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/reseller-extra.gif b/directadmin-1.62.4/data/skins/enhanced/images/reseller-extra.gif new file mode 100644 index 0000000..8b6b653 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/reseller-extra.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/reseller-tools.gif b/directadmin-1.62.4/data/skins/enhanced/images/reseller-tools.gif new file mode 100644 index 0000000..e4186ab Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/reseller-tools.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-blue.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-blue.gif new file mode 100644 index 0000000..ef143b3 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-blue.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-blue2.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-blue2.gif new file mode 100644 index 0000000..d2492d0 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-blue2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-green.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-green.gif new file mode 100644 index 0000000..96b48b5 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-green.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-green2.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-green2.gif new file mode 100644 index 0000000..01ff396 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-green2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-orange.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-orange.gif new file mode 100644 index 0000000..b71c612 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-orange.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-orange2.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-orange2.gif new file mode 100644 index 0000000..d089894 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-orange2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-red.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-red.gif new file mode 100644 index 0000000..d7a87c7 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-red.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-red2.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-red2.gif new file mode 100644 index 0000000..84e269c Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-red2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-shadow.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-shadow.gif new file mode 100644 index 0000000..9029c3a Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-shadow.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-yellow.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-yellow.gif new file mode 100644 index 0000000..bb9e7a4 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-yellow.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/right-yellow2.gif b/directadmin-1.62.4/data/skins/enhanced/images/right-yellow2.gif new file mode 100644 index 0000000..bf37fe3 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/right-yellow2.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/user-advanced.gif b/directadmin-1.62.4/data/skins/enhanced/images/user-advanced.gif new file mode 100644 index 0000000..7d4ea45 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/user-advanced.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/user-email.gif b/directadmin-1.62.4/data/skins/enhanced/images/user-email.gif new file mode 100644 index 0000000..056179f Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/user-email.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/images/user-youraccount.gif b/directadmin-1.62.4/data/skins/enhanced/images/user-youraccount.gif new file mode 100644 index 0000000..b8bf899 Binary files /dev/null and b/directadmin-1.62.4/data/skins/enhanced/images/user-youraccount.gif differ diff --git a/directadmin-1.62.4/data/skins/enhanced/javascript.html b/directadmin-1.62.4/data/skins/enhanced/javascript.html new file mode 100644 index 0000000..b035b44 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/javascript.html @@ -0,0 +1,428 @@ +var badUserName='|LANG_INVALID_USERNAME|'; +var shortUserName='|LANG_SHORT_USERNAME|'; +var longUserName='|LANG_USERNAME_NO_MORE| |MAX_USERNAME_LENGTH| |LANG_CHARACTERS|'; +var noPassMatch='|LANG_PASS_NO_MATCH|'; +var shortPass='|LANG_SHORT_PASS|'; +var shortDomain='|LANG_SHORT_DOMAIN|'; +var domainNeedsDot='|LANG_DOMAIN_DOT|'; +var invalidDomain='|LANG_INVALID_DOMAIN|'; +var badIP='|LANG_INVALID_IP|'; +var badEmail='|LANG_INVALID_EMAIL|'; + + + +function show_alert(str, field, message) +{ + |*if AJAX="1"| + if (document.getElementById(field)) + { + document.getElementById(field).style.backgroundColor="|BAD_COLOR|"; + } + + if (document.getElementById(message)) + { + document.getElementById(message).innerHTML=str; + } + else + { + alert(str); + } + |*else| + alert(str); + |*endif| +} + +function set_ok(field, message) +{ + |*if AJAX="1"| + if (document.getElementById(field)) + { + document.getElementById(field).style.backgroundColor="|GOOD_COLOR|"; + } + + if (document.getElementById(message)) + { + document.getElementById(message).innerHTML=''; + } + |*endif| +} + + +function nameOK(name) +{ + var ch; + var i; + + if (name.length < 2) return false; + if (name.length > |MAX_USERNAME_LENGTH|) return false; + + for (i=0; i= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9')) || ch==' ' ) return false; + else if (!((ch >= 'a' && ch <= 'z') || (ch >= '0' && ch <= '9') || (ch=='_') || (ch=='-')) || ch==' ') return false; + } + + return true; +} + +function checkName() +{ + with (document.reseller) + { + if (username.value.length < 2) + { + username.focus(); + username.select(); + alert(shortUserName); + return false; + } + else + if (username.value.length > |MAX_USERNAME_LENGTH|) + { + username.focus(); + username.select(); + alert(longUserName); + return false; + } + else + if (nameOK(username.value)) return true; + else + { + username.focus(); + username.select(); + alert(badUserName); + return false; + } + } + return false; +} + +function passOK() +{ + with (document.reseller) + { + if (passwd.value.length < 5) + { + //alert(shortPass); + show_alert(shortPass, 'passwd', 'passwd_result'); + + passwd2.value=""; + passwd.focus(); + passwd.select(); + return 0; + } + + if (passwd.value != passwd2.value) + { + //alert(noPassMatch); + show_alert(noPassMatch, 'passwd2', 'passwd_result'); + + passwd2.focus(); + passwd2.select(); + return 0; + } + } + return 1; +} + +function checkPass() +{ + with (document.reseller) + { + if (passOK()) + { + set_ok('passwd2', 'passwd_result') + return true; + } + } +} + +function ipOK(ip) +{ + var ch; + var i; + var dotCount = 0; + if (ip.length < 7) return 0; + if (ip.charAt(0) == '.' || ip.charAt(ip.length-1) == '.') return 0; + for (i=0; i= 0 && ch <= 9) ) + return 0; + } + if (dotCount < 3) return 0; + return 1; +} + +function checkDomainIP() +{ + with (document.reseller) + { + if (sharedip.checked) return 1; + if (!ipOK(ip.value)) + { + alert(badIP) + ip.focus(); + ip.select(); + return 0; + } + } + return 1; +} + +function domainOK(domain) +{ + var ch; + var i; + var dotCount = 0; + + if (domain.length < 3) + { + alert(shortDomain); + return 0; + } + + if (domain.charAt(domain.length-1) == '.') + { + alert(invalidDomain); + return 0; + } + + for (i=0; i= 20) + { + alert("Unable to generate a password with a number, upper and lower case characters in it. Tried 20 times"); + return "error1"; + } + + var length_min = |RANDOM_PASSWORD_LENGTH|; + var length_max = |RANDOM_PASSWORD_LENGTH_MAX|; + + var length = Math.floor(Math.random() * (1 + length_max - length_min)) + length_min; + +|*if SPECIAL_CHARACTERS_IN_RANDOM_PASSWORDS="1"| + var chars = ''; + for (i=33; i<=126; i++) + { + if (i == 47) continue; + if (i == 92) continue; + chars = chars + String.fromCharCode(i); + } +|*else| + var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; +|*endif| + + var pass = ""; + var i=0; + + for (i=0; iSee: +LANG_BRUTE_FORCE_MONITOR=Brute Force Monitor diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/brute_force_monitor.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/brute_force_monitor.html new file mode 100644 index 0000000..b4f77d8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/brute_force_monitor.html @@ -0,0 +1,21 @@ +LANG_BRUTE_FORCE_MONITOR=Brute Force Monitor +LANG_FAILED_LOGINS=Failed Logins +LANG_CLICK_IP_TO_FILTER=Click IP address or User to filter results +LANG_CLEAR_SEARCH_FILTER=Clear Search Filter +LANG_SKIP_LIST=Skip List +LANG_LOG_SCANNING_OFF=Log Scanning is not currently turned on. Enable it from your Admin Settings +LANG_IP_ZERO=IP limit is set to 0. Admins will not be notified for failed login attempts from an IP. +LANG_IP_VALUE=Admins will be notified when an IP makes |IP_LIMIT| failed attempts. +LANG_USER_ZERO=User limit is set to 0. Admins will not be notified for failed attempts on a specific account. +LANG_USER_VALUE=Admins will be notified when |USER_LIMIT| failed attempts are made on a specific account. +LANG_ADD_TO_SKIP=Add to Skip List +LANG_COMMENTS=Comments +LANG_BLOCK_IPS=Block IPs +LANG_ARE_YOU_SURE_BLOCK=Are you sure you want to block these IPs? +LANG_BLOCKED_IPS=Blocked IPs +LANG_UNBLOCK=UnBlock +LANG_OPTIONAL_IP=IP/Range/Domain/Email +LANG_BLE_IS=brute_log_entries.list is +LANG_ONLY_READ=Only read +LANG_ZERO_OR_NEG=0 or negative number +LANG_BYTES_FROM_THE_END=bytes from the end of the file (negative number). 0 for all. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/content_main.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/content_main.html new file mode 100644 index 0000000..2cda170 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/content_main.html @@ -0,0 +1,30 @@ +LANG_CREATE_ADMIN=Create Administrator +LANG_DELETE_ADMIN=Delete Administrator +LANG_LIST_ADMINS=List Administrators +LANG_CHANGE_PASS=Change Passwords +LANG_MANAGE_TICKETS=Manage Tickets +LANG_CREATE_RESELLER=Create Reseller +LANG_LIST_RESELLERS=List Resellers +LANG_DELETE_RESELLER=Delete Reseller +LANG_RESELLER_PACKAGES=Manage Reseller Packages +LANG_SHOW_ALL_USERS=Show All Users +LANG_IP_MANAGEMENT=IP Management +LANG_DNS_ADMIN=DNS Administration +LANG_SYSTEM_INFO=System Information +LANG_SERVICE_MONITOR=Service Monitor +LANG_COMPLETE_USAGE_STATS=Complete Usage Statistics +LANG_CUSTOM_HTTPD=Custom HTTPD Configurations +LANG_PHP_SAFEMODE=PHP Configuration +LANG_ADMIN_SETTINGS=Administrator Settings +LANG_LICENSE_UPDATES=Licensing / Updates +LANG_PLUGIN_MANAGER=Plugin Manager +LANG_SYS_BACKUP=System Backup +LANG_LOG_VIEWER=Log Viewer +LANG_MULTI_SERVER=Multi Server Setup +LANG_FILE_EDITOR=File Editor +LANG_MAIL_Q_ADMIN=Mail Queue Administration +LANG_ADMIN_BACKUPS=Admin Backup/Transfer +LANG_MOVE_USERS=Move Users between Resellers +LANG_PROCESS_MONITOR=Process Monitor +LANG_ADMIN_CRON_JOBS=All User Cron Jobs +LANG_BRUTE_FORCE_MONITOR=Brute Force Monitor diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/create_admin.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/create_admin.html new file mode 100644 index 0000000..c8ae134 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/create_admin.html @@ -0,0 +1,12 @@ +LANG_SHOW_ADMINS=Show Admins +LANG_CREATE_ADMIN=Create Admin +LANG_CREATE_ADMIN_ACCOUNT=Create Administrator Account +LANG_EMAIL_NOTIFICATION=Send Email Notification +LANG_EDIT_ADMIN_MESSAGE=Edit Admin Message + + + + + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/create_reseller.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/create_reseller.html new file mode 100644 index 0000000..cc80276 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/create_reseller.html @@ -0,0 +1,50 @@ +LANG_SHOW_RESELLER=Show Resellers +LANG_SHOW_USERS=Show Users +LANG_CREATE_RES=Create Reseller +LANG_CREATE_USER=Create User +LANG_DELETE_RES=Delete Reseller +LANG_CUSTOMIZE=Customize +LANG_CUSTOMIZE_USER=Customize User +LANG_USE_RES_PACK=Use Reseller Package +LANG_USE_USER_PACK=Use User Package +LANG_SHARED_SERVER=Shared - Server +LANG_SHARED_RES=Shared - Reseller's IP +LANG_ASSIGNED=Assigned +LANG_EMAIL_NOTIFY=Send Email Notification +LANG_EDIT_RES_MESS=Edit Reseller Message +LANG_EDIT_USER_MESS=Edit User Message +LANG_SSH_FOR_USERS=SSH Access for Users +LANG_ALLOW_OVERSELLING=Allow Overselling +LANG_DNS_CONTROL=DNS Control +LANG_PERSONAL_DNS=Personal DNS's +LANG_NONE=None +LANG_TWO_IPS=Uses 2 IP's, domain uses one of them +LANG_THREE_IPS=Uses 3 IP's, domain gets own IP +LANG_SERVER_IP=Share Server IP +LANG_MODIFY_RESELLER=Modify Reseller +LANG_MODIFY_USER=Modify User +LANG_CHANGE_PACK=Change Package for Reseller +LANG_CHANGE_PACK_USER=Change Package for User +LANG_SET_PACK_TO=Set Package to +LANG_MANUALLY_CHANGE=Manually Change Settings +LANG_MANAGE_RES_PACK=Manage Reseller Packages +LANG_MANAGE_USER_PACK=Manage User Packages +LANG_MANAGE=Manage +LANG_RES_PACK=Reseller Package +LANG_USER_PACK=User Package +LANG_ALLOW_RES_SERVER=Allow Reseller to create sites with server IP +LANG_PACK_NAME=Package Name +LANG_SUSPEND_AT_LIMIT=Suspend At Limit +LANG_SKIN=Skin +LANG_CHANGE_IP=Change the User's IP +LANG_SET_IP_TO=Set IP To +LANG_CRON_JOBS=Cron Jobs +LANG_SYSTEM_INFO=System Info +LANG_FREE_IPS=Free IP(s). +LANG_ACCOUNT_IP=Account IP +LANG_ADD_ADDITIONAL_IP=Add Additional IP +LANG_CURRENT_IPS=Current IPs +LANG_LOGIN_KEYS=Login Keys +LANG_HOME_DIR=Home Directory +LANG_LOCATION_FOR_THIS_ACCOUNT=Location for this account +LANG_RENAME=Rename diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd.html new file mode 100644 index 0000000..67eeb29 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd.html @@ -0,0 +1,5 @@ +LANG_CUSTOM_HTTPD=Custom HTTPD Configurations +LANG_SHOW_DOMAINS_THAT=Show Domains that +LANG_EQUAL=equal +LANG_CONTAIN=contain +LANG_START_WITH=start with diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd_domain.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd_domain.html new file mode 100644 index 0000000..b1b37b4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd_domain.html @@ -0,0 +1,19 @@ +LANG_CUST_HTTPD_CONF=Custom Httpd Configurations +LANG_CUST_FOR=Httpd.conf Customization for +LANG_NGINX_CUST_FOR=nginx.conf Customization for +LANG_AVAIL_TOKENS=Available Tokens +LANG_HTTPD_CONTENTS_FOR=Contents of the httpd.conf file for +LANG_NGINX_CONTENTS_FOR=Contents of the nginx.conf file for +LANG_WARNING=Only add the few lines of the VirtualHost you need to insert.
Do not add a whole <Virtualhost>..</VirtualHost> +LANG_NGINX_WARNING=Only add the few lines of the server code you need to insert.
Do not add a whole server { ... } entry. +LANG_CONFIG_ERROR=Configuration Syntax Error - See below for details +LANG_CONFIG_CHECK=Configuration Check +LANG_ADDITIONAL_CUSTOM_TOKENS=Additional CUSTOM tokens +LANG_TOP_OF_TEMPLATE=Appears at the very top of the template, before setting the variables. +LANG_ALL_LOCATIONS=Appears in ALL location / sections. Use the LOCATION token. +LANG_BEFORE_DIRECTORY=Appears just before the <Directory> section. +LANG_BEFORE_WEBAPPS=Appears just before the webapps include. +LANG_FIRST_DIRECTORY=Appears as the first item within the <Directory> section. +LANG_LAST_ENTRY=The very last entry. +LANG_CUSTOM_TEMPLATE=    *** Custom Template *** +LANG_TEMPLATES=Templates diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd_fpm.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd_fpm.html new file mode 100644 index 0000000..3642649 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/custom_httpd_fpm.html @@ -0,0 +1,12 @@ +LANG_CUST_FOR=PHP-FPM config customization for +LANG_AVAIL_TOKENS=Available Tokens +LANG_INSTRUCTIONS=Add the code to be inserted into the CUSTOM tokens +LANG_PHP_FPM_CONFIG_CHECK=PHP-FPM Configuration Check +LANG_CUST_HTTPD_CONF=Custom Httpd Configurations +LANG_CONFIG_ERROR=Configuration Syntax Error - See below for details +LANG_CUSTOM_TEMPLATE=    *** Custom Template *** +LANG_SAVE_ALL_PHP_VERSIONS=Save for all PHP versions +LANG_SAVE_ALL_PHP_WARNING=WARNING: This assumes your code is valid across all php versions. +LANG_SAVE_ALL_PHP_WARNING2=This will also overwrite any other custom code for other versions. +LANG_GLOBAL=Global +LANG_GLOBAL_TITLE=Global custom tokens apply to all php versions, but only for this User. Global is added before per-php tokens. diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/delete_admin.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/delete_admin.html new file mode 100644 index 0000000..cbbb450 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/delete_admin.html @@ -0,0 +1,2 @@ +LANG_SHOW_ADMINS=Show Admins +LANG_DELETE_ADMIN=Delete Administrator Account diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/delete_reseller.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/delete_reseller.html new file mode 100644 index 0000000..a0abfaf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/delete_reseller.html @@ -0,0 +1,2 @@ +LANG_SHOW_RES=Show Resellers +LANG_DELETE_RES=Delete Reseller Account diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/dns_admin.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/dns_admin.html new file mode 100644 index 0000000..2c84a2b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/dns_admin.html @@ -0,0 +1,10 @@ +LANG_DNS_ADMIN=DNS Admin +LANG_SELECT_DNS=Select the dns record to edit. +LANG_SHOW_DOMAINS_THAT=Show Domains that +LANG_EQUAL=equal +LANG_CONTAIN=contain +LANG_START_WITH=start with +LANG_ADD_ZONE=Add Zone +LANG_REVERSE=Create Reverse IP Lookup + + diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/dns_admin_control.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/dns_admin_control.html new file mode 100644 index 0000000..96c83c8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/dns_admin_control.html @@ -0,0 +1,33 @@ +LANG_DNS_ADMIN=DNS Administration +LANG_ENTRY_FOR=Entry for +LANG_NAME=Name +LANG_TTL=TTL +LANG_TTL_BLANK_FOR_DEFAULT=TTL: blank for default +LANG_TYPE=Type +LANG_VALUE=Value +LANG_DELETE_SELECTED=Delete Selected +LANG_ADD_DOMAIN_RECS=Add Domain Records +LANG_DNS_SETTINGS=DNS Settings +LANG_MODIFY_MX=Modify MX Records +LANG_MAIL_SERVER_SETTINGS=Mail Server Settings +LANG_ADD_ANOTHER_MX=Add Another MX record +LANG_LOCAL_MAIL_SERVER=Local Mail Server +LANG_USE_THIS_SERVER=Use this server to handle my emails.
If not, change the MX record and uncheck this option +LANG_NOTE=*Note: Making modifications to the MX records can potentially disable all of your email accounts from recieving mail.
ONLY make modifications if you know what you are doing.
Make sure to include the period at the end of the domain. (eg: mail.domain.com. ) +LANG_PTR=Domain Pointer +LANG_RESET_DEFAULTS=Reset Defaults +LANG_RESET_WARNING=WARNING: Resetting the defaults will wipe any custom entries you have made. +LANG_MX_RECORDS=MX records. +LANG_OVERRIDE_TTL_VAL=Override TTL Value +LANG_USE_DEFAULT=Use Default +LANG_LOGIN_AS_DNS_CONTROL=DNS Control is disabled for this User. You can edit the zone because your master account has DNS Control. +LANG_DS_ONLY_FOR_DELEGATION=Only for subdomain delegation +LANG_TRAILING_DOT=Shows what the resulting value resolves to, as named appends the zone name if there is no trailing dot. Click the 'True values' bar for more info. +LANG_TRUE_VALUES=True values +LANG_A_RECORD_VALUE_NOT_IP=A record value is not an IP +LANG_MISSING_END_DOT=Missing end dot? +LANG_DOT_END_SHOULD_HAVE_ZONE=Values ending in period should contain the zone name +LANG_SET_REMOTE_MX=Set remote MX records +LANG_AFFECT_POINTERS=Affect Pointers +LANG_REMOVE_FROM_POINTERS=Remove from pointers +LANG_DUPLICATE_TO_POINTERS=Duplicate to pointers diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/file_editor.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/file_editor.html new file mode 100644 index 0000000..2f41244 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/file_editor.html @@ -0,0 +1,6 @@ +LANG_FILE_EDITOR=File Editor +LANG_FILE_SAVED=Saved +LANG_SELECT_FILE_TO_EDIT=Select a file to edit +LANG_SHOW_FILE=Show File +LANG_FILE_IS_SECURE=This file is tagged as secure. Root password required to edit +LANG_AUTHENTICATE=Authenticate diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/ip_manager.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/ip_manager.html new file mode 100644 index 0000000..2998ad8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/ip_manager.html @@ -0,0 +1,18 @@ +LANG_IP_MANAGER=IP Manager +LANG_ADD_IP=Add IP +LANG_NETMASK=Netmask +LANG_IPV6_MASK=For IPv6 IPs, use a /mask, eg: /64 +LANG_DETAILS_FOR=Details for +LANG_STATUS=Status +LANG_NETMASK=Netmask +LANG_USER_VALUE=User(s) +LANG_NAMESERVER=Nameserver +LANG_IP_PURPOSE=The main purpose for this feature is to link LAN IPs to external IPs,
and/or to link IPv6 IPs to IPv4 IPs. +LANG_LAN_EXPLANATION=LAN: View the details of the external IP. Link the internal IP to the external IP.
Only select Apache, do not select DNS. Add Users to external IP +LANG_IPV6_EXPLANATION=IPv6: View the details of the IPv4 IP. Link the IPv6 to the IPv4. Check both DNS and Apache. +LANG_LINK_OPTIONS_EXPLANATION=Adding a linked IP to the current IP will add the linked IP to the areas where current IP exists.
Linking an IP with dns will duplicate the A/AAAA records for the current IP with the linked IP.
Linking an IP with apache will add the linked IP into the VirtualHost with the current IP. +LANG_MULTI_IP_RELATION=This feature is independant of the Multi-IP system, but they can be used together.
For example a User can have 2 IPs with the Multi-IP system, and each of those IPs can have linked IPs. +LANG_LINK_NOT_RECURSIVE=Links are not recursive, so you don't need to worry about infinite loops. +LANG_APPLY_TO_DOMAINS=The "Apply to existing Domains" option will trigger the httpd.conf rewrites and insert A/AAAA records into the local dns zones.
Disabling this checkbox won't touch the dns or httpd.conf files, but future httpd.cont rewrites will have the linked IP added. +LANG_ADD_TO_DEVICE=Add to device +LANG_ADD_TO_DEVICE_TITLE=Add IP to configs, but never to network device diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/license.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/license.html new file mode 100644 index 0000000..ca363d7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/license.html @@ -0,0 +1,32 @@ +LANG_LICE_UP=Licensing / Updates +LANG_LICE_VALS=License Values +LANG_LICE_IP=License IP +LANG_LICE_NAME=Name in License +LANG_LID=License ID +LANG_CID=Client ID +LANG_VALID_AFTER=Valid After +LANG_VALID_UNTIL=Valid Until +LANG_CURRENT_TIME=Current Server Time +LANG_TIME_REM=Time Remaining +LANG_LAST_UP=Last Updated +LANG_UP_LICE=Update License +LANG_DA_VALS=DirectAdmin Values +LANG_COMPILED_FOR=Compiled on +LANG_SERVER_VER=Server Version +LANG_CURRENT_VER=Current Available Version +LANG_UPDATE_DA=Update DirectAdmin +LANG_LTYPE=License Type +LANG_INTERNAL=INTERNAL LICENSE -- This special license may not be resold or transferred. For internal datacentre use only. Please contact your server provider for control panel and system technical assistance. Please report unauthorized reselling to sales@directadmin.com +LANG_EXTERNAL=External license +LANG_COMPILE_DATE=Compile Date +LANG_PORTIONED_LICENSE=Portioned License +LANG_PORTIONED_EXPLANATION=This Portioned License is a license that has a true expiry at a date further into the future than is set in the physical key. The license will automatically update to the next time period when the key's expiry nears.
True expiry: +LANG_LAST_RESTART=Last Restart +LANG_RESTART_DA=Restart DirectAdmin +LANG_DA_NOT_RESTARTED=DirectAdmin has not been restarted since the last license.key update! +LANG_ACCOUNT_LIMIT=Account Limit +LANG_DOMAIN_LIMIT=Domain Limit +LANG_END_OF_LIFE=End-Of-Life +LANG_DA_LICENSE=DirectAdmin License +LANG_VERIFY=Verify +LANG_CHECK_IF_SOFTWARE_VALID=Check to see if the current software is valid diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/log_viewer.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/log_viewer.html new file mode 100644 index 0000000..c6bb6b1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/log_viewer.html @@ -0,0 +1,13 @@ +LANG_LOG_VIEWER=Log Viewer +LANG_SELECT_LOG=Select Log File to view +LANG_LOG_FILE=Log File +LANG_NUM_LINES=Number of lines from the end +LANG_ZERO_FOR_ENTIRE=(0 for entire file) +LANG_OUTPUT_TYPE=Output type +LANG_TEXT_AREA=TextArea Below +LANG_RAW=Raw file (faster and more efficient) +LANG_SHOW_LOG=Show Log +LANG_GREP=Grep +LANG_INVERT=Invert +LANG_IGNORE_CASE=Ignore Case +LANG_USE_PIPE_FOR_MULTI=Use | for multiple diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/mail_queue.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/mail_queue.html new file mode 100644 index 0000000..b7307d4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/mail_queue.html @@ -0,0 +1,11 @@ +LANG_MAIL_QUEUE_ADMIN=Mail Queue Administration +LANG_VIEW=View +LANG_FREEZE=Freeze +LANG_THAW=Thaw +LANG_RETRY=Retry +LANG_BOUNCE=Bounce +LANG_DELETE=Delete +LANG_EMAIL_HEADERS=E-Mail Headers +LANG_EMAIL_BODY=E-Mail Body Chunk +LANG_LOG=Log +LANG_REFRESH=Refresh diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/manage_packages_reseller.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/manage_packages_reseller.html new file mode 100644 index 0000000..7b82391 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/manage_packages_reseller.html @@ -0,0 +1,2 @@ +LANG_MANAGE_RES_PACK=Manage Reseller Packages +LANG_ADD_PACK=Add Package diff --git a/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/multi_server.html b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/multi_server.html new file mode 100644 index 0000000..5a494b0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/lang/en/admin/multi_server.html @@ -0,0 +1,12 @@ +LANG_MULTI_SERVER=Multi Server Setup +LANG_MULTI_IS_ON=Multi Server is currently turned ON +LANG_MULTI_IS_OFF=Multi Server is currently turned OFF +LANG_TURN_OFF=Turn Off +LANG_TURN_ON=Turn On +LANG_LIST_OF_SERVERS=List of External Servers +LANG_ADD_REMOTE_SERVER=Add Remote Server +LANG_PORT=Port +LANG_SSL_DESCRIPTION=
SSL Connection:The specified server requires SSL in order to connect (eg, https)
Zone Transfer:DA will transfer the dns info on the specified server when new domains are added and dns settings are changed.
Domain Check:DA will first check the specified server before creating a domain to ensure the domain does not exist.
+ + + + + + + + + + + + + +
|LANG_CHANGE_YOUR_PASS|
|LANG_ENTER_OLD_PASS|:
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
|LANG_PASS_DA|
|LANG_PASS_FTP|
|LANG_PASS_DB|
+ +
+|*if HAVE_SECURITY_QUESTIONS="yes"| +
+|LANG_MANAGE_SECURITY_QUESTIONS| +|*endif| +|*if HAVE_TWOSTEP_AUTH="yes"| +
+|LANG_TWO_STEP_AUTH| +|*endif| + + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/backup_modify.html b/directadmin-1.62.4/data/skins/enhanced/reseller/backup_modify.html new file mode 100644 index 0000000..1f09790 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/backup_modify.html @@ -0,0 +1,187 @@ +|LF_STANDARD| +|?TREE=» `LANG_MANAGE_USER_BACKUPS` » `LANG_MODIFY_BACKUP`| +|?HELP_SECTION=`RESELLER_HELPER`| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + + + + + + +
|LANG_MODIFY_BACKUP|
+
|LANG_STEP_1|: |LANG_WHO|
+ + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + - |LANG_ALL_USERS| +
+ + + - |LANG_ALL_USERS| |LANG_EXCEPT_USERS| +
+ + + - |LANG_SELECTED_USERS| +
+
+ |USERS| +
+
+ - |LANG_SKIP_SUSPENDED| +
+
+
|LANG_STEP_2|: |LANG_WHEN|
+ + + +
+ + + + + + + + + +
+ + + - |LANG_CRON_SCHED| +
+ + + + + + +
|LANG_MINUTE|: 0-59
|LANG_HOUR|: 0-23
|LANG_DAY_OF_MONTH|: 1-31
|LANG_MONTH|: 1-12
|LANG_DAY_OF_WEEK|: 0-7
+
+ + +
+
|LANG_STEP_3|: |LANG_WHERE|
+ + + +
+ + + + + + + + + + + + + + + + + + + + |*if ALLOW_BACKUP_ENCRYPTION="1"| + + + + + + + + + + |*endif| + +
- |LANG_LOCAL|: ~/|USERNAME|/|USER_BACKUPS_DIR|/
+ + + - |LANG_FTP| +
+ + + + + + + +
|LANG_IP|:
|LANG_USERNAME|:
|LANG_PASSWORD|:
|LANG_REMOTE_PATH|:
|LANG_REMOTE_PORT|:
|LANG_SECURE_FTP|:|FTP_SECURE_SELECT|
+
  + - |LANG_APPEND_TO_PATH| |PATH_APPEND| +
+        + |LANG_APPEND|: / + (?)  +
+ |LANG_BACKUP_ENCRYPTION| +
+ + + + + +
|LANG_PASSWORD|: + +
+
+ + +
|LANG_STEP_4|:
+ + +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/backups.html b/directadmin-1.62.4/data/skins/enhanced/reseller/backups.html new file mode 100644 index 0000000..dee6425 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/backups.html @@ -0,0 +1,413 @@ +|LF_STANDARD| +|LF_BACKUPS| +|?TREE=» `LANG_MANAGE_USER_BACKUPS`| +|?HELP_SECTION=`RESELLER_HELPER`| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + + + + + + +
|LANG_CREATE_BACKUP|
+
|LANG_STEP_1|: |LANG_WHO|
+ + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + - |LANG_ALL_USERS| +
+ + + - |LANG_ALL_USERS| |LANG_EXCEPT_USERS| +
+ + + - |LANG_SELECTED_USERS| +
+
+ |USERS| +
+
+ - |LANG_SKIP_SUSPENDED| +
+
+
|LANG_STEP_2|: |LANG_WHEN|
+ + + +
+ + + + + + + + + + + + + +
+ + + - |LANG_NOW| +
+ + + - |LANG_CRON_SCHED| +
+ + + + + + +
|LANG_MINUTE|: 0-59
|LANG_HOUR|: 0-23
|LANG_DAY_OF_MONTH|: 1-31
|LANG_MONTH|: 1-12
|LANG_DAY_OF_WEEK|: 0-7
+
+ + +
+
|LANG_STEP_3|: |LANG_WHERE|
+ + + +
+ + + + + + + + + + + + + + + + + + + + |*if ALLOW_BACKUP_ENCRYPTION="1"| + + + + + + + + + + |*endif| + +
- |LANG_LOCAL|: ~|USERNAME|/|USER_BACKUPS_DIR|/
+ + + - |LANG_FTP| +
+ + + + + + + +
|LANG_IP|:
|LANG_USERNAME|:
|LANG_PASSWORD|:
|LANG_REMOTE_PATH|:
|LANG_REMOTE_PORT|:
|LANG_SECURE_FTP|:|FTP_SECURE_SELECT|
+
  + - |LANG_APPEND_TO_PATH| |PATH_APPEND| +
+        + |LANG_APPEND|: / + (?)  +
+ |LANG_BACKUP_ENCRYPTION| +
+ + + + + +
|LANG_PASSWORD|: + +
+
+ +
|LANG_STEP_4|:
+ + + + +
+ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_RESTORE_BACKUP|
+
|LANG_STEP_1|: |LANG_FROM_WHERE|
+ + + +
+ + + + + + + + + + + + +
- |LANG_LOCAL|: ~/|USERNAME|/|USER_BACKUPS_DIR|/
+ + + - |LANG_FTP| +
+ + + + + + + + +
|LANG_IP|:
|LANG_USERNAME|:
|LANG_PASSWORD|:
|LANG_REMOTE_PATH|:
|LANG_REMOTE_PORT|:
|LANG_SECURE_FTP|:|FTP_SECURE_SELECT|
+
+ + +
+
|LANG_STEP_2|: |LANG_SELECT_IP|
+ + + +

+ + + + + + + + + + + + + + +
- |LANG_USE_STORED_IP|
- |LANG_USE_IP_FROM_LIST|:
|IPLIST|
+
+ |LANG_NOTE| + +
+
|LANG_STEP_3|: |LANG_SELECT_FILES|
+ + + +

+ +
|LANG_LOCATION|: |FILES_LOCATION|

+ +
+ |FILES| +
+ + |*if ALLOW_BACKUP_ENCRYPTION="1"| + + + + + + + +
+ |LANG_BACKUP_DECRYPTION| +
+ + + + + +
|LANG_PASSWORD|: + +
+
+ |*endif| + +
|LANG_STEP_4|:
+ +
+ + + + +
+ + + + +
|LANG_CURRENT_BACKUP_CRONS|
|CRONS|
+ +

+ +
+ + + + +
+ + + + +
|LANG_BACKUP_SETTINGS|
+ + + + + + + + + + + + + + + + + + + +
 
+ + + |LANG_SEND_MESSAGE| +
+ + + |LANG_LOCAL_NS| +
+ + + |LANG_RESTORE_SPF| +
+
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/change_user_passwd.html b/directadmin-1.62.4/data/skins/enhanced/reseller/change_user_passwd.html new file mode 100644 index 0000000..1895592 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/change_user_passwd.html @@ -0,0 +1,52 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_USERS` » `LANG_CHANGE_PASS`| +|?HELP_SECTION=`RESELLER_HELPER`/userpass.html| +|HTM_RESELLER_TOP| + +|?CHECK_PASS=| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + + + +|*endif| + +


+
+ + + + +|HTM_PREVENT_AUTOFILL| + +|*if AJAX="1"| + + + + +|*else| + +|*endif| + + + + +
|LANG_CHANGE_PASS|
|LANG_USERNAME|: + +
+
|LANG_USERNAME|:
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
+

+
+|*if AJAX="1"| + |LANG_AJAX_HOWTO| + +|*endif| + +
+


+ + + +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/content_main.html b/directadmin-1.62.4/data/skins/enhanced/reseller/content_main.html new file mode 100644 index 0000000..267ee0d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/content_main.html @@ -0,0 +1,170 @@ +|LF_STANDARD| +|LF_CREATE| + + + + + + + + + + + + +
+|LANG_SEARCH|: + + +
+ + + +
+ + + + + +
+ |LANG_ADD_NEW_USER|
+ |LANG_LIST_USERS|
+ |LANG_MANAGE_TICKETS||*if NEWTICKETS!="0"||NEWTICKETS||*endif| +
+ |LANG_ADD_PACKAGE|
+ |LANG_LIST_PACKAGES|
+ |LANG_EDIT_USER_MESS| +
+ +
+
+ + + + + +
+ |LANG_CHANGE_PASSWORDS|
+ |LANG_RESELLER_STATS|
+ |LANG_IP_MANAGER|
+
+ |LANG_SKIN_MANAGER|
+ |LANG_USER_BACKUPS|
+|*if USERSSH="ON"| + |LANG_SSH_KEYS|
+|*endif| +
+ +
+
+ + + + + + +
+ |LANG_SYSTEM_INFO|
+ |LANG_NAMESERVERS|
+|$/usr/local/bin/php + 1) +{ +echo << +|PLUGIN_1_RESELLER_TXT|
+|PLUGIN_4_RESELLER_TXT|
+|PLUGIN_6_RESELLER_TXT|
+|PLUGIN_8_RESELLER_TXT|
+|PLUGIN_10_RESELLER_TXT|
+|PLUGIN_12_RESELLER_TXT| +END; +} +?> +DONE| +
+ |LANG_MESSSAGE_ALL_USERS|
+ |LANG_CONTACT_ADMIN|
+|$/usr/local/bin/php + 1) +{ +echo << +|PLUGIN_3_RESELLER_TXT|
+|PLUGIN_5_RESELLER_TXT|
+|PLUGIN_7_RESELLER_TXT|
+|PLUGIN_9_RESELLER_TXT|
+|PLUGIN_11_RESELLER_TXT|
+|PLUGIN_13_RESELLER_TXT| +END; +} +?> +DONE| +
+ + diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/create_customized_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/create_customized_user.html new file mode 100644 index 0000000..6d7ac46 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/create_customized_user.html @@ -0,0 +1,131 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_SHOW_USERS` » `LANG_CREATE_USER` » `LANG_CUSTOMIZE_USER` `NEWUSERNAME`| +|?HELP_SECTION=`RESELLER_HELPER`/create.html| +|HTM_RESELLER_TOP| + + + + + + + + + + + + + + + + + + +|*if HAVE_INODE="yes"| + +|*endif| + + + + + + + + + + + + +|*if RESELLERAFTP="ON"| + +|*endif| +|*if RESELLERCGI="ON"| + +|*endif| +|*if RESELLERPHP="ON"| + +|*endif| +|*if RESELLERSPAM="ON"| + +|*endif| +|*if RESELLERCATCHALL="ON"| + +|*endif| +|*if RESELLERSSL="ON"| + +|*endif| +|*if RESELLERUSERSSH="ON"| + +|*endif| +|*if RESELLERCRON="ON"| + +|*endif| +|*if RESELLERSYSINFO="ON"| + +|*endif| +|*if RESELLERLOGINKEYS="ON"| + +|*endif| +|*if RESELLERDNSCONTROL="ON"| + +|*endif| + + + + + + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| +|*if CUSTOM_ITEM_6| + +|*endif| +|*if CUSTOM_ITEM_7| + +|*endif| +|*if CUSTOM_ITEM_8| + +|*endif| + + + + +
|LANG_CREATE_USER|
|LANG_USERNAME|:
|LANG_EMAIL|:
|LANG_ENTER_PASS|
|LANG_RE-ENTER_PASS|:
|LANG_DOMAIN|:
|LANG_BANDWIDTH| |LANG_MB||LANG_UNLIMITED|
|LANG_DISK_SPACE| |LANG_MB||LANG_UNLIMITED|
|LANG_INODES||LANG_UNLIMITED|
|LANG_DOMAINS||LANG_UNLIMITED|
|LANG_SUBDOMAINS||LANG_UNLIMITED|
|LANG_EMAIL_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_FORWARDERS||LANG_UNLIMITED|
|LANG_MAILING_LISTS||LANG_UNLIMITED|
|LANG_AUTO_RESPONDERS||LANG_UNLIMITED|
|LANG_MYSQL_DBS||LANG_UNLIMITED|
|LANG_DOMAIN_PTRS||LANG_UNLIMITED|
|LANG_FTP_ACCOUNTS||LANG_UNLIMITED|
|LANG_ANON_FTP_ACCOUNTS|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_SPAM|
|LANG_CATCHALL|
|LANG_SSL| |LANG_ACCESS|
|LANG_SSH| |LANG_ACCESS|
|LANG_CRON_JOBS|
|LANG_SYSTEM_INFO|
|LANG_LOGIN_KEYS|
|LANG_DNS_CONTROL|
|LANG_SUSPEND_AT_LIMIT|
|LANG_SKIN||SKINS|
|LANG_LANGUAGE||LANGUAGESELECT|
|LANG_IP||IPSELECT|
|LANG_EMAIL_NOTIFY| |LANG_EDIT_USER_MESS|
|CUSTOM_ITEM_1_STR||CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR||CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR||CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR||CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR||CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
|CUSTOM_ITEM_6_STR||CUSTOM_ITEM_6||CUSTOM_ITEM_6_DESC|
|CUSTOM_ITEM_7_STR||CUSTOM_ITEM_7||CUSTOM_ITEM_7_DESC|
|CUSTOM_ITEM_8_STR||CUSTOM_ITEM_8||CUSTOM_ITEM_8_DESC|
+ +
+ +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/create_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/create_user.html new file mode 100644 index 0000000..14b57be --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/create_user.html @@ -0,0 +1,89 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_SHOW_USERS` » `LANG_CREATE_USER`| +|?HELP_SECTION=`RESELLER_HELPER`/create.html| +|HTM_RESELLER_TOP| + +|?CHECK_NAME=checkName()| +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|?CHECK_DOMAIN=checkDomain()| + +|*if AJAX="1"| + |?CHECK_NAME=ajax_checkName()| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + |?CHECK_DOMAIN=ajax_checkDomain()| + + +|*endif| + + + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + + + + + + +
|LANG_CREATE_USER|
|LANG_USERNAME|:
|LANG_EMAIL|:
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
|LANG_DOMAIN|:
|LANG_USE_USER_PACK|:|PACKAGES|
|LANG_IP|:|IPSELECT|
|LANG_EMAIL_NOTIFY|: |LANG_EDIT_USER_MESS|
+ + +
+ +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/delete_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/delete_user.html new file mode 100644 index 0000000..73961fe --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/delete_user.html @@ -0,0 +1,16 @@ +|LF_STANDARD| +|?TREE=» `LANG_SHOW_USERS` » `LANG_DELETE_USER`| +|?HELP_SECTION=`RESELLER_HELPER`/modify.html| +|HTM_RESELLER_TOP| +
+ + + + + + + +
|LANG_DELETE_USER|
|LANG_USERNAME|:
+ +
+|HTM_RESELLER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/edit_message.html b/directadmin-1.62.4/data/skins/enhanced/reseller/edit_message.html new file mode 100644 index 0000000..915ec0e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/edit_message.html @@ -0,0 +1,21 @@ +|LF_STANDARD| + + + +|LANG_EDIT_MESS| + + + + +
+ + + + + + +
|LANG_EDIT_MESS|
|LANG_SUBJECT|:
|LANG_MESSAGE|:
+ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/import_packages.html b/directadmin-1.62.4/data/skins/enhanced/reseller/import_packages.html new file mode 100644 index 0000000..e4e0495 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/import_packages.html @@ -0,0 +1,28 @@ + + + + + + + + + + +
+ + + |LANG_IMPORT_PACKAGES| +
+ \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/index.html b/directadmin-1.62.4/data/skins/enhanced/reseller/index.html new file mode 100644 index 0000000..589e793 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/index.html @@ -0,0 +1,7 @@ +|?TREE=»| +|?HELP_SECTION=`RESELLER_HELPER`| +|HTM_RESELLER_TOP| + + |HTM_RESELLER_CONTENT| + +|HTM_RESELLER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/ip_config.html b/directadmin-1.62.4/data/skins/enhanced/reseller/ip_config.html new file mode 100644 index 0000000..f4dc78a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/ip_config.html @@ -0,0 +1,10 @@ +|?TREE=» `LANG_IP_CONFIG`| +|?HELP_SECTION=`RESELLER_HELPER`/ip.html| +|HTM_RESELLER_TOP| +|TEXT|
+
+|LANG_IP_FREE_IF|
+ + |TABLE| + +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/login_as_warnings.html b/directadmin-1.62.4/data/skins/enhanced/reseller/login_as_warnings.html new file mode 100644 index 0000000..c8ddfdc --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/login_as_warnings.html @@ -0,0 +1,24 @@ +|?WARN_URL=https://www.directadmin.com/features.php?id=2062| +|?WARN_INFO=Notifying you that if you 'Login As' this account, you might be using a skin who's code under their control. Click for more info| + |*if IS_RESELLER_SKIN="1"| + + + |*endif| + + |*if IS_RESELLER_SKIN="2"| + +
+ |RESELLER_SKIN| +
|LANG_WILL_USE_YOURS| +
+ |*endif| + + |*if IS_RESELLER_SKIN="-1"| + +
+ |LANG_CANNOT_CONFIRM_OWNER| +
|IS_RESELLER_SKIN_ERROR| +
|RESELLER_SKIN|
+ |*endif| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/manage_packages_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/manage_packages_user.html new file mode 100644 index 0000000..5cb0fcf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/manage_packages_user.html @@ -0,0 +1,12 @@ +|?TREE=» `LANG_MANAGE_USER_PACKS`| +|?HELP_SECTION=`RESELLER_HELPER`/packages.html| +|HTM_RESELLER_TOP| + + |LANG_MANAGE_USER_PACKS|
+
+ |LANG_ADD_PACKAGE|
+ |PACKAGES| + +
+|HTM_IMPORT_PACKAGES| +|HTM_RESELLER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/manage_tickets.html b/directadmin-1.62.4/data/skins/enhanced/reseller/manage_tickets.html new file mode 100644 index 0000000..9e98fa5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/manage_tickets.html @@ -0,0 +1,27 @@ +|LF_STANDARD| +|?TREE=» `LANG_MANAGE_TICKETS`| +|?HELP_SECTION=`RESELLER_HELPER`/messagesystem.html| +|HTM_HEADER_FULL| + +|LANG_SEND_MESS|
+|LANG_VIEW_CLOSED||NEWCLOSED|
+ + +|TICKETS| + + + + + + + + + + + + + + +
|LANG_TICK_OPTIONS|
|LANG_TICK_ENABLED|
|LANG_EMAIL_TO|
+ +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/manage_tickets_closed.html b/directadmin-1.62.4/data/skins/enhanced/reseller/manage_tickets_closed.html new file mode 100644 index 0000000..3d12deb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/manage_tickets_closed.html @@ -0,0 +1,10 @@ +|LF_TICKETS| +|?TREE=» `LANG_MANAGE_TICKETS` » `LANG_VIEW_CLOSED`| +|?HELP_SECTION=`RESELLER_HELPER`/messagesystem.html| +|HTM_RESELLER_TOP| + +|LANG_SEND_MESS|
+ +|TICKETS| + +|HTM_RESELLER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/menu_reseller.html b/directadmin-1.62.4/data/skins/enhanced/reseller/menu_reseller.html new file mode 100644 index 0000000..87c9abe --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/menu_reseller.html @@ -0,0 +1,8 @@ +|LF_LEVEL| + + +
diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/menu_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/menu_user.html new file mode 100644 index 0000000..c8e3f82 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/menu_user.html @@ -0,0 +1,7 @@ +|LF_LEVEL| + + +
diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/modify_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/modify_user.html new file mode 100644 index 0000000..9f64e52 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/modify_user.html @@ -0,0 +1,142 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_SHOW_USERS` » `LANG_USER` `user` » `LANG_MODIFY` `user`| +|?HELP_SECTION=`RESELLER_HELPER`/modify.html| +|HTM_RESELLER_TOP| + +|LANG_MODIFY_USER| |user| + + + + + + + + + + + + + + +|*if MULTIPLE_IPS="yes"| + + + + + + +|*endif| + + + + + + + + + + + +|*if HAVE_INODE="yes"| + +|*endif| + + + + + + + + + + + + + + +|*if RESELLERAFTP="ON"| + +|*endif| +|*if RESELLERCGI="ON"| + +|*endif| +|*if RESELLERPHP="ON"| + +|*endif| +|*if RESELLERSPAM="ON"| + +|*endif| +|*if RESELLERCATCHALL="ON"| + +|*endif| +|*if RESELLERSSL="ON"| + +|*endif| +|*if RESELLERUSERSSH="ON"| + +|*endif| +|*if RESELLERCRON="ON"| + +|*endif| +|*if RESELLERSYSINFO="ON"| + +|*endif| +|*if RESELLERLOGINKEYS="ON"| + +|*endif| +|*if RESELLERDNSCONTROL="ON"| + +|*endif| + + + + + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| +|*if CUSTOM_ITEM_6| + +|*endif| +|*if CUSTOM_ITEM_7| + +|*endif| +|*if CUSTOM_ITEM_8| + +|*endif| + + + +
|LANG_CHANGE_PACK_USER| |user|
|LANG_SET_PACK_TO||PACKAGES|
|LANG_CHANGE_IP|
|LANG_SET_IP_TO||IPS|
|LANG_ADD_ADDITIONAL_IP||MULTI_IP_SELECT|
|LANG_CURRENT_IPS||MULTI_IP_TABLE|
|LANG_MANUALLY_CHANGE|
|LANG_BANDWIDTH| |LANG_MB| + |LANG_UNLIMITED|
|LANG_DISK_SPACE| |LANG_MB||LANG_UNLIMITED|
|LANG_INODES||LANG_UNLIMITED|
|LANG_DOMAINS||LANG_UNLIMITED|
|LANG_SUBDOMAINS||LANG_UNLIMITED|
|LANG_EMAIL_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_FORWARDERS||LANG_UNLIMITED|
|LANG_MAILING_LISTS||LANG_UNLIMITED|
|LANG_AUTO_RESPONDERS||LANG_UNLIMITED|
|LANG_MYSQL_DBS||LANG_UNLIMITED|
|LANG_DOMAIN_PTRS||LANG_UNLIMITED|
|LANG_FTP_ACCOUNTS||LANG_UNLIMITED|
|LANG_ANON_FTP_ACCOUNTS|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_SPAM|
|LANG_CATCHALL|
|LANG_SSL| |LANG_ACCESS|
|LANG_SSH| |LANG_ACCESS|
|LANG_CRON_JOBS|
|LANG_SYSTEM_INFO|
|LANG_LOGIN_KEYS|
|LANG_DNS_CONTROL|
|LANG_SUSPEND_AT_LIMIT|
|LANG_SKIN| |SKINS|
|LANG_NS1|
|LANG_NS2|
|CUSTOM_ITEM_1_STR| |CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR| |CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR| |CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR| |CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR| |CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
|CUSTOM_ITEM_6_STR| |CUSTOM_ITEM_6||CUSTOM_ITEM_6_DESC|
|CUSTOM_ITEM_7_STR| |CUSTOM_ITEM_7||CUSTOM_ITEM_7_DESC|
|CUSTOM_ITEM_8_STR| |CUSTOM_ITEM_8||CUSTOM_ITEM_8_DESC|
+ + + +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/nameserver.html b/directadmin-1.62.4/data/skins/enhanced/reseller/nameserver.html new file mode 100644 index 0000000..4ffda79 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/nameserver.html @@ -0,0 +1,18 @@ +|LF_STANDARD| +|?TREE=» `LANG_NAME_SERVERS`| +|?HELP_SECTION=`RESELLER_HELPER`/nameserver.html| +|HTM_RESELLER_TOP| +|LANG_NAME_SERVERS| + |IPS| + + + + + + + + + +
|LANG_SET_NS|
|LANG_NAME_SERVER_1|
|LANG_NAME_SERVER_2|
+ +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/reseller_stats.html b/directadmin-1.62.4/data/skins/enhanced/reseller/reseller_stats.html new file mode 100644 index 0000000..5718ff6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/reseller_stats.html @@ -0,0 +1,10 @@ +|?TREE=» `LANG_STATS_FOR` `USERNAME`| +|?HELP_SECTION=`RESELLER_HELPER`/rstats.html| +|HTM_RESELLER_TOP| +|LANG_STATS_FOR| |USERNAME|

+|STATS| +
+|LANG_RESELLER_HISTORY|
+|LANG_SHOW_ALL_USERS|
+ +|HTM_RESELLER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/show_history.html b/directadmin-1.62.4/data/skins/enhanced/reseller/show_history.html new file mode 100644 index 0000000..368c23f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/show_history.html @@ -0,0 +1,13 @@ +|*if user| +|?TREE=» `LANG_STATS_FOR` `user` » `LANG_RESELLER_HISTORY`| +|*else| +|?TREE=» `LANG_STATS_FOR` `USERNAME` » `LANG_RESELLER_HISTORY`| +|*endif| + +|?HELP_SECTION=`RESELLER_HELPER`/rstats.html#history| +|HTM_RESELLER_TOP| + +|LANG_RESELLER_HISTORY|
+ +|HISTORY| +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/show_user.html b/directadmin-1.62.4/data/skins/enhanced/reseller/show_user.html new file mode 100644 index 0000000..1243523 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/show_user.html @@ -0,0 +1,111 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_SHOW_USERS` » `LANG_USER` `user`| +|?HELP_SECTION=`RESELLER_HELPER`/modify.html| +|HTM_HEADER_FULL| + +|?DISABLE_SELF=| +|*if user=USERNAME| +|?DISABLE_SELF=disabled| +|*endif| + +|LANG_DETAILS| |user|
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +|HTM_LOGIN_AS_WARNINGS| + +
+ + +
+ + +
+ + + +
+ + + +
+ +|DOMAINS| +|STATS| + + + + + + + + + +
|LANG_RESEND_WELCOME_EMAIL|
|LANG_SEND_TO|: + |LANG_RANDOM_PASS| +      + |EDIT_MESSAGE| +
+ + + + + + + + +
|LANG_USER_COMMENTS|
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/show_user_package.html b/directadmin-1.62.4/data/skins/enhanced/reseller/show_user_package.html new file mode 100644 index 0000000..5086b3a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/show_user_package.html @@ -0,0 +1,117 @@ +|LF_STANDARD| +|LF_CREATE| +|?TREE=» `LANG_MANAGE_USER_PACK` » `LANG_MANAGE` `PACKAGENAME`| +|?HELP_SECTION=`RESELLER_HELPER`/packages.html| +|HTM_RESELLER_TOP| + + + + + + + + +|*if HAVE_INODE="yes"| + +|*endif| + + + + + + + + + + + + + +|*if RESELLERAFTP="ON"| + +|*endif| +|*if RESELLERCGI="ON"| + +|*endif| +|*if RESELLERPHP="ON"| + +|*endif| +|*if RESELLERSPAM="ON"| + +|*endif| +|*if RESELLERCATCHALL="ON"| + +|*endif| +|*if RESELLERSSL="ON"| + +|*endif| +|*if RESELLERUSERSSH="ON"| + +|*endif| +|*if RESELLERCRON="ON"| + +|*endif| +|*if RESELLERSYSINFO="ON"| + +|*endif| +|*if RESELLERLOGINKEYS="ON"| + +|*endif| +|*if RESELLERDNSCONTROL="ON"| + +|*endif| + + + + +|*if CREATE_USER_HOME_OVERRIDE| + +|*endif| + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| +|*if CUSTOM_ITEM_6| + +|*endif| +|*if CUSTOM_ITEM_7| + +|*endif| +|*if CUSTOM_ITEM_8| + +|*endif| + + + +
|LANG_USER_PACK|: |PACKAGENAME|
|LANG_BANDWIDTH| |LANG_MB||LANG_UNLIMITED|
|LANG_DISK_SPACE| |LANG_MB||LANG_UNLIMITED|
|LANG_INODES||LANG_UNLIMITED|
|LANG_DOMAINS||LANG_UNLIMITED|
|LANG_SUBDOMAINS||LANG_UNLIMITED|
|LANG_EMAIL_ACCOUNTS||LANG_UNLIMITED|
|LANG_EMAIL_FORWARDERS||LANG_UNLIMITED|
|LANG_MAILING_LISTS||LANG_UNLIMITED|
|LANG_AUTO_RESPONDERS||LANG_UNLIMITED|
|LANG_MYSQL_DBS||LANG_UNLIMITED|
|LANG_DOMAIN_PTRS||LANG_UNLIMITED|
|LANG_FTP_ACCOUNTS||LANG_UNLIMITED|
|LANG_ANON_FTP_ACCOUNTS|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_SPAM|
|LANG_CATCHALL|
|LANG_SSL| |LANG_ACCESS|
|LANG_SSH| |LANG_ACCESS|
|LANG_CRON_JOBS|
|LANG_SYSTEM_INFO|
|LANG_LOGIN_KEYS|
|LANG_DNS_CONTROL|
|LANG_SUSPEND_AT_LIMIT|
|LANG_SKIN| |SKINS|
|LANG_LANGUAGE| |LANGUAGESELECT|
|LANG_HOME_DIR| |CREATE_USER_HOME_OVERRIDE||LANG_LOCATION_FOR_THIS_ACCOUNT|
|CUSTOM_ITEM_1_STR| |CUSTOM_ITEM_1| |CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR| |CUSTOM_ITEM_2| |CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR| |CUSTOM_ITEM_3| |CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR| |CUSTOM_ITEM_4| |CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR| |CUSTOM_ITEM_5| |CUSTOM_ITEM_5_DESC|
|CUSTOM_ITEM_6_STR| |CUSTOM_ITEM_6| |CUSTOM_ITEM_6_DESC|
|CUSTOM_ITEM_7_STR| |CUSTOM_ITEM_7| |CUSTOM_ITEM_7_DESC|
|CUSTOM_ITEM_8_STR| |CUSTOM_ITEM_8| |CUSTOM_ITEM_8_DESC|
+ |*if NEW_PACKAGE!="yes"||LANG_RENAME||*endif| + |LANG_PACK_NAME|: +
+ + +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/show_users.html b/directadmin-1.62.4/data/skins/enhanced/reseller/show_users.html new file mode 100644 index 0000000..ae483d0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/show_users.html @@ -0,0 +1,63 @@ +|?TREE=» `LANG_SHOW_USERS`| +|?HELP_SECTION=`RESELLER_HELPER`/modify.html| +|HTM_HEADER_FULL| + +|LANG_CREATE_USER|
+|LANG_DELETE_USER|
+|LANG_CHANGE_A_PASS|
+
+|LANG_MODIFY_OWN_DATA| + + + + + + + +
+|LANG_SHOW_DOMAINS_THAT_CONTAIN| + + + + + + +     + +
+ + + + |TABLE| + +|LANG_CLICK_USERNAME| +|HTM_FOOTER_FULL| + diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/skins.html b/directadmin-1.62.4/data/skins/enhanced/reseller/skins.html new file mode 100644 index 0000000..64e36a6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/skins.html @@ -0,0 +1,23 @@ +|?TREE=» `LANG_MANAGE_SKINS`| +|?HELP_SECTION=`RESELLER_HELPER`/skins.html| +|HTM_RESELLER_TOP| + +|SKINS| + + + + + + + + + + +
|LANG_UPLOAD_SKIN|
|LANG_FILE|:
|LANG_SKIN_NAME|:
|SERVERSKIN| 
+ + + + +
|LANG_CURRENTLY_USING||SKIN|
|LANG_GLOBLAL_DOCSROOT||GLOBAL_DOCSROOT|
+ +|HTM_RESELLER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/skins_customize.html b/directadmin-1.62.4/data/skins/enhanced/reseller/skins_customize.html new file mode 100644 index 0000000..0c5899b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/skins_customize.html @@ -0,0 +1,63 @@ +|LF_SKINS| +|?TREE=» `LANG_MANAGE_SKINS` » `LANG_CUSTOMIZE_SKIN`| +|?HELP_SECTION=`RESELLER_HELPER`/skins.html| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + + + + +
|LANG_CURRENT_SETTINGS| |name|
|*if HAS_CUSTOM_LOGO="1"| + |LANG_CUSTOM_LOGO| +
+ + + +
+ |*else| + |LANG_DEFAULT_LOGO| + |*endif| +
+ +
|LANG_UPLOAD_LOGO|: |CUSTOM_LOGO_TOKEN|
|LANG_FILE|:
+ +|CUSTOM_COLOR_TABLE| + + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/template_reseller_bottom.html b/directadmin-1.62.4/data/skins/enhanced/reseller/template_reseller_bottom.html new file mode 100644 index 0000000..eec7bf5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/template_reseller_bottom.html @@ -0,0 +1,164 @@ +|LF_STANDARD| +|HTM_FOOTER_BAR_1| + +|HTM_MENU_RESELLER| + +
+|$/usr/local/bin/php +|LANG_BANDWIDTH|
", "|RESELLERBANDWIDTH|", "|RESELLERBANDWIDTHMAX|", "bandwidth_bar"); +show_bar("|LANG_DISK_SPACE|
", "|RESELLERQUOTA|", "|RESELLERQUOTAMAX|", "quota_bar"); + +function show_bar($text, $used, $limit, $id) +{ + if($limit==0) return; + + $left=round(($used/$limit)*100); + $right=100-$left; + + switch(TRUE) + { + case ($left > 90) : $color = "RED"; break; + case ($left > 70) : $color = "ORANGE"; break; + case ($left > 50) : $color = "YELLOW"; break; + default : $color = "GREEN"; break; + } + + $bg="/IMG_SKIN_BAR_BG_".$color; + $leftImg="/IMG_SKIN_BAR_LEFT_".$color; + $rightImg="/IMG_SKIN_BAR_RIGHT_".$color; + + if($left >= 100) + { + $overBg="/IMG_SKIN_BAR_BG_".$color; + } else { + $overBg="/IMG_SKIN_BAR_BG_BLUE"; + } + + $overBg="/IMG_SKIN_BAR_BG_BLUE"; + + echo $text; + + ?> + + + + + + + + +
background="">
+ + + + + +DONE| +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_USED||LANG_MAX|
|LANG_DISK_SPACE| |LANG_MB||RESELLERQUOTA||RESELLERQUOTAMAX|
|LANG_BANDWIDTH| |LANG_GB||RESELLERBANDWIDTHGIG||RESELLERBANDWIDTHMAXGIG|
|LANG_EMAILS||RESELLEREMAIL||RESELLEREMAILMAX|
|LANG_FTP_ACCOUNTS||RESELLERFTP||RESELLERFTPMAX|
|LANG_DATABASES||RESELLERDATABASE||RESELLERDATABASEMAX|
|LANG_DOMAINS||RESELLERDOMAINS||RESELLERDOMAINSMAX|
|LANG_USERS||RESELLERUSERS||RESELLERUSERSMAX|
+
+ + +
+ +|$/usr/local/bin/php + + +
+|domain| +
+DONE| + +|HTM_FOOTER_BAR_2| +|HTM_FOOTER| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/template_reseller_top.html b/directadmin-1.62.4/data/skins/enhanced/reseller/template_reseller_top.html new file mode 100644 index 0000000..ca9299d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/template_reseller_top.html @@ -0,0 +1,2 @@ +|HTM_HEADER| +|HTM_HEADER_BAR| diff --git a/directadmin-1.62.4/data/skins/enhanced/reseller/ticket_view_tech.html b/directadmin-1.62.4/data/skins/enhanced/reseller/ticket_view_tech.html new file mode 100644 index 0000000..8555e93 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/reseller/ticket_view_tech.html @@ -0,0 +1,53 @@ +|LF_STANDARD| +|LF_TICKETS| +|?TREE=» `LANG_MANAGE_TICKETS` » `LANG_VIEW` `type` `number`| +|?HELP_SECTION=`RESELLER_HELPER`/messagesystem.html| +|HTM_HEADER_FULL| + + + + +
+ + + |LANG_SET_MESS_1| |STATUS| |LANG_SET_MESS_2| + +
+ + + +|TICKETMESSAGES| + + + + + + + + + + + + + + + + + + +
|LANG_REPLY_TO_TICK|
|LANG_STATUS|:|STATUS|
|LANG_MESSAGE|:
+ +
+ +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/set_permissions.sh b/directadmin-1.62.4/data/skins/enhanced/set_permissions.sh new file mode 100644 index 0000000..a058c92 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/set_permissions.sh @@ -0,0 +1,25 @@ +#!/bin/bash +cd /etc/directadmin/data/files +chown root *; chgrp root *; chmod 644 *; +chown root admin/*; chgrp root admin/*; chmod 644 admin/*; +chown root images/*; chgrp root images/*; chmod 644 images/*; +chown root reseller/*; chgrp root reseller/*; chmod 644 reseller/*; +chown root user/*; chgrp root user/*; chmod 644 user/*; +chown root user/db/*; chgrp root user/db/*; chmod 644 user/db/*; +chown root user/email/*; chgrp root user/email/*; chmod 644 user/email/*; +chown root user/filemanager/*; chgrp root user/filemanager/*; chmod 644 user/filemanager/*; +chown root user/ftp/*; chgrp root user/ftp/*; chmod 644 user/ftp/*; +chown root user/ticket/*; chgrp root user/ticket/*; chmod 644 user/ticket/*; + +chmod 755 admin +chmod 755 images +chmod 755 reseller +chmod 755 user +chmod 755 user/db +chmod 755 user/email +chmod 755 user/filemanager +chmod 755 user/ftp +chmod 755 user/ticket + +chmod 700 set_permissions.sh + diff --git a/directadmin-1.62.4/data/skins/enhanced/skin.conf b/directadmin-1.62.4/data/skins/enhanced/skin.conf new file mode 100644 index 0000000..a54a2bc --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/skin.conf @@ -0,0 +1,5 @@ +logo_token=IMG_SKIN_HEADER +state-change-require=POST +CUSTOM_COLOR_1=#345B80 +CUSTOM_COLOR_1_OPTIONS=#345B80:#262626 +jsonformat=current diff --git a/directadmin-1.62.4/data/skins/enhanced/style.css b/directadmin-1.62.4/data/skins/enhanced/style.css new file mode 100644 index 0000000..c3edf40 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/style.css @@ -0,0 +1,576 @@ +* +{ + FONT-SIZE: 8.5pt; + FONT-FAMILY: verdana, arial, helvetica, sans-serif; + line-height:16px; +} + +a +{ + TEXT-DECORATION: none; + COLOR: black; +} + +a:hover +{ + COLOR: #9999CC; + TEXT-DECORATION: underline; +} + +.toptext +{ + COLOR: #666666; +} + +u +{ + TEXT-DECORATION: underline; +} + +input +{ + line-height: 12px + +} +.tree +{ + + COLOR: #C0C0C0; +} + +.title +{ + COLOR: #000000; + FONT-WEIGHT: bold; + FONT-SIZE: 12pt; +} + +td.header +{ + FONT-WEIGHT: 600; + FONT-SIZE: 10pt; + COLOR: #EEEEEE; + BACKGROUND: #425984; +} + +.menu +{ + border: 1px solid grey; + border-style: outset; +} + +table.menu +{ + BACKGROUND: #FFFFFF; +} + +td.menu +{ + BACKGROUND: #EEEEEE; + COLOR: #000000; +} + +table.tabs +{ + width: 100%; + border-width: 1; + border-bottom-style:solid; + border-left-style: none; + border-top-style: none; + border-right-style: none; + border-color: black; + border-collapse:collapse +} + +td.tab +{ + BACKGROUND: #6A85B5; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; +} + +td.tabselected +{ + BACKGROUND: #425984; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; +} + +td.tabspace +{ + width: 1%; +} + +.highlighted +{ + BACKGROUND: #8CA0C6; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; + cursor: hand; +} + +a.tabtext +{ + COLOR: #EEEEEE; + TEXT-DECORATION: none +} + +a.tabtext:hover +{ + COLOR: #EEEEEE; + TEXT-DECORATION: none +} + +table.list +{ + BACKGROUND: #FFFFFF; + width: 100%; +} + +td.list, td.list2, td.list_alt +{ + white-space: nowrap; +} + +td.list, td.listwrap, tr:nth-child(odd) > td.list_alt, tr:nth-child(odd) > td.listwrap_alt +{ + background: #EEEEEE; + background: -webkit-linear-gradient(#f5f5f5, #eeeeee); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#f5f5f5, #eeeeee); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#f5f5f5, #eeeeee); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#f5f5f5, #eeeeee); /* Standard syntax */ +} +td.list2, td.listwrap2, tr:nth-child(even) > td.list_alt, tr:nth-child(even) > td.listwrap_alt +{ + background: #E3E3E3; + background: -webkit-linear-gradient(#e4e4e4, #ebebeb); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#e4e4e4, #ebebeb); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#e4e4e4, #ebebeb); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#e4e4e4, #ebebeb); /* Standard syntax */ +} + +td.greenlist, td.greenlistwrap, +td.greenlist2, td.greenlistwrap2 +{ + background: #B2FFB2; + background: -webkit-linear-gradient(#C1FFC1, #B2FFB2); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#C1FFC1, #B2FFB2); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#C1FFC1, #B2FFB2); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#C1FFC1, #B2FFB2); /* Standard syntax */ +} + +td.redlist, td.redlistwrap, +td.redlist2, td.redlistwrap2 +{ + background: #FFB9B9; + background: -webkit-linear-gradient(#FFCDCD, #FFB9B9); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#FFCDCD, #FFB9B9); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#FFCDCD, #FFB9B9); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#FFCDCD, #FFB9B9); /* Standard syntax */ +} + +.listhighlight +{ + //BACKGROUND: #b8c0e2; + white-space: nowrap; +} + +.list2highlight +{ + //BACKGROUND: #b8c0e2; + white-space: nowrap; +} + +.listhighlight, .list2highlight, .listwraphighlight, .listwrap2highlight +{ + background: #b8c0e2; + background: -webkit-linear-gradient(#97b4df, #c6cef1, #c6cef1, #c6cef1); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#97b4df, #c6cef1, #c6cef1, #c6cef1); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#97b4df, #c6cef1, #c6cef1, #c6cef1); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#97b4df, #c6cef1, #c6cef1, #c6cef1); /* Standard syntax */ +} + + +td.listwrap, td.listwrap2 +{ + white-space: wrap; +} + +.listwraphighlight, .listwrap2highlight +{ + white-space: wrap; +} + +.listtitle +{ + COLOR: #EEEEEE; + white-space: nowrap; +} + +td.listtitle +{ + //BACKGROUND: #425984; + border: 1px solid grey; + border-style: outset; + //background-image: url("/IMG_SKIN_GRADIENT"); + border-radius: 3px; + box-shadow: 1px 1px 3px #727272; + +} +.blue_gradient, td.listtitle +{ + background: #425984; + background: -webkit-linear-gradient(#406e99, #6d8ba8, |CUSTOM_COLOR_1|, #2c4a67); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(#406e99, #6d8ba8, |CUSTOM_COLOR_1|, #2c4a67); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(#406e99, #6d8ba8, |CUSTOM_COLOR_1|, #2c4a67); /* For Firefox 3.6 to 15 */ + background: linear-gradient(#406e99, #6d8ba8, |CUSTOM_COLOR_1|, #2c4a67); /* Standard syntax */ +} + +.white +{ + COLOR: white; +} + +.off_white +{ + COLOR: #CCCCCC; +} + +.trim +{ + border: 1px solid #8CB7D0; +} + +.left-pad +{ + padding-left: 70px; +} + +.right-pad +{ + padding-right: 10px; + padding-left: 10px; +} + +.mb20 { margin-bottom: 20px; } +.mb15 { margin-bottom: 15px; } + +.bar-row1 +{ + BACKGROUND: #3D6C98; + line-height:12px; + white-space: nowrap; + //FONT-SIZE: 8pt; + //letter-spacing:-0.1em +} + +.bar-row2 +{ + line-height:12px; + white-space: nowrap; + //FONT-SIZE: 8pt; + //letter-spacing:-0.1em +} + +.top-border +{ + border: 0px solid white; + border-top: 1px solid grey; +} + +.highlighted-good +{ + COLOR: green; +} +.highlighted-bad +{ + COLOR: red; + FONT-WEIGHT: bold; +} +.highlighted-neutral +{ + COLOR: #DBA24D; +} + +#livesearch +{ + text-align: left; + margin: 0px; + width: auto; + background: #EFF5FF; + position: absolute; + //left: -136; + border-style: double; + border-width: 5px; +} +#livecontainer +{ + width: 0; + position: relative; + visibility: hidden; + text-align: center; +} + +.hoverin +{ + background: #AFCEFF; + padding: 1px; +} +.hoverout +{ + background: #EFF5FF; + padding: 1px; +} + +.code_edit +{ + FONT-FAMILY: courier new; + FONT-SIZE: 10pt; +} + +textarea.ssl_text +{ + width: 540px; + height: 600px; +} +.warning +{ + COLOR: #b10000; + FONT-WEIGHT: bold; +} +.right_shadow +{ + border-left: 1px solid #85a2bf; + background: -webkit-linear-gradient(left, #dddddd, #ffffff); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(right, #dddddd, #ffffff); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(right, #dddddd, #ffffff); /* For Firefox 3.6 to 15 */ + background: linear-gradient(to right, #dddddd, #ffffff); /* Standard syntax */ +} +.left_shadow +{ + border-right: 1px solid #85a2bf; + background: -webkit-linear-gradient(left, #ffffff, #dddddd); /* For Safari 5.1 to 6.0 */ + background: -o-linear-gradient(right, #ffffff, #dddddd); /* For Opera 11.1 to 12.0 */ + background: -moz-linear-gradient(right, #ffffff, #dddddd); /* For Firefox 3.6 to 15 */ + background: linear-gradient(to right, #ffffff, #dddddd); /* Standard syntax */ +} +.path_hidden +{ + visibility: hidden; +} +.path_visible +{ + visibility: visible; +} + +.count_notice +{ + background: #008a0d; + color: white; + margin-left: 10px; + padding: 1px; + padding-left: 5px; + padding-right: 5px; + border-radius: 5px; + border: 1px outset #58b761; + box-shadow: 1px 1px 3px #004506; +} + +.expand_toggle_neg +{ + padding-left: 5px; + padding-right: 5px; +} +.expand_toggle_plus +{ + padding-left: 3px; + padding-right: 3px; +} +.expand_toggle_neg:active, .expand_toggle_plus:active +{ + background: #666e8a; + border: 1px inset #c5cff1; + box-shadow: none; +} +.expand_toggle_neg, .expand_toggle_plus +{ + background: #98a5d2; + color: white; + margin-right: 10px; + #padding: 1px; + border-radius: 3px; + border: 1px outset #c5cff1; + box-shadow: 1px 1px 3px #969696; + + cursor:pointer; +} + +.not_selectable, .expand_toggle_neg, .expand_toggle_plus +{ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.message +{ + padding: 15px; +} + +.message, td.message_info +{ + box-shadow: 1px 1px 3px #727272; +} + +td.message_info_round_top +{ + border-top-right-radius: 10px; + border-top-left-radius: 10px; +} +td.message_info_round_bottom, .message_round +{ + border-bottom-right-radius: 10px; + border-bottom-left-radius: 10px; +} +td.message_info +{ + padding: 5px; +} + +.message_info +{ + COLOR: #777777; +} + +.good_twostep_auth_code, .bad_twostep_auth_code +{ + display: inline-block; + text-align: center; + + background-repeat: no-repeat; + background-position: bottom; + + min-width: 50px; + padding-bottom: 50px; +} +.good_twostep_auth_code { + background-image: url(IMG_CHECKBOX); +} +.bad_twostep_auth_code { + background-image: url(IMG_INCORRECT); +} +.edit_cog { + background: url("IMG_EDIT_COG") 0px 1px no-repeat; + width: 25px; + float: right; + min-height: 1px; + user-select: none; +} +.edit_cog:hover, .skin_version:hover a { + -webkit-filter: brightness(70%); + -webkit-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -o-transition: all 0.5s ease; + -ms-transition: all 0.5s ease; + transition: all 0.5s ease; +} + +.skin_version { + float: right; + width: 20px; +} +.skin_version a { + color: #C1C1C1; +} + +.float_left { + float: left; +} +.float_right { + float: right; +} + +.pencil { + background: url("IMG_PENCIL") 0px 1px no-repeat; + width: 20px; + float: right; + min-height: 1px; + user-select: none; + cursor: default; +} +.show_logo { + display:inline-block; + box-shadow: 1px 1px 3px #727272; + margin: 5px; +} +.color_box { + margin-right: 10px; + padding-right: 100px; + border: 1px solid black; +} +.color_picker { + width: 105px; + margin-right: 10px; +} +.no_decore { + TEXT-DECORATION: none; +} +.warning_info { + background: #ffffcc; + border: 1px solid #ff9900; + color: #4d3300; + text-align: center; + padding: 10px; +} +.green_lock { + FONT-SIZE: 12pt; + color: transparent; + text-shadow: 0 0 0 #009900; +} + +#true_values_tr { + //height: 35px; +} +#true_values_tr td { + padding: 10px; + BACKGROUND: #CCCCCC; +} +table.underline { + border-collapse: collapse; +} +table.underline > tbody > tr:not(:last-child) > td { + border-bottom: 1px solid #cccccc; +} +.text_align_left { + text-align: left; +} +.w64chars { + width: 550px; +} +.h34rows { + height: 550px; +} +.mt10 { margin-top: 10px; } +.mt20 { margin-top: 20px; } +.mr20 { margin-right: 20px; } +.inline { + display: inline; +} +#trial_header { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 20px; + padding-top: 5px; + color: white; + background-color: #345B80; + text-align: center; + font-weight: 600; +} \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/style_old.css b/directadmin-1.62.4/data/skins/enhanced/style_old.css new file mode 100644 index 0000000..4d53545 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/style_old.css @@ -0,0 +1,148 @@ +* +{ + FONT-SIZE: 8pt; + FONT-FAMILY: verdana, arial, helvetica, sans-serif; + zoom: |ZOOM|%; +} + +a +{ + TEXT-DECORATION: underline; + COLOR: black; +} + +a:hover +{ + TEXT-DECORATION: underline; + COLOR: blue; +} + +b +{ + FONT-WEIGHT: bold; +} + +.toptext +{ + COLOR: #666666; +} + +u +{ + TEXT-DECORATION: underline; +} + +.tree +{ + COLOR: red; +} + +.title +{ + COLOR: #000000; + FONT-WEIGHT: bold; + FONT-SIZE: 12pt; +} + +.header +{ + FONT-WEIGHT: 600; + FONT-SIZE: 10pt; + COLOR: #123456; +} + +.menu +{ + border: 1px solid grey; + border-style: outset; +} + +table.menu +{ + BACKGROUND: #E8F0FF; +} + +td.menu +{ + BACKGROUND: #D4E5FF; +} + +table.tabs +{ + width: 100%; + border-width: 1; + border-bottom-style:solid; + border-left-style: none; + border-top-style: none; + border-right-style: none; + border-color: black; + border-collapse:collapse +} + +td.tab +{ + BACKGROUND: #E8F0FF; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; +} + +td.tabselected +{ + BACKGROUND: #D4E5FF; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; +} + +td.tabspace +{ + width: 1%; +} + +.highlighted +{ + BACKGROUND: #B7D3FF; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; + cursor: hand; +} + +a.tabtext +{ + TEXT-DECORATION: none +} + +a.tabtext:hover +{ + COLOR: black; + TEXT-DECORATION: none +} + +table.list +{ + width: 100%; +} + +td.list +{ + BACKGROUND: #E8F0FF; + white-space: nowrap; +} + +td.listwrap +{ + BACKGROUND: #E8F0FF; + white-space: wrap; +} + +td.listtitle +{ + BACKGROUND: #D4E5FF; + border: 1px solid grey; + border-style: outset; + white-space: nowrap; +} + + diff --git a/directadmin-1.62.4/data/skins/enhanced/template.html b/directadmin-1.62.4/data/skins/enhanced/template.html new file mode 100644 index 0000000..2a3ef4e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/template.html @@ -0,0 +1,25 @@ +|?TREE=» `LANG_BACK`| +|HTM_HEADER_FULL| +

+ + + + + + + + + + +
+

|TEXT|

+
+ + +
+
+

|LANG_DETAILS|

+

|RESULT|

+
+

+|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/add_domain.html b/directadmin-1.62.4/data/skins/enhanced/user/add_domain.html new file mode 100644 index 0000000..3fcf59d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/add_domain.html @@ -0,0 +1,140 @@ +|LF_STANDARD| +|LF_JS| +|?TREE=» `LANG_CREATE_DOMAIN`| +|?HELP_SECTION=`USER_HELPER`/misc.html#domains| +|HTM_USER_TOP| + + +|?CHECK_DOMAIN=checkDomain()| +|*if AJAX="1"| + |?CHECK_DOMAIN=ajax_checkDomain()| + +|*endif| + + + + + + + + + + + + + +|*if USERSSL="ON"| + +|*endif| +|*if USERCGI="ON"| + +|*endif| +|*if USERPHP="ON"| + +|*endif| + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| + + + + +
|LANG_CREATE_DOMAIN|
|LANG_DOMAIN|:
|LANG_BANDWIDTH||LANG_SAME_AS_MAIN|
|LANG_DISK_SPACE||LANG_SAME_AS_MAIN|
|LANG_SECURE_SSL||LANG_IGNORED|
|LANG_CGI| |LANG_ACCESS||LANG_IGNORED|
|LANG_PHP| |LANG_ACCESS||LANG_IGNORED|
|CUSTOM_ITEM_1_STR| |CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR| |CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR| |CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR| |CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR| |CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
+ +
+ +
|LANG_NO_CAPS| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/additional_domains.html b/directadmin-1.62.4/data/skins/enhanced/user/additional_domains.html new file mode 100644 index 0000000..eb0196f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/additional_domains.html @@ -0,0 +1,11 @@ +|?TREE=» `LANG_ADDITIONAL_DOMAINS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#domains| +|HTM_HEADER_FULL| + +|LANG_ADD_DOMAIN|
+|LANG_CHANGE_DOMAIN|
+ + +|DOMAINS| + +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/apache_handlers.html b/directadmin-1.62.4/data/skins/enhanced/user/apache_handlers.html new file mode 100644 index 0000000..7765961 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/apache_handlers.html @@ -0,0 +1,25 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_APCHE_HANDLERS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#handlers| +|HTM_USER_TOP| + + + + + + + + + + + + + +
|LANG_ADD_HANDLER|
|LANG_HANDLER|:|LANG_EXTENSION|:
+
+|LANG_USER_HANDLERS|
+|HANDLERS| +
+|LANG_LIST_OF_SYSTEM_HANDLERS|

+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/apache_handlers_sys.html b/directadmin-1.62.4/data/skins/enhanced/user/apache_handlers_sys.html new file mode 100644 index 0000000..4a71635 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/apache_handlers_sys.html @@ -0,0 +1,11 @@ +|LF_HANDLERS| +|?TREE=» `domain` » `LANG_APCHE_HANDLERS` » `LANG_SYSTEM_HANDLERS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#handlers| +|HTM_USER_TOP| + +|LANG_SYSTEM_HANDLERS|
+|HANDLERS| +
+|LANG_LIST_OF_USER_HANDLERS|

+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ask_security_question.html b/directadmin-1.62.4/data/skins/enhanced/user/ask_security_question.html new file mode 100644 index 0000000..8f4d5fb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ask_security_question.html @@ -0,0 +1,14 @@ +|LF_STANDARD| +|?TREE=» Security Question| +|?HELP_SECTION=`USER_HELPER`| + + +|HTM_HEADER_FULL| +
+|WRONG_ANSWER| +

+ +|QUESTION| + +
+|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/bandwidth_breakdown.html b/directadmin-1.62.4/data/skins/enhanced/user/bandwidth_breakdown.html new file mode 100644 index 0000000..502cadf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/bandwidth_breakdown.html @@ -0,0 +1,23 @@ +|LF_STANDARD| + + + +|LANG_BW_D| +|*if user| +|user| +|*else| +|USERNAME| +|*endif| + + + + +
+|TABLE| +
+|LANG_CLOSE| +
+ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/change_domain.html b/directadmin-1.62.4/data/skins/enhanced/user/change_domain.html new file mode 100644 index 0000000..777bafc --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/change_domain.html @@ -0,0 +1,14 @@ +|LF_ADDITIONAL_DOMAINS| +|?TREE=» `LANG_ADDITIONAL_DOMAINS` » `LANG_CHANGE_DOMAIN` | +|?HELP_SECTION=`USER_HELPER`/misc.html#domains| +|HTM_USER_TOP| + + + + + + + +
|LANG_ENTER_NEW_VALUE|
|LANG_CHANGE_1| |DOMAIN_SELECT| |LANG_CHANGE_2| www.
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/content_main.html b/directadmin-1.62.4/data/skins/enhanced/user/content_main.html new file mode 100644 index 0000000..212f896 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/content_main.html @@ -0,0 +1,7 @@ + +|DOMAINTABLE| +
+|*if ALLOWED_CMD_DOMAIN!="no"| +

+|*endif| +
diff --git a/directadmin-1.62.4/data/skins/enhanced/user/create_login_key.html b/directadmin-1.62.4/data/skins/enhanced/user/create_login_key.html new file mode 100644 index 0000000..fb456f8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/create_login_key.html @@ -0,0 +1,131 @@ +|LF_LOGIN_KEYS| +|?TREE=» `LANG_LOGIN_KEYS` » `LANG_CREATE_NEW_LOGIN_KEY`| +|HTM_HEADER_FULL| + + + + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_CREATE_NEW_LOGIN_KEY| + |LANG_ONE_TIME_LOGIN_URL| +
|LANG_KEY_NAME|: |LANG_KEY_DEFINITION| (a-zA-Z0-9)
|LANG_KEY_VALUE|:
|LANG_RE_ENTER_KEY|:
|LANG_EXPIRES_ON|: + |LANG_NEVER|     + |HOUR|:|MINUTE|, |MONTH||DAY||YEAR| +
|LANG_USES|: |LANG_USES_EXPLANATION|
|LANG_CLEAR_KEY|: |LANG_AUTO_DELETE|
|LANG_ALLOW_HTM|: |LANG_ALLOW_HTM_EXPLANATION|
|LANG_COMMANDS|: +
+ + + + + +
|ALLOW_COMMANDS||DENY_COMMANDS|
+
+
|LANG_ALLOWED_IPS|: + + |LANG_IPS_EXPLANATION|
|LANG_CURRENT_PASSWORD|:
+ +
+ +|LANG_LOGIN_KEYS_RULES| +

+|LANG_ALL_USER_WARNING| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/cronjobs.html b/directadmin-1.62.4/data/skins/enhanced/user/cronjobs.html new file mode 100644 index 0000000..392c4cd --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/cronjobs.html @@ -0,0 +1,80 @@ +|LF_STANDARD| +|?TREE=» `LANG_CRON_JOBS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#cron| +|HTM_HEADER_FULL| + + +|LANG_VALID_CRON|
+|LANG_EXACT_TIMES|
+|LANG_DASH|
+|LANG_INTERVALS|
+|LANG_COMBINE|
+|LANG_NO_SPACES|

+|LANG_CURRENT_TIME|: |TIME| + + + + + + + + + + + + + + +
|LANG_CREATE_NEW_CRON| |LANG_RUN_ON_REBOOT|
|LANG_MINUTE|0-59
|LANG_HOUR|0-23
|LANG_DAY_OF_MONTH|1-31
|LANG_MONTH|1-12
|LANG_DAY_OF_WEEK|0-7 (0 or 7 = |LANG_SUNDAY|)
|LANG_COMMAND| + +
+ +|CRONJOBS| + + +
+ + + + + + + +
|LANG_SEND_OUTPUT_TO|
|LANG_EMAIL|
+|LANG_VALID_EMAIL|: |USERNAME|, |LANG_OR_BLANK_FIELD|. +

+|LANG_SAMPLE_CRON|:
+|?PHP_BIN=/usr/local/bin/php| +|*if SET_PHP_BIN_PATH_IN_CRONS="1"| +|?PHP_BIN=php| +|*endif| +|PHP_BIN| /home/|USERNAME|/domains/domain.com/public_html/script.php
+/usr/local/bin/curl --silent http://www.domain.com/cron.php > /dev/null
+|*if OS_TYPE="FreeBSD"|/usr/local/bin/wget -O /dev/null http://www.domain.com/cron.php
|*else|/usr/bin/wget -O /dev/null http://www.domain.com/cron.php
|*endif| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/db/db.html b/directadmin-1.62.4/data/skins/enhanced/user/db/db.html new file mode 100644 index 0000000..f6ee5cd --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/db/db.html @@ -0,0 +1,67 @@ +|?TREE=» `DOMAIN` » `LANG_MYSQL_SETUP`| +|?HELP_SECTION=`USER_HELPER`/mysql.html| +|HTM_USER_TOP| + +|LANG_CREATE_DB|
+ +|*if USERDATABASE="0"| +
|LANG_DB_BEFORE_PMA|
+|*endif| +|?PMA_URL=`HTTP`://`HOSTNAME`/phpmyadmin| +|?PMA_HREF=`LANG_PHPMYADMIN`

| +|*if PHPMYADMIN_PUBLIC="no"| +|?PMA_HREF=| +|*endif| +|*if HAVE_PHPMYADMIN="no"| +|?PMA_HREF=
| +|*endif| + +|*if HAVE_ONE_CLICK_PMA_LOGIN="yes"| +|?PMA_HREF=| +
+
+ + + |LANG_PMA_NO_PASS| +
+|*endif| +|PMA_HREF| + +|DATABASES| + +
+ + + + + + + + + + + + + + + + + +
|LANG_UPLOAD_DB|
|LANG_SELECT_DB||DATABASESELECT|
|LANG_SELECT_CONN_METH|:
+ |LANG_YOUR_ACC_LOGIN| + + + |LANG_A_SPECIFIED| |LANG_AND_PASS| +
+
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/db/db_create.html b/directadmin-1.62.4/data/skins/enhanced/user/db/db_create.html new file mode 100644 index 0000000..e1e9922 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/db/db_create.html @@ -0,0 +1,74 @@ +|LF_STANDARD| +|LF_DB| +|?TREE=» `DOMAIN` » `LANG_MYSQL_SETUP` » `LANG_CREATE_DB`| +|?HELP_SECTION=`USER_HELPER`/mysql.html#create| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + +|*endif| + + + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + + + +
|LANG_CREATE_DB|
|LANG_DB_NAME||USERNAME|_
|LANG_DB_USERNAME||USERNAME|_ +|*if DB_USER_LIST| + |LANG_DB_USE_EXISTING| + |DB_USER_LIST| +|*endif|
|LANG_DB_PASS|
|LANG_DB_PASS_AGAIN|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/db/db_user_create.html b/directadmin-1.62.4/data/skins/enhanced/user/db/db_user_create.html new file mode 100644 index 0000000..2f152bc --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/db/db_user_create.html @@ -0,0 +1,73 @@ +|LF_STANDARD| +|LF_DB| +|?TREE=» `DOMAIN` » `LANG_MYSQL_SETUP` » `LANG_VIEW` `name` » `LANG_NEW_USER`| +|?HELP_SECTION=`USER_HELPER`/mysql.html#adduser| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + +|*endif| + + + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + + +
|LANG_ADD_USER_TO| |name|
|LANG_DB_USERNAME||USERNAME|_ +|*if DB_USER_LIST| + |LANG_DB_USE_EXISTING| + |DB_USER_LIST| +|*endif|
|LANG_DB_PASS|
|LANG_DB_PASS_AGAIN|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/db/db_user_modify.html b/directadmin-1.62.4/data/skins/enhanced/user/db/db_user_modify.html new file mode 100644 index 0000000..1f2adfb --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/db/db_user_modify.html @@ -0,0 +1,38 @@ +|LF_STANDARD| +|LF_DB| +|?TREE=» `DOMAIN` » `LANG_MYSQL_SETUP` » `LANG_VIEW` `NAME` » `LANG_MODIFY` `USER`| +|?HELP_SECTION=`USER_HELPER`/mysql.html#password| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + +|*endif| + + + + + + + + + + + + + + + + +
|LANG_MODIFY_1| |USER| |LANG_MODIFY_2| |NAME|
|LANG_DB_PASS|
|LANG_DB_PASS_AGAIN|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/db/db_view.html b/directadmin-1.62.4/data/skins/enhanced/user/db/db_view.html new file mode 100644 index 0000000..d16fa40 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/db/db_view.html @@ -0,0 +1,21 @@ +|LF_DB| +|?TREE=» `DOMAIN` » `LANG_MYSQL_SETUP` » `LANG_VIEW` `name`| +|?HELP_SECTION=`USER_HELPER`/mysql.html| +|HTM_USER_TOP| + +|LANG_CREATE_DB_USER|
+ +|*if HAVE_ONE_CLICK_PMA_LOGIN="yes"| +
+
+ + + |LANG_PMA_NO_PASS| +
+|*endif| + +|DATABASEUSERS| + +|ACCESSHOSTS| + +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/db/user_priv.html b/directadmin-1.62.4/data/skins/enhanced/user/db/user_priv.html new file mode 100644 index 0000000..3ef0a7c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/db/user_priv.html @@ -0,0 +1,58 @@ +|LF_STANDARD| +|LF_DB| +|?TREE=» `DOMAIN` » `LANG_MYSQL_SETUP` » `LANG_VIEW` `name` » `LANG_USER_PRIVS`| +|?HELP_SECTION=`USER_HELPER`/mysql.html| +|HTM_USER_TOP| + + + + + + + + + + + + + + + + + + + + + + + + +|*if DATABASE_EXTENDED_USER_PRIVILEGES>="1"| + + + + + + + + + +|*endif| +|*if DATABASE_EXTENDED_USER_PRIVILEGES>="2"| + + + + +|*endif| +|*if DATABASE_EXTENDED_USER_PRIVILEGES>="1"| + +|*endif| + + + + +
|LANG_PRIVS_1| |user| |LANG_PRIVS_2| |name|
|LANG_SELECT||SELECT||LANG_INSERT||INSERT|
|LANG_UPDATE||UPDATE||LANG_DELETE||DELETE|
|LANG_CREATE||CREATE||LANG_DROP||DROP|
|LANG_ALTER||ALTER||LANG_INDEX||INDEX|
|LANG_GRANT||GRANT||LANG_REFERENCE||REFERENCE|
|LANG_TMP_TABLE||CREATE_TMP_TABLE||LANG_LOCK||LOCK_TABLE|
|LANG_SHOW_VIEW||SHOW_VIEW_PRIV||LANG_CREATE_ROUTINE||CREATE_ROUTINE_PRIV|
|LANG_ALTER_ROUTINE||ALTER_ROUTINE_PRIV||LANG_EXECUTE||EXECUTE_PRIV|
|LANG_CREATE_VIEW||CREATE_VIEW_PRIV||LANG_EVENT||EVENT_PRIV|
|LANG_TRIGGER||TRIGGER_PRIV|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/dns.js b/directadmin-1.62.4/data/skins/enhanced/user/dns.js new file mode 100644 index 0000000..bbbb058 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/dns.js @@ -0,0 +1,127 @@ +|LF_DNS| + +//**NOTE that this will check ALL checkboxes in the form. +function selectAllDNS() +{ + with (document.tableform) + { + var check = false; + var i=0; + + for (i=0; i < elements.length; i++) + if (elements[i].type == 'checkbox') + { + check = !(elements[i].checked); break; + } + + for (i=0; i < elements.length; i++) + if (elements[i].type == 'checkbox') + elements[i].checked = check; + } +} + +function set_span(id_tag, value) +{ + var span = document.getElementById(id_tag); + while (span.firstChild) { + span.removeChild(span.firstChild); + } + span.appendChild(document.createTextNode(value)); + + var true_values_tr = document.getElementById('true_values_tr'); + true_values_tr.style.display = ''; +} +function set_error(str, id_tag) +{ + var span = document.getElementById(id_tag); + //span.style.color = "#990000"; + //span.style.fontWeight = 'bold'; + span.classList.add("highlighted-bad"); + + set_span(id_tag, str); +} +function set_text(str, id_tag) +{ + var span = document.getElementById(id_tag); + //span.style.color = "#000000"; + //span.style.fontWeight = 'normal'; + span.classList.remove("highlighted-bad"); + + set_span(id_tag, str); +} +function set_effective_value(value, domain, id_tag, check_contains_domain = true) +{ + if (value == '') { + return set_text('', id_tag); + } + if (value == '@') { + return set_text(domain+'.', id_tag); + } + + var domain_dot = domain+"."; + + if (value.endsWith(".")) + { + if (check_contains_domain && value != domain_dot && !value.endsWith('.'+domain_dot)) { + return set_error("|LANG_DOT_END_SHOULD_HAVE_ZONE|", id_tag); + } + return set_text(value, id_tag); + } + else + { + if (check_contains_domain && value.endsWith(domain)) { + return set_error('"'+value+'.'+domain_dot+'" - |LANG_MISSING_END_DOT|', id_tag); + } + } + return set_text(value+'.'+domain_dot, id_tag); +} + +function host_changed_right(value) +{ + set_effective_value(value,'|domain|', 'dns_right', false) +} +function host_changed_left(value) +{ + set_effective_value(value,'|domain|', 'dns_left') +} +function is_ipv4(ip) +{ + var chunks = ip.split('.'); + if (chunks.length != 4) { console.log('need 4 chunks'); return false; } + var c = 0; + var n = 0; + for (var i = 0; i 255) { console.log('"'+n+"\" is out of range"); return false; } + } + return true; +} +function ensure_is_ipv4(value) +{ + if (value != '' && !is_ipv4(value)) { + set_error("|LANG_A_RECORD_VALUE_NOT_IP|", 'dns_right'); + } else { + set_text('', 'dns_right'); + } +} + +function set_affect_pointers(hidden_id) +{ + var checkbox = document.getElementById('affect_pointers_checkbox'); + var hidden_input = document.getElementById(hidden_id); + if (checkbox.checked) + { + hidden_input.value = 'yes'; + } + else + { + hidden_input.value = 'no'; + } + + console.log('hidden value has been set to: '+hidden_input.value); + return true; +} diff --git a/directadmin-1.62.4/data/skins/enhanced/user/dns_control.html b/directadmin-1.62.4/data/skins/enhanced/user/dns_control.html new file mode 100644 index 0000000..9500430 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/dns_control.html @@ -0,0 +1,339 @@ +|LF_STANDARD| +|LF_DNS| +|*if ptr| +|?TREE=» `domain` » `LANG_PTR` »`LANG_DNS_SETTINGS` (`ptr`)| +|*else| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_DNS_SETTINGS`| +|*endif| + +|?HELP_SECTION=`USER_HELPER`/dns.html| +|HTM_HEADER_FULL| + + + +|*if LOGIN_AS_DNSCONTROL="ON"| +|LANG_LOGIN_AS_DNS_CONTROL| +|*endif| + + + + + +|?TTL_INPUT=| +|?COLSPAN=4| +|?BLANK_TD=| + +|?DOMAINFIELD=`domain`| +|*if ptr_val!=""| +|?DOMAINFIELD=`ptr_val`| +|?ALLOW_TTL_OVERRIDE=no| +|*endif| + +|?DUP_TO_POINTERS_CLASS=path_hidden| +|*if ptr_val=""| +|?DUP_TO_POINTERS_CLASS=| +|*endif| +|?DNS_AFFECT_POINTERS_CHECKED=| +|*if DNS_AFFECT_POINTERS_DEFAULT="yes"| +|?DNS_AFFECT_POINTERS_CHECKED=checked| +|*endif| + +|?SET_STATIC_TTL_INPUT=yes| + +|*if DNS_TTL="yes"| +|?COLSPAN=5| +|?TTL_INPUT=| +|?BLANK_TD=| + +|*else| + |?SET_STATIC_TTL_INPUT=no| +|*endif| +|*if ALLOW_TTL_OVERRIDE!="yes"| + |?SET_STATIC_TTL_INPUT=no| +|*endif| +|*if TTL_CUSTOM_SELECTED!="checked"| + |?SET_STATIC_TTL_INPUT=no| +|*endif| +|*if SET_STATIC_TTL_INPUT="yes"| + |?TTL_INPUT=| +|*endif| + + + + + +|DNS_ROWS| + + + + + + +|?FULL_MX_NAME=| +|?FULL_MX_VALUE=| +|*if HAVE_FULL_MX_RECORDS="1"| +|?FULL_MX_NAME=`DOMAINFIELD`.| +|?FULL_MX_VALUE=| +|*endif| + +|*if USERDNSCONTROL="ON"| + +
|LANG_NAME||LANG_TTL|`TTL_VALUE`|LANG_TYPE||LANG_VALUE||LANG_SELECT|
+ |LANG_REMOVE_FROM_POINTERS| + +
+ + + + + + + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + + + + + + |TTL_INPUT| + + + + + +|*else| +|?DNS_SPF="no"| +|*endif| + +|*if DNS_SPF="yes"| + + + + + + + + + + |TTL_INPUT| + + + + + +|*endif| + +|*if DNS_TLSA="yes"| + + + + + + + + + + |TTL_INPUT| + + + + + +|*endif| +|*if DNS_CAA="yes"| + + + + + + + + + + |TTL_INPUT| + + + + + +|*endif| + + +|*if DNS_DS="yes"| + + + + + + + + + |TTL_INPUT| + + + + + +|*endif| + +|*if ALLOW_TTL_OVERRIDE="yes"| + + + + + + + + + + + |BLANK_TD| + + +|*endif| + +
|LANG_ADD_DOMAIN_RECS| + |LANG_DUPLICATE_TO_POINTERS| +
« |LANG_TRUE_VALUES| »
A
NS
MX + + |FULL_MX_VALUE| +
CNAME
PTR
TXT
AAAA
SRV
SPF
TLSA
CAA
DS
|LANG_OVERRIDE_TTL_VAL|TTL  |LANG_USE_DEFAULT|
+ +|DNSSEC_TABLE| + +
+|*if !ptr| +|LANG_MODIFY_MX|
+|*endif| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/dns_mx_control.html b/directadmin-1.62.4/data/skins/enhanced/user/dns_mx_control.html new file mode 100644 index 0000000..1613567 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/dns_mx_control.html @@ -0,0 +1,128 @@ +|LF_STANDARD| +|LF_DNS| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_MAIL_SERVER_SETTINGS`| +|?HELP_SECTION=`USER_HELPER`/email.html#mx| +|HTM_HEADER_FULL| + +|LANG_MX_RECORDS| + + + +|*if LOGIN_AS_DNSCONTROL="ON"| +
|LANG_LOGIN_AS_DNS_CONTROL| +|*endif| + + + + + +|?TTL_INPUT=| +|?COLSPAN=4| +|?USE_LOCAL_COLSPAN=2| + + +|?DNS_AFFECT_POINTERS_CHECKED=| +|*if DNS_AFFECT_POINTERS_DEFAULT="yes"| +|?DNS_AFFECT_POINTERS_CHECKED=checked| +|*endif| + + +|*if DNS_TTL="yes"| +|?COLSPAN=5| +|?TTL_INPUT=| +|?USE_LOCAL_COLSPAN=3| + +|*endif| + + + + +|DNS_ROWS| + + + + + + + + + + + + |TTL_INPUT| + + + + + + + + + + + +|*if MX_TEMPLATES="1"| + + + + + + + + + + +|*endif| + +
|LANG_NAME||LANG_TTL||LANG_TYPE||LANG_VALUE||LANG_SELECT|
+ |LANG_REMOVE_FROM_POINTERS| + +
+ |LANG_ADD_ANOTHER_MX| + |LANG_DUPLICATE_TO_POINTERS| +
MX + + |*if HAVE_FULL_MX_RECORDS="1"| + + |*endif| +
|LANG_LOCAL_MAIL_SERVER|
|LANG_USE_THIS_SERVER|
|LANG_SET_REMOTE_MX|
Select your remote email provider + |MX_TEMPLATES_SELECT| + |LANG_AFFECT_POINTERS| +
+
+|LANG_NOTE| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/domain_pointers.html b/directadmin-1.62.4/data/skins/enhanced/user/domain_pointers.html new file mode 100644 index 0000000..6774cb7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/domain_pointers.html @@ -0,0 +1,25 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_DOMAIN_POINTERS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#pointers| +|HTM_HEADER_FULL| + +|?WWW_PREFIX=www.| +|*if WWW_REDIRECT="no"| +|?WWW_PREFIX=| +|*endif| + + + + + + + + + +
|LANG_ADD_NEW_DOMAIN_POINTER|
|LANG_SOURCE_DOMAIN|http://www. --> |WWW_PREFIX||DOMAIN|   |LANG_EG|
+ |LANG_CREATE_ALIAS|    +
+ +|DOMAINPOINTERS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/du_breakdown.html b/directadmin-1.62.4/data/skins/enhanced/user/du_breakdown.html new file mode 100644 index 0000000..be05873 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/du_breakdown.html @@ -0,0 +1,34 @@ +|LF_STANDARD| + + + +|LANG_DU_D| +|*if user| +|user| +|*else| +|USERNAME| +|*endif| + + + + +
+|LANG_HIDE_ZERO|
+|LANG_HIDE_NOT_COUNTED| (?)
+ + + +|*if user||*endif| +
+|TABLE| +
+|*if DU_NOTICE!=""| +|DU_NOTICE|

+|*endif| +|LANG_CLOSE| +
+
+ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder.html b/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder.html new file mode 100644 index 0000000..cfa0d1a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder.html @@ -0,0 +1,10 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_AUTO_RESPONDERS`| +|?HELP_SECTION=`USER_HELPER`/email.html#auto| +|HTM_HEADER_FULL| + +|LANG_CREATE_AUTO|
+ +|AUTORESPONDERS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder_create.html b/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder_create.html new file mode 100644 index 0000000..3912782 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder_create.html @@ -0,0 +1,28 @@ +|LF_STANDARD| +|LF_AUTO_RESPONDER| +|?TREE=» `DOMAIN` » `LANG_AUTO_RESPONDERS` » `LANG_CREATE_AUTO`| +|?HELP_SECTION=`USER_HELPER`/email.html#auto| +|HTM_USER_TOP| + + + + + + + + + + +|HTM_EMAIL_REPLY_HEADERS| + + + + + + + +
|LANG_CREATE_AUTO_MESS|
|LANG_RESP_ADDR|@|DOMAIN|
|LANG_RESP_MESS|
|LANG_RESP_CC_TO|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder_modify.html b/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder_modify.html new file mode 100644 index 0000000..89120bc --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/autoresponder_modify.html @@ -0,0 +1,29 @@ +|LF_STANDARD| +|LF_AUTO_RESPONDER| +|?TREE=» `DOMAIN` » `LANG_AUTO_RESPONDERS` » `LANG_MODIFY` `user`| +|?HELP_SECTION=`USER_HELPER`/email.html#auto| +|HTM_USER_TOP| + + + + + + + + + + + +|HTM_EMAIL_REPLY_HEADERS| + + + + + + + +
|LANG_MOD_AUTO_MESS|
|LANG_RESP_ADDR||USER|@|DOMAIN|
|LANG_RESP_MESS|
|LANG_RESP_CC_TO|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/catch_all.html b/directadmin-1.62.4/data/skins/enhanced/user/email/catch_all.html new file mode 100644 index 0000000..78c0cfe --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/catch_all.html @@ -0,0 +1,26 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_SET_CATCH`| +|?HELP_SECTION=`USER_HELPER`/email.html#catchall| +|HTM_USER_TOP| + + +|*if USERCATCHALL="OFF"| + |LANG_CATCHALL_DISABLED| +|*else| +|LANG_THIS_EMAIL| + + + + + + + + + + + +
|LANG_SET_CATCH|
|LANG_FAIL||LANG_SENDER|
|LANG_IGNORE||LANG_DROPPED|
|LANG_ADDR||POPLIST|
+ +
+|*endif| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/email_reply_headers.html b/directadmin-1.62.4/data/skins/enhanced/user/email/email_reply_headers.html new file mode 100644 index 0000000..9d800f2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/email_reply_headers.html @@ -0,0 +1,33 @@ +|*if CUSTOM_REPLY_HEADERS="1"| +
|LANG_SUBJECT_PREFIX|: |LANG_ORIGINAL_SUBJECT|
|LANG_REPLY_ENCODING||REPLY_ENCODINGS|   (|LANG_BROWSER|: |LANG_ENCODING|)
|LANG_CONTENT_TYPE||REPLY_CONTENT_TYPES|
|LANG_REPLY_FREQUENCY||REPLY_ONCE_SELECT| |LANG_MIN_TIME_BEFORE_REPLY|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_EMAIL_FILTERS|
|LANG_BLOCK_EMAIL|
|LANG_BLOCK_DOMAIN|
|LANG_BLOCK_WORD|
|LANG_BLOCK_SIZE||LANG_KB|
|LANG_BLOCK_ADULT| |STATE|
+ |LANG_ACTION_FILTER|:     + |LANG_ACTION_DROP| +        + |LANG_ACTION_TO_SPAM| +
+ +|FILTERS| + +
+|LANG_WORD_WARNING| + + + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder.html b/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder.html new file mode 100644 index 0000000..1e3b1a6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder.html @@ -0,0 +1,10 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_EMAIL_FORWARDERS`| +|?HELP_SECTION=`USER_HELPER`/email.html#forwarders| +|HTM_HEADER_FULL| + +|LANG_CREATE_FORWARD|
+ +|FORWARDERS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder_create.html b/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder_create.html new file mode 100644 index 0000000..710f834 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder_create.html @@ -0,0 +1,23 @@ +|LF_STANDARD| +|LF_FORWARDER| +|?TREE=» `DOMAIN` » `LANG_FORWARDERS` » `LANG_CREATE_FORWARD`| +|?HELP_SECTION=`USER_HELPER`/email.html#forwarders| +|HTM_USER_TOP| + + + + + + + + + + + + + +
|LANG_CREATE_FORWARD|
|LANG_FORWARD_NAME|@|DOMAIN|
|LANG_DEST| |LANG_WHERE_YOU_WANT|
|LANG_FWD_NOTE|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder_modify.html b/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder_modify.html new file mode 100644 index 0000000..e8d8efa --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/forwarder_modify.html @@ -0,0 +1,23 @@ +|LF_STANDARD| +|LF_FORWARDER| +|?TREE=» `DOMAIN` » `LANG_FORWARDERS` » `LANG_MODIFY` `user`| +|?HELP_SECTION=`USER_HELPER`/email.html#forwarders| +|HTM_USER_TOP| + + + + + + + + + + + + + +
|LANG_MOD_FORWARD|
|LANG_FORWARD_NAME||FORWARDERNAME|@|DOMAIN|
|LANG_DEST| |LANG_WHERE_YOU_WANT|
|LANG_FWD_MODIFY_NOTE|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/list.html b/directadmin-1.62.4/data/skins/enhanced/user/email/list.html new file mode 100644 index 0000000..07792d5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/list.html @@ -0,0 +1,9 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_LISTS`| +|?HELP_SECTION=`USER_HELPER`/email.html#majordomo| +|HTM_USER_TOP| + +|LANG_CREATE_LIST|
+ +|LISTS| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/list_create.html b/directadmin-1.62.4/data/skins/enhanced/user/email/list_create.html new file mode 100644 index 0000000..7a7060f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/list_create.html @@ -0,0 +1,22 @@ +|LF_STANDARD| +|LF_LIST| +|?TREE=» `DOMAIN` » `LANG_LISTS` » `LANG_CREATE_LIST`| +|?HELP_SECTION=`USER_HELPER`/email.html#majordomo| +|HTM_USER_TOP| + + + + + + + + + + + + +
|LANG_CREATE_LIST|
|LANG_LIST_NAME|@|DOMAIN|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/list_modify.html b/directadmin-1.62.4/data/skins/enhanced/user/email/list_modify.html new file mode 100644 index 0000000..a2f6d94 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/list_modify.html @@ -0,0 +1,67 @@ +|LF_STANDARD| +|LF_LIST| +|?TREE=» `DOMAIN` » `LANG_LISTS` » `LANG_VIEW_LIST` » `LANG_MOD_LIST`| +|?HELP_SECTION=`USER_HELPER`/email.html#majordomo| +|HTM_USER_TOP| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_MOD_LIST|: |name|@|DOMAIN|
|LANG_ADMIN_PASS||LANG_APP_PASS|
|LANG_REPLY_TO||LANG_ADMINISTRIVIA||administrivia|
|LANG_DESC|
|LANG_D_ISSUE||LANG_D_VOLUME|
|LANG_D_MAXDAYS||LANG_D_MAXLINES|
|LANG_GET_A||get_access||LANG_INDEX_A||index_access|
|LANG_INFO_A||info_access||LANG_INTRO_A||intro_access|
|LANG_WHICH_A||which_access||LANG_WHO_A||who_access|
|LANG_WELCOME||welcome||LANG_MUNG||mungedomain|
|LANG_MODERATE||moderate||LANG_MODERATOR|
|LANG_PREC||LANG_PURGE||purge_received|
|LANG_RESTRICT_POST||LANG_STRIP||strip|
|LANG_SUB_PRE||LANG_MAX_L|
|LANG_SUB_POL||subscribe_policy||LANG_UNSUB_POL||unsubscribe_policy|
|LANG_LIST_INFO|
|LANG_TABOO_BODY|
|LANG_TABOO_HEAD|
|LANG_MESS_FOOT|
|LANG_MESS_FRONT|
|LANG_MESS_HEAD|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/list_view.html b/directadmin-1.62.4/data/skins/enhanced/user/email/list_view.html new file mode 100644 index 0000000..3338d8a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/list_view.html @@ -0,0 +1,26 @@ +|LF_STANDARD| +|LF_LIST| +|?TREE=» `DOMAIN` » `LANG_LISTS` » `LANG_VIEW_LIST`| +|?HELP_SECTION=`USER_HELPER`/email.html#majordomo| +|HTM_USER_TOP| + +|LANG_CHANGE_1| |LANG_CHANGE_2|
+ + + + + + + + + + + + +
|LANG_ADD_EMAIL|
|LANG_ADD_TO| |name||LANG_ADD_TO| |name|-digest
|LANG_EMAIL|:
+ +|SUBSCRIBERS| + +|SUBSCRIBERS_DIGEST| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/pop.html b/directadmin-1.62.4/data/skins/enhanced/user/email/pop.html new file mode 100644 index 0000000..b1d20a0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/pop.html @@ -0,0 +1,43 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_POP_ACCOUNTS`| +|?HELP_SECTION=`USER_HELPER`/email.html#pop3| +|HTM_HEADER_FULL| + +|*if HAVE_ONE_CLICK_WEBMAIL_LOGIN="yes"| + +
+ +
+|*endif| + +|*if EMAIL_MESSAGE!=""| +|EMAIL_MESSAGE|

+|*endif| + +|LANG_POP_CREATE|
+ +|LANG_EMAIL_USAGE|
+ +|POPACCOUNTS| + +
+ + +|*if DKIM_ENABLED="1"| + |LANG_DKIM_ENABLED| + +|*endif| +|*if DKIM_ENABLED="0"| + |LANG_DKIM_DISABLED| + +|*endif| +
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/pop_create.html b/directadmin-1.62.4/data/skins/enhanced/user/email/pop_create.html new file mode 100644 index 0000000..8c24130 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/pop_create.html @@ -0,0 +1,51 @@ +|LF_STANDARD| +|LF_POP| +|?TREE=» `DOMAIN` » `LANG_POP_ACCOUNTS` » `LANG_POP_CREATE`| +|?HELP_SECTION=`USER_HELPER`/email.html#pop3| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + +|*endif| + + + +|?POP_QUOTA=0| +|*if DEFAULT_POP_QUOTA| +|?POP_QUOTA=`DEFAULT_POP_QUOTA`| +|*endif| + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + |*if USER_CAN_SET_SEND_LIMIT="yes"| + + |*endif| + + +
|LANG_POP_CREATE|
|LANG_POP_USERNAME|@|DOMAIN|
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
|LANG_EMAIL_QUOTA| |LANG_ZERO_UNLIMITED|
|LANG_SEND_LIMIT| |LANG_SEND_LIMIT_DESC| |GLOBAL_PER_EMAIL_LIMIT|
+ +
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/pop_modify.html b/directadmin-1.62.4/data/skins/enhanced/user/email/pop_modify.html new file mode 100644 index 0000000..5a50b89 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/pop_modify.html @@ -0,0 +1,46 @@ +|LF_STANDARD| +|LF_POP| +|?TREE=» `DOMAIN` » `LANG_POP_ACCOUNTS` » `LANG_MODIFY` `USER`| +|?HELP_SECTION=`USER_HELPER`/email.html#pop3| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass()| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('')| + +|*endif| + + + + + + + + + + + + + + + + |?SEND_LIMIT_VALUE=| + |*if SEND_LIMIT!="no"||?SEND_LIMIT_VALUE=`SEND_LIMIT`||*endif| + |*if USER_CAN_SET_SEND_LIMIT="yes"| + + |*endif| + + +
|LANG_POP_MODIFY|
|LANG_POP_USERNAME|@|DOMAIN|
|LANG_NEW_PASS| |LANG_LEAVE_BLANK|
|LANG_RE-ENTER_PASS|:
|LANG_EMAIL_QUOTA| |LANG_ZERO_UNLIMITED|
|LANG_SEND_LIMIT| |LANG_SEND_LIMIT_DESC| |GLOBAL_PER_EMAIL_LIMIT|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/spamassassin.html b/directadmin-1.62.4/data/skins/enhanced/user/email/spamassassin.html new file mode 100644 index 0000000..742db5e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/spamassassin.html @@ -0,0 +1,125 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_SPAM_SETUP`| +|?HELP_SECTION=`USER_HELPER`/email.html#spamassassin| +|HTM_USER_TOP| + +
|LANG_SPAM_SETUP|

+ +|*if SA_ENABLED="yes"| +|LANG_SA_ENABLED| +
+ + +
+|*else| +|LANG_SA_DISABLED| +|*endif| + +
+ + + + + + +|*if SHOW_MAIN_SPAMBOX="1"| + +|*endif| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_WHERE_TO_GO|
|LANG_TO_RECIPIENT|
|LANG_TO_FOLDER|
|LANG_TO_USER_FOLDER|
|LANG_DELETE_SPAM|
 
|LANG_SCORE_THRESH|
|LANG_LOW_THRESH_DESC| +|LANG_HIGH_THRESH_DESC|
|LANG_LOW_THRESH| (5.0)
|LANG_MED_THRESH| (7.5)
|LANG_HIGH_THRESH| (10.0)
|LANG_CUSTOM_THRESH|:
 
|LANG_DELETE_HS_SPAM|
|LANG_YES_DELETE_HS_SPAM| |LANG_1_99_NO_DEC|
|LANG_NO_DO_NOT_DEL_HSS|
 
|LANG_REWRITE_SUBJECT|
|LANG_YES_SET_SUBJECT|:
|LANG_NO_LEAVE_SUBJECT|
 
|LANG_HOW_DELIV|
|LANG_DELIV_1| +|LANG_DELIV_2| +|LANG_DELIV_3|
|LANG_ATTACH_1|
|LANG_ATTACH_2|
|LANG_ATTACH_3|
 
+ |LANG_EMAIL_BL|
 
+ |LANG_EMAIL_WL|
 
+ +
+ +
+
+|LANG_MANUALLY_EDIT|
+
+

+ +|LANG_THIS_BUTTON| +
+ + + + + + + + + +
+ + + + +
+ + + + + + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/usage.html b/directadmin-1.62.4/data/skins/enhanced/user/email/usage.html new file mode 100644 index 0000000..72a3e8e --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/usage.html @@ -0,0 +1,52 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_EMAIL_USAGE`| +|?HELP_SECTION=`USER_HELPER`/email.html#email_usage| +|HTM_HEADER_FULL| + +|LANG_EMAIL_USAGE| +

+ +|*if BLOCK_CRACKING_PATHS="yes"| +|BLOCK_CRACKING_PATHS_TABLE| + +

+|*endif| + +|LANG_SHOW_USAGE|: +
+ + + + + + + + + + + +|EMAIL_STATS| +|*if EMAIL_STATS!=""| +|LANG_COUNT_NOTE| +|*endif| +|EMAIL_USAGE| + +
+|LANG_SENDER_NOTE|
+|LANG_AUTH_NOTE|
+|LANG_SENDER_HOST_NOTE|
+|LANG_PATH_NOTE|
+|LANG_ID_NOTE|
+ +|SENDING_PHP_SCRIPTS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/vacation.html b/directadmin-1.62.4/data/skins/enhanced/user/email/vacation.html new file mode 100644 index 0000000..09aab74 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/vacation.html @@ -0,0 +1,9 @@ +|?TREE=» `DOMAIN` » `LANG_VAC_MESS`| +|?HELP_SECTION=`USER_HELPER`/email.html#vacation| +|HTM_USER_TOP| + +|LANG_SET_VAC|
+ +|VACATIONS| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/vacation_create.html b/directadmin-1.62.4/data/skins/enhanced/user/email/vacation_create.html new file mode 100644 index 0000000..133b686 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/vacation_create.html @@ -0,0 +1,30 @@ +|LF_STANDARD| +|LF_AUTO_RESPONDER| +|LF_VACATION| +|?TREE=» `DOMAIN` » `LANG_VAC_MESS` » `LANG_SET_VAC`| +|?HELP_SECTION=`USER_HELPER`/email.html#vacation| +|HTM_USER_TOP| + +
+ |LANG_TODAY| + + |LANG_THIS_MONTH| + + |LANG_THIS_MONTH_EXCLUDING| +
+ |LANG_OUTGOING| + + |LANG_INCOMING| +
+ + + + + + + + +|HTM_EMAIL_REPLY_HEADERS| + + + + + + + + +
|LANG_SET_VAC|
|LANG_VAC_ACCOUNT||POPLIST|@|DOMAIN|
|LANG_VAC_MESSAGE|
|LANG_VAC_START||STARTTIME| |LANG_OF| |STARTMONTH||STARTDAY||STARTYEAR|
|LANG_VAC_END||ENDTIME| |LANG_OF| |ENDMONTH||ENDDAY||ENDYEAR|
|LANG_CURRENT||SERVERTIME|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/email/vacation_modify.html b/directadmin-1.62.4/data/skins/enhanced/user/email/vacation_modify.html new file mode 100644 index 0000000..bf53d16 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/email/vacation_modify.html @@ -0,0 +1,31 @@ +|LF_STANDARD| +|LF_AUTO_RESPONDER| +|LF_VACATION| +|?TREE=» `DOMAIN` » `LANG_VAC_MESS` » `LANG_MODIFY` `user`| +|?HELP_SECTION=`USER_HELPER`/email.html#vacation| +|HTM_USER_TOP| + + + + + + + + + + + +|HTM_EMAIL_REPLY_HEADERS| + + + + + + + + +
|LANG_SET_VAC|
|LANG_VAC_ACCOUNT||USER|@|DOMAIN|
|LANG_VAC_MESSAGE|
|LANG_VAC_START||STARTTIME| |LANG_OF| |STARTMONTH||STARTDAY||STARTYEAR|
|LANG_VAC_END||ENDTIME| |LANG_OF| |ENDMONTH||ENDDAY||ENDYEAR|
|LANG_CURRENT||SERVERTIME|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/error_pages.html b/directadmin-1.62.4/data/skins/enhanced/user/error_pages.html new file mode 100644 index 0000000..6f8c01d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/error_pages.html @@ -0,0 +1,16 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_EDIT_ERROR_PAGES`| +|?HELP_SECTION=`USER_HELPER`/misc.html#404| +|HTM_USER_TOP| + + + + + + + + +
|LANG_EDIT_ERROR_PAGES|
|LANG_401|401.shtml|LANG_VIEW|
|LANG_403|403.shtml|LANG_VIEW|
|LANG_404|404.shtml|LANG_VIEW|
|LANG_500|500.shtml|LANG_VIEW|
+ +|LANG_NOTE| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/copy.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/copy.html new file mode 100644 index 0000000..8f52775 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/copy.html @@ -0,0 +1,16 @@ +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/filemanager.html#copy| +|HTM_USER_TOP| +
+ + + + + + + + +
|LANG_COPY_1| |FILENAME| |LANG_COPY_2|:
|LANG_OVERWRITE|
+
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/edit.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/edit.html new file mode 100644 index 0000000..d585cd6 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/edit.html @@ -0,0 +1,42 @@ +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/filemanager.html#edit| +|HTM_HEADER_FULL| + + + + + + + + + + + + +
|LANG_EDIT_FILE|
+|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/extract.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/extract.html new file mode 100644 index 0000000..4587f74 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/extract.html @@ -0,0 +1,22 @@ +|LF_STANDARD| +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/filemanager.html#extract| +|HTM_HEADER_FULL| + +
+ + + + + + + + + + +
|LANG_EXTRACT_1| |path| |LANG_EXTRACT_2|
|LANG_DIRECTORY|:

+ +|LANG_CONTENTS| |path|:
+ +
+|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/main.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/main.html new file mode 100644 index 0000000..4c9188a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/main.html @@ -0,0 +1,54 @@ +|LF_STANDARD| +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/filemanager.html| + +|HTM_HEADER_FULL| + +|DIRECTORYLIST| +|LANG_TO_MOVE| +
+ + + + + + + + + + + + + + + + + + +
|LANG_TOOLS|
|LANG_NEW_FOLDER|
|LANG_NEW_FILE| |LANG_TEMPLATE|
( |path| )
|LANG_COMPRESS| |path|/ +|*if HAVE_ZIP="yes"| + . +|*else| + .tar.gz +|*endif| +
+ +
+ + + +
+ + + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/protect.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/protect.html new file mode 100644 index 0000000..3d2baa8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/protect.html @@ -0,0 +1,30 @@ +|LF_STANDARD| +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/misc.html#password| +|HTM_USER_TOP| + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + +
|LANG_PROTECTION_ON| |path|
|LANG_PROMPT| |LANG_EG|
|LANG_SET_USER| |LANG_NOT_REQUIRED|
|LANG_AND_PASS|
|LANG_RE-ENTER_PASS|
|LANG_PROTECTION_ENABLED|:
+ + +|USERS| + +
+|LANG_GO_BACK|
+
+|LANG_PROTECT_NOT_REQUIRED_DESC| + +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/protected.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/protected.html new file mode 100644 index 0000000..211b061 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/protected.html @@ -0,0 +1,10 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_PROTECTED`| +|?HELP_SECTION=`USER_HELPER`/misc.html#password| +|HTM_USER_TOP| + +|LANG_FIND_DIR|
+
+ +|DIRECTORIES| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/rename.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/rename.html new file mode 100644 index 0000000..f97fd86 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/rename.html @@ -0,0 +1,15 @@ +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/filemanager.html#rename| +|HTM_USER_TOP| + + + + + + + + + +
|LANG_RENAME_1| |FILENAME| |LANG_RENAME_2|:
|LANG_OVERWRITE|
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/filemanager/upload.html b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/upload.html new file mode 100644 index 0000000..1699e21 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/filemanager/upload.html @@ -0,0 +1,61 @@ +|?TREE=» `LANG_FILEMANAGER` » `path`| +|?HELP_SECTION=`USER_HELPER`/filemanager.html#upload| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + +
|LANG_UP_TO| |path|       |LANG_MAX_SIZE| : |MAX_FILE_SIZE_STR|
1: 5:
2: 6:
3: 7:
4: 8:
+ +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/frontpage.html b/directadmin-1.62.4/data/skins/enhanced/user/frontpage.html new file mode 100644 index 0000000..3a56a59 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/frontpage.html @@ -0,0 +1,26 @@ +|LF_STANDARD| +|?TREE=» `DOMAIN` » `LANG_FP_EXT`| +|?HELP_SECTION=`USER_HELPER`/frontpage.html| +|HTM_USER_TOP| + + + + + + + + + + + + + + +
|LANG_FP_EXT|
|LANG_STATUS|:|FPSTATUS|
|LANG_USERNAME|:|USER|
|LANG_SYSTEM_PASS|: |LANG_REQUIRED|
+ + +
+
+
|LANG_FRONTPAGE_ADMIN|
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ftp/anon_settings.html b/directadmin-1.62.4/data/skins/enhanced/user/ftp/anon_settings.html new file mode 100644 index 0000000..bc2a84f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ftp/anon_settings.html @@ -0,0 +1,23 @@ +|LF_STANDARD| +|LF_FTP| +|?TREE=» `DOMAIN` » `LANG_FTP_SETUP` » `LANG_ANON_FTP_SETTINGS`| +|?HELP_SECTION=`USER_HELPER`/ftp.html#anonftp| +|HTM_USER_TOP| + + + + + + + + + + + + + +
|LANG_ANON_FTP_SETTINGS|
|LANG_ALLOW_ANON|
|LANG_ALLOW_ANON_UP|
|LANG_WELCOME_MESS|
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp.html b/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp.html new file mode 100644 index 0000000..79bc529 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp.html @@ -0,0 +1,11 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_FTP_SETUP`| +|?HELP_SECTION=`USER_HELPER`/ftp.html| +|HTM_HEADER_FULL| + +|LANG_CREATE_FTP|
+|*if USERAFTP="ON"| +|LANG_ANON_FTP_SETTINGS|    |LANG_FLOGIN|: |ANONLOGIN|
+|*endif| +|FTPACCOUNTS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp_create.html b/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp_create.html new file mode 100644 index 0000000..c81c020 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp_create.html @@ -0,0 +1,46 @@ +|LF_STANDARD| +|LF_FTP| +|?TREE=» `DOMAIN` » `LANG_FTP_SETUP` » `LANG_CREATE_FTP`| +|?HELP_SECTION=`USER_HELPER`/ftp.html#create| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass(); reseller.random.value=reseller.passwd.value| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('random')| + +|*endif| + + + + + + +|HTM_PREVENT_AUTOFILL| + + + + + + + + + + + + + + + +
|LANG_CREATE_FTP|
|LANG_FTP_USERNAME||*if owned!="yes"||FTP_SEP||DOMAIN||*endif|
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
|LANG_DOMAIN|:|LANG_DOMAIN_USER|
|LANG_FTP|:|LANG_FTP_USER|
|LANG_USER|:|LANG_USER_USER|
|LANG_CUSTOM|:
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp_show.html b/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp_show.html new file mode 100644 index 0000000..bdfcd27 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ftp/ftp_show.html @@ -0,0 +1,45 @@ +|LF_STANDARD| +|LF_FTP| +|?TREE=» `DOMAIN` » `LANG_FTP_SETUP` » `LANG_MODIFY` `user`| +|?HELP_SECTION=`USER_HELPER`/ftp.html#mod| +|HTM_USER_TOP| + +|?CHECK_PASS=| +|?RANDOM_PASS=randomPass(); reseller.random.value=reseller.passwd.value| +|*if AJAX="1"| + |?CHECK_PASS=onChange="ajax_checkPass()"| + |?RANDOM_PASS=ajax_randomPass('random')| + +|*endif| + + + + + + + + + |SYSTEMUSERHIDDEN| + + + + + + + + + + + + +
|LANG_MODIFY_FTP|
|LANG_FTP_USERNAME||FULLUSER|
|LANG_ENTER_PASS|:
|LANG_RE-ENTER_PASS|:
|LANG_DOMAIN|:|LANG_DOMAIN_USER|
|LANG_FTP|:|LANG_FTP_USER|
|LANG_USER|:|LANG_USER_USER|
|LANG_CUSTOM|:
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/hotlink.html b/directadmin-1.62.4/data/skins/enhanced/user/hotlink.html new file mode 100644 index 0000000..5553184 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/hotlink.html @@ -0,0 +1,93 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_HOTLINK_PROTECTION`| +|?HELP_SECTION=`USER_HELPER`/misc.html#hotlink| +|HTM_USER_TOP| + +|*if HOTLINK_ENALBED_CHECKED!="checked"| +|LANG_HOTLINK_NOT_ENABLED| +|*endif| + +|TABLE| + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_ADD_URLS|
+ + |LANG_HOTLINK_ENABLED|
+ + |LANG_ALLOW_BLANK_REFERER|
+ + |LANG_OR_NO_ACCESS| +
|LANG_URLS| + +
+ |LANG_PROTECTED_FILES| +
|LANG_REDIRECT_TO|
+ + 403 |LANG_FORBIDDEN|
+ + |LANG_URL|:
+ +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/index.html b/directadmin-1.62.4/data/skins/enhanced/user/index.html new file mode 100644 index 0000000..2f55432 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/index.html @@ -0,0 +1,7 @@ +|?TREE=»| +|?HELP_SECTION=`USER_HELPER`/misc.html#add| +|HTM_USER_TOP| + + |HTM_USER_CONTENT| + +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/login_history.html b/directadmin-1.62.4/data/skins/enhanced/user/login_history.html new file mode 100644 index 0000000..fc63101 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/login_history.html @@ -0,0 +1,9 @@ +|?TREE=» `LANG_LOGIN_HIST`| +|HTM_USER_TOP| + +|LANG_HISTORY|
+
+|HISTORY| +

+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/login_keys.html b/directadmin-1.62.4/data/skins/enhanced/user/login_keys.html new file mode 100644 index 0000000..9d9c236 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/login_keys.html @@ -0,0 +1,15 @@ +|?TREE=» `LANG_LOGIN_KEYS`| +|?HELP_SECTION=`USER_HELPER`/login_keys.html| +|HTM_HEADER_FULL| + +|LANG_LOGIN_KEYS|
+
+ +|LANG_CREATE_NEW_LOGIN_KEY| + +|KEYS| +

+ +|LANG_LOGIN_KEY_EXPLANATION| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/menu_user.html b/directadmin-1.62.4/data/skins/enhanced/user/menu_user.html new file mode 100644 index 0000000..e69de29 diff --git a/directadmin-1.62.4/data/skins/enhanced/user/mime_types.html b/directadmin-1.62.4/data/skins/enhanced/user/mime_types.html new file mode 100644 index 0000000..42c0df2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/mime_types.html @@ -0,0 +1,26 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_MIME_TYPES`| +|?HELP_SECTION=`USER_HELPER`/misc.html#mime| +|HTM_USER_TOP| + + + + + + + + + + + + + +
|LANG_ADD_MIME_TYPE|
|LANG_MIME_TYPE|:|LANG_EXTENSION|:
+
+|LANG_USER_MIME_TYPES|
+|MIMETYPES| +
+|LANG_LIST_SYSTEM_MIMES|

+ + +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/mime_types_sys.html b/directadmin-1.62.4/data/skins/enhanced/user/mime_types_sys.html new file mode 100644 index 0000000..5382d45 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/mime_types_sys.html @@ -0,0 +1,11 @@ +|LF_MIME_TYPES| +|?TREE=» `domain` » `LANG_MIME_TYPES` » `LANG_SYSTEM_MIME_TYPES`| +|?HELP_SECTION=`USER_HELPER`/misc.html#mime| +|HTM_USER_TOP| + +|LANG_SYSTEM_MIME_TYPES|
+|MIMETYPES| +
+|LANG_LIST_USER_MIMES|

+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/modify_domain.html b/directadmin-1.62.4/data/skins/enhanced/user/modify_domain.html new file mode 100644 index 0000000..d35a8a2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/modify_domain.html @@ -0,0 +1,166 @@ +|LF_STANDARD| +|?TREE=» `LANG_MODIFY` `domain`| +|?HELP_SECTION=`USER_HELPER`/misc.html#domains| +|HTM_USER_TOP| + + + + + + + + + + + + +|*if USERSSL="ON"| + +|*endif| +|*if USERCGI="ON"| + +|*endif| +|*if USERPHP="ON"| + +|*endif| + + + + + + + +|*if CUSTOM_ITEM_1| + +|*endif| +|*if CUSTOM_ITEM_2| + +|*endif| +|*if CUSTOM_ITEM_3| + +|*endif| +|*if CUSTOM_ITEM_4| + +|*endif| +|*if CUSTOM_ITEM_5| + +|*endif| + + + + +
|LANG_MODIFY| |domain|
|LANG_BANDWIDTH| |LANG_MB||LANG_SAME_AS_MAIN|
|LANG_DISK_SPACE| |LANG_MB||LANG_SAME_AS_MAIN|
|LANG_SECURE_SSL|
|LANG_CGI| |LANG_ACCESS|
|LANG_PHP| |LANG_ACCESS|
|LANG_WWW_REDIRECT| + |LANG_NO_REDIRECT|
+ www.|DOMAIN|
+ |DOMAIN| +
|LANG_REDIRECT_TO|
|CUSTOM_ITEM_1_STR| |CUSTOM_ITEM_1||CUSTOM_ITEM_1_DESC|
|CUSTOM_ITEM_2_STR| |CUSTOM_ITEM_2||CUSTOM_ITEM_2_DESC|
|CUSTOM_ITEM_3_STR| |CUSTOM_ITEM_3||CUSTOM_ITEM_3_DESC|
|CUSTOM_ITEM_4_STR| |CUSTOM_ITEM_4||CUSTOM_ITEM_4_DESC|
|CUSTOM_ITEM_5_STR| |CUSTOM_ITEM_5||CUSTOM_ITEM_5_DESC|
+ +
+
+ + + + + + + + +|*if SSLCHECKED!="checked"| +|?SSLDISABLED=disabled| +|*else| +|?SSLDISABLED=| +|*endif| + + + + + +
|LANG_SETUP_FOR| |domain| - |LANG_SSL_REQUIRED|
|LANG_USE_DIR|
|LANG_USE_SYMLINK|
|LANG_FORCE_SSL_REDIRECT|
+ +
+ +|*if HAS_MULTIPLE_IPS="yes"| +
+|MULTI_IP_TABLE| +
+ + + + + + + + + + +
|LANG_ADD_ANOTHER_IP| |domain|
|LANG_SELECT_IP_TO_ADD||MULTI_IP_SELECT|
|LANG_ADD_DNS_RECORDS|
+ +|*endif| + +|?CL_SELECTOR_WARNING=| +|*if HAS_CL_PHP_SELECTOR="1"| +|?CL_SELECTOR_WARNING=
`LANG_CL_SELECTOR_WARNING`: "`DEFAULT_PHP_SELECTION`"| +|*endif| +|*if HAS_PHP_SELECTOR="yes"| +
+|PHP_SELECTOR_TABLE| +|CL_SELECTOR_WARNING| +|*endif| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/modify_login_key.html b/directadmin-1.62.4/data/skins/enhanced/user/modify_login_key.html new file mode 100644 index 0000000..171f66c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/modify_login_key.html @@ -0,0 +1,104 @@ +|LF_LOGIN_KEYS| +|?TREE=» `LANG_LOGIN_KEYS` » `LANG_MODIFY_LOGIN_KEY`| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_MODIFY_LOGIN_KEY| |keyname|
|LANG_KEY_VALUE|:
|LANG_RE_ENTER_KEY|: |LANG_LEAVE_BLANK_FOR_NO_CHANGE|
|LANG_EXPIRES_ON|: + |LANG_NEVER|     + |HOUR|:|MINUTE|, |MONTH||DAY||YEAR| +
|LANG_USES|: |LANG_USES_EXPLANATION|
|LANG_CLEAR_KEY|: |LANG_AUTO_DELETE|
|LANG_ALLOW_HTM|: |LANG_ALLOW_HTM_EXPLANATION|
|LANG_COMMANDS|: +
+ + + + + +
|ALLOW_COMMANDS||DENY_COMMANDS|
+
+
|LANG_ALLOWED_IPS|: + + |LANG_IPS_EXPLANATION|
|LANG_CURRENT_PASSWORD|:
+ +
+ +|LANG_LOGIN_KEYS_RULES| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/nginx_template_view.html b/directadmin-1.62.4/data/skins/enhanced/user/nginx_template_view.html new file mode 100644 index 0000000..773a37b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/nginx_template_view.html @@ -0,0 +1,31 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » Nginx Templates| +|?HELP_SECTION=`USER_HELPER`| +|HTM_HEADER_FULL| + + + + + + +|*if USES_LOCATION="1"| + + + + +|*endif| + + + + + + + + + + + + +
Add |TEMPLATE_NAME| Nginx template
Location
SSLhttp    https    http & https
Domain & Subdomains|domain|    only subdomains    both |domain| and subdomains
+ +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/nginx_templates.html b/directadmin-1.62.4/data/skins/enhanced/user/nginx_templates.html new file mode 100644 index 0000000..bcb92da --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/nginx_templates.html @@ -0,0 +1,32 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » Nginx Templates| +|?HELP_SECTION=`USER_HELPER`| +|HTM_HEADER_FULL| + + + + + + + + + + + + + +
Add new Nginx template
|TEMPLATE_SELECT|
+ + +
+|CURRENT_TEMPLATES| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/perl_modules.html b/directadmin-1.62.4/data/skins/enhanced/user/perl_modules.html new file mode 100644 index 0000000..0c94a1f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/perl_modules.html @@ -0,0 +1,7 @@ +|?TREE=» `LANG_INSTALLED_PERL_MODS`| +|?HELP_SECTION=`USER_HELPER`/scripts.html#perl| +|HTM_HEADER_FULL| + +|MODULES| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/plugin.html b/directadmin-1.62.4/data/skins/enhanced/user/plugin.html new file mode 100644 index 0000000..48a0699 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/plugin.html @@ -0,0 +1,9 @@ +|?TREE=» `LANG_PLUGINS`| +|?HELP_SECTION=`USER_HELPER`/| +|HTM_HEADER| +|HTM_HEADER_WIDE| + +|OUTPUT| + +|HTM_FOOTER_WIDE| +|HTM_FOOTER| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/prevent_autofill.html b/directadmin-1.62.4/data/skins/enhanced/user/prevent_autofill.html new file mode 100644 index 0000000..d82d8a0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/prevent_autofill.html @@ -0,0 +1,3 @@ + + + diff --git a/directadmin-1.62.4/data/skins/enhanced/user/redirects.html b/directadmin-1.62.4/data/skins/enhanced/user/redirects.html new file mode 100644 index 0000000..3e7a54d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/redirects.html @@ -0,0 +1,24 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_SITE_REDIRECTS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#redirect| +|HTM_USER_TOP| + + + + + + + + + + + +
|LANG_ADD_NEW_REDIRECT|
|LANG_LOCAL_URL||DOMAIN| |LANG_EG_REDIRECT|
|LANG_REDIRECT_TYPE|
|LANG_DESTINATION_URL| |LANG_EG_DOMAIN|
+ +|REDIRECTS| + +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/security_questions.html b/directadmin-1.62.4/data/skins/enhanced/user/security_questions.html new file mode 100644 index 0000000..1a374bf --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/security_questions.html @@ -0,0 +1,50 @@ +|?TREE=» `LANG_SECURITY_QUESTIONS`| +|HTM_HEADER_FULL| + +|LANG_SECURITY_QUESTIONS|
+ +|?SQ_BOLD_OPEN=| +|?SQ_BOLD_CLOSE=| +|*if SECURITY_QUESTIONS_CHECKED=""| +
|LANG_FEATURE_OFF|
+|LANG_ADD_A_SECURITY_QUESTION| +|?SQ_BOLD_OPEN=| +|?SQ_BOLD_CLOSE=| +|*endif| + +|USER_QUESTIONS| + +

+ +|SECURITY_QUESTIONS| + +

+ + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_SECURITY_QUESTION_OPTIONS|
|SQ_BOLD_OPEN||LANG_REQUIRE_VALID_ANSWER||SQ_BOLD_CLOSE|
|LANG_ALLOW_AP_LOGIN|
|LANG_NOTIFY_ME| |MAX_ATTEMPTS| |LANG_FAILED_ATTEMPTS|
+ +
+|LANG_SECURITY_QUESTION_NOTES| +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/server_info.html b/directadmin-1.62.4/data/skins/enhanced/user/server_info.html new file mode 100644 index 0000000..909aa0a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/server_info.html @@ -0,0 +1,7 @@ +|?TREE=» `LANG_SYS_INFO`| +|?HELP_SECTION=`USER_HELPER`/misc.html#serverinfo| +|HTM_USER_TOP| + +|SERVERINFO| + +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/show_domain.html b/directadmin-1.62.4/data/skins/enhanced/user/show_domain.html new file mode 100644 index 0000000..770ab97 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/show_domain.html @@ -0,0 +1,203 @@ +|?TREE=» `ALL_DOMAINS_SELECT`| +|?HELP_SECTION=`USER_HELPER`| +|HTM_USER_TOP| +
+ + + + + + +
+|*if ALLOWED_CMD_DOMAIN!="no"| + |LANG_DOMAIN_SETUP|

+|*endif| + |LANG_CHANGE_PASSWORD|
+ |LANG_LOGIN_HISTORY|
+|*if USERDNSCONTROL="ON"| + |LANG_DNS_MANAGEMENT|
+|*endif| + |LANG_SUPPORT_CENTER|
+ |LANG_INSTALLED_PERL_MODULES|
+ |LANG_CREATE_RESTORE_BACKUPS|
+
+ |LANG_SITE_SUM_STATS_LOGS|

+ +|*if USERFTPMAX!="0"| + |LANG_FTP_MANAGEMENT|
+|*endif| +|*if NUSERSUBDOMAINSMAX!="0"| + |LANG_SUBDOMAIN_MANAGEMENT|
+|*endif| +|*if FRONTPAGE_ON="yes"| + |LANG_FRONTPAGE_EXTENSIONS|
+|*endif| +|*if USERDATABASEMAX!="0"| + |LANG_MYSQL_MANAGEMENT|
+|*endif| + |LANG_PASS_PROC_DIRS|
+ + |LANG_FILE_MANAGER|
+
+
+
+ + + + + +
+|*if USEREMAILMAX!="0"| + |LANG_POP_EMAIL_ACCOUNTS|
+|*endif| +|*if USERCATCHALL="ON"| + |LANG_CATCH_ALL_EMAIL|
+|*endif| +|*if USERFORWARDERMAX!="0"| + |LANG_FORWARDERS|
+|*endif| +|*if USERRESPONDERMAX!="0"| + |LANG_AUTORESPONDERS|
+|*endif| +|*if USEREMAILMAX!="0"| + |LANG_VAC_MESSAGES|
+|*endif| +|*if USERSPAM="ON"| + |LANG_SPAMASSASSIN|
+|*endif| +
+|*if USERMLISTMAX!="0"| + |LANG_MAILING_LISTS|
+|*endif| + +|?SHOW_LINKS=yes| +|*if USEREMAILMAX!="0"| + |LANG_SPAM_FILTERS|
+|*else| + |?SHOW_LINKS=no| +|*endif| +|*if HIDE_WEBMAIL_LINKS="yes"| + |?SHOW_LINKS=no| +|*endif| +|*if SHOW_LINKS="no"| + |?HAVE_SQUIRRELMAIL=no| + |?HAVE_WEBMAIL=no| + |?HAVE_ROUNDCUBE=no| + |?HAVE_ATMAIL=no| +|*endif| + +|*if HAVE_SQUIRRELMAIL="yes"| +|LANG_WEBMAIL_SM|
+|*endif| + +|*if HAVE_WEBMAIL="yes"| +|LANG_WEBMAIL_UEBI|
+|*endif| + +|*if HAVE_ROUNDCUBE="yes"| +|LANG_WEBMAIL_ROUNDCUBE|
+|*endif| + +|*if HAVE_ATMAIL="yes"| +|LANG_WEBMAIL_ATMAIL|
+|*endif| + +|?CAN_MX=ON| +|*if USERDNSCONTROL!="ON"| +|?CAN_MX=OFF| +|*endif| +|*if LOCAL_MAILSERVER_WITHOUT_DNSCONTROL="1"| +|?CAN_MX=ON| +|*endif| + +|*if CAN_MX="ON"| + |LANG_MX_RECORDS|
+|*endif| +
+
+
+ + + + + +
+|*if USERSYSINFO="ON"| + |LANG_SERVER_INFO|
+|*endif| +|*if USERSSL="ON"| + |LANG_SSL_CERTS|
+|*endif| +|*if USERCRON="ON"| + |LANG_CRONJOBS|
+|*endif| + |LANG_MIMETYPES|
+ |LANG_APACHE_HANDLERS|
+|*if USERSSH="ON"| + |LANG_SSH_KEYS|
+|*endif| +|$/usr/local/bin/php + 1) +{ +echo << +|PLUGIN_3_TXT|
+|PLUGIN_4_TXT|
+|PLUGIN_6_TXT|
+|PLUGIN_8_TXT|
+|PLUGIN_10_TXT|
+|PLUGIN_12_TXT| +END; +} +?> +DONE| +
+ |LANG_CUSTOM_ERROR_PAGES|
+ +|?PMA_URL=`HTTP`://`HOSTNAME`/phpmyadmin| +|*if PHPMYADMIN_PUBLIC="no"| +|?PMA_URL=CMD_DB?domain=`domain`| +|*endif| +|?PMA_HREF=`LANG_PHPMYADMIN`
| +|*if HAVE_PHPMYADMIN="no"| +|?PMA_HREF=| +|*endif| + |PMA_HREF| + + |LANG_SITE_REDIRECTION|
+ |LANG_HOTLINK_PROTECTION|
+|*if USERPOINTERSMAX!="0"| + |LANG_DOMAIN_POINTERS|
+|*endif| +|*if LOGIN_KEYS_ENABLED="0"| +|?USERLOGINKEYS=OFF| +|*endif| +|*if USERLOGINKEYS="ON"| + |LANG_LOGIN_KEYS|
+|*endif| +|$/usr/local/bin/php + 1) +{ +echo << +|PLUGIN_1_TXT|
+|PLUGIN_5_TXT|
+|PLUGIN_7_TXT|
+|PLUGIN_9_TXT|
+|PLUGIN_11_TXT|
+|PLUGIN_13_TXT| +END; +} +?> +DONE| +
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/show_history.html b/directadmin-1.62.4/data/skins/enhanced/user/show_history.html new file mode 100644 index 0000000..1263803 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/show_history.html @@ -0,0 +1,9 @@ +|LF_STATS| +|?TREE=» `domain` » `LANG_STATS_FOR` `USERNAME` » `LANG_USER_HISTORY`| +|?HELP_SECTION=`USER_HELPER`/stats.html#logs| +|HTM_USER_TOP| + +|LANG_USER_HISTORY|
+ +|HISTORY| +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/show_log.html b/directadmin-1.62.4/data/skins/enhanced/user/show_log.html new file mode 100644 index 0000000..47608f4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/show_log.html @@ -0,0 +1,6 @@ +|?TREE=» `domain` » `LANG_USER_STATS_FOR` `USERNAME` » `LANG_APACHE_LOGS`| +|?HELP_SECTION=`USER_HELPER`/stats.html#logs| +|HTM_USER_TOP| +
+
+|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/site_backup.html b/directadmin-1.62.4/data/skins/enhanced/user/site_backup.html new file mode 100644 index 0000000..56bcde1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/site_backup.html @@ -0,0 +1,60 @@ +|LF_STANDARD| +|?TREE=» `domain` » `LANG_SITE_BACKUP`| +|?HELP_SECTION=`USER_HELPER`/backup.html| +|HTM_USER_TOP| + +|LANG_BACKUP_ALL_DOMAINS|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_SELECT_ITEMS|
|LANG_WEB_DATA|
|LANG_DOMAINS_DIR|
|LANG_SUBDOMAIN_LIST|
|LANG_EMAIL|
|LANG_POP_ACCOUNTS|
|LANG_EMAIL_DATA|
|LANG_EMAIL_SETTINGS|
|LANG_FOWARDERS|
|LANG_AUTORESPONDERS|
|LANG_VAC_MESSAGES|
|LANG_MAILING_LISTS_INCLUDE|
|LANG_FTP|
|LANG_FTP_ACCOUNTS|
|LANG_FTP_SETTINGS|
|LANG_DATABASES|
|LANG_DBS_INCLUDE|
|LANG_DB_DATA|
+ +
+
+|RESULT|
+
+|*if NUM_FILES>"0"| +|LANG_CLICK_FOR_BACKUPS|
+
+|*endif| + + + + + + + + + + +
|LANG_SELECT_FILE|
|FILES|
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/site_restore.html b/directadmin-1.62.4/data/skins/enhanced/user/site_restore.html new file mode 100644 index 0000000..52b5a16 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/site_restore.html @@ -0,0 +1,45 @@ +|LF_STANDARD| +|LF_SITE_BACKUP| +|?TREE=» `domain` » `LANG_SITE_BACKUP` » `LANG_RESTORE_FROM_FILE`| +|?HELP_SECTION=`USER_HELPER`/backup.html#restore| +|HTM_USER_TOP| + +|LANG_RESTORE_FROM_FILE|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_SELECT_ITEMS_TO_REST| |file|
|LANG_WEB_DATA|
|LANG_DOMAINS_DIR|
|LANG_SUBDOMAIN_LIST|
|LANG_EMAIL|
|LANG_POP_ACCOUNTS|
|LANG_EMAIL_DATA|
|LANG_EMAIL_SETTINGS|
|LANG_FOWARDERS|
|LANG_AUTORESPONDERS|
|LANG_VAC_MESSAGES|
|LANG_MAILING_LISTS_INCLUDE|
|LANG_FTP|
|LANG_FTP_ACCOUNTS|
|LANG_FTP_SETTINGS|
|LANG_DATABASES|
|LANG_DBS_INCLUDE|
|LANG_DB_DATA|
|LANG_DNS_ZONES|
|LANG_DNS_INCLUDE|
+ +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ssh_keys.html b/directadmin-1.62.4/data/skins/enhanced/user/ssh_keys.html new file mode 100644 index 0000000..7d99eff --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ssh_keys.html @@ -0,0 +1,42 @@ +|LF_STANDARD| +|?TREE=» `LANG_SSH_KEYS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#ssh_keys| +|HTM_HEADER_FULL| + +|LANG_AUTH_KEYS| +|AUTHORIZED_KEYS| + +

+|LANG_PUB_KEYS| +|PUBLIC_KEYS| + +

+
+
+ + + + + + + + + + + + + +
|LANG_CREATE_SSH_KEY| |LANG_AUTHORIZE|
|LANG_KEY_ID|_rsa|LANG_FILENAME_OF_NEW_KEY|
|LANG_COMMENT||LANG_DESCRIPTOR_FOR_KEY|
|LANG_KEY_SIZE||KEYSIZE_SELECT|
|LANG_PASSWORD||LANG_OPTIONAL_PASSWORD|
|LANG_PASSWORD_AGAIN||LANG_REPEAT_PASSWORD|
+
+ + + + + + + + +
|LANG_PASTE_AUTH_KEY|
Line (?)
+ + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ssh_keys_edit.html b/directadmin-1.62.4/data/skins/enhanced/user/ssh_keys_edit.html new file mode 100644 index 0000000..58bd686 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ssh_keys_edit.html @@ -0,0 +1,60 @@ +|LF_STANDARD| +|LF_SSH_KEYS| +|?TREE=» `LANG_SSH_KEYS`| +|?HELP_SECTION=`USER_HELPER`/misc.html#ssh_keys| +|HTM_HEADER_FULL| + + + +|LANG_EDIT_AUTH_KEY| +|AUTHORIZED_KEYS| + + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ssl.html b/directadmin-1.62.4/data/skins/enhanced/user/ssl.html new file mode 100644 index 0000000..28ccdba --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ssl.html @@ -0,0 +1,345 @@ +|LF_STANDARD| +|?TREE=» `DOMAIN` » `LANG_SSL`| +|?HELP_SECTION=`USER_HELPER`/ssl.html| +|HTM_USER_TOP| + + +|RESULT|
+ +|*if SSL_ON="yes"| +|LANG_SSL_ENABLED| +|*else| +|LANG_SSL_DISABLED| +|*endif| +|LANG_SSL_HERE|. + + + + + + + + + + + + + + + + |*endif| + + + + + + + + + + + + + +|*if LETSENCRYPT="1"| + + + + + +|*endif| + + + + + + + |*if CERTIFICATE_HOSTS!=""| + + + + + + + + + + + |*endif| + + + + +
|LANG_SSL_CERTS|
|LANG_USE_SERVERS|
 |LANG_USE_SHARED|
+ |LANG_CREATE_SELF_SIGNED|
+ |LANG_CREATE_CSR| + |*if LETSENCRYPT="1"| +
|LANG_FREE_LETS_ENCRYPT| Let's Encrypt
 |LANG_COUNTRY|
 |LANG_STATE|
 |LANG_CITY|
 |LANG_COMPANY|
 |LANG_COMPANY_DIV|
 |LANG_COMMON_NAME| + + |*if WILDCARD="1"| + + |*endif| +
 |LANG_EMAIL|
 |LANG_KEYSIZE|
 |LANG_CERT_TYPE|
|LANG_PASTE|
  +
+ + |LANG_IE_ONLY| + |*if LETSENCRYPT_RENEWAL_DAYS!=""| +
|LANG_LETSENCRYPT_IN_USE_AUTO_RENEWAL| |LETSENCRYPT_RENEWAL_DAYS| |LANG_LETSENCRYPT_DAYS|.
+
+ |*endif| + +
 |LANG_CERTIFICATE_HOSTS||CERTIFICATE_HOSTS|
 |LANG_CERTIFICATE_EXPIRY||NOT_AFTER|
+ +
+
+|LANG_CLICK_HERE|

+ + + + + + + + + + + +
|LANG_FORCE_SSL_REDIRECT|
+ + + +|*if EXIM_SNI_HOSTS_TABLE| + + + + +
|EXIM_SNI_HOSTS_TABLE|
+|*endif| + + +|LANG_NOTE| +|HTM_USER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ssl_ca.html b/directadmin-1.62.4/data/skins/enhanced/user/ssl_ca.html new file mode 100644 index 0000000..135b81c --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ssl_ca.html @@ -0,0 +1,71 @@ +|LF_STANDARD| +|LF_SSL| +|?TREE=»
`DOMAIN` » `LANG_SSL` » `LANG_CA_SSL`| +|?HELP_SECTION=`USER_HELPER`/ssl.html| +|HTM_USER_TOP| + + + +|RESULT|
+ + + + + + + + + + + + + + + + + + +
|LANG_CA_CERT|
+ |LANG_USE_CA| +
+
+ + |LANG_IE_ONLY| +
+ +
+ + +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ssl_request.html b/directadmin-1.62.4/data/skins/enhanced/user/ssl_request.html new file mode 100644 index 0000000..1c2f21b --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ssl_request.html @@ -0,0 +1,41 @@ +|LF_STANDARD| +|LF_SSL| +|?TREE=» `domain` » `LANG_SSL` » `LANG_CREATE_CSR`| +|?HELP_SECTION=`USER_HELPER`/ssl.html#install| +|HTM_USER_TOP| + + + + +|*if NOTICE!=""| + +|*endif| + + + + + + +
|LANG_SSL_CSR|
|NOTICE|
|LANG_HERE_IS_CSR|
+ +
|LANG_IE_ONLY|
+ +|*if USERTYPE="admin"| +|LANG_ADMIN_SAVE_KEY| +|*endif| + +|HTM_USER_BOTTOM| + + diff --git a/directadmin-1.62.4/data/skins/enhanced/user/subdomains.html b/directadmin-1.62.4/data/skins/enhanced/user/subdomains.html new file mode 100644 index 0000000..a4392fa --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/subdomains.html @@ -0,0 +1,16 @@ +|LF_STANDARD| +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_SUBDOMAINS`| +|?HELP_SECTION=`USER_HELPER`/subdomains.html| +|HTM_HEADER_FULL| + +|SUBDOMAINS| + + + + + + + + +
|LANG_ADD_SUB| .|DOMAIN|
+|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/template_user_bottom.html b/directadmin-1.62.4/data/skins/enhanced/user/template_user_bottom.html new file mode 100644 index 0000000..86d6d8a --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/template_user_bottom.html @@ -0,0 +1,171 @@ +|LF_STANDARD| +|HTM_FOOTER_BAR_1| + +|HTM_MENU_USER| + +
+ +
+ +
+|$/usr/local/bin/php +|LANG_BANDWIDTH|
", "|USERBANDWIDTH|", "|USERBANDWIDTHMAX|", "bandwidth_bar"); +show_bar("|LANG_DISK_SPACE|
", "|USERQUOTA|", "|USERQUOTAMAX|", "quota_bar"); +|*if HAVE_INODE="yes"| +show_bar("|LANG_INODES|
", "|USERINODE|", "|USERINODEMAX|", "inode_bar"); +|*endif| + +function show_bar($text, $used, $limit, $id) +{ + if($limit==0) return; + + $left=round(($used/$limit)*100); + $right=100-$left; + + switch(TRUE) + { + case ($left > 90) : $color = "RED"; break; + case ($left > 70) : $color = "ORANGE"; break; + case ($left > 50) : $color = "YELLOW"; break; + default : $color = "GREEN"; break; + } + + $bg="/IMG_SKIN_BAR_BG_".$color; + $leftImg="/IMG_SKIN_BAR_LEFT_".$color; + $rightImg="/IMG_SKIN_BAR_RIGHT_".$color; + + if($left >= 100) + { + $overBg="/IMG_SKIN_BAR_BG_".$color; + } else { + $overBg="/IMG_SKIN_BAR_BG_BLUE"; + } + + $overBg="/IMG_SKIN_BAR_BG_BLUE"; + + if ($id == "quota_bar") + { + echo ""; + echo $text; + echo ""; + } + else + { + echo $text; + } + + ?> + + + + + + + + +
background="">
+ + + + + +DONE| +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + |*if HAVE_INODE="yes"| + + + + + + |*endif| +
|LANG_USED||LANG_MAX|
|LANG_DISK_SPACE| |LANG_MB||USERQUOTA||USERQUOTAMAX|
|LANG_BANDWIDTH| |LANG_GB||USERBANDWIDTHGIG||USERBANDWIDTHMAXGIG|
|LANG_EMAILS||USEREMAIL||USEREMAILMAX|
|LANG_FTP_ACCOUNTS||USERFTP||USERFTPMAX|
|LANG_DATABASES||USERDATABASE||USERDATABASEMAX|
|LANG_INODES||USERINODE||USERINODEMAX|
+
+ + +
+ +|*if domain| + +
+|domain| +
+|*endif| + +|HTM_FOOTER_BAR_2| +|HTM_FOOTER| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/template_user_top.html b/directadmin-1.62.4/data/skins/enhanced/user/template_user_top.html new file mode 100644 index 0000000..ca9299d --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/template_user_top.html @@ -0,0 +1,2 @@ +|HTM_HEADER| +|HTM_HEADER_BAR| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ticket/create.html b/directadmin-1.62.4/data/skins/enhanced/user/ticket/create.html new file mode 100644 index 0000000..945ec17 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ticket/create.html @@ -0,0 +1,40 @@ +|LF_STANDARD| +|LF_TICKET| +|?TREE=» `LANG_MESS_SYS` » `LANG_CREATE_A` `TYPE`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#ticket| +|HTM_USER_TOP| + + + + + + + + + + + + + + + +
|LANG_CREATE| |TYPE|
|LANG_TO||TCKTTO||LANG_PRIORITY| +
|LANG_SUBJECT|
|LANG_MESSAGE|
+|?SHOW_ALL_EMAIL_CHECKBOX=display:none| +|*if EML_ONLY_CHEKCED="checked"| +|?SHOW_ALL_EMAIL_CHECKBOX=| +|*endif| +|*if SHOW_EML_ONLY="yes"| + + |LANG_ALL_EMAIL_ACCOUNTS|   + + |LANG_EMAIL_ONLY|   +|*endif| + +
+ +|HTM_USER_BOTTOM| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ticket/create_multiple.html b/directadmin-1.62.4/data/skins/enhanced/user/ticket/create_multiple.html new file mode 100644 index 0000000..44859e8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ticket/create_multiple.html @@ -0,0 +1,42 @@ +|LF_STANDARD| +|LF_TICKET| +|?TREE=» `LANG_SHOW_USERS` » `LANG_MESS_MULTIPLE`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#ticket| +|HTM_RESELLER_TOP| + + + + + + + + + |USERLIST| + + + + + + + + +
|LANG_CREATE_MESS|
|LANG_TO||LANG_MULTIPLE_USERS||LANG_PRIORITY| +
|LANG_SUBJECT|
|LANG_MESSAGE|
+|?SHOW_ALL_EMAIL_CHECKBOX=display:none| +|*if EML_ONLY_CHEKCED="checked"| +|?SHOW_ALL_EMAIL_CHECKBOX=| +|*endif| +|*if SHOW_EML_ONLY="yes"| + + |LANG_ALL_EMAIL_ACCOUNTS|   + + |LANG_EMAIL_ONLY|   +|*endif| + +
+ +|HTM_RESELLER_BOTTOM| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ticket/main.html b/directadmin-1.62.4/data/skins/enhanced/user/ticket/main.html new file mode 100644 index 0000000..a0e3028 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ticket/main.html @@ -0,0 +1,24 @@ +|LF_STANDARD| +|?TREE=» `LANG_MESS_SYS`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#ticket| +|HTM_HEADER_FULL| + +|LANG_CREATE_TICKET|
+|LANG_VIEW_CLOSED_TICKETS||NEWCLOSED|
+ +|TICKETS| +|MESSAGES| + + + +

+|CLEAR_MESSAGES_TABLE| + +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ticket/main_closed.html b/directadmin-1.62.4/data/skins/enhanced/user/ticket/main_closed.html new file mode 100644 index 0000000..6c34b24 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ticket/main_closed.html @@ -0,0 +1,11 @@ +|LF_TICKET| +|?TREE=» `LANG_MESS_SYS` » `LANG_VIEW_CLOSED_TICKETS`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#ticket| +|HTM_HEADER_FULL| + +|LANG_CREATE_TICKET|
+
+|LANG_LIST_OF_CLOSED|
+|TICKETS| + +|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ticket/reply.html b/directadmin-1.62.4/data/skins/enhanced/user/ticket/reply.html new file mode 100644 index 0000000..9cb738f --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ticket/reply.html @@ -0,0 +1,28 @@ +|LF_STANDARD| +|LF_TICKET| +|?TREE=» `LANG_MESS_SYS` » `LANG_VIEW` `type` `number` » `LANG_REPLY_TO`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#ticket| +|HTM_HEADER_FULL| + + + + + + + + + + + + + + + + + + +
|LANG_ADD_REPLY|
|LANG_SUBJECT||subject|
|LANG_MESSAGE|
+ +
+ +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/ticket/view.html b/directadmin-1.62.4/data/skins/enhanced/user/ticket/view.html new file mode 100644 index 0000000..42fc866 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/ticket/view.html @@ -0,0 +1,20 @@ +|LF_TICKET| +|?TREE=» `LANG_MESS_SYS` » `LANG_VIEW` `type` `number`| +|?HELP_SECTION=`USER_HELPER`/gettingstarted.html#ticket| +|HTM_HEADER_FULL| + +|REPLYBUTTON| + +|TICKETMESSAGES| + +|*if type="message"| +
+ + +

+
+|*endif| + +|REPLYBUTTON| + +|HTM_FOOTER_FULL| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/enhanced/user/twostep_auth.html b/directadmin-1.62.4/data/skins/enhanced/user/twostep_auth.html new file mode 100644 index 0000000..f4279c2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/twostep_auth.html @@ -0,0 +1,128 @@ +|?TREE=» `LANG_TWOSTEP_AUTH`| +|HTM_HEADER_FULL| + +|LANG_TWOSTEP_AUTH|
+ +
|LANG_TWOSTEP_AUTH_INFO|
+ +|*if TWOSTEP_TRUSTED_DEVICE="yes"| +
+
|LANG_CURRENTLY_TRUSTED| + + +
+|*endif| + +|?SQ_BOLD_OPEN=| +|?SQ_BOLD_CLOSE=| +|*if TWOSTEP_AUTH_CHECKED=""| +
|LANG_FEATURE_OFF|
+|LANG_CREATE_A_SECRET| +|?SQ_BOLD_OPEN=| +|?SQ_BOLD_CLOSE=| +|*endif| + + +
+ + + + + + + + + + + + + +|*if QR_URL!=""| + + + + + + +|*endif| + + + + + + + + + + + + + + + + + + + + + + + + +
|LANG_SETTINGS|
|LANG_SECRET||SPACED_SECRET|     +
+ |LANG_NEW_SECRET_NOTE| +
QR Code +
+ |LANG_SCAN_TO_PHONE| +
+
+ + |LANG_CHECK_BEFORE_LOGOUT|:
+
+ +
+
|LANG_DESCRIPTION|
|SQ_BOLD_OPEN||LANG_REQUIRE_AUTH_CODE||SQ_BOLD_CLOSE|
|LANG_ALLOW_AP_LOGIN|
|LANG_NOTIFY_ME| |MAX_ATTEMPTS| |LANG_FAILED_ATTEMPTS|
+ + + +
+|SCRATCH_CODES| + +
+|HTM_FOOTER_FULL| diff --git a/directadmin-1.62.4/data/skins/enhanced/user/user_stats.html b/directadmin-1.62.4/data/skins/enhanced/user/user_stats.html new file mode 100644 index 0000000..7d2dce1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/user/user_stats.html @@ -0,0 +1,50 @@ +|?TREE=» `ALL_DOMAINS_SELECT` » `LANG_STATS_FOR` `USERNAME`| +|?HELP_SECTION=`USER_HELPER`/stats.html| +|HTM_HEADER| +|HTM_HEADER_WIDE| +|LANG_DETAILS_FOR| |USERNAME|

+|LANG_APACHE_LOGS|
+|LANG_USER_HISTORY|
+ + + + + + + + + + + + + + + +
|LANG_LOG_TYPE||LANG_FULL_LOG||LANG_LAST_LINES|
+ |LANG_APACHE_USAGE| + + |LANG_FULL_USAGE| + + |LANG_10_LINES|   + |LANG_100_LINES| +
+ |LANG_APACHE_ERROR| + + |LANG_FULL_ERROR| + + |LANG_10_LINES|   + |LANG_100_LINES| +
+ +|DOMAINS| + +
+|LANG_WEBALIZER| +

+|LANG_NOTE| +

+ +|STATS| +
|RESULT|
+|HTM_FOOTER_WIDE| +|HTM_FOOTER| diff --git a/directadmin-1.62.4/data/skins/enhanced/visibility.js b/directadmin-1.62.4/data/skins/enhanced/visibility.js new file mode 100644 index 0000000..c794985 --- /dev/null +++ b/directadmin-1.62.4/data/skins/enhanced/visibility.js @@ -0,0 +1,31 @@ +function set_expand_visible(toggle_name, vis_name) +{ + var vis_element = document.getElementById(vis_name); + var toggle_element = document.getElementById(toggle_name); + + vis_element.style.display = ''; + toggle_element.innerHTML = "-"; + toggle_element.className = "expand_toggle_neg"; +} +function set_expand_hidden(toggle_name, vis_name) +{ + var vis_element = document.getElementById(vis_name); + var toggle_element = document.getElementById(toggle_name); + + vis_element.style.display = 'none'; + toggle_element.innerHTML = "+"; + toggle_element.className = "expand_toggle_plus"; +} + +function toggle_expand(toggle_name, vis_name) +{ + var vis_element = document.getElementById(vis_name); + if (vis_element.style.display == 'none') + { + set_expand_visible(toggle_name, vis_name); + } + else + { + set_expand_hidden(toggle_name, vis_name); + } +} diff --git a/directadmin-1.62.4/data/skins/evolution/app.html b/directadmin-1.62.4/data/skins/evolution/app.html new file mode 100644 index 0000000..51a8033 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/app.html @@ -0,0 +1,30 @@ + + + + + + + |*if SHOW_INFO_IN_TITLE="0"| + |HOSTNAME| + |*else| + |HOSTNAME| | |DEAMONNAME| |VERSION| + |*endif| + + + + |HTM_HEAD| + + +
+ +
+ + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/app.js b/directadmin-1.62.4/data/skins/evolution/assets/app.js new file mode 100644 index 0000000..3b8e5ae --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/app.js @@ -0,0 +1,185 @@ +!function(e){function n(n){for(var r,o,s=n[0],l=n[1],u=n[2],d=0,p=[];dt.parts.length&&(r.parts.length=t.parts.length)}else{var o=[];for(i=0;i=arguments.length)?l=n[s]:(l=arguments[a],a+=1),i[s]=l,r(l)||(o-=1),s+=1}return o<=0?t.apply(this,i):p(o,f(e,i,t))}}var h=u((function(e,n){return 1===e?i(n):p(e,f(e,[],n))})),m=i((function(e){return h(e.length,(function(){var n=0,t=arguments[0],r=arguments[arguments.length-1],i=Array.prototype.slice.call(arguments,0);return i[0]=function(){var e=t.apply(this,d(arguments,[n,r]));return n+=1,e},e.apply(this,i)}))}));function g(e){return function n(t,a,o){switch(arguments.length){case 0:return n;case 1:return r(t)?n:u((function(n,r){return e(t,n,r)}));case 2:return r(t)&&r(a)?n:r(t)?u((function(n,t){return e(n,a,t)})):r(a)?u((function(n,r){return e(t,n,r)})):i((function(n){return e(t,a,n)}));default:return r(t)&&r(a)&&r(o)?n:r(t)&&r(a)?u((function(n,t){return e(n,t,o)})):r(t)&&r(o)?u((function(n,t){return e(n,a,t)})):r(a)&&r(o)?u((function(n,r){return e(t,n,r)})):r(t)?i((function(n){return e(n,a,o)})):r(a)?i((function(n){return e(t,n,o)})):r(o)?i((function(n){return e(t,a,n)})):e(t,a,o)}}}var v=g((function(e,n,t){if(n>=t.length||n<-t.length)return t;var r=(n<0?t.length:0)+n,i=d(t);return i[r]=e(t[r]),i})),b=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};function $(e){return"function"==typeof e["@@transducer/step"]}function A(e,n,t){return function(){if(0===arguments.length)return t();var r=Array.prototype.slice.call(arguments,0),i=r.pop();if(!b(i)){for(var a=0;ae?n:e}));function k(e,n){for(var t=0,r=n.length,i=Array(r);t0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))})),S=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,n){return this.f(e,n)},e}();function E(e){return new S(e)}var j=u((function(e,n){return p(e.length,(function(){return e.apply(n,arguments)}))}));function P(e,n,t){for(var r=t.next();!r.done;){if((n=e["@@transducer/step"](n,r.value))&&n["@@transducer/reduced"]){n=n["@@transducer/value"];break}r=t.next()}return e["@@transducer/result"](n)}function z(e,n,t,r){return e["@@transducer/result"](t[r](j(e["@@transducer/step"],e),n))}var T="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function D(e,n,t){if("function"==typeof e&&(e=E(e)),O(t))return function(e,n,t){for(var r=0,i=t.length;r=0;)I(n=U[t],e)&&!q(r,n)&&(r[r.length]=n),t-=1;return r}:function(e){return Object(e)!==e?[]:Object.keys(e)}),W=u(A(["fantasy-land/map","map"],M,(function(e,n){switch(Object.prototype.toString.call(n)){case"[object Function]":return h(n.length,(function(){return e.call(this,n.apply(this,arguments))}));case"[object Object]":return D((function(t,r){return t[r]=e(n[r]),t}),{},V(n));default:return k(e,n)}}))),G=u((function(e,n){for(var t=n,r=0;r=0?r:0);ti?1:0})),fe=g((function(e,n,t){var r={};for(var i in t)r[i]=t[i];return r[e]=n,r})),he=Number.isInteger||function(e){return e<<0===e},me=i((function(e){return null==e})),ge=g((function e(n,t,r){if(0===n.length)return t;var i=n[0];if(n.length>1){var a=!me(r)&&I(i,r)?r[i]:he(n[1])?[]:{};t=e(Array.prototype.slice.call(n,1),t,a)}if(he(i)&&b(r)){var o=[].concat(r);return o[i]=t,o}return fe(i,t,r)})),ve=u((function(e,n){switch(e){case 0:return function(){return n.call(this)};case 1:return function(e){return n.call(this,e)};case 2:return function(e,t){return n.call(this,e,t)};case 3:return function(e,t,r){return n.call(this,e,t,r)};case 4:return function(e,t,r,i){return n.call(this,e,t,r,i)};case 5:return function(e,t,r,i,a){return n.call(this,e,t,r,i,a)};case 6:return function(e,t,r,i,a,o){return n.call(this,e,t,r,i,a,o)};case 7:return function(e,t,r,i,a,o,s){return n.call(this,e,t,r,i,a,o,s)};case 8:return function(e,t,r,i,a,o,s,l){return n.call(this,e,t,r,i,a,o,s,l)};case 9:return function(e,t,r,i,a,o,s,l,u){return n.call(this,e,t,r,i,a,o,s,l,u)};case 10:return function(e,t,r,i,a,o,s,l,u,c){return n.call(this,e,t,r,i,a,o,s,l,u,c)};default:throw new Error("First argument to nAry must be a non-negative integer no greater than ten")}})),be=i((function(e){return ve(2,e)}));function $e(e){return"[object Function]"===Object.prototype.toString.call(e)}var Ae=u((function(e,n){var t=h(e,n);return h(e,(function(){return D(re,W(t,arguments[0]),Array.prototype.slice.call(arguments,1))}))})),ye=i((function(e){return Ae(e.length,e)})),we=u((function(e,n){return $e(e)?function(){return e.apply(this,arguments)&&n.apply(this,arguments)}:ye(J)(e,n)})),xe=i((function(e){return h(e.length,e)})),Ce=xe((function(e){return e.apply(this,Array.prototype.slice.call(arguments,1))}));function _e(e){return function n(t){for(var r,i,a,o=[],s=0,l=t.length;sn)throw new Error("min must not be greater than max in clamp(min, max, value)");return tn?n:t}));function Se(e){return new RegExp(e.source,(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.sticky?"y":"")+(e.unicode?"u":""))}var Ee=i((function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)}));function je(e,n,t,r){var i=function(i){for(var a=n.length,o=0;o=0;){if(t[a]===e)return r[a]===n;a-=1}switch(i){case"Map":return e.size===n.size&&Qe(e.entries(),n.entries(),t.concat([e]),r.concat([n]));case"Set":return e.size===n.size&&Qe(e.values(),n.values(),t.concat([e]),r.concat([n]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var o=V(e);if(o.length!==V(n).length)return!1;var s=t.concat([e]),l=r.concat([n]);for(a=o.length-1;a>=0;){var u=o[a];if(!I(u,n)||!Ke(n[u],e[u],s,l))return!1;a-=1}return!0}var Je=u((function(e,n){return Ke(e,n,[],[])}));function Ze(e,n,t){var r,i;if("function"==typeof e.indexOf)switch(typeof n){case"number":if(0===n){for(r=1/n;t=0}function nn(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var tn=function(e){return(e<10?"0":"")+e},rn="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+tn(e.getUTCMonth()+1)+"-"+tn(e.getUTCDate())+"T"+tn(e.getUTCHours())+":"+tn(e.getUTCMinutes())+":"+tn(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};function an(e){return function(){return!e.apply(this,arguments)}}function on(e,n){for(var t=0,r=n.length,i=[];t":e(r,i)},i=function(e,n){return k((function(n){return nn(n)+": "+r(e[n])}),n.slice().sort())};switch(Object.prototype.toString.call(n)){case"[object Arguments]":return"(function() { return arguments; }("+k(r,n).join(", ")+"))";case"[object Array]":return"["+k(r,n).concat(i(n,cn((function(e){return/^\d+$/.test(e)}),V(n)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof n?"new Boolean("+r(n.valueOf())+")":n.toString();case"[object Date]":return"new Date("+(isNaN(n.valueOf())?r(NaN):nn(rn(n)))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof n?"new Number("+r(n.valueOf())+")":1/n==-1/0?"-0":n.toString(10);case"[object String]":return"object"==typeof n?"new String("+r(n.valueOf())+")":nn(n);case"[object Undefined]":return"undefined";default:if("function"==typeof n.toString){var a=n.toString();if("[object Object]"!==a)return a}return"{"+i(n,V(n)).join(", ")+"}"}}(e,[])})),pn=u((function(e,n){if(b(e)){if(b(n))return e.concat(n);throw new TypeError(dn(n)+" is not an array")}if(B(e)){if(B(n))return e+n;throw new TypeError(dn(n)+" is not a string")}if(null!=e&&$e(e["fantasy-land/concat"]))return e["fantasy-land/concat"](n);if(null!=e&&$e(e.concat))return e.concat(n);throw new TypeError(dn(e)+' does not have a method named "concat" or "fantasy-land/concat"')})),fn=i((function(e){return p(Q(_,0,W((function(e){return e[0].length}),e)),(function(){for(var n=0;n10)throw new Error("Constructor with greater than ten arguments");return 0===e?function(){return new n}:xe(ve(e,(function(e,t,r,i,a,o,s,l,u,c){switch(arguments.length){case 1:return new n(e);case 2:return new n(e,t);case 3:return new n(e,t,r);case 4:return new n(e,t,r,i);case 5:return new n(e,t,r,i,a);case 6:return new n(e,t,r,i,a,o);case 7:return new n(e,t,r,i,a,o,s);case 8:return new n(e,t,r,i,a,o,s,l);case 9:return new n(e,t,r,i,a,o,s,l,u);case 10:return new n(e,t,r,i,a,o,s,l,u,c)}})))})),mn=i((function(e){return hn(e.length,e)})),gn=u(en),vn=u((function(e,n){return h(Q(_,0,Y("length",n)),(function(){var t=arguments,r=this;return e.apply(r,k((function(e){return e.apply(r,t)}),n))}))})),bn=function(){function e(e,n,t,r){this.valueFn=e,this.valueAcc=n,this.keyFn=t,this.xf=r,this.inputs={}}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){var n;for(n in this.inputs)if(I(n,this.inputs)&&(e=this.xf["@@transducer/step"](e,this.inputs[n]))["@@transducer/reduced"]){e=e["@@transducer/value"];break}return this.inputs=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,n){var t=this.keyFn(n);return this.inputs[t]=this.inputs[t]||[t,this.valueAcc],this.inputs[t][1]=this.valueFn(this.inputs[t][1],n),e},e}(),$n=f(4,[],A([],f(4,[],(function(e,n,t,r){return new bn(e,n,t,r)})),(function(e,n,t,r){return D((function(r,i){var a=t(i);return r[a]=e(I(a,r)?r[a]:n,i),r}),{},r)}))),An=$n((function(e,n){return e+1}),0),yn=c(-1),wn=u((function(e,n){return null==n||n!=n?e:n})),xn=g((function(e,n,t){var r=e(n),i=e(t);return r>i?-1:r0?(this.n-=1,e):this.xf["@@transducer/step"](e,n)},e}(),Pn=u(A(["drop"],u((function(e,n){return new jn(e,n)})),(function(e,n){return Ie(Math.max(0,e),1/0,n)}))),zn=function(){function e(e,n){this.xf=n,this.n=e,this.i=0}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,n){this.i+=1;var t=0===this.n?e:this.xf["@@transducer/step"](e,n);return this.n>=0&&this.i>=this.n?y(t):t},e}(),Tn=u(A(["take"],u((function(e,n){return new zn(e,n)})),(function(e,n){return Ie(0,e<0?1/0:e,n)})));function Dn(e,n){return Tn(e=0&&e(n[t]);)t-=1;return Ie(0,t+1,n)}var Rn=function(){function e(e,n){this.f=e,this.retained=[],this.xf=n}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.retained=null,this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,n){return this.f(n)?this.retain(e,n):this.flush(e,n)},e.prototype.flush=function(e,n){return e=D(this.xf["@@transducer/step"],e,this.retained),this.retained=[],this.xf["@@transducer/step"](e,n)},e.prototype.retain=function(e,n){return this.retained.push(n),e},e}(),Fn=u(A([],u((function(e,n){return new Rn(e,n)})),In)),Ln=function(){function e(e,n){this.xf=n,this.pred=e,this.lastValue=void 0,this.seenFirstValue=!1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,n){var t=!1;return this.seenFirstValue?this.pred(this.lastValue,n)&&(t=!0):this.seenFirstValue=!0,this.lastValue=n,t?e:this.xf["@@transducer/step"](e,n)},e}(),Un=u((function(e,n){return new Ln(e,n)})),Hn=u((function(e,n){var t=e<0?n.length+e:e;return B(n)?n.charAt(t):n[t]})),qn=Hn(-1),Vn=u(A([],Un,(function(e,n){var t=[],r=1,i=n.length;if(0!==i)for(t[0]=n[0];r=0?n.length-e:0,n)})),Zn=u((function(e,n){return Je(Jn(e.length,n),e)})),et=g((function(e,n,t){return Je(e(n),e(t))})),nt=g((function(e,n,t){return Je(n[e],t[e])})),tt=u((function e(n,t){var r,i,a,o={};for(i in t)a=typeof(r=n[i]),o[i]="function"===a?r(t[i]):r&&"object"===a?e(r,t[i]):t[i];return o})),rt=function(){function e(e,n){this.xf=n,this.f=e,this.found=!1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.found||(e=this.xf["@@transducer/step"](e,void 0)),this.xf["@@transducer/result"](e)},e.prototype["@@transducer/step"]=function(e,n){return this.f(n)&&(this.found=!0,e=y(this.xf["@@transducer/step"](e,n))),e},e}(),it=u(A(["find"],u((function(e,n){return new rt(e,n)})),(function(e,n){for(var t=0,r=n.length;t=0;){if(e(n[t]))return n[t];t-=1}}))),ut=function(){function e(e,n){this.xf=n,this.f=e,this.idx=-1,this.lastIdx=-1}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=function(e){return this.xf["@@transducer/result"](this.xf["@@transducer/step"](e,this.lastIdx))},e.prototype["@@transducer/step"]=function(e,n){return this.idx+=1,this.f(n)&&(this.lastIdx=this.idx),e},e}(),ct=u(A([],u((function(e,n){return new ut(e,n)})),(function(e,n){for(var t=n.length-1;t>=0;){if(e(n[t]))return t;t-=1}return-1}))),dt=i(_e(!0)),pt=i((function(e){return h(e.length,(function(n,t){var r=Array.prototype.slice.call(arguments,0);return r[0]=t,r[1]=n,e.apply(this,r)}))})),ft=u(Me("forEach",(function(e,n){for(var t=n.length,r=0;rn})),$t=u((function(e,n){return e>=n})),At=u(I),yt=u((function(e,n){return e in n})),wt=Hn(0);function xt(e){return e}var Ct=i(xt),_t=g((function(e,n,t){return h(Math.max(e.length,n.length,t.length),(function(){return e.apply(this,arguments)?n.apply(this,arguments):t.apply(this,arguments)}))})),kt=c(1),Bt=$n((function(e,n){return n}),null),Ot=u((function(e,n){return"function"!=typeof n.indexOf||b(n)?Ze(n,e,0):n.indexOf(e)})),St=Ie(0,-1),Et=g((function(e,n,t){return on((function(n){return Xe(e,n,t)}),n)})),jt=g((function(e,n,t){e=e=0?e:t.length;var r=Array.prototype.slice.call(t,0);return r.splice(e,0,n),r})),Pt=g((function(e,n,t){return e=e=0?e:t.length,[].concat(Array.prototype.slice.call(t,0,e),n,Array.prototype.slice.call(t,e))}));function zt(e,n,t){var r,i=typeof e;switch(i){case"string":case"number":return 0===e&&1/e==-1/0?!!t._items["-0"]||(n&&(t._items["-0"]=!0),!1):null!==t._nativeSet?n?(r=t._nativeSet.size,t._nativeSet.add(e),t._nativeSet.size===r):t._nativeSet.has(e):i in t._items?e in t._items[i]||(n&&(t._items[i][e]=!0),!1):(n&&(t._items[i]={},t._items[i][e]=!0),!1);case"boolean":if(i in t._items){var a=e?1:0;return!!t._items[i][a]||(n&&(t._items[i][a]=!0),!1)}return n&&(t._items[i]=e?[!1,!0]:[!0,!1]),!1;case"function":return null!==t._nativeSet?n?(r=t._nativeSet.size,t._nativeSet.add(e),t._nativeSet.size===r):t._nativeSet.has(e):i in t._items?!!en(e,t._items[i])||(n&&t._items[i].push(e),!1):(n&&(t._items[i]=[e]),!1);case"undefined":return!!t._items[i]||(n&&(t._items[i]=!0),!1);case"object":if(null===e)return!!t._items.null||(n&&(t._items.null=!0),!1);default:return(i=Object.prototype.toString.call(e))in t._items?!!en(e,t._items[i])||(n&&t._items[i].push(e),!1):(n&&(t._items[i]=[e]),!1)}}var Tt=function(){function e(){this._nativeSet="function"==typeof Set?new Set:null,this._items={}}return e.prototype.add=function(e){return!zt(e,!0,this)},e.prototype.has=function(e){return zt(e,!1,this)},e}(),Dt=u((function(e,n){for(var t,r,i=new Tt,a=[],o=0;on.length?(t=e,r=n):(t=n,r=e),Nt(on(pt(en)(t),r))})),It=u(Me("intersperse",(function(e,n){for(var t=[],r=0,i=n.length;r=0;){if(Je(n[t],e))return t;t-=1}return-1}return n.lastIndexOf(e)}));function er(e){return"[object Number]"===Object.prototype.toString.call(e)}var nr=i((function(e){return null!=e&&er(e.length)?e.length:NaN})),tr=u((function(e,n){return function(t){return function(r){return W((function(e){return n(e,r)}),t(e(r)))}}})),rr=i((function(e){return tr(Hn(e),On(e))})),ir=i((function(e){return tr(G(e),ge(e))})),ar=i((function(e){return tr(X(e),fe(e))})),or=u((function(e,n){return e=0;)a=e(t[r],a[0]),i[r]=a[1],r-=1;return[i,a[0]]})),cr=u((function(e,n){return D((function(t,r){return t[r]=e(n[r],r,n),t}),{},V(n))})),dr=u((function(e,n){return n.match(e)||[]})),pr=u((function(e,n){return he(e)?!he(n)||n<1?NaN:(e%n+n)%n:NaN})),fr=g((function(e,n,t){return e(t)>e(n)?t:n})),hr=Q(c,0),mr=i((function(e){return hr(e)/e.length})),gr=i((function(e){var n=e.length;if(0===n)return NaN;var t=2-n%2,r=(n-t)/2;return mr(Array.prototype.slice.call(e,0).sort((function(e,n){return en?1:0})).slice(r,r+t))})),vr=u((function(e,n){var t={};return p(n.length,(function(){var r=e.apply(this,arguments);return I(r,t)||(t[r]=n.apply(this,arguments)),t[r]}))})),br=vr((function(){return dn(arguments)})),$r=u((function(e,n){return Rt({},e,n)})),Ar=i((function(e){return Rt.apply(null,[{}].concat(e))})),yr=g((function(e,n,t){var r,i={};for(r in n)I(r,n)&&(i[r]=I(r,t)?e(r,n[r],t[r]):n[r]);for(r in t)I(r,t)&&!I(r,i)&&(i[r]=t[r]);return i})),wr=g((function e(n,t,r){return yr((function(t,r,i){return sn(r)&&sn(i)?e(n,r,i):n(t,r,i)}),t,r)})),xr=u((function(e,n){return wr((function(e,n,t){return n}),e,n)})),Cr=u((function(e,n){return wr((function(e,n,t){return t}),e,n)})),_r=g((function(e,n,t){return wr((function(n,t,r){return e(t,r)}),n,t)})),kr=g((function(e,n,t){return yr((function(n,t,r){return e(t,r)}),n,t)})),Br=u((function(e,n){return n0&&e(G(n,t))})),Yr=u((function(e,n){for(var t={},r=0;r=0;)n=e(t[r],n),r-=1;return n})),ci=f(4,[],(function(e,n,t,r){return D((function(t,r){return e(t,r)?n(t,r):y(t)}),t,r)})),di=i(y),pi=u((function(e,n){var t,r=Number(n),i=0;if(r<0||isNaN(r))throw new RangeError("n must be a non-negative number");for(t=new Array(r);ii?1:0}))})),Ai=u((function(e,n){return Array.prototype.slice.call(n,0).sort((function(n,t){for(var r=0,i=0;0===r&&i=0&&e(n[t]);)t-=1;return Ie(t+1,1/0,n)})),Ei=function(){function e(e,n){this.xf=n,this.f=e}return e.prototype["@@transducer/init"]=w.init,e.prototype["@@transducer/result"]=w.result,e.prototype["@@transducer/step"]=function(e,n){return this.f(n)?this.xf["@@transducer/step"](e,n):y(e)},e}(),ji=u(A(["takeWhile"],u((function(e,n){return new Ei(e,n)})),(function(e,n){for(var t=0,r=n.length;t1&&void 0!==arguments[1]?arguments[1]:{};return r._.debounce(e,n.delay||i.DEBOUNCE_TIME,n)};n.openInNewTab=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=window.document.createElement("a");t.href=e,t.setAttribute("href",e),t.setAttribute("target","_blank"),n&&t.setAttribute("download",n),window.document.body.appendChild(t),t.click(),t.remove()}},function(e,n,t){"use strict";function r(e,n){if(n.length1?"s":" required, but only "+n.length+" present")}t.d(n,"a",(function(){return r}))},function(e,n,t){"use strict";t.d(n,"a",(function(){return i}));var r=t(8);function i(e){Object(r.a)(1,arguments);var n=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===n?new Date(e.getTime()):"number"==typeof e||"[object Number]"===n?new Date(e):("string"!=typeof e&&"[object String]"!==n||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}},function(e,n,t){var r=t(24);function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=i();if(n&&n.has(e))return n.get(e);var t={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var s=a?Object.getOwnPropertyDescriptor(e,o):null;s&&(s.get||s.set)?Object.defineProperty(t,o,s):t[o]=e[o]}return t.default=e,n&&n.set(e,t),t}},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.State=n.Store=void 0;var i=r(t(2)),a=r(t(12)),o=r(t(21)),s=t(13),l=t(14),u=t(50);function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}a.default.use(o.default);var d=new o.default.Store({strict:s.ENV.DEV});n.Store=d;n.State=function(e){return l._.get(d.state,e)};var p=t(695);(0,u.importAll)(p,(function(e){"function"==typeof e.module.init&&e.module.init(a.default,d),d.registerModule(e.id.replace("store-",""),function(e){for(var n=1;n()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,imgUrl:/(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*\.(?:jpg|gif|png|svg))(?:\?([^#]*))?(?:#(.*))?/,port:/^\d+$/,url:/[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/};n.COLORS={primary:{hue:196.231884057971,saturation:84.48979591836735,lightness:48.0392156862745},safe:{hue:140.625,saturation:43.24324324324324,lightness:56.470588235294116},danger:{hue:23.89830508474576,saturation:100,lightness:46.27450980392157},neutral:{hue:180,saturation:.448430493273541,lightness:43.72549019607843}};n.DEBOUNCE_TIME=500;n.ATTENTION_TIME={short:500,long:7e3};n.PX_TO_REM=10;var a=Object.freeze({OK:200,UNAUTHORIZED:401,FORBIDDEN:403,INTERNAL_SERVER_ERROR:500});n.HTTP=a;n.SEARCH_SHORTCUTS={cb:"custombuild",pma:"phpmyadmin"}},function(e,n,t){"use strict";var r=t(10);Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"_",{enumerable:!0,get:function(){return i._}}),n.css=n.fp=n.utils=void 0;var i=t(37),a=r(t(42));n.utils=a;var o=r(t(649));n.fp=o;var s=r(t(27));n.css=s},function(e,n,t){e.exports=t(670)},function(e,n){function t(e,n,t,r,i,a,o){try{var s=e[a](o),l=s.value}catch(e){return void t(e)}s.done?n(l):Promise.resolve(l).then(r,i)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(i,a){var o=e.apply(n,r);function s(e){t(o,i,a,s,l,"next",e)}function l(e){t(o,i,a,s,l,"throw",e)}s(void 0)}))}}},function(e,n,t){var r=t(653),i=t(671),a=t(654);e.exports=function(e,n){return r(e)||i(e,n)||a()}},function(e,n,t){var r;r=this,e.exports=function(e){"use strict";var n=function(e,t){return function(){var r=t.append(l.fromArray(Array.prototype.slice.call(arguments)));return r.size()>=e.length?e.apply(this,r.toArray().slice(0,r.size())):n(e,r)}},t=function(e){return!!(e&&e.constructor&&e.call&&e.apply)},r=function(e){return e},i=e.Monet={},a=i.swap=function(e){return function(n,t){return e(t,n)}},o=function(e){return this.bind(this.of.compose(e))},s=i.apply2=function(e,n,t){return n.ap(e.map(t.curry()))};i.curry=function(e){return n(e,$)},Function.prototype.curry=function(){return n(this,$)};var l=e.List=function(e,n){return new l.fn.init(e,n)},u=function(e,n){return c(e,n).run()},c=function(e,n){return n.isNil?M(n):N((function(){return c(e,n.tail())})).map(b.curry()(e(n.head())))},d=function(e,n){n.isNil||(e(n.head()),d(e,n.tail()))},p=function(e,n,t){return function n(t,r){return r.isNil?M(t):N((function(){return n(e(t,r.head()),r.tail())}))}(n,t).run()},f=function(e,n,t){return function n(t,r){return t.isNil?M(r):N((function(){return n(t.tail(),r)})).map((function(n){return e(t.head(),n)}))}(n,t).run()},h=function(e,n){return function e(n,t){return n.isNil?M(t):N((function(){return e(n.tail(),t).map((function(e){return e.cons(n.head())}))}))}(e,n).run()},m=function(e,n){return e.foldRight(n.of($))(n.map2(b))},g=function(e){return e.foldLeft($)(a(b))},v=function(e,n){return e.foldRight($)((function(e,t){return n(e)?b(e,t):t}))},b=function(e,n){return n.cons(e)};l.fn=l.prototype={init:function(e,n){null==e?(this.isNil=!0,this.size_=0):(this.isNil=!1,this.head_=e,this.tail_=null==n?$:n,this.size_=null==n?0:n.size()+1)},of:function(e){return new l(e)},size:function(){return this.size_},cons:function(e){return l(e,this)},snoc:function(e){return this.concat(l(e))},map:function(e){return u(e,this)},toArray:function(){return p((function(e,n){return e.push(n),e}),[],this)},foldLeft:function(e){var n=this;return function(t){return p(t,e,n)}},foldRight:function(e){var n=this;return function(t){return f(t,n,e)}},append:function(e){return h(this,e)},filter:function(e){return v(this,e)},flatten:function(){return f(h,this,$)},flattenMaybe:function(){return this.flatMap(y.toList)},reverse:function(){return g(this)},bind:function(e){return this.map(e).flatten()},each:function(e){d(e,this)},sequenceMaybe:function(){return m(this,y)},sequenceValidation:function(){return function(e){return e.foldLeft(_($))((function(e,n){return e.ap(n.map((function(e){return function(n){return b(e,n)}})))})).map(g)}(this)},sequenceEither:function(){return m(this,j)},sequenceIO:function(){return m(this,E)},sequenceReader:function(){return m(this,T)},sequence:function(e){return m(this,e)},head:function(){return this.head_},headMaybe:function(){return this.isNil?x():w(this.head_)},tail:function(){return this.isNil?$:this.tail_},tails:function(){return this.isNil?l($,$):this.tail().tails().cons(this)},ap:function(e){return n=e,this.bind((function(e){return n.map((function(n){return n(e)}))}));var n},isNEL:function(){return!1}},l.fn.init.prototype=l.fn;var $=e.Nil=new l.fn.init;l.prototype.empty=function(){return $},l.fromArray=function(e){for(var n=$,t=e.length;t--;t<=0)n=n.cons(e[t]);return n},l.of=function(e){return new l(e,$)};var A=e.NEL=e.NonEmptyList=function(e,n){if(null==e)throw"Cannot create an empty Non-Empty List.";return new A.fn.init(e,n)};A.of=function(e){return A(e,$)},A.fn=A.prototype={init:function(e,n){null==e?(this.isNil=!0,this.size_=0):(this.isNil=!1,this.head_=e,this.tail_=null==n?$:n,this.size_=this.tail_.size()+1)},map:function(e){return A(e(this.head_),u(e,this.tail_))},bind:function(e){var n=e(this.head_);if(!n.isNEL())throw"function must return a NonEmptyList.";var t=this.tail().foldLeft($.snoc(n.head()).append(n.tail()))((function(n,t){var r=e(t).toList();return n.snoc(r.head()).append(r.tail())}));return new A(t.head(),t.tail())},head:function(){return this.head_},tail:function(){return this.tail_},tails:function(){var e=this.toList().tails().map(A.fromList).flattenMaybe();return A(e.head(),e.tail())},toList:function(){return l(this.head_,this.tail_)},reverse:function(){if(this.tail().isNil)return this;var e=this.tail().reverse();return A(e.head(),e.tail().append(l(this.head())))},foldLeft:function(e){return this.toList().foldLeft(e)},foldRight:function(e){return this.toList().foldRight(e)},reduceLeft:function(e){return this.tail().foldLeft(this.head())(e)},filter:function(e){return v(this.toList(),e)},append:function(e){return A.fromList(this.toList().append(e.toList())).some()},cobind:function(e){return this.cojoin().map(e)},size:function(){return this.size_},isNEL:function(){return!0}},A.fromList=function(e){return e.isNil?x():w(A(e.head(),e.tail()))},A.fn.init.prototype=A.fn,A.prototype.toArray=l.prototype.toArray,A.prototype.extract=A.prototype.copure=A.prototype.head,A.prototype.cojoin=A.prototype.tails,A.prototype.coflatMap=A.prototype.mapTails=A.prototype.cobind,A.prototype.ap=l.prototype.ap;var y=e.Maybe={};y.fromNull=function(e){return null==e?y.None():y.Some(e)},y.of=function(e){return w(e)};var w=y.Just=y.Some=e.Some=e.Just=function(e){return new y.fn.init(!0,e)},x=y.Nothing=y.None=e.None=function(){return new y.fn.init(!1,null)};y.toList=function(e){return e.toList()},y.fn=y.prototype={init:function(e,n){if(this.isValue=e,null==n&&e)throw"Illegal state exception";this.val=n},isSome:function(){return this.isValue},isNone:function(){return!this.isSome()},bind:function(e){return this.isValue?e(this.val):this},some:function(){if(this.isValue)return this.val;throw"Illegal state exception"},orSome:function(e){return this.isValue?this.val:e},orElse:function(e){return this.isValue?this:e},ap:function(e){var n=this.val;return this.isValue?e.map((function(e){return e(n)})):this},toList:function(){return this.map(l).orSome($)},toEither:function(e){return this.isSome()?P(this.val):z(e)},toValidation:function(e){return this.isSome()?_(this.val):k(e)},fold:function(e){var n=this;return function(t){return n.isSome()?t(n.val):e}},cata:function(e,n){return this.isSome()?n(this.val):e()},filter:function(e){var n=this;return n.flatMap((function(t){return e(t)?n:x()}))}},y.prototype.orJust=y.prototype.orSome,y.prototype.just=y.prototype.some,y.prototype.isJust=y.prototype.isSome,y.prototype.isNothing=y.prototype.isNone,y.fn.init.prototype=y.fn;var C=e.Validation={},_=C.Success=C.success=e.Success=function(e){return new C.fn.init(e,!0)},k=C.Fail=C.fail=e.Fail=function(e){return new C.fn.init(e,!1)};C.of=function(e){return _(e)},C.fn=C.prototype={init:function(e,n){this.val=e,this.isSuccessValue=n},success:function(){if(this.isSuccess())return this.val;throw"Illegal state. Cannot call success() on a Validation.fail"},isSuccess:function(){return this.isSuccessValue},isFail:function(){return!this.isSuccessValue},fail:function(){if(this.isSuccess())throw"Illegal state. Cannot call fail() on a Validation.success";return this.val},bind:function(e){return this.isSuccess()?e(this.val):this},ap:function(e){var n=this.val;return this.isSuccess()?e.map((function(e){return e(n)})):e.isFail()?C.Fail(O.append(n,e.fail())):this},acc:function(){var e=function(){return e};return this.isSuccessValue?C.success(e):this},cata:function(e,n){return this.isSuccessValue?n(this.val):e(this.val)},failMap:function(e){return this.isFail()?k(e(this.val)):this},bimap:function(e,n){return this.isSuccessValue?this.map(n):this.failMap(e)},toMaybe:function(){return this.isSuccess()?w(this.val):x()},toEither:function(){return(this.isSuccess()?P:z)(this.val)}},C.fn.init.prototype=C.fn;var B,O=e.Semigroup={};O.append=function(e,n){if(e instanceof Array)return e.concat(n);if("string"==typeof e)return e+n;if(t(e.concat))return e.concat(n);throw"Couldn't find a semigroup appender in the environment, please specify your own append function"};var S=B=e.monadTransformer=e.MonadT=e.monadT=function(e){return new S.fn.init(e)};S.of=function(e){return S(e)},S.fn=S.prototype={init:function(e){this.monad=e},map:function(e){return B(this.monad.map((function(n){return n.map(e)})))},bind:function(e){return B(this.monad.map((function(n){return n.flatMap(e)})))},ap:function(e){return B(this.monad.flatMap((function(n){return e.perform().map((function(e){return n.ap(e)}))})))},perform:function(){return this.monad}},S.fn.init.prototype=S.fn;var E=e.IO=e.io=function(e){return new E.fn.init(e)};E.of=function(e){return E((function(){return e}))},E.fn=E.prototype={init:function(e){if(!t(e))throw"IO requires a function";this.effectFn=e},map:function(e){var n=this;return E((function(){return e(n.effectFn())}))},bind:function(e){var n=this;return E((function(){return e(n.effectFn()).run()}))},ap:function(e){var n=this;return e.map((function(e){return e(n.effectFn())}))},run:function(){return this.effectFn()}},E.fn.init.prototype=E.fn,E.prototype.perform=E.prototype.performUnsafeIO=E.prototype.run;var j=e.Either={};j.of=function(e){return P(e)};var P=j.Right=e.Right=function(e){return new j.fn.init(e,!0)},z=j.Left=e.Left=function(e){return new j.fn.init(e,!1)};j.fn=j.prototype={init:function(e,n){this.isRightValue=n,this.value=e},bind:function(e){return this.isRightValue?e(this.value):this},ap:function(e){var n=this;return this.isRightValue?e.map((function(e){return e(n.value)})):this},leftMap:function(e){return this.isLeft()?z(e(this.value)):this},isRight:function(){return this.isRightValue},isLeft:function(){return!this.isRight()},right:function(){if(this.isRightValue)return this.value;throw"Illegal state. Cannot call right() on a Either.left"},left:function(){if(this.isRightValue)throw"Illegal state. Cannot call left() on a Either.right";return this.value},cata:function(e,n){return this.isRightValue?n(this.value):e(this.value)},bimap:function(e,n){return this.isRightValue?this.map(n):this.leftMap(e)},toMaybe:function(){return this.isRight()?w(this.value):x()},toValidation:function(){return this.isRight()?_(this.value):k(this.value)}},j.fn.init.prototype=j.fn;var T=e.Reader=function(e){return new T.fn.init(e)};T.of=function(e){return T((function(n){return e}))},T.ask=function(){return T(r)},T.fn=T.prototype={init:function(e){this.f=e},run:function(e){return this.f(e)},bind:function(e){var n=this;return T((function(t){return e(n.run(t)).run(t)}))},ap:function(e){var n=this;return e.bind((function(e){return T((function(t){return e(n.run(t))}))}))},map:function(e){var n=this;return T((function(t){return e(n.run(t))}))},local:function(e){var n=this;return T((function(t){return n.run(e(t))}))}},T.fn.init.prototype=T.fn;var D=e.Free={},N=D.Suspend=e.Suspend=function(e){return new D.fn.init(e,!0)},M=D.Return=e.Return=function(e){return new D.fn.init(e,!1)};D.of=function(e){return M(e)},D.liftF=function(e){return N(e.map(M))},D.fn=D.prototype={init:function(e,n){this.isSuspend=n,n?this.functor=e:this.val=e},run:function(){return this.go((function(e){return e()}))},bind:function(e){return this.isSuspend?N(this.functor.map((function(n){return n.bind(e)}))):e(this.val)},ap:function(e){return this.bind((function(n){return e.map((function(e){return e(n)}))}))},resume:function(){return this.isSuspend?z(this.functor):P(this.val)},go1:function(e){return function n(t){return t.resume().cata((function(t){return n(e(t))}),r)}(this)},go:function(e){for(var n=this.resume();n.isLeft();){var t=e(n.left());n=t.resume()}return n.right()}},D.fn.init.prototype=D.fn;var I=e.Identity=function(e){return new I.fn.init(e)};function R(e){!function(e){e.prototype.flatMap=e.prototype.chain=e.prototype.bind,e.pure=e.unit=e.of,e.prototype.of=e.of,null!=e.prototype.append&&(e.prototype.concat=e.prototype.append),e.prototype.point=e.prototype.pure=e.prototype.unit=e.prototype.of}(e),function(e){e.prototype.join=function(){return this.flatMap(r)},e.map2=function(e){return function(n,t){return n.flatMap((function(n){return t.map((function(t){return e(n,t)}))}))}}}(e),function(e){null==e.prototype.map&&(e.prototype.map=function(e){return o.call(this,e)})}(e),function(e){e.prototype.takeLeft=function(e){return s(this,e,(function(e,n){return e}))},e.prototype.takeRight=function(e){return s(this,e,(function(e,n){return n}))}}(e)}return I.of=function(e){return new I(e)},I.fn=I.prototype={init:function(e){this.val=e},bind:function(e){return e(this.val)},get:function(){return this.val}},I.fn.init.prototype=I.fn,Function.prototype.io=function(){return E(this)},Function.prototype.io1=function(){var e=this;return function(n){return E((function(){return e(n)}))}},Function.prototype.reader=function(){var e=function(n,t){return function(){var r=t.append(l.fromArray(Array.prototype.slice.call(arguments))),i=this;return r.size()+1==n.length?T((function(e){return n.apply(i,r.append(l(e)).toArray())})):e(n,r)}};return e(this,$)},Function.prototype.compose=Function.prototype.o=function(e){var n=this;return function(t){return n(e(t))}},Function.prototype.andThen=Function.prototype.map=function(e){var n=this;return function(t){return e(n(t))}},R(S),R(j),R(y),R(E),R(A),R(l),R(C),R(T),R(D),R(I),e}(r)},function(e,n,t){"use strict";function r(e){if(null===e||!0===e||!1===e)return NaN;var n=Number(e);return isNaN(n)?n:n<0?Math.ceil(n):Math.floor(n)}t.d(n,"a",(function(){return r}))},function(e,n,t){var r=t(693),i=t(655),a=t(694);e.exports=function(e){return r(e)||i(e)||a()}},,,function(e,n,t){"use strict";var r=t(10),i=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.$bindTab=n.$resizeListener=n.$scrollListener=n.$clickOutside=void 0;var a=i(t(2)),o=i(t(17)),s=i(t(12)),l=r(t(6)),u=t(50),c=t(11),d=t(14),p=t(13),f=t(27),h=t(21),m=i(t(36)),g=t(7);function v(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function b(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:"default";return d.utils.formatDate(e,d._.get(p.DATE_FORMATS,n))}}}),s.default.mixin({computed:{$domain:function(){return this.$state.app.domain},$domainUnicode:function(){return this.$p6e.toU(this.$domain||"")}}}),s.default.mixin({methods:{$reset:function(){var e=this.$options.data.bind(this);Object.assign(this,e())}}}),s.default.mixin({computed:b({},(0,h.mapGetters)({$valid:["validation/isValid"]}))}),s.default.mixin({created:function(){this.regexps=p.REGEXPS}}),p.ENV.DEV&&s.default.mixin({mounted:function(){var e=this;if(!this.$options.name){var n=this.$route.matched.find((function(n){return e===d._.get(n,"instances.default")}));this.$options.name=n?n.name:this.$options._componentTag}this.$el instanceof HTMLElement&&this.$options.name&&this.$el.setAttribute("vue-component",this.$options.name),this.$forceUpdate()}}),s.default.mixin({computed:{$p6e:function(){var e=function(e){return function(n){try{return e(n)}catch(e){return n}}};return{toA:e(m.default.toASCII),toU:e(m.default.toUnicode),email2ascii:function(e){if(!e||!e.includes("@"))return e;var n=e.split("@"),t=(0,o.default)(n,2),r=t[0],i=t[1];return[r,m.default.toASCII(i)].join("@")},email2unicode:function(e){if(!e||!e.includes("@"))return e;var n=e.split("@"),t=(0,o.default)(n,2),r=t[0],i=t[1];return[r,m.default.toUnicode(i)].join("@")}}}}}),s.default.mixin({methods:{$_initData:function(e){Object.assign(this,d._.cloneDeep(e))}}}),s.default.mixin({methods:{$_cmd:function(e){var n=this.$state.app.tokens;if(n.has_cmd_overrides){var t=n.cmd_overrides,r=t["commands.allow"],i=t["commands.deny"];return void 0!==r&&void 0===i?r.includes(e):void 0===r&&void 0!==i?!i.includes(e):!i.includes(e)&&r.includes(e)}return!0}}}),s.default.mixin({computed:{$_layout:function(){return c.Store.state.options["skin/layout"]}}});var A=[];document.body.addEventListener("click",(function(e){A.forEach((function(n){return n(e.target)}))})),window.addEventListener("touchmove",(function(e){A.forEach((function(n){return n(e.target)}))}));var y={methods:{$clickOutsideListener:function(e,n){var t=this;A.push((function(r){(function(e){return l.pipe(l.always(n),l.unless(Array.isArray,(function(e){return[e]})),l.filter(l.complement(l.isNil)),l.none((function(n){return n===e||n.contains(e)})))()})(r)&&t.$emit("clickOutside:".concat(e))}))}}};n.$clickOutside=y;var w={mounted:function(){var e=this;this.emitScroll=function(){return e.$emit("window:scroll",window.pageYOffset)},this.scroller="sidebar"===this.$_layout?window.document.querySelector("main"):window,this.scroller.addEventListener("scroll",this.emitScroll)},destroyed:function(){this.scroller.removeEventListener("scroll",this.emitScroll)}};n.$scrollListener=w;var x=[];window.addEventListener("resize",(function(){x.forEach((function(e){return e()}))}));var C={created:function(){var e=this;this.$resizeListener=function(){e.$emit("window:resize",window.innerWidth)},x.push(this.$resizeListener)},destroyed:function(){x.splice(x.indexOf(this.$resizeListener),1)}};n.$resizeListener=C;n.$bindTab=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{param:"tab"},n=e.param,t=void 0===n?"tab":n,r=e.defaultTab;return{computed:(0,a.default)({},t,{get:function(){return this.$route.params[t]||r},set:function(e){this.$route.params[t]!==e&&this.$router.replace(d._.merge({},this.$route,{params:(0,a.default)({},t,e)}))}})}}},function(e,n){function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},,function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"registerOutsideEvent",{enumerable:!0,get:function(){return r.registerOutsideEvent}});var r=t(818)},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.cssVars=n.scaleColor=n.scaleHsla=n.scale=n.toHsla=n.toHsl=n.hexToHsl=n.rgbToHsl=n.hexToRgb=n.hslToHex=n.hslToRgb=n.styler=n.spacing=n.toRem=n.themeColors=void 0;var i=r(t(2)),a=r(t(20)),o=t(37);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n1&&(t-=1),t<1/6?e+6*(n-e)*t:t<.5?n:t<2/3?e+(n-e)*(2/3-t)*6:e},l=o<.5?o*(1+a):o+a-o*a,u=2*o-l;n=s(u,l,i+1/3),t=s(u,l,i),r=s(u,l,i-1/3)}var c=function(e){return Math.round(255*e)};return{red:c(n),green:c(t),blue:c(r)}};n.hslToRgb=p;var f=o._.flow(p,(function(e){var n=e.red,t=e.green,r=e.blue,i=function(e){var n=e.toString(16);return 1===n.length?"0".concat(n):n};return"#".concat(i(n)).concat(i(t)).concat(i(r)).toUpperCase()}));n.hslToHex=f;var h=function(e){e=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,n,t,r){return n+n+t+t+r+r}));var n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return n?{red:parseInt(n[1],16),green:parseInt(n[2],16),blue:parseInt(n[3],16)}:{red:255,green:255,blue:255}};n.hexToRgb=h;var m=function(e){var n=e.red/255,t=e.green/255,r=e.blue/255,i=Math.max(n,t,r),a=Math.min(n,t,r),o=(i+a)/2,s=0,l=0;return i!==a&&(s=o<.5?(i-a)/(i+a):(i-a)/(2-i-a),l=n===i?(t-r)/(i-a):t===i?2+(r-n)/(i-a):4+(n-t)/(i-a)),(l*=60)<0&&(l+=360),{hue:l,saturation:s*=100,lightness:o*=100}};n.rgbToHsl=m;n.hexToHsl=function(e){return m(h(e))};n.toHsl=function(e){var n=e.hue,t=e.saturation,r=e.lightness;return"hsl(".concat(n,", ").concat(t,"%, ").concat(r,"%)")};var g=function(e){var n=e.hue,t=e.saturation,r=e.lightness,i=e.alpha,a=void 0===i?100:i;return"hsla(".concat(n,", ").concat(t,"%, ").concat(r,"%, ").concat((a||100)/100,")")};n.toHsla=g;var v=function(e,n){if(0===n)return e;var t=(n>0?100-e:e)*(Math.abs(n)/100);return n>0?e+t:e-t};n.scale=v;n.scaleHsla=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=n.saturation,r=n.lightness,i=n.alpha;return o._.flow((function(e){return l({},e,{saturation:v(e.saturation,t||0)})}),(function(e){return l({},e,{lightness:v(e.lightness,r||0)})}),(function(e){return l({},e,{alpha:v(100,i||0)})}))(e)};n.scaleColor=function(e){return function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=n.saturation,r=n.lightness,i=n.alpha;return o._.flow((function(e){return l({},e,{saturation:v(e.saturation,t||0)})}),(function(e){return l({},e,{lightness:v(e.lightness,r||0)})}),(function(e){return l({},e,{alpha:v(100,i||0)})}),g)(e)}};var b=document.documentElement,$={get:function(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:b;if(!t)return null;var r=t instanceof HTMLElement?window.getComputedStyle(t):t,i=r.getPropertyValue(this.varName(e,n));return this.parseValue(i)},set:function(e,n,t){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:b;r.style.setProperty(this.varName(e,n),t.toString())},use:function(e,n){return"var(".concat(this.varName(e,n),")")},varName:function(e,n){return"--".concat(e,"-").concat(n)},parseValue:function(e){return e=e.trim(),isNaN(e)?e:+e}};n.cssVars=$},function(e,n,t){"use strict";t.r(n),t.d(n,"mapReducer",(function(){return i})),t.d(n,"filterReducer",(function(){return a})),t.d(n,"pushCombiner",(function(){return o})),t.d(n,"mergeCombiner",(function(){return s})),t.d(n,"transduce",(function(){return l})),t.d(n,"pushTransduce",(function(){return u})),t.d(n,"mergeTransduce",(function(){return c}));var r=t(6),i=function(e){return function(n){return function(t,r){var i=e(r);return n(t,i)}}},a=function(e){return function(n){return function(t,r){return e(r)?n(t,r):t}}},o=function(e,n){return e.push(n),e},s=function(e,n){return r.merge(e,n)},l=r.curry((function(e,n,t,i){var a=r.compose.apply(r,t);return i.reduce(a(n),e)})),u=l([],o),c=l({},s)},function(e,n,t){"use strict";t.r(n),t.d(n,"toNumber",(function(){return r})),t.d(n,"toNumberSafe",(function(){return i})),t.d(n,"toLimit",(function(){return a})),t.d(n,"toBoolean",(function(){return o})),t.d(n,"toAppHtml",(function(){return s})),t.d(n,"decodeHtmlEntities",(function(){return l})),t.d(n,"toAppDate",(function(){return u})),t.d(n,"toAppText",(function(){return c}));var r=function(e){var n=Number(e);if(isNaN(n))throw new Error(e+" is not a Number");return n},i=function(e){return function(n){try{return r(n)}catch(n){return e}}},a=function(e){try{return r(e)}catch(e){return 1/0}},o=function(e){return!["","no","0","OFF","NO"].includes(e)},s=function(e){return void 0===e&&(e=""),e.replace(/\\n/g,"
")},l=function(e){if(void 0===e&&(e=""),/\&[^;]*;/g.test(e))return e;var n=window.document.createElement("textarea");return n.innerHTML=e,n.innerText.replace(/\\r/g,"")},u=function(e){return new Date(1e3*r(e))},c=function(e){return e.replace(/\\n/g,"\r\n")}},function(e,n,t){"use strict";var r=t(1),i=t(10);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t(609)),o=r(t(610)),s=t(14),l=r(t(706)),u=t(724),c=r(t(725)),d=t(726),p=r(t(728)),f=i(t(729)),h=r(t(730)),m=t(731);function g(e){var n=e.id,t=e.url,r=void 0===t?(0,o.default)("url"):t,i=e.method,a=void 0===i?(0,o.default)("method"):i,f=e.accept,v=void 0===f?"application/json":f,b=e.noQueryArg,$=void 0!==b&&b,A=e.updateTokens,y=void 0!==A&&A,w=e.validationSchema,x=void 0===w?null:w,C=e.onUpload,_=void 0!==C&&C,k=l.default.bind({config:(0,c.default)({url:r,method:a,accept:v,noQueryArg:$,updateTokens:y,onUpload:_}),processor:new d.RequestDataProcessor(e),store:new u.CommandStore(e),notify:(0,p.default)({notifyError:e.notifyError||!1,notifySuccess:e.notifySuccess||!1,showNetworkError:void 0===e.showNetworkError||e.showNetworkError},n),updateTokens:y?h.default:function(){},validate:(0,m.responseValidator)(x)});return k.id=n,k.extend=function(n){return g(s._.merge({},e,n))},k}var v=Object.assign(g,a,s._.mapValues(f,(function(e){return function(n){return g(s._.merge({},e,n))}})));n.default=v},function(e,n,t){"use strict";t.r(n),t.d(n,"removeEmpty",(function(){return i})),t.d(n,"sortByLength",(function(){return a})),t.d(n,"fuzzySearch",(function(){return l}));var r=t(6),i=r.filter(r.complement(r.isEmpty)),a=r.sort(r.descend((function(e){return e.length}))),o=function(e){return r.reduce((function(e,n){var t=e.split("|"),i=(r.filter(r.complement(r.startsWith("")),t),r.findIndex((function(e){return!r.startsWith("",e)&&e.toLowerCase().includes(n)}),t));return-1===i?"":(t[i]=function(e,n){var t=r.toLower(e).indexOf(n);return[r.slice(0,t,e),"|",r.slice(t,t+n.length,e),"|",r.slice(t+n.length,1/0,e)].join("")}(t[i],n),t.join("|"))}),e)},s=r.replace(/\|/g,""),l=function(e,n){return r.pipe((function(e){return e||""}),r.toLower,r.split(" "),i,a,o(e),s)(n)}},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.predefinedString=n.predefinedArray=void 0;var i=r(t(2));function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var o=function(e){return{values:e.values,type:e.type,required:!(e.default||e.allowEmpty),default:e.default,validator:function(n){var t=e.allowEmpty&&null==n||e.values.includes(n),r=!e.validator||e.validator(n);return t&&r}}};n.predefinedArray=o;n.predefinedString=function(e){return o(function(e){for(var n=1;n=100?r=a.a.OverUsed:i>80&&(r=a.a.AlmostUsed),{usage:n,limit:t,status:r}},c=function(e){var n=i.Either.Right(e).flatMap(o).flatMap(s).map(l).map(u);if(n.isLeft())throw n.left();return n.right()},d=t(58),p=t(599),f=t(6),h=function(e){return function(n){var t=n.info;return delete n.info,{columns:t.columns,rowsCount:Number(t.rows),rows:f.map(e,f.values(n))}}};t.d(n,"toNumber",(function(){return r.toNumber})),t.d(n,"toLimit",(function(){return r.toLimit})),t.d(n,"toBoolean",(function(){return r.toBoolean})),t.d(n,"toAppHtml",(function(){return r.toAppHtml})),t.d(n,"decodeHtmlEntities",(function(){return r.decodeHtmlEntities})),t.d(n,"toAppDate",(function(){return r.toAppDate})),t.d(n,"toAppText",(function(){return r.toAppText})),t.d(n,"toNumberSafe",(function(){return r.toNumberSafe})),t.d(n,"toUsage",(function(){return c})),t.d(n,"toSelectData",(function(){return d.a})),t.d(n,"customItems",(function(){return p.default})),t.d(n,"toTable",(function(){return h}))},function(e,n,t){(function(e,r){var i;/*! https://mths.be/punycode v1.4.1 by @mathias */!function(a){n&&n.nodeType,e&&e.nodeType;var o="object"==typeof r&&r;o.global!==o&&o.window!==o&&o.self;var s,l=2147483647,u=/^xn--/,c=/[^\x20-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,h=String.fromCharCode;function m(e){throw new RangeError(p[e])}function g(e,n){for(var t=e.length,r=[];t--;)r[t]=n(e[t]);return r}function v(e,n){var t=e.split("@"),r="";return t.length>1&&(r=t[0]+"@",e=t[1]),r+g((e=e.replace(d,".")).split("."),n).join(".")}function b(e){for(var n,t,r=[],i=0,a=e.length;i=55296&&n<=56319&&i65535&&(n+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),n+=h(e)})).join("")}function A(e,n){return e+22+75*(e<26)-((0!=n)<<5)}function y(e,n,t){var r=0;for(e=t?f(e/700):e>>1,e+=f(e/n);e>455;r+=36)e=f(e/35);return f(r+36*e/(e+38))}function w(e){var n,t,r,i,a,o,s,u,c,d,p,h=[],g=e.length,v=0,b=128,A=72;for((t=e.lastIndexOf("-"))<0&&(t=0),r=0;r=128&&m("not-basic"),h.push(e.charCodeAt(r));for(i=t>0?t+1:0;i=g&&m("invalid-input"),((u=(p=e.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||u>f((l-v)/o))&&m("overflow"),v+=u*o,!(u<(c=s<=A?1:s>=A+26?26:s-A));s+=36)o>f(l/(d=36-c))&&m("overflow"),o*=d;A=y(v-a,n=h.length+1,0==a),f(v/n)>l-b&&m("overflow"),b+=f(v/n),v%=n,h.splice(v++,0,b)}return $(h)}function x(e){var n,t,r,i,a,o,s,u,c,d,p,g,v,$,w,x=[];for(g=(e=b(e)).length,n=128,t=0,a=72,o=0;o=n&&pf((l-t)/(v=r+1))&&m("overflow"),t+=(s-n)*v,n=s,o=0;ol&&m("overflow"),p==n){for(u=t,c=36;!(u<(d=c<=a?1:c>=a+26?26:c-a));c+=36)w=u-d,$=36-d,x.push(h(A(d+w%$,0))),u=f(w/$);x.push(h(A(u,0))),a=y(t,v,r==i),t=0,++r}++t,++n}return x.join("")}s={version:"1.4.1",ucs2:{decode:b,encode:$},decode:w,encode:x,toASCII:function(e){return v(e,(function(e){return c.test(e)?"xn--"+x(e):e}))},toUnicode:function(e){return v(e,(function(e){return u.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(i=function(){return s}.call(n,t,n,e))||(e.exports=i)}()}).call(this,t(34)(e),t(22))},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n._=void 0;var r={cloneDeep:t(672),chunk:t(673),debounce:t(674),flow:t(675),forOwn:t(676),get:t(677),has:t(678),isBoolean:t(679),isEqual:t(680),isFunction:t(681),isNil:t(682),isNumber:t(683),isPlainObject:t(684),isString:t(685),mapValues:t(605),merge:t(686),reduce:t(687),set:t(688),sortBy:t(689),toArray:t(690),unset:t(691),upperFirst:t(692)};n._=r},function(e,n,t){"use strict";var r=t(10),i=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.getIconPacks=n.getThemeMenu=n.getThemeColors=n.saveUserOptions=n.getHelpLinks=n.deleteConfig=n.saveConfig=n.loadConfig=void 0;var a=i(t(30)),o=t(11),s=t(627),l=r(t(6)),u=a.default.get({id:"SKIN_CONFIG",url:"/config.json",response:{},accept:"application/json",params:{rand:Date.now},after:function(){return function(e){var n=l.evolve({menu:l.map(l.pipe(l.map(l.evolve({entries:l.map(l.evolve({icon:l.replace("/assets/img/icons.svg#","")}))})),l.values))});if("string"==typeof e)try{var t=JSON.parse(t);return n(t)}catch(e){return{}}return n(e)}}});n.loadConfig=u;var c=a.default.post({url:"/CMD_SKINS",params:{name:function(){return(0,o.State)("app.skinName")},action:"save_config_json"},schema:{config:{type:Object,required:!0}},before:function(e){var n=e.config,t=(0,s.getDefaultConfig)();return{"config.json":l.pipe(l.pickBy((function(e,n){return!l.equals(e,t[n])})),JSON.stringify)(n),config:null}}});n.saveConfig=c;var d=a.default.post({url:"/CMD_SKINS",params:{action:"save_config_json",name:function(){return(0,o.State)("app.skinName")},delete:!0}});n.deleteConfig=d;var p=a.default.get({url:"/JS_HELPER_LINKS"});n.getHelpLinks=p;var f=a.default.post({url:"/CMD_JSON_OPTIONS",params:{action:"save_options_json",name:"evolution"},notifySuccess:!1,schema:{options:{type:Object,required:!0,default:function(){return{}}}},before:function(e){var n=e.options;return{options:null,"user_options.json":JSON.stringify(n)}}});n.saveUserOptions=f,window.saveUserOptions=f;var h=a.default.get({url:function(e){var n=e.theme;return"/assets/themes/".concat(n,"/colors.json")},schema:{theme:a.default.REQUIRED_STRING},noQueryArg:!0,before:function(){return{json:null,theme:null}}});n.getThemeColors=h;var m=a.default.get({url:function(e){var n=e.theme,t=e.level;return"/assets/themes/".concat(n,"/menu/").concat(t,".json")},schema:{theme:a.default.REQUIRED_STRING,level:a.default.REQUIRED_STRING},noQueryArg:!0,before:function(){return{theme:null,level:null}}});n.getThemeMenu=m;var g=a.default.get({id:"ICON_PACKS",url:"/assets/icons/list.json",noQueryArg:!0,response:{classic:"Classic"}});n.getIconPacks=g},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.OptionValidationError=n.OptionTypeError=n.UnknownOptionError=n.NetworkError=n.AuthRequiredError=n.ApiSegfaultError=n.ApiTimeoutError=n.ApiRequestError=n.FunctionParamError=n.ValidationPropertyError=n.WrongTypePropertyError=n.RequiredPropertyError=n.AppError=void 0;var i=r(t(44)),a=r(t(45)),o=r(t(701)),s=r(t(608)),l=r(t(607)),u=r(t(702)),c=r(t(703)),d=t(49),p=function(e){function n(e,t){var r;return(0,i.default)(this,n),(r=(0,o.default)(this,(0,s.default)(n).call(this,e))).name=r.constructor.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace((0,l.default)(r),r.constructor),r.code=t||"APP_ERROR",r}return(0,u.default)(n,e),(0,a.default)(n,[{key:"notification",get:function(){return{title:this.message,content:(0,d.toAppHtml)(this.details||""),extended:this.apiData&&this.apiData.extended}}}]),n}((0,c.default)(Error));n.AppError=p;var f=function(e){function n(e){var t,r=e.property,a=e.commandID;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,"".concat(a,": prop ").concat(r," is required"),"REQUIRED_PROPERTY_ERROR"))).command=a,t.property=r,t.name=t.constructor.name,t}return(0,u.default)(n,e),n}(p);n.RequiredPropertyError=f;var h=function(e){function n(e){var t,r=e.property,a=e.commandID,l=e.type;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,"".concat(a,": prop ").concat(r," is ").concat(l.name),"WRONG_TYPE_PROPERTY_ERROR"))).type=l.name,t.command=a,t.property=r,t.name=t.constructor.name,t}return(0,u.default)(n,e),n}(p);n.WrongTypePropertyError=h;var m=function(e){function n(e){var t,r=e.property,a=e.commandID;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,"".concat(a,": custom validator for ").concat(r," failed"),"VALIDATION_PROPERTY_ERROR"))).command=a,t.property=r,t.name=t.constructor.name,t}return(0,u.default)(n,e),n}(p);n.ValidationPropertyError=m;var g=function(e){function n(e){var t,r=e.param;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,"Required parameter, ".concat(r," is missing."),"FUNCTION_PARAM_ERROR"))).param=r,t}return(0,u.default)(n,e),n}(p);n.FunctionParamError=g;var v=function(e){function n(e){var t,r=e.data,a=e.status;return(0,i.default)(this,n),t=(0,o.default)(this,(0,s.default)(n).call(this,r.error,"API_REQUEST_ERROR")),Object.assign((0,l.default)(t),{status:a,details:r.result,extended:"true"===r.extended,apiData:r}),t}return(0,u.default)(n,e),n}(p);n.ApiRequestError=v;var b=function(e){function n(e){var t,r=e.data;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,{data:r,status:408}))).code="API_TIMEOUT_ERROR",t}return(0,u.default)(n,e),n}(v);n.ApiTimeoutError=b;var $=function(e){function n(e){var t,r=e.data;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,{data:r,status:500}))).code="API_SEGFAULT_ERROR",t}return(0,u.default)(n,e),n}(v);n.ApiSegfaultError=$;var A=function(e){function n(e){var t,r=e.data;return(0,i.default)(this,n),(t=(0,o.default)(this,(0,s.default)(n).call(this,"Authorization Required","AUTH_REQUIRED_ERROR"))).authType=r.type||"standard-auth",t.data=r,t}return(0,u.default)(n,e),n}(p);n.AuthRequiredError=A;var y=function(e){function n(){var e;return(0,i.default)(this,n),(e=(0,o.default)(this,(0,s.default)(n).call(this,"Network Error","NETWORK_ERROR"))).details="Server is unreachable",e}return(0,u.default)(n,e),n}(p);n.NetworkError=y;var w=function(e){function n(e,t,r){var a;return(0,i.default)(this,n),(a=(0,o.default)(this,(0,s.default)(n).call(this,e,t))).option=r,a}return(0,u.default)(n,e),n}(p),x=function(e){function n(e){var t=e.option;return(0,i.default)(this,n),(0,o.default)(this,(0,s.default)(n).call(this,"Unknown Property Error: ".concat(t," does not registered as valid option"),"UNKNOWN_OPTION_ERROR",t))}return(0,u.default)(n,e),n}(w);n.UnknownOptionError=x;var C=function(e){function n(e){var t,r=e.option,a=e.type,l=e.value;(0,i.default)(this,n);var u=a.name,c=l.constructor.name;return(t=(0,o.default)(this,(0,s.default)(n).call(this,"Option Type Error: ".concat(r," is ").concat(c,", but should be ").concat(u),"OPTION_TYPE_ERROR",r))).value=l,t.type=a,t}return(0,u.default)(n,e),n}(w);n.OptionTypeError=C;var _=function(e){function n(e){var t=e.option;return(0,i.default)(this,n),(0,o.default)(this,(0,s.default)(n).call(this,"Option Validation Error: ".concat(t," failed validation check."),"OPTION_VALIDATION_ERROR",t))}return(0,u.default)(n,e),n}(w);n.OptionValidationError=_},function(e,n,t){"use strict";function r(e,n,t){var r=t?" !== ":" === ",i=t?" || ":" && ",a=t?"!":"",o=t?"":"!";switch(e){case"null":return n+r+"null";case"array":return a+"Array.isArray("+n+")";case"object":return"("+a+n+i+"typeof "+n+r+'"object"'+i+o+"Array.isArray("+n+"))";case"integer":return"(typeof "+n+r+'"number"'+i+o+"("+n+" % 1)"+i+n+r+n+")";default:return"typeof "+n+r+'"'+e+'"'}}e.exports={copy:function(e,n){for(var t in n=n||{},e)n[t]=e[t];return n},checkDataType:r,checkDataTypes:function(e,n){switch(e.length){case 1:return r(e[0],n,!0);default:var t="",i=a(e);for(var o in i.array&&i.object&&(t=i.null?"(":"(!"+n+" || ",t+="typeof "+n+' !== "object")',delete i.null,delete i.array,delete i.object),i.number&&delete i.integer,i)t+=(t?" && ":"")+r(o,n,!0);return t}},coerceToTypes:function(e,n){if(Array.isArray(n)){for(var t=[],r=0;r=n)throw new Error("Cannot access property/index "+r+" levels up, current level is "+n);return t[n-r]}if(r>n)throw new Error("Cannot access data "+r+" levels up, current level is "+n);if(a="data"+(n-r||""),!i)return a}for(var s=a,u=i.split("/"),c=0;c-1,s=void 0!==t?t:!o;return s&&!o?r.push(n):!s&&o&&r.splice(a,1),r};n.mapKeys=function(e,n){return Object.keys(e).reduce((function(t,r){return l({},t,(0,a.default)({},n(r),e[r]))}),{})};n.fileToBase64=function(e){return new Promise((function(n,t){var r=new FileReader;r.readAsDataURL(e),r.onload=function(){return n(r.result.toString())},r.onerror=function(e){return t(e)}}))};n.toClipboard=function(e){var n=document.createElement("textarea");n.style.position="fixed",n.style.bottom=0,n.style.right=0,n.style.width="2em",n.style.height="2em",n.style.padding=0,n.style.border="none",n.style.outline="none",n.style.boxShadow="none",n.style.background="transparent",n.value=e,document.body.appendChild(n),n.focus(),n.select();var t=document.execCommand("copy");return document.body.removeChild(n),t}},function(e,n,t){"use strict";t.r(n);var r=t(463),i=t(82);for(var a in i)"default"!==a&&function(e){t.d(n,e,(function(){return i[e]}))}(a);t(954);var o=t(0),s=Object(o.a)(i.default,r.a,r.b,!1,null,null,null);n.default=s.exports},function(e,n){e.exports=function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}},function(e,n){function t(e,n){for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:"string";return"number"===n?e?"1":"0":e?"yes":"no"};n.toAppNumber=function(e){return parseInt(e,10)};n.toAppDate=function(e){return e?new Date(1e3*parseInt(e,10)):null};n.toApiDate=function(e){return Math.round(e.getTime()/1e3).toString()};n.toAppHtml=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.replace(/\\n/g,"
")};n.toApiHtml=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.replace(/
/g,"\n")};n.toAppString=function(e){var n=window.document.createElement("textarea");return n.innerHTML=e.replace(/&(?!([^&]*;))/g,"&"),n.innerText.replace(/\\r/g,"")};n.toAppDropdownOptions=function(e){return Object.values(e).map((function(e){return{label:e.text,value:e.value}}))};n.toAppText=function(e){var n=(0,r.State)("app.tokens").SKIN_JSONFORMAT;return"current"===(void 0===n?"legacy":n)?e:e.replace(/(\\r)?\\n/g,"\r\n")};n.toLines=function(e){var n=(0,r.State)("app.tokens").SKIN_JSONFORMAT,t="current"===(void 0===n?"legacy":n)?"\n":"\\n";return e.split(t)};n.toAppLimit=function(e){if(!e)return"";var n=Number(e);return isNaN(n)?1/0:n}},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.importAll=n.parsePath=void 0;var i=r(t(2)),a=r(t(24)),o=t(14);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:o.utils.noop;return e.keys().reduce((function(t,r){var o={id:u(r).name,file:u(r),module:e(r)};return"object"===(0,a.default)(o.module.default)&&(o.module=o.module.default),n(o),l({},t,(0,i.default)({},o.id,o.module))}),{})}},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.loadPluggableMenu=n.getPluginLanguage=n.getPluginLanguages=n.getUpdatesCount=n.loadPluginNotificationsCount=n.pluginAction=n.uploadPlugin=n.installPlugin=n.getPluginsList=n.getUserPlugins=n.getResellerPlugins=n.getAdminPlugins=n.getPlugins=void 0;var i=r(t(2)),a=r(t(30)),o=t(14),s=t(11);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function u(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:0;if(n>t){var r=n-t,i=e.$ngettext("%{ n } new ticket created","%{ n } new tickets created",r),a=e.$ngettext("You have %{ n } unread ticket","You have %{ n } unread tickets",n);e.$store.dispatch("notifications/NOTIFY",{title:e.$gettextInterpolate(i,{n:r}),content:e.$gettextInterpolate(a,{n:n}),extended:!1,route:"/reseller/tickets",time:new Date,theme:"primary"}),e.$store.commit("navigation/SET_UPDATES",{entry:{route:"/reseller/tickets"},updates:n})}})),this.newTickets&&this.$store.commit("navigation/SET_UPDATES",{entry:{route:"/reseller/tickets"},updates:this.newTickets}),s.emitter.once("request:hideLoader",(function(){e.hasRouteLoaded=!0})),s.emitter.once("app:force-reload",(function(){e.$dialog("SKIN_RELOAD_DIALOG").open()})),this.$store.commit("options/INIT_STATE")},methods:{removePreloader:function(){window.preloader&&window.preloader.unmount&&window.preloader.unmount()},setMediaPrefix:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.innerWidth,n={PHONE:480,TABLET:768,DESKTOP:1024},t=function(){return e0}},color:{type:String,default:"currentColor"},original:{type:Boolean,default:!1}},computed:{computedTheme:function(){return this.theme||this.injectedIcon.theme},computedSize:function(){return this.size||this.injectedIcon.size},dimensions:function(){var e=o.pipe(Math.floor,String);if(!this.computedSize)return{};var n="string"==typeof this.computedSize?{small:10,medium:12,medium2:14,medium3:16,medium4:18,big:24}[this.computedSize]:this.computedSize,t=n/s[this.id].width;return{width:e(n),height:e(s[this.id].height*t)}}}};n.default=c},function(e,n,t){var r=t(955);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("de1b12bc",r,!0,{})},function(e,n,t){var r=t(957);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("04eb920a",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(87),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=t(23),o=t(26),s=r(t(456));function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var u={components:{CategoryIcon:r(t(457)).default,MainMenuEntry:s.default},mixins:[a.$resizeListener],props:{displayType:{type:String,required:!0},menu:{type:Array,required:!0,default:function(){return[]}}},data:function(){return{minWidth:0,isOpen:!1}},computed:{updates:function(){return 1},menus:function(){return this.menu.map((function(e){return function(e){for(var n=1;n|<\/b>/g,"",t)})})),s.filter(s.prop("name")))(this.categories)}},methods:{openLink:function(){1===this.$refs.matched.length&&(0,a.default)(this.$refs.matched,1)[0].$el.click()},toggleCategory:function(e){this.openedCategoryIndex=this.openedCategoryIndex===e?null:e}},watch:{accessLevel:function(){this.openedCategoryIndex=null}},updated:function(){this.$emit("update")}};n.default=f},function(e,n,t){"use strict";t.r(n);var r=t(128),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=t(26);function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var s={data:function(){return{isOpen:!1}},computed:{levels:function(){var e={admin:this.$gettext("Admin"),reseller:this.$gettext("Reseller"),user:this.$gettext("User")};return this.$state.app.user.allowedLevels.reduce((function(n,t){return function(e){for(var n=1;n100?100:(0,l.roundDecimal)(n,3),100===this.progress?this.end():window.requestAnimationFrame((function(){e.renderCycle()})),this.$emit("loaderBar:rendered",this.progressVisible)}},start:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.timeout;if(this.state!==p.ENDING){var t=Date.now();this.reset({state:p.ACTIVE,timeStarted:t,timeEnd:t+n}),this.visible||(this.visible=!0,this.renderCycle()),this.$emit("loaderBar:started")}else this.$once("loaderBar:ended",(function(){e.start(n-e.timeLeft)}))},extend:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.timeout;this.state===p.ACTIVE&&Object.assign(this,{timeStarted:Date.now(),timeEnd:this.timeEnd+e,progress:0,progressOffset:this.progressVisible})},end:function(){this.state===p.ACTIVE&&(this.timeNow0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this,{progress:0,progressOffset:0,timeNow:0,timeStarted:0,timeEnd:0},e)},pause:function(){this.state=p.PAUSED},continue:function(){this.state=p.ACTIVE,this.timeStarted=Date.now()-(this.timeout-this.timeLeft),this.timeEnd=Date.now()+this.timeLeft,this.renderCycle()}},mounted:function(){this.autostart&&this.start()}};n.default=f},function(e,n,t){var r=t(1025);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("b3bdc03c",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(174),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=t(7),i={data:function(){return{active:!1,darkMode:!1}},mounted:function(){this.setupHandlers()},methods:{setupHandlers:function(){var e=this;r.emitter.on("request:networkerror",(function(){window.onfocus=e.silentlyReconnect,e.show()})),r.emitter.on("request:success",(function(){window.onfocus=function(){return{}},e.hide()}))},silentlyReconnect:function(){this.reconnect()},reconnect:function(){this.$store.dispatch("app/GET_TOKENS")},show:function(){var e=this,n=localStorage.getItem("evolution:dark-mode");if("auto"===n&&window.matchMedia){var t=window.matchMedia("(prefers-color-scheme: dark)").matches;this.darkMode=t}else this.darkMode="enabled"===n;this.$store.commit("app/TOGGLE_BODY_CLASS",{"-has-overlay":!0}),this.$nextTick((function(){e.active=!0}))},hide:function(){this.active=!1,this.$store.commit("app/TOGGLE_BODY_CLASS",{"-has-overlay":!1})}}};n.default=i},function(e,n,t){var r=t(1028);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("af30afe0",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(177),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=t(21),o=t(7),s=t(14);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function u(e){for(var n=1;ne?this.$options.filters.date(e):!!e&&(0,i.default)(e,new Date)}},methods:{showDetails:function(){o.emitter.emit("request:results",this.$get(["theme","title","content"]))}}};n.default=s},function(e,n,t){var r=t(1038);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("0309a91c",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(186),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(20)),a={props:{id:{type:String,required:!0,default:"primary"},value:{type:Array,required:!0}},computed:{count:function(){var e=this;return Object.values(this.$state.notifications.archive).filter((function(n){return n.theme===e.id})).length||0},theme:function(){return this.enabled?this.id:"neutral"},icon:function(){return{primary:"notifications-information",safe:"notifications-check",danger:"notifications-warning"}[this.id]},enabled:function(){return this.value.includes(this.id)},title:function(){return this.enabled?{primary:this.$gettext("Hide information messages"),safe:this.$gettext("Hide success messages"),danger:this.$gettext("Hide error messages")}[this.id]:{primary:this.$gettext("Show information messages"),safe:this.$gettext("Show success messages"),danger:this.$gettext("Show error messages")}[this.id]}},methods:{emit:function(){var e=this;this.$emit("input",this.enabled?this.value.filter((function(n){return n!==e.id})):[].concat((0,i.default)(this.value),[this.id]))}}};n.default=a},function(e,n,t){var r=t(1041);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("49f21824",r,!0,{})},function(e,n,t){var r=t(1043);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("49e23e2c",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(190),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=t(7),i={data:function(){return{theme:"safe",title:"",content:""}},methods:{setRequestDetails:function(e){Object.assign(this,e),this.$dialog("REQUEST_RESULT_DIALOG").open()}},computed:{trimmedContent:function(){return this.content.trim()},tag:function(){return this.trimmedContent.includes("table")?"div":"pre"}},mounted:function(){r.emitter.on("request:results",this.setRequestDetails)}};n.default=i},function(e,n,t){var r=t(1046);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("6f54e22e",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(193),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=t(637),i={data:function(){return{value:"",showOverlay:!1}},created:function(){var e=this;window.addEventListener("keyup",(function(n){"f"===n.key&&n.altKey&&n.ctrlKey&&(e.showOverlay=!e.showOverlay),e.showOverlay&&"Escape"===n.key&&(e.showOverlay=!1)})),this.userLevels={admin:this.$gettext("Admin"),reseller:this.$gettext("Reseller"),user:this.$gettext("User")}},computed:{routes:function(){return(0,r.searchRoutes)(this.value)},computedResults:function(){var e=this;return this.routes.map((function(n,t){return{id:t.toString(),label:n.level?"".concat(e.userLevels[n.level],": ").concat(n.label):n.label,icon:n.icon,items:n.entries.map((function(n){return{value:n.name,handler:function(){return e.handleEntryClick(n)}}}))}}))}},methods:{handleEntryClick:function(e){this.$reset(),this.$router.push(e.path)},handleAutocomplete:function(e){e&&"function"==typeof e.handler&&e.handler()}}};n.default=i},function(e,n,t){var r=t(1049);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("34dc78ac",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(196),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=t(21),o=t(38),s=t(7),l=r(t(651));function u(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n1},showThemeSelect:function(){return!this.$state.evolution.forceTheme&&((!this.$state.themes.config.theme||"user"!==this.$state.app.user.level)&&(this.showLayoutSelect&&this.$store.getters["themes/list"].length>1))},darkMode:{set:function(e){this.$store.dispatch("themes/SET_DARK_THEME",e)},get:function(){return this.$state.themes.darkMode}}}),watch:{skinLayout:function(){var e=this;this.$nextTick((function(){s.emitter.emit("request:hideLoader"),"default"!==e.skinTheme&&(e.$store.getters["themes/list"].includes(e.skinTheme)?e.$store.dispatch("themes/INIT_THEME_STYLESHEET"):e.skinTheme="default")}))},skinTheme:function(){this.$store.dispatch("themes/INIT_THEME")}},methods:c({},(0,a.mapMutations)({setDateFormat:"evolution/SET_DATE_FORMAT"}),{},(0,a.mapActions)({resetOptions:"evolution/CLEAR_OPTIONS",setLanguage:"lang/SET_LANGUAGE"}))};n.default=d},function(e,n,t){"use strict";t.r(n);var r=t(198),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=r(t(600)),o=t(13);function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var l=["yyyy-M-d","d-M-yyyy","M-d-yyyy","yyyy/M/d","d/M/yyyy","M/d/yyyy","d.M.yyyy"],u={data:function(){return{use24hFormat:this.datetimeFormat.includes("HH"),date:l.includes(this.dateFormat)?this.dateFormat:"custom",datetime:this.datetimeFormat,customDate:this.dateFormat,validation:"",start:this.weekStart}},props:{dateFormat:{type:String,required:!0},datetimeFormat:{type:String,required:!0},weekStart:{type:String,required:!0}},computed:{dateFormats:function(){var e=this.reduceFormats(l);return e.custom=this.$gettext("Custom"),e}},methods:{safeFormatNow:function(e){return this.checkFormat(e)?(0,a.default)(new Date,e,{awareOfUnicodeTokens:!0}):this.$gettext("Invalid date format")},reduceFormats:function(e){var n=this;return e.reduce((function(e,t){return function(e){for(var n=1;n2&&this.results.length?this.results:this.allUsers.map((function(e){return{user:e,type:"user"}}))},userNames:function(){var e=this;return this.dataSource.map((function(e){var n=e.user;return e.domain||n})).filter((function(n){return n!==e.$state.app.tokens.LOGIN_AS_MASTER_NAME}))}},mounted:function(){this.getUsers()},methods:{handleSearch:(s=(0,u.default)(l.default.mark((function e(n){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:this.value=n,this.debouncedSearch();case 2:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)}),search:(o=(0,u.default)(l.default.mark((function e(){var n;return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.value.length>2)){e.next=8;break}return e.next=3,(0,c.searchMasterLoginOptions)({search:this.value});case 3:if(n=e.sent,this.loading=!1,!(n instanceof Error)){e.next=7;break}return e.abrupt("return");case 7:this.results=n;case 8:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)}),debouncedSearch:d._.debounce((function(){this.search()}),p.DEBOUNCE_TIME),logout:function(){this.$store.dispatch("app/LOGOUT")},getUsers:(a=(0,u.default)(l.default.mark((function e(){return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getMasterLoginUsers)();case 2:this.allUsers=e.sent;case 3:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)}),loginAs:(i=(0,u.default)(l.default.mark((function e(n){var t,r,i,a,o=arguments;return l.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.length>1&&void 0!==o[1]&&o[1],r=this.dataSource.find((function(e){var t=e.user,r=e.domain;return t===n||n===r})),void 0!==(i=r.skin)||t){e.next=7;break}return e.next=6,(0,c.getSkinInfoForUser)({user:n});case 6:i=e.sent;case 7:if(!i||t){e.next=12;break}return this.savedData={user:n,skin:i},this.$dialog("RESELLER_SKIN_DIALOG").open(),f.emitter.emit("drawer:master-login:hide"),e.abrupt("return");case 12:if("/"===this.$route.path){e.next=15;break}return e.next=15,this.$router.push("/");case 15:return this.savedData=null,e.next=18,(0,c.masterLoginAsUser)({user:r.user});case 18:(a=e.sent)&&a.success&&("1"===a.same_skin?(this.$store.dispatch("app/RESTART_USER"),this.$notifications.success({title:this.$gettext("Logged in"),content:this.$gettextInterpolate(this.$gettext("Successfully logged as %{ user }"),{user:r.user})})):window.location.href="/");case 20:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})}};n.default=h},function(e,n,t){var r=t(1057);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("2e5a0cf0",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(208),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(15)),a=r(t(16)),o=r(t(2)),s=t(448),l=t(14),u=t(13),c=t(7),d=t(31);function p(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function f(e){for(var n=1;n2&&this.results.length?this.results:this.allUsers.map((function(e){return{user:e,type:"user"}}))},users:function(){var e=this;return this.dataSource.filter((function(e){return"user"===e.type})).filter((function(n){return n.user!==e.$state.app.user.name})).map((function(n){return f({},n,{userName:(0,d.fuzzySearch)(n.user,e.value)})})).filter((function(e){return e.userName}))},domains:function(){var e=this;return this.dataSource.filter((function(e){return"domain"===e.type})).map((function(n){return f({},n,{domain:(0,d.fuzzySearch)(n.domain,e.value)})})).filter((function(e){return e.domain}))}},mounted:function(){this.getUsers()},methods:{handleSearch:function(e){this.value=e,this.debouncedSearch()},search:(g=(0,a.default)(i.default.mark((function e(){var n;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.loading=!0,!(this.value.length>2)){e.next=9;break}return e.next=4,(0,s.searchMasterLoginOptions)({search:this.value});case 4:if(n=e.sent,this.loading=!1,!(n instanceof Error)){e.next=8;break}return e.abrupt("return");case 8:this.results=n;case 9:this.loading=!1;case 10:case"end":return e.stop()}}),e,this)}))),function(){return g.apply(this,arguments)}),debouncedSearch:l._.debounce((function(){this.search()}),u.DEBOUNCE_TIME),logout:function(){this.$store.dispatch("app/LOGOUT")},getUsers:(m=(0,a.default)(i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,s.getMasterLoginUsers)();case 2:this.allUsers=e.sent;case 3:case"end":return e.stop()}}),e,this)}))),function(){return m.apply(this,arguments)}),loginAs:(h=(0,a.default)(i.default.mark((function e(n){var t,r,a,o,l=arguments;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=l.length>1&&void 0!==l[1]&&l[1],r=this.dataSource.find((function(e){var t=e.user,r=e.domain;return t===n||n===r})),void 0!==(a=r.skin)||t){e.next=7;break}return e.next=6,(0,s.getSkinInfoForUser)({user:n});case 6:a=e.sent;case 7:if(!a||t){e.next=12;break}return this.savedData={user:n,skin:a},this.$dialog("RESELLER_SKIN_DIALOG").open(),c.emitter.emit("drawer:master-login:hide"),e.abrupt("return");case 12:if("/"===this.$route.path){e.next=15;break}return e.next=15,this.$router.push("/");case 15:return this.savedData=null,e.next=18,(0,s.masterLoginAsUser)({user:r.user});case 18:(o=e.sent)&&o.success&&("1"===o.same_skin?(this.$store.dispatch("app/RESTART_USER"),this.$notifications.success({title:this.$gettext("Logged in"),content:this.$gettextInterpolate(this.$gettext("Successfully logged as %{ user }"),{user:r.user})})):window.location.href="/");case 20:case"end":return e.stop()}}),e,this)}))),function(e){return h.apply(this,arguments)})}};n.default=v},function(e,n,t){var r=t(1060);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("705f2d0c",r,!0,{})},function(e,n,t){var r=t(1062);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("0fba3946",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(212),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{heading:{type:String,default:"h1",validator:function(e){return["h1","h2"].includes(e)}}}};n.default=r},function(e,n,t){var r=t(1065);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("4d6f02c9",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(215),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;n.default={}},function(e,n,t){var r=t(1068);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("d3212d56",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(218),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=t(7),i={props:{header:{type:Boolean,default:!0},backBtn:{type:Boolean,default:!0},fullWidth:{type:Boolean,default:!1},showAdsense:{type:Boolean,default:!0}},computed:{layout:(0,r.options)("skin/layout"),margin:function(){return this.$_Client.isMobile?1:["sidebar"===this.layout?null:2,this.fullWidth?null:2,2]},adsense:function(){var e=this.$state.evolution.adsense;return!!(e&&e.enabled&&e.client&&e.slot)&&{"data-ad-client":e.client,"data-ad-slot":e.slot,"ins-style":e.css||""}}},methods:{showDrawer:function(){r.emitter.emit("drawer:help:show")},back:function(){this.$router.back()}}};n.default=i},function(e,n,t){"use strict";t.r(n);var r=t(220),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(10),i=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t(17)),o=r(t(6)),s=i(t(1071)),l=i(t(1267)),u=(i(t(1075)),t(51)),c={user:u.getUserPlugins,reseller:u.getResellerPlugins,admin:u.getAdminPlugins},d={components:{PluginsIframe:s.default,PluginsNotification:l.default},data:function(){return{loading:!0,maximized:!1}},computed:{plugin:function(){var e=this.$state.commands,n=document.location.pathname.match(/^\/[A-Z_]*\/([a-zA-Z0-9_-]*)/),t=(0,a.default)(n,2)[1];return o.pipe(o.props(["USER_PLUGINS","RESELLER_PLUGINS","ADMIN_PLUGINS"]),o.map(o.pipe(o.prop("response"),o.values)),o.flatten,o.find(o.propEq("dir",t)))(e)},domainDependent:function(){return this.plugin&&this.plugin.href&&this.plugin.href.includes("|DOMAIN|")}},watch:{$domain:"reloadPlugin",plugin:{handler:"setBreadcrumbs",immediate:!0,deep:!0}},created:function(){var e=document.location.pathname.match(/^\/([^/]*).*$/),n=(0,a.default)(e,2)[1],t=c[{CMD_PLUGINS_ADMIN:"admin",CMD_PLUGINS_RESELLER:"reseller",CMD_PLUGINS:"user"}[n]];this.$state.commands[t.id].isDone||t()},methods:{toggleMaximized:function(){this.maximized=!this.maximized},setBreadcrumbs:function(){this.plugin&&this.plugin.name&&(this.$store.commit("breadcrumbs/SET",[{name:this.$gettext("Dashboard"),path:"/"},{name:this.plugin.name,path:this.plugin.href}]),this.$store.dispatch("app/UPDATE_HTML_TITLE",{label:this.plugin.name}))},reloadPlugin:function(e){if(this.domainDependent){var n=this.plugin.href.replace("|DOMAIN|",e);window.location.href=n}}}};n.default=d},function(e,n,t){"use strict";t.r(n);var r=t(222),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(10),i=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t(20)),o=i(t(17)),s=t(18),l=r(t(6)),u=t(1072),c={display:"flex","justify-content":"center","align-items":"flex-start",margin:"0",padding:"0"},d={display:"inline-block","max-width":"100vw",overflow:"auto"},p={data:function(){return{leaveUntouched:!1,blocked:!0,height:0,width:0}},computed:{iframeSrc:function(){var e=window.location.href.replace(/(\/|#)*$/g,"");return this.appendQuery(e)},iframe:function(){return this.$refs.iframe||null}},methods:{removeIframeParam:(0,u.removeParamFromURL)("iframe"),getDocument:function(){return s.Maybe.Some(this.$refs).flatMap((function(e){return s.Maybe.fromNull(e.iframe)})).flatMap((function(e){return s.Maybe.fromNull(e.contentDocument)}))},getBody:function(){return this.getDocument().map((function(e){return e.body}))},getClearSrc:function(){return this.getDocument().map((function(e){return e.location.href})).map((0,u.removeParamFromURL)("iframe")).some()},getContainer:function(){return this.getDocument().map((function(e){return e.querySelector("#iframe-container")}))},appendQuery:function(e){return(0,u.insertParamIntoURL)(e,"iframe","yes")},querySelectorAll:function(){for(var e=arguments.length,n=new Array(e),t=0;t)"),"gi")},t=function(t){return c({},t,{original:t,label:(r="".concat(t.value),i=e.value,r.replace(n(i),"$&"))});var r,i},r=function(r){return r.filter((function(t){return e.forceAllValues||n(e.value).test(t.value)})).map(t)};return this.values.reduce((function(n,t){var i=null;if(e.isGroup(t)){var o=r(t.items||[]);i=o.length?c({},t,{items:o}):null}else{i=r(["string"==typeof t?{value:t}:t])[0]||null}return i?[].concat((0,a.default)(n),[i]):n}),[])},computedMaxHeight:function(){return this.maxHeight?this.maxHeight:this.maxItemsVisible?(0,l.toRem)(3*this.maxItemsVisible):""},dropdownVisible:function(){return this.open&&!this.dropdownDisabled()}},methods:{isGroup:function(e){return e&&!!e.id&&Array.isArray(e.items)},setValue:function(e){this.$emit("input",e)},toggleDropdown:function(e){var n=this;this.autocompleted||(this.open=e,e&&this.$nextTick((function(){n.$refs.input.focus()}),2))},handleInput:function(e){this.setValue(e.target.value||""),this.toggleDropdown(!0)},handleChange:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.focused;this.suggestions.length&&(this.toggleDropdown(!1),this.setValue(e.value),this.$emit("autocomplete",e.original))},handleOptionFocus:function(){},handleEscKey:function(e){this.dropdownVisible&&(e.stopImmediatePropagation(),this.toggleDropdown(!1),this.$emit("escape"))},dropdownDisabled:function(){return!this.dropdown||!this.$slots.empty&&(!this.suggestions.length||this.suggestions[0].value===this.value)}},created:function(){var e=this;this.$sync("isOpen","open"),this.$watch("values",(function(n,t){s.equals(n,t)||e.$validate(e.value)}),{deep:!0})},mounted:function(){this.autofocus&&this.$refs.input.focus()}};n.default=d},function(e,n,t){var r=t(1081);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("3ead6108",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(233),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={model:{prop:"model",event:"change"},props:{type:{type:String,default:"checkbox",validator:function(e){return["checkbox","radio"].includes(e)}},value:[String,Number,Object,Array,Boolean],model:[String,Number,Object,Array,Boolean],invert:Boolean,disabled:Boolean},computed:{checked:function(){return{checkbox:!!this.model,radio:this.value===this.model}[this.type]}},methods:{handleChange:function(e){this.$emit("change",{checkbox:e.target.checked,radio:this.value}[this.type])}}};n.default=r},function(e,n,t){var r=t(1084);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("6825529c",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(236),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=t(23),i=t(26),a={model:{prop:"values",event:"change"},mixins:[r.$clickOutside,r.$resizeListener],props:{values:{type:Array,required:!0},options:{type:Object,required:!0},disabled:Boolean,showToggleAll:{type:Boolean,default:!0},size:{type:String,required:!1,default:"normal",validators:function(e){return["small","normal","big"].includes(e)}},disabledOptions:{type:Array,required:!1,default:function(){return[]}}},data:function(){return{isOpen:!1,placement:"bottom-left",dataValues:[],width:240}},computed:{toggledAll:function(){return this.values.length===Object.keys(this.options).length}},methods:{toggleAll:function(){this.toggledAll?this.dataValues=[]:this.dataValues=Object.keys(this.options)},computeWidth:function(){this.width=this.$refs.trigger.$el.offsetWidth},createOutsideListener:function(e){var n=this;(0,i.registerOutsideEvent)([this.$el,e],(function(){n.isOpen=!1}))}},updated:function(){this.computeWidth()},mounted:function(){var e=this;this.$watch("values",(function(n){e.dataValues=n}),{immediate:!0}),this.$on("window:resize",this.computeWidth),this.$watch("dataValues",(function(n){return e.$emit("change",n)}))}};n.default=a},function(e,n,t){var r=t(1087);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("af86960c",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(239),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{value:{type:Boolean,required:!0}},methods:{emit:function(){this.$emit("input",!this.value)}}};n.default=r},function(e,n,t){"use strict";t.r(n);var r=t(241),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={model:{prop:"model",event:"change"},props:{value:{required:!1},model:[Boolean,Array],label:[String]},computed:{isModelArray:function(){return Array.isArray(this.model)},checked:function(){return this.isModelArray?this.model.includes(this.value):this.model}},methods:{emit:function(e){this.$emit("change",e)},handleChange:function(e){this.isModelArray?this.emit(this.transformModelArray(e)):this.emit(e)},transformModelArray:function(){var e=this,n=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return n?this.model.concat([this.value]):this.model.filter((function(n){return n!==e.value}))}}};n.default=r},function(e,n,t){"use strict";t.r(n);var r=t(243),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{value:{type:String,required:!0},colors:{type:Array,default:function(){return[]}}},model:{prop:"value",event:"change"},computed:{options:function(){return this.colors?this.colors.map((function(e){return{value:e}})):[]}}};n.default=r},function(e,n,t){"use strict";t.r(n);var r=t(245),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(20)),a=r(t(652)),o=t(32),s=t(13),l=["small","normal","big"],u={$exports:{sizes:l},components:{DropzoneFilePreview:a.default},model:{prop:"value",event:"files:changed"},props:{value:[File,Array],multiple:{type:Boolean,default:!1},accept:{type:Array,validator:function(e){return e.every((function(e){return s.REGEXPS.fileExtension.test(e)||s.REGEXPS.mimeType.test(e)}))}},maxFiles:{type:Number,default:1/0},size:(0,o.predefinedString)({values:l,default:"normal"}),showPreview:{type:Boolean,default:!0}},data:function(){return{files:[],dragStarted:!1,dragOver:!1}},computed:{hasFiles:function(){return!!this.files.length},allowUpload:function(){return this.files.length<(this.multiple?this.maxFiles:1)},inline:function(){return"small"===this.size||this.hasFiles},maxFileSize:function(){return Number(this.$state.app.tokens.MAX_FILE_SIZE)},currentFilesSize:function(){return this.getFilesSize(this.files)}},methods:{getFileTime:function(e){return e.lastModified?e.lastModified:e.lastModifiedDate.getTime()},getFilesSize:function(e){return e.reduce((function(e,n){return e+n.size}),0)},handleFiles:function(e){var n=this,t=[],r=(0,i.default)(e).filter((function(e){return n.files.every((function(t){return!(e.name===t.name&&n.getFileTime(e)===n.getFileTime(t))}))})).reduce((function(e,r){return n.getFilesSize([].concat((0,i.default)(e),[r]))this.ids.length?3*this.ids.length:3*this.maxItemsVisible},showSearch:function(){return!this.disableSearch&&(!!this.forceSearch||Object.keys(this.options).length>this.maxItemsVisible)},focusedItemId:function(){return this.ids[this.focusedItemIndex]}},watch:{search:function(e){this.scrollItems(0),this.setFocused(0),this.isOpen&&this.$refs.dropdown&&this.$refs.dropdown.updatePosition(),this.$emit("update:search",e)}},mounted:function(){this.computeWidth(),this.$on("window:resize",this.computeWidth)},methods:{focusSelect:function(){this.$refs.search?this.$refs.search.focus():this.$refs.btn&&this.$refs.btn.focus()},toggleDropdown:function(){this.isOpen?this.closeDropdown():this.openDropdown()},computeWidth:function(){this.width=this.$refs.btn.offsetWidth},openDropdown:function(){var e=this;if(this.computeWidth(),this.isOpen=!0,this.selected){var n=this.ids.indexOf(this.selected);if(this.setFocused(n>=0?n:0),n>this.maxItemsVisible){var t=n-this.maxItemsVisible;this.$nextTick((function(){e.scrollItems(t+1)}))}}this.$nextTick(this.focusSelect)},closeDropdown:function(){this.search="",this.isOpen=!1,this.setFocused(null)},registerOutsideListener:function(e){(0,o.registerOutsideEvent)([this.$el,e],this.closeDropdown)},setFocused:function(e){this.focusedItemIndex=e},clearFocused:function(){this.setFocused(null)},scrollItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.$refs.items&&this.$refs.items.scroll&&this.$refs.items.scroll(0,30*e)},skipDisabled:function(e){this.disabledOptions.includes(this.ids[this.focusedItemIndex])&&e()},nextItem:function(){if(this.isOpen){var e=this.focusedItemIndex+1;if(this.setFocused(e===this.ids.length?0:e),this.focusedItemIndex>=this.maxItemsVisible){var n=e-this.maxItemsVisible+1;this.scrollItems(n)}else this.scrollItems();this.skipDisabled(this.nextItem)}else this.toggleDropdown()},prevItem:function(){var e=this.focusedItemIndex-1;this.setFocused(-1===e?this.ids.length-1:e);var n=this.$refs.items.scrollTop/30;this.focusedItemIndexthis.powers[n]){var t=Number(this.value)/Math.pow(2,this.powers[e]);Number.isInteger(t)||this.$emit("input","")}},value:function(e){"TB"===this.dataUnits&&Number(e)>1024*this.base&&this.emit(1024)}},methods:{emit:function(e){this.$emit("input",e*this.base)},normalizeValue:function(e,n){var t=Math.pow(2,this.powers[n]);return e&&Number.isInteger(e)?String(e/t):""}},mounted:function(){var e=this,n="B";Object.keys(this.powers).forEach((function(t){e.normalizeValue(Number(e.value),t).includes(".")||(n=t)})),this.dataUnits=this.value?n:this.units}};n.default=o},function(e,n,t){"use strict";t.r(n);var r=t(267),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2));function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var o={mixins:[t(33).$inputValidation],inheritAttrs:!1,model:{prop:"value",event:"input"},props:{value:{type:[String,Number],default:""},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},number:{type:[Boolean,String],required:!1,default:!1},regex:{type:[RegExp,Boolean],required:!1,default:!1}},data:function(){return{dataValue:""}},validate:"value",computed:{fullValue:function(){return[this.prefix,this.value,this.suffix].join("")},listeners:function(){return function(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:null;return"string"==typeof t?"label"===e?t:n:void 0===t[e]?n:t[e]};return{id:n,label:r("label"),width:r("width"),grow:r("grow"),editable:r("editable",e.rowID!==n),getClass:r("getClass",(function(){return""})),visible:r("visible",!0),sortable:r("sortable",!0)}}))},searchableColumns:function(){var e=this;return u._.reduce(this.apiColumns,(function(n,t,r){return"string"!=typeof e.columns[r]&&e.columns[r].searchable?b({},n,(0,l.default)({},r,e.columns[r].label)):n}),{})},searchColumnsOptions:function(){var e=this;return u._.reduce(Object.keys(this.searchableColumns),(function(n,t){return"object"===(0,s.default)(e.columns[t].searchable)?b({},n,(0,l.default)({},t,e.columns[t].searchable)):n}),{})},tableActions:function(){return u._.mapValues(this.actions,(function(e){return{disabled:!!e.disabled||!1,label:e.label||e}}))},tableConfig:function(){return b({},this.$attrs,{rows:this.rows,rowsCount:this.apiData.rowsCount,columns:this.tableColumns,isCheckable:!this.disableSelect,isSortable:!this.disableSorting,externalSorting:!this.disableSorting,disablePagination:this.disablePagination,notCheckable:this.notCheckable})},page:function(){var e=Number(this.$route.query.page)||!1;return e&&e>0?e:null},ipp:function(){var e=Number(this.$route.query.ipp)||this.$state.options["tables/ipp"];return e&&e>0?e:null},totalPagesCount:function(){var e=this.ipp||this.$state.options["tables/ipp"],n=this.apiData.rowsCount;return n%e?Math.floor(n/e)+1:Math.floor(n/e)},apiColumns:function(){var e=this;return u._.reduce(this.columns,(function(n,t,r){var i=t.apiName,a=t.sortID;return b({},n,(0,l.default)({},r,Number(a||e.apiData.columns[i||r])))}),{})},sort:function(){var e=this.dataSort,n=e.key,t=e.order;return n&&Object.keys(this.apiColumns).includes(n)?[{key:this.apiColumns[n],order:t}]:null},cellFilters:function(){var e=this;return u._.flow((function(e){return u._.mapValues(e,(function(e,n){return{id:n,filter:(e||{}).filter}}))}),Object.values,(function(e){return e.filter((function(e){return e.filter}))}),(function(n){return n.map((function(n){var t,r=n.id,i=n.filter;return{id:r,func:(t=Array.isArray(i)?i:[i],u._.flow(t.map((function(n){return e.$options.filters[n]}))))}}))}),(function(e){return e.reduce((function(e,n){var t=n.id,r=n.func;return b({},e,(0,l.default)({},t,r))}),{})}))(this.columns)},notCheckable:function(){return void 0===this.disableSelectFor?[]:this.rows.filter(this.disableSelectFor)},comparison:function(){var e=this;return this.dataFilters.filter((function(e){return e.value})).map((function(n){return b({},n,{column:e.apiColumns[n.column],type:(t=e.searchColumnsOptions,r=n,i=r.column,a=r.type,c.Maybe.Some(t).flatMap((function(e){return c.Maybe.fromNull(e[i])})).flatMap((function(e){return c.Maybe.fromNull(e.comparison)})).orSome(a))});var t,r,i,a}))}},created:function(){var e=this,n=function(n,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.deep,a=void 0===i||i,o=r.debounce,s=void 0!==o&&o;return e.$watch(n,s?u._.debounce(t,d.DEBOUNCE_TIME):t,{deep:a})},t=function(e,n){return JSON.stringify(e)===JSON.stringify(n)};if(this.filters&&(this.dataFilters=this.filters,n("filters",(function(n){e.dataFilters=n})),n("dataFilters",(function(n,t){g.equals(n,t)||(e.$emit("update:filters",n),e.$emit("select",[]))}),{deep:!0})),!this.disableSorting){if(this.dataSort=this.initialSort,this.dataSort.key)g.pipe(g.pickBy((function(e,n){return n.startsWith("sort")})),g.equals((0,m.paramSort)({sort:this.sort})))(this.$state.commands[this.command.id].params)||this.reloadTable();n("dataSort",(function(n,t){n.key&&!e.apiColumns[n.key]&&(e.dataSort=t)})),n("dataSort",this.reloadTable)}this.disablePagination||n((function(){return{page:e.page,ipp:e.ipp}}),this.reloadTable),void 0===this.rowID||this.disableSelect||(n("checkedRows",(function(n){n.length!==e.selected.length&&e.$emit("select",n.map((function(n){return n[e.rowID]})))}),{deep:!1}),n("selected",(function(n){n.length!==e.checkedRows.length&&(e.checkedRows=e.rows.filter((function(n){return e.selected.includes(n[e.rowID])})))}),{deep:!1}),this.disablePagination||n((function(){return{page:e.page,ipp:e.ipp}}),(function(){e.checkedRows=[]}))),n("comparison",(function(){t.apply(void 0,arguments)||e.reloadTable()}),{debounce:!0}),n("requestData",(function(){t.apply(void 0,arguments)||e.reloadTable()}),{debounce:!0})},methods:{reloadTable:($=(0,o.default)(a.default.mark((function e(){var n,t,r,i=arguments;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=i.length>0&&void 0!==i[0]?i[0]:{},this.showLoader=!0,e.next=4,this.command(this.getRequestData(n));case 4:return t=e.sent,this.disablePagination||(r=this.totalPagesCount)0&&void 0!==arguments[0]?arguments[0]:{};return u._.merge(this.$get(["ipp","sort","comparison"]),{page:this.page>this.totalPagesCount?this.totalPagesCount:this.page},this.requestData,e)}}};n.default=A},function(e,n,t){"use strict";t.r(n);var r=t(277),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(10),i=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=i(t(2)),o=i(t(17)),s=r(t(6));function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var u={data:function(){return{dataFilters:[]}},props:{visible:{type:Boolean,required:!0},columns:{type:Object,required:!0,default:function(){return{}}},filters:{type:Array,required:!0,default:function(){return[]}},options:{type:Object,required:!1,default:function(){return{}}}},computed:{selectedColumns:function(){return s.map(s.prop("column"),this.dataFilters)},availableColumns:function(){return s.without(this.selectedColumns,s.keys(this.columns))},columnOptions:function(){return this.columns},filterDefaults:function(){var e=(0,o.default)(this.availableColumns,1)[0];return{column:void 0===e?"":e,type:"contains",value:""}},filterOptions:function(){var e=this;return s.mapObjIndexed((function(n,t){return e.options[t]||{type:"input"}}),this.columns)}},methods:{removeFilter:function(e){1===this.dataFilters.length?(this.dataFilters[0].value="",this.dataFilters[0].type="contains",this.$emit("hide")):this.dataFilters=this.dataFilters.filter((function(n){return n.column!==e}))},addFilter:function(){this.dataFilters.push(this.filterDefaults)},emit:function(){this.$emit("update:filters",this.dataFilters.map((function(e){return function(e){for(var n=1;n=this.flatOptions.length&&(e=0),e},handleWheel:function(e){var n=e.currentTarget,t=e.deltaY<=0,r=e.deltaY>0,i=n.scrollTop<=0,a=n.scrollTop+n.clientHeight>=n.scrollHeight;(t&&i||r&&a)&&e.preventDefault()},computeWidth:function(){this.width||(this.computedWidth=window.getComputedStyle(this.placementElem||this.triggerElem).width)},updatePlacement:function(e){this.$emit("update:actualPlacement",e),this.realPlacement=e},openDropdown:function(){this.$emit("open"),this.computeWidth(),this.open=!0},closeDropdown:function(){this.$emit("close"),this.open=!1},registerOutsideListener:function(e){(0,s.registerOutsideEvent)(this.clickOutsideElem?[e,this.clickOutsideElem]:[e],this.closeDropdown)}},watch:{options:function(){this.open&&this.focusOption(this.selected.value?this.getIndex(this.selected):0)},isOpen:function(e){e?this.openDropdown():this.closeDropdown()}},mounted:function(){var e=this;this.$sync("isOpen","open"),this.computeWidth(),this.$on("window:resize",this.computeWidth),this.$on("focus:prev",(function(){e.focusOption(e.focusIndex-1)})),this.$on("focus:next",(function(){e.focusOption(e.focusIndex+1)}))}};n.default=d},function(e,n,t){var r=t(1148);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("b541e25c",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(323),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(20)),a=r(t(2)),o=t(21),s=t(6);function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function u(e){for(var n=1;n0?e.toString():this.ippOption.toString()},options:function(){var e=this;return this.values.reduce((function(n,t){return l({},n,(0,i.default)({},t,e.$gettextInterpolate(e.$gettext("Show %{ count } Results"),{count:t})))}),{})}},methods:{handleChange:function(e){var n=this.$route,t=n.params,r=n.query,i=n.name;this.$store.commit("options/STORE",{option:"tables/ipp",value:Number(e)}),this.$router.replace({name:i,params:t.domain?l({},t,{domain:this.$domain}):t,query:l({},r,{page:1,ipp:e})})}}};n.default=u},function(e,n,t){"use strict";t.r(n);var r=t(340),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{plain:Boolean,limit:Number,usage:[String,Number]}};n.default=r},function(e,n,t){"use strict";t.r(n);var r=t(342),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{items:{type:Array,default:function(){return[]},required:!0},bullets:{type:Boolean,required:!1,default:!0},numeric:{type:Boolean,required:!1,default:!1},maxItemsVisible:{type:Number,required:!1,default:1/0}},computed:{maxHeight:function(){return this.maxItemsVisible===1/0?"unset":"".concat(3*this.maxItemsVisible,"rem")}}};n.default=r},function(e,n,t){var r=t(1168);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("316e97ec",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(345),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{size:{type:Number,required:!1,default:32}},computed:{style:function(){return{width:"".concat(1.3*this.size,"px"),height:"".concat(this.size,"px")}}}};n.default=r},function(e,n,t){var r=t(1171);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("54727baa",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(348),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2));function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n1},hasNextPage:function(){return this.page0&&e<=this.total?e:1},pagination:function(){var e=this.total||1,n=this.current<=e?this.current||1:e;return o.default.getPaginationModel(function(e){for(var n=1;nthis.total&&this.changePageTo(this.total),this.$route.query.page){var e=Number(this.$route.query.page);(!e||e<=0)&&this.changePageTo(this.current)}}};n.default=l},function(e,n,t){"use strict";t.r(n);var r=t(362),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{content:{type:String,required:!1,default:""},lineNumbers:{type:Boolean,default:!1},contentLines:{type:Array,default:function(){return[]},required:!1}},data:function(){return{headerWidth:0}},computed:{lines:function(){if(this.contentLines.length)return this.contentLines;var e=this.content.trim().split("\r\n");return e[e.length-1]?e:e.slice(0,e.length-1)}},methods:{fixHeaderWidth:function(){var e=this.$refs.lines?this.$refs.lines.reduce((function(e,n){return Math.max(e,n.offsetWidth)}),0):0;this.headerWidth=Math.max(e+(this.lineNumbers?85:30),this.$el.offsetWidth-2)}},mounted:function(){this.$refs.header&&this.$nextTick(this.fixHeaderWidth)},updated:function(){this.$refs.header&&this.$nextTick(this.fixHeaderWidth)}};n.default=r},function(e,n,t){var r=t(1188);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("38d4f9aa",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(365),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{limit:{type:[Number,String],required:!1,default:1/0},hideLimit:Boolean,value:{type:Number,required:!0}},computed:{unlimited:function(){return this.limit===1/0||"unlimited"===this.limit},width:function(){if(this.unlimited||this.value>this.limit)return"100%";var e=this.value/this.limit*100;return"".concat(e,"%")},status:function(){if(this.unlimited||0===this.limit)return"unlimited";var e=this.value/this.limit*100;return e>90?"critical":e>80?"high":"normal"}}};n.default=r},function(e,n,t){var r=t(1191);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("70c4b7c0",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(368),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=["primary","neutral","safe","danger","light","dark"],i=["big","normal","small"],a={$exports:{themes:r,sizes:i},props:{value:{type:Number,required:!0,default:0,validator:function(e){return e>=0&&e<=100}},theme:{type:String,default:"primary",required:!1,validator:function(e){return r.includes(e)}},size:{type:String,default:"normal",required:!1,validator:function(e){return i.includes(e)}}},computed:{classes:function(){return["progress","-theme-".concat(this.theme),"-size-".concat(this.size)]}}};n.default=a},function(e,n,t){var r=t(1194);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("8e15adec",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(371),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=t(7),o=r(t(1196)),s=r(t(1197)),l=r(t(1268)),u=r(t(1269)),c=r(t(1198)),d=r(t(1199)),p=r(t(1202));function f(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function h(e){for(var n=1;n1}},updated:function(){var e=this;this.width=this.table.offsetWidth,this.$on("window:resize",(function(){e.width=e.table.offsetWidth}))}};n.default=r},function(e,n,t){"use strict";t.r(n);var r=t(375),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={props:{rowsCount:{type:Number,required:!0}},computed:{ipp:function(){var e=Number(this.$route.query.ipp)||!1;return e&&e>0?e:this.$state.options["tables/ipp"]},page:function(){var e=Number(this.$route.query.page)||!1;return e&&e>0?e:1},pagination:function(){var e=this.page,n=this.ipp,t=this.rowsCount;return{page:e,ipp:n,total:(t%n?Math.floor(t/n)+1:t/n)||1}}}};n.default=r},function(e,n,t){"use strict";t.r(n);var r=t(377),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(2)),a=t(7);function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}var s={props:{columns:{type:Array,required:!0,default:function(){return[]}},labels:{type:Object,required:!0,default:function(){return{}}},editable:{type:Boolean,required:!1,default:!0},rowsCount:{type:Number,required:!0},showPagination:{type:Boolean,required:!1,default:!1}},computed:{density:(0,a.options)("tables/density"),uiFlex:function(){return this.$_Client.isPhone?{dir:"column",cross:"end"}:{dir:"row",cross:"center"}},densities:function(){return{condensed:this.$gettext("Condensed"),normal:this.$gettext("Normal"),expanded:this.$gettext("Expanded")}},pinnedColumns:function(){return 2===this.dataColumns.length?this.dataColumns:this.columns.filter((function(e){return!e.editable})).map((function(e){return e.id}))},ipp:function(){var e=Number(this.$route.query.ipp)||!1;return e&&e>0?e:this.$state.options["tables/ipp"]},page:function(){var e=Number(this.$route.query.page)||!1;return e&&e>0?e:1},pagination:function(){var e=this.page,n=this.ipp,t=this.rowsCount;return{page:e,ipp:n,total:(t%n?Math.floor(t/n)+1:t/n)||1,rowsCount:this.rowsCount}}},data:function(){return{dataColumns:this.columns.filter((function(e){return e.visible})).map((function(e){return e.id}))}},mounted:function(){var e=this;this.$watch("dataColumns",(function(n,t){n.length<2?e.dataColumns=t:e.$emit("update:columns",e.columns.map((function(e){return function(e){for(var n=1;n=this.limit},component:function(){return this.limitReached||!this.link?"ui-button":"ui-button-link"}})};n.default=s},function(e,n,t){"use strict";t.r(n);var r=t(431),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(17)),a=["primary","safe","danger","neutral","dark"],o=["top","right","bottom","left","bottom-right","bottom-left","bottom-center"],s={$exports:{themes:a,placements:o},inheritsAttrs:!1,props:{theme:{type:String,default:"primary",validator:function(e){return a.includes(e)}},placement:{type:String,default:"top",validator:function(e){return o.includes(e)}},visible:Boolean,anchor:{type:HTMLElement,required:!0},maxWidth:{type:String,required:!1,default:"50rem"}},data:function(){return{actualPlacement:this.placement}},computed:{tetherOptions:function(){if(["left","right"].includes(this.placement))return{direction:"horizontal",horizontal:this.placement,vertical:"middle"};var e=this.placement.split("-"),n=(0,i.default)(e,2),t=n[0],r=n[1];return{direction:"vertical",vertical:t,horizontal:void 0===r?"center":r}},arrowDirection:function(){return{top:"bottom",right:"left",bottom:"top","bottom-left":"top","bottom-right":"top",left:"right"}[this.actualPlacement||this.placement]}}};n.default=s},function(e,n,t){var r=t(1249);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("e2933cec",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(434),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=t(23),a=r(t(647)),o=t(7),s=a.default.$exports,l=s.themes,u=s.placements,c={$exports:{themes:l,placements:u},mixins:[i.$clickOutside],props:{icon:{type:String,default:"question"},theme:{type:String,default:"primary",validator:function(e){return l.includes(e)}},placement:{type:String,default:"top",validator:function(e){return u.includes(e)}},showOnHover:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},maxWidth:{type:String,default:"50rem"}},data:function(){return{hovered:!1,clicked:!1}},computed:{state:function(){return!this.disabled&&(this.showOnHover&&this.hovered||this.clicked)}},methods:{setState:function(e){this.clicked=e}},mounted:function(){var e=this;this.$clickOutsideListener("trigger",this.$refs.trigger),this.$on("clickOutside:trigger",(function(){e.clicked=!1})),o.emitter.on("dialog:scroll",(function(){e.hovered=!1,e.clicked=!1}))}};n.default=c},function(e,n,t){var r=t(1252);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("46dac8ac",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(437),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=["top","bottom","left","right","top-left","top-right","bottom-left","bottom-right"],i={$exports:{directions:r},props:{direction:{type:String,required:!0,validator:function(e){return r.includes(e)}},width:Number,height:Number},computed:{points:function(){return{top:"5,0 10,10 0,10",bottom:"0,0 10,0 5,10",left:"0,5 10,0 10,10",right:"0,0 10,5 0,10","top-left":"0,0 10,0 0,10","top-right":"0,0 10,0 10,10","bottom-left":"0,0 10,10 0,10","bottom-right":"0,10 10,0 10,10"}[this.direction]}}};n.default=i},function(e,n,t){var r=t(1255);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("259a4b80",r,!0,{})},function(e,n,t){"use strict";t.r(n);var r=t(440),i=t.n(r);for(var a in r)"default"!==a&&function(e){t.d(n,e,(function(){return r[e]}))}(a);n.default=i.a},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r={name:"ErrorComponent",props:{error:{type:Error,required:!0}},data:function(){return{title:"",content:""}},mounted:function(){window.preloader&&window.preloader.unmount&&(window.preloader.unmount(),delete window.preloader),this.error.notification?Object.assign(this,this.error.notification):(this.title=this.$gettext("Error"),this.content=this.error.message)}};n.default=r},function(e,n,t){var r=t(1261);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,t(5).default)("93635a60",r,!0,{})},function(e,n,t){"use strict";t.r(n),t.d(n,"required",(function(){return s})),t.d(n,"minLength",(function(){return l})),t.d(n,"maxLength",(function(){return u})),t.d(n,"regex",(function(){return c})),t.d(n,"api",(function(){return d})),t.d(n,"gt",(function(){return p})),t.d(n,"gte",(function(){return f})),t.d(n,"lt",(function(){return h})),t.d(n,"lte",(function(){return m})),t.d(n,"domain",(function(){return g})),t.d(n,"email",(function(){return v})),t.d(n,"notEqual",(function(){return b}));var r=t(13),i=t(36),a=function(e,n,t,r){return new(t||(t=Promise))((function(i,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function s(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(o,s)}l((r=r.apply(e,n||[])).next())}))},o=function(e,n){var t,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(t)throw new TypeError("Generator is already executing.");for(;o;)try{if(t=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=(i=o.trys).length>0&&i[i.length-1])&&(6===a[0]||2===a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]=e}},u=function(e){return function(n){return!n||n.length<=e}},c=function(e){return function(n){return n&&e.test(n)}},d=function(e){return function(n){return a(void 0,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return n?[4,e({value:n})]:[2,!0];case 1:return[2,t.sent().valid]}}))}))}},p=function(e){return function(n){return!n||n>e}},f=function(e){return function(n){return!n||n>=e}},h=function(e){return function(n){return!n||n0?"in "+i:i+" ago":i},formatLong:a,formatRelative:function(e,n,t,r){return o[e]},localize:{ordinalNumber:function(e,n){var t=Number(e),r=t%100;if(r>20||r<10)switch(r%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},era:s({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:s({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:s({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:s({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:s({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(u={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,n){var t=String(e),r=n||{},i=t.match(u.matchPattern);if(!i)return null;var a=i[0],o=t.match(u.parsePattern);if(!o)return null;var s=u.valueCallback?u.valueCallback(o[0]):o[0];return{value:s=r.valueCallback?r.valueCallback(s):s,rest:t.slice(a.length)}}),era:l({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:l({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:l({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:l({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:l({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};n.a=c},,function(e,n,t){"use strict";t.r(n);var r=t(464),i=t(170);for(var a in i)"default"!==a&&function(e){t.d(n,e,(function(){return i[e]}))}(a);t(1024);var o=t(0),s=Object(o.a)(i.default,r.a,r.b,!1,null,null,null);n.default=s.exports},function(e,n,t){"use strict";t.r(n);var r=t(490),i=t(291);for(var a in i)"default"!==a&&function(e){t.d(n,e,(function(){return i[e]}))}(a);t(1125);var o=t(0),s=Object(o.a)(i.default,r.a,r.b,!1,null,null,null);n.default=s.exports},function(e,n){function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e},t(n,r)}e.exports=t},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.getSkinInfoForUser=n.getMasterLoginUsers=n.masterLoginAsUser=n.searchMasterLoginOptions=n.loginAsUser=n.logout=n.login=void 0;var i=r(t(17)),a=r(t(30)),o=a.default.post({url:"/CMD_LOGIN",params:{json:!0},schema:{username:a.default.REQUIRED_STRING,password:a.default.REQUIRED_STRING,referrer:{type:String,required:!1,default:function(){return window.location.href}}},after:function(e){return e.mapProps({json:e.convert.toAppBoolean,success:e.convert.toAppBoolean})},notifySuccess:!1});n.login=o;var s=a.default.get({url:"/CMD_LOGOUT",timeout:1e4});n.logout=s;var l=a.default.post({url:"/CMD_LOGIN",params:{json:!0},blocking:!0,schema:{user:a.default.REQUIRED_STRING,oldUser:a.default.REQUIRED_STRING},before:function(e){var n=e.oldUser,t=e.user;return{user:null,oldUser:null,username:"".concat(n,"|").concat(t)}},after:function(e){return e.mapProp("success",e.convert.toAppBoolean)},notifySuccess:!1});n.loginAsUser=l;var u=function(e){return"1"===e.is_reseller_skin&&{owner:e.reseller_skin_owner,path:e.reseller_skin}},c=a.default.get({url:"/CMD_MASTER_LOGIN",params:{action:"search"},query:{search:a.default.REQUIRED_STRING},response:[],mapResponse:function(e){var n=[];return Object.entries(e.domains).forEach((function(e){var t=(0,i.default)(e,2),r=t[0],a=t[1];return n.push({type:"domain",domain:r,user:a.user,skin:u(a)})})),Object.entries(e.users).forEach((function(e){var t=(0,i.default)(e,2),r=t[0],a=t[1];return n.push({type:"user",user:r,creator:a.creator,skin:u(a)})})),n}});n.searchMasterLoginOptions=c;var d=a.default.post({url:"/CMD_MASTER_LOGIN",params:{json:!0,action:"login"},schema:{user:a.default.REQUIRED_STRING},notifySuccess:!1,notifyError:!1});n.masterLoginAsUser=d;var p=a.default.get({url:"/CMD_MASTER_LOGIN",params:{action:"[all_users]"},response:[]});n.getMasterLoginUsers=p;var f=a.default.get({url:"/CMD_MASTER_LOGIN",params:{action:"search",search:"[user]"},schema:{user:a.default.REQUIRED_STRING},after:function(e,n){return function(e){return u(e.users[n.user])}}});n.getSkinInfoForUser=f},,function(e,n,t){"use strict";var r=t(734),i=t(451),a=t(40),o=t(617),s=t(736);function l(e,n,t){var r=this._refs[t];if("string"==typeof r){if(!this._refs[r])return l.call(this,e,n,r);r=this._refs[r]}if((r=r||this._schemas[t])instanceof o)return h(r.schema,this._opts.inlineRefs)?r.schema:r.validate||this._compile(r);var i,a,s,c=u.call(this,n,t);return c&&(i=c.schema,n=c.root,s=c.baseId),i instanceof o?a=i.validate||e.call(this,i.schema,n,void 0,s):void 0!==i&&(a=h(i,this._opts.inlineRefs)?i:e.call(this,i,n,void 0,s)),a}function u(e,n){var t=r.parse(n),i=g(t),a=m(this._getId(e.schema));if(0===Object.keys(e.schema).length||i!==a){var s=b(i),l=this._refs[s];if("string"==typeof l)return c.call(this,e,l,t);if(l instanceof o)l.validate||this._compile(l),e=l;else{if(!((l=this._schemas[s])instanceof o))return;if(l.validate||this._compile(l),s==b(n))return{schema:l,root:e,baseId:a};e=l}if(!e.schema)return;a=m(this._getId(e.schema))}return p.call(this,t,a,e.schema,e)}function c(e,n,t){var r=u.call(this,e,n);if(r){var i=r.schema,a=r.baseId;e=r.root;var o=this._getId(i);return o&&(a=$(a,o)),p.call(this,t,a,i,e)}}e.exports=l,l.normalizeId=b,l.fullPath=m,l.url=$,l.ids=function(e){var n=b(this._getId(e)),t={"":n},o={"":m(n,!1)},l={},u=this;return s(e,{allKeys:!0},(function(e,n,s,c,d,p,f){if(""!==n){var h=u._getId(e),m=t[c],g=o[c]+"/"+d;if(void 0!==f&&(g+="/"+("number"==typeof f?f:a.escapeFragment(f))),"string"==typeof h){h=m=b(m?r.resolve(m,h):h);var v=u._refs[h];if("string"==typeof v&&(v=u._refs[v]),v&&v.schema){if(!i(e,v.schema))throw new Error('id "'+h+'" resolves to more than one schema')}else if(h!=b(g))if("#"==h[0]){if(l[h]&&!i(e,l[h]))throw new Error('id "'+h+'" resolves to more than one schema');l[h]=e}else u._refs[h]=g}t[n]=m,o[n]=g}})),l},l.inlineRef=h,l.schema=u;var d=a.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function p(e,n,t,r){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var i=e.fragment.split("/"),o=1;oe.maxItemsVisible},style:{maxHeight:e.maxHeight}},e._l(e.items,(function(n){return t("li",{staticClass:"List__Item"},[e._v("\n "+e._s(n)+"\n ")])})),0)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("div",{staticClass:"ui-loader-icon",style:this.style},[n("span",{staticClass:"first"}),this._v(" "),n("span",{staticClass:"second"}),this._v(" "),n("span",{staticClass:"third"})])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-mobile-pagination"},[t("ui-link",{ref:"range",staticClass:"txt:bold",on:{click:e.showIppDropdown}},[e._v("\n "+e._s(e.rowsRange.start)+"-"+e._s(e.rowsRange.end)+"\n ")]),e._v("\n  \n "),t("translate",{staticClass:"txt:bold",attrs:{"translate-params":{total:e.rowsCount}}},[e._v("\n of %{ total }\n ")]),e._v(" "),t("ui-button",{directives:[{name:"margin",rawName:"v-margin",value:[0,1],expression:"[0, 1]"}],attrs:{theme:"light",size:"small",disabled:!e.hasPrevPage},on:{click:function(n){return e.setPage(e.page-1)}}},[t("ui-icon",{attrs:{id:"arrow-left",size:"small"}})],1),e._v(" "),t("ui-button",{attrs:{theme:"light",size:"small",disabled:!e.hasNextPage},on:{click:function(n){return e.setPage(e.page+1)}}},[t("ui-icon",{attrs:{id:"arrow-right",size:"small"}})],1),e._v(" "),e.isMounted?t("ui-dropdown",{staticClass:"ipp-dropdown",attrs:{placemenent:"bottom-right",isOpen:e.dropdownShown,triggerElem:e.$refs.range.$el,clickOutsideElem:e.$refs.range.$el,width:"auto"},on:{"update:isOpen":function(n){e.dropdownShown=n},"update:is-open":function(n){e.dropdownShown=n}}},[t("ui-grid",{attrs:{column:""}},[t("translate",{staticClass:"txt:bold"},[e._v("\n Rows:\n ")]),e._v(" "),e._l(e.ippList,(function(n){return t("ui-link",{key:n,staticClass:"ippLink",class:{current:n===e.ipp},on:{click:function(t){return e.setIpp(n)}}},[e._v("\n "+e._s(n)+"\n ")])}))],2)],1):e._e()],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e,n=this,t=n.$createElement,r=n._self._c||t;return r(n.static?"div":"transition",{tag:"component",attrs:{name:"fadeBounce",type:"animation"}},[r("aside",{staticClass:"notification",class:(e={"shadow:def":!n.static},e["c:bg:"+n.theme]=!0,e["-is-permanent"]=n.permanent,e["-is-temporal"]=!n.permanent,e),on:{mouseenter:n.handleMouseEnter,mouseleave:n.handleMouseLeave}},[r("ui-icon",{staticClass:"notification-icon",attrs:{id:n.icon,size:"big"}}),n._v(" "),r("div",{staticClass:"notification-content-wrapper"},[r("h4",{staticClass:"notification-title",domProps:{innerHTML:n._s(n.title)}}),n._v(" "),n.content&&!n.extended?r("p",{directives:[{name:"margin",rawName:"v-margin",value:0,expression:"0"}],staticClass:"notification-content",domProps:{innerHTML:n._s(n.content)}}):n._e(),n._v(" "),n.extended?r("ui-link",{on:{click:n.showDetails}},[r("translate",[n._v("Show Details")])],1):n._e()],1),n._v(" "),n.permanent&&!n.static?r("div",{staticClass:"notification-close"},[r("ui-button-icon",{attrs:{icon:"close",theme:"light",size:"medium",title:n.$gettext("Close")},on:{click:function(e){return n.close(!0)}}})],1):n._e(),n._v(" "),n.temporal?r("ui-loader-bar",n._b({ref:"loader",staticClass:"notification-loader",attrs:{theme:"light"},on:{"loaderBar:ended":n.close}},"ui-loader-bar",{timeout:n.timeout},!1)):n._e()],1)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("div",{class:this.computedClass},[n("span",{staticClass:"number",class:"c:bg:"+this.theme,domProps:{textContent:this._s(this.number)}}),this._v(" "),n("span",{staticClass:"label"},[this._t("default")],2)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("Portal",{attrs:{to:"overlay-host"}},[t(e.transition?"transition":"div",e._g({tag:"component",class:{"pEvents:none":!e.stored.isBlocking},attrs:{name:e.transition},on:{beforeEnter:e.beforeEnter,leave:e.leave}},e.$listeners),[e.show?t("aside",e._g(e._b({directives:[{name:"flex",rawName:"v-flex",value:{cross:"start"},expression:"{ cross: 'start' }"}],ref:"overlay",staticClass:"overlay pos:fix pos:a:0",class:{"-is-transparent":e.stored.isTransparent&&!e.stored.isBlurred,"pEvents:none":!e.stored.isBlocking},style:e.style},"aside",e.$attrs,!1),e.$listeners),[e._t("default")],2):e._e()])],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("nav",{staticClass:"pagination"},[e.total>1?t("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"baseline"},expression:"{ cross: 'baseline' }"},{name:"gutter",rawName:"v-gutter",value:.5,expression:".5"}]},[e._l(e.pagination,(function(n){return[n.type==e.meta.types.ELLIPSIS?t("translate",[e._v("\n ...\n ")]):e._e(),e._v(" "),e._l(e.buttons,(function(r,i){return[r.condition(n)?t("ui-button",{staticClass:"no:disabled",class:r.classes?r.classes(n):{},attrs:{disabled:r.disabled(n),theme:r.theme?r.theme(n):"light",size:"normal"},on:{click:function(e){return r.handler(n)}}},[e._v("\n "+e._s(r.label(n))+"\n ")]):e._e()]}))]}))],2):e._e()])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ul",{staticClass:"ui-pre",class:{numbers:e.lineNumbers}},[e.$slots.header?t("li",{ref:"header",staticClass:"header",style:{width:e.headerWidth+"px"}},[e._t("header")],2):e._e(),e._v(" "),e._l(e.lines,(function(n){return t("li",{staticClass:"line"},[t("span",{ref:"lines",refInFor:!0,staticClass:"line-content"},[e._v("\n "+e._s(n)+"\n ")])])}))],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"ui-progress-label",class:{"--danger":e.limit&&"number"==typeof e.limit&&e.limit10?t("ui-ipp",{staticClass:"r-table-pagination-ipp"}):e._e()],1),e._v(" "),e.$slots["table:pagination:after"]?t("div",{staticClass:"r-table-pagination-after"},[e._t("table:pagination:after")],2):e._e()])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"r-table-buttons-before"},[t("div",{staticClass:"r-table-buttons-before-slot"},[e._t("default")],2),e._v(" "),e.$_Client.isPhone?e._e():t("div",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"}]}),e._v(" "),t("div",{directives:[{name:"flex",rawName:"v-flex",value:e.uiFlex,expression:"uiFlex"}],staticClass:"r-table-buttons-before-ui",class:{"--mobile":e.$_Client.isMobile}},[e.editable&&e.columns.length>2&&!e.$_Client.isMobile?t("input-checkable-select",{attrs:{options:e.labels,showToggleAll:!1,disabledOptions:e.pinnedColumns},model:{value:e.dataColumns,callback:function(n){e.dataColumns=n},expression:"dataColumns"}},[t("translate",{attrs:{slot:"label"},slot:"label"},[e._v("Columns")])],1):e._e(),e._v(" "),t("ui-grid",{directives:[{name:"margin",rawName:"v-margin",value:[0,1],expression:"[0, 1]"}],attrs:{cross:"center"}},[t("translate",{staticClass:"txt:bold"},[e._v("Density:")]),e._v(" "),e._l(e.densities,(function(n,r){return t("ui-link",{key:r,attrs:{title:n},on:{click:function(n){return e.setDensity(r)}}},[t("ui-icon",{attrs:{id:"dense-"+r,size:"medium4",theme:r===e.density?"primary":"gray"}})],1)}))],2),e._v(" "),e.showPagination&&e.pagination.total>1?t("ui-mobile-pagination",e._b({},"ui-mobile-pagination",e.pagination,!1)):e._e(),e._v(" "),e._t("before-buttons-end")],2)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-table",{attrs:{items:e.dataRows,vertical:e.verticalLayout},on:{"table:rowHover":function(n){return e.$emit("table:rowHover",n)}}},e._l(e.displayedColumns,(function(n,r){return t("ui-column",e._b({key:r+"-"+e.currentLang,attrs:{fit:n.fit||"select"===r||"min-content"===n.width,visible:n.visible,"get-class":n.getClass},scopedSlots:e._u([{key:"default",fn:function(n){return["select"===r?[e.isCheckable&&e.isRowCheckable(n)?t("input-checkbox",{attrs:{value:n},model:{value:e.dataCheckedRows,callback:function(n){e.dataCheckedRows=n},expression:"dataCheckedRows"}}):e._e()]:"actions"===r?e._t("row:actions",null,null,e.getBindingValues(n)):e._t("col:"+r,[e._v("\n "+e._s(n[r])+"\n ")],null,e.getBindingValues(n))]}}],null,!0)},"ui-column",{id:r},!1),[t("template",{slot:"label"},["select"===r?[e.checkedRows.length?e._e():t("input-checkbox",{attrs:{model:e.checkedAll,disabled:!e.checkableRows.length,title:e.$gettext("Select all rows")},on:{change:e.checkAll}})]:e.isSortable&&n.sortable&&e.dataRows.length?[t("span",{staticClass:"column-header --sortable",attrs:{title:e.getColumnLinkTitle(r)},on:{click:function(n){return n.preventDefault(),e.handleColumnClick(r)}}},[e._v("\n "+e._s(n&&n.label)+"\n "),r===e.dataSort.key?t("ui-icon",{style:"DESC"===e.dataSort.order?{transform:"rotate(180deg)"}:{},attrs:{id:"caret-down",size:"small"}}):e._e()],1)]:[e._v("\n "+e._s(n.label)+"\n ")]],2),e._v(" "),e._v(" "),e.hasAfterRow?t("template",{slot:"after"},[e._t("col:after:"+r)],2):e._e()],2)})),1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-grid-table",e._b({staticClass:"r-table-grid-columns",attrs:{columns:e.displayedColumns,hideHeaders:!!e.dataCheckedRows.length&&!e.hideTableActions&&!e.$_Client.isPhone,density:e.settings.density,rowsCount:e.dataRows.length},on:{"table:rowHover":function(n){return e.$emit("table:rowHover",n)}}},"ui-grid-table",{verticalLayout:e.verticalLayout,stickyHeaders:e.stickyHeaders},!1),[e.isCheckable?t("input-checkbox",{attrs:{slot:"header:select",model:e.checkedAll,disabled:!e.checkableRows.length,title:e.$gettext("Select all rows")},on:{change:e.checkAll},slot:"header:select"}):e._e(),e._v(" "),e._l(e.sortedColumns,(function(n,r){return e.isSortable?[t("span",{staticClass:"column-header --sortable",attrs:{slot:"header:"+r,title:e.getColumnLinkTitle(r)},on:{click:function(n){return n.preventDefault(),e.handleColumnClick(r)}},slot:"header:"+r},[t("h3",[e._v(e._s(n&&n.label))]),e._v(" "),r===e.dataSort.key?t("ui-icon",{style:"DESC"===e.dataSort.order?{transform:"rotate(180deg)"}:{},attrs:{id:"caret-down",size:"small"}}):e._e()],1)]:e._e()})),e._v(" "),e._l(e.dataRows,(function(n,r){return[e.isCheckable&&e.isRowCheckable(n)?t("input-checkbox",{attrs:{slot:"select:"+r,value:n},slot:"select:"+r,model:{value:e.dataCheckedRows,callback:function(n){e.dataCheckedRows=n},expression:"dataCheckedRows"}}):e._e(),e._v(" "),e._l(Object.keys(e.sortedColumns),(function(i){return t("template",{slot:i+":"+r},[e._t("col:"+i,[e._v("\n "+e._s(n[i])+"\n ")],null,e.getBindingValues(n,r))],2)})),e._v(" "),e.hasActionsColumn?t("template",{slot:"actions:"+r},[e._t("row:actions",null,null,e.getBindingValues(n,r))],2):e._e()]})),e._v(" "),e.hasAfterRow?[e._l(Object.keys(e.sortedColumns),(function(n){return t("template",{slot:n+":after"},[e._t("col:after:"+n)],2)}))]:e._e()],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"table"},[t("table",{staticClass:"table-elem --horizontal",class:["--density:"+e.density,{"--overusage-highlight":e.highlightUsage}]},[e.hideHeaders?e._e():t("thead",[t("tr",{staticClass:"table-row"},e._l(e.columnsData,(function(e,n){return t("th",{key:n+"-header",class:{"--min-content":e.fit},attrs:{width:e.width}},[t("ui-render",{attrs:{func:e.label}})],1)})),0)]),e._v(" "),t("tbody",{staticClass:"actions-target"},[e._l(e.items,(function(n,r){return t("tr",{key:r+"-row",staticClass:"table-row"},e._l(e.columnsData,(function(e,i){return t("td",{key:i+"-"+r,class:[{"--min-content":e.fit},e.getClass(n)]},[t("ui-render",{attrs:{func:e.createCell,data:n}})],1)})),0)})),e._v(" "),e.hasAfterRow?t("tr",{key:"after-row",staticClass:"table-row"},e._l(e.columnsData,(function(n,r){return t("td",{key:r+"-after"},[n.after?t("ui-render",{attrs:{func:n.after}}):e._e()],1)})),0):e._e()],2)])])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{class:["ui-vertical-table","actions-target","--density:"+e.density,{"--overusage-highlight":e.highlightUsage}]},[e._l(e.items,(function(n,r){return t("div",{staticClass:"ui-vertical-table-row",class:{"--odd":r%2}},[e.columnsData.select?t("div",{staticClass:"ui-vertical-table-select ui-vertical-table-cell --select --data"},[t("div",{staticClass:"ui-vertical-table-cell-inner-wrap"},[t("ui-render",{attrs:{func:e.columnsData.select.createCell,data:n}})],1)]):e._e(),e._v(" "),t("div",{staticClass:"ui-vertical-table-data-cells"},[e._l(e.dataColumns,(function(r){return[t("div",{staticClass:"ui-vertical-table-cell --header"},[t("div",{staticClass:"ui-vertical-table-cell-inner-wrap"},[t("h3",[t("ui-render",{attrs:{func:r.label}})],1)])]),e._v(" "),t("div",{staticClass:"ui-vertical-table-cell --data",class:r.getClass(n)},[t("div",{staticClass:"ui-vertical-table-cell-inner-wrap"},[t("ui-render",{attrs:{func:r.createCell,data:n}})],1)])]}))],2),e._v(" "),e.columnsData.actions?t("div",{staticClass:"ui-vertical-table-cell --actions"},[t("div",{staticClass:"ui-vertical-table-cell-inner-wrap"},[t("ui-render",{attrs:{func:e.columnsData.actions.createCell,data:n}})],1)]):e._e()])})),e._v(" "),e.hasAfterRow?t("div",{staticClass:"ui-vertical-table-row",class:{"--odd":e.items.length%2}},[e.columnsData.select?t("div",{staticClass:"ui-vertical-table-select ui-vertical-table-cell --select --data"}):e._e(),e._v(" "),t("div",{staticClass:"ui-vertical-table-data-cells"},[e._l(e.dataColumns,(function(n){return[n.after?t("div",{staticClass:"ui-vertical-table-cell --header"},[t("div",{staticClass:"ui-vertical-table-cell-inner-wrap"},[t("h3",[t("ui-render",{attrs:{func:n.label}})],1)])]):e._e(),e._v(" "),n.after?t("div",{staticClass:"ui-vertical-table-cell --data"},[t("div",{staticClass:"ui-vertical-table-cell-inner-wrap"},[t("ui-render",{attrs:{func:n.after}})],1)]):e._e()]}))],2),e._v(" "),e.columnsData.actions?t("div",{staticClass:"ui-vertical-table-cell --actions"}):e._e()]):e._e()],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"table"},[t("table",{staticClass:"table-elem --rotated",class:["--density:"+e.density]},e._l(e.columnsData,(function(n,r){return t("tr",{key:r+"-row",staticClass:"table-row"},[t("th",{key:r+"-header",staticClass:"--min-content"},[t("ui-render",{attrs:{func:n.label}})],1),e._v(" "),e._l(e.items,(function(e,i){return t("td",{key:r+"-"+i,class:n.getClass(e)},[t("ui-render",{attrs:{func:n.createCell,data:e}})],1)})),e._v(" "),e.hasAfterRow?t("td",{key:r+"-after"},[n.after?t("ui-render",{attrs:{func:n.after}}):e._e()],1):e._e()],2)})),0)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column' }"}],staticClass:"app-content width:100%",class:{"-is-blurred":this.isBlurred}},[n("Header"),this._v(" "),n("main",[this.hasRouteLoaded?n("RouteLoader"):this._e(),this._v(" "),this._t("page:content",[n("Content")]),this._v(" "),n("Footer")],2)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column' }"}],staticClass:"app-content width:100%",class:{"-is-blurred":e.isBlurred}},[t("Header"),e._v(" "),e.showDesktopMenu?t("DesktopMenu"):t("MobileMainMenu"),e._v(" "),t("Search"),e._v(" "),t("main",[e.hasRouteLoaded?t("RouteLoader"):e._e(),e._v(" "),e._t("page:content",[t("Content")]),e._v(" "),t("Footer")],2)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"row"},expression:"{ dir: 'row' }"}],staticClass:"app-content width:100% --sidebar-layout",class:{"-is-blurred":this.isBlurred}},[n("Aside",{ref:"aside"}),this._v(" "),n("main",[n("Header"),this._v(" "),this._t("page:content",[n("Content")])],2)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column' }"}],staticClass:"app-content width:100%",class:{"-is-blurred":e.isBlurred}},[t("Header",{on:{showOverlay:function(n){e.showOverlay=!0}}}),e._v(" "),e.showBreadcrumbs?t("Breadcrumbs"):e._e(),e._v(" "),t("main",[e.hasRouteLoaded?t("RouteLoader"):e._e(),e._v(" "),e._t("page:content",[t("Content")])],2),e._v(" "),"/"!==e.$route.path?t("grid-footer"):e._e(),e._v(" "),e.showOverlay?t("grid-overlay",{on:{close:function(n){e.showOverlay=!1}}}):e._e()],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return this.isLoading?n("ui-overlay",{attrs:{id:"loader:api",visible:"",transparent:"",blurred:this.isBlocking,blocking:this.isBlocking,priority:5,transition:"fade"}},[n("div",{staticClass:"pos:fix width:100%",style:{zIndex:5}},[n("ui-loader-bar",{ref:"loader",attrs:{autostart:""}})],1)]):this._e()},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("transition",{attrs:{name:"fade"}},[e.active?t("div",{class:{"network-error-overlay":!0,"--dark-mode":e.darkMode}},[t("ui-icon",{attrs:{id:"network-error",size:70,original:""}}),e._v(" "),t("translate",{staticClass:"message"},[e._v("\n Unable to reach network. Please check your internet connection.\n ")]),e._v(" "),t("ui-button",{attrs:{size:"big",theme:"safe",icon:"reload"},on:{click:e.silentlyReconnect}},[t("translate",[e._v("Connect")])],1)],1):e._e()])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-overlay",{attrs:{id:"notifications",blurred:!1,blocking:e.requestLoader,visible:!!Object.values(e.shownNotifications).length,transparent:""}},[t("transition-group",{staticClass:"notifications",attrs:{name:"slide",tag:"div"}},[e.$_Client.isMobile&&Object.keys(e.notifications).length>1?t("ui-link",{key:"moreButton",staticClass:"moreNotificationsButton",attrs:{size:"big",theme:"primary"},on:{click:e.showHiddenNotifications}},[t("ui-icon",{attrs:{id:"notifications",size:"big",original:""}}),e._v(" "),t("translate",{attrs:{"translate-n":Object.keys(e.notifications).length-1,"translate-params":{count:Object.keys(e.notifications).length-1},"translate-plural":"View %{ count } hidden notifications..."}},[e._v("\n View %{ count } hidden notification...\n ")])],1):e._e(),e._v(" "),e._l(e.shownNotifications,(function(n,r){return t("ui-notification",e._b({directives:[{name:"touch",rawName:"v-touch:swipe.right",value:e.handleSwipe(r),expression:"handleSwipe(id)",arg:"swipe",modifiers:{right:!0}}],key:e.getKey(n.time),staticClass:"pEvents:auto",on:{"notification:closed":function(n){return e.archiveNotifications(r)}}},"ui-notification",n,!1))})),e._v(" "),t("ui-request-notification",{key:"request-notification",staticClass:"pEvents:auto"})],2),e._v(" "),e.showNotificationsTrigger?t("ui-link",{staticClass:"notificationArchiveTrigger pEvents:auto",on:{click:e.openNotificationCenter}},[t("ui-icon-counter",{attrs:{id:"bell",size:"big",original:"",badge:e.archiveLength,counterTheme:"primary"}})],1):e._e()],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-drawer",{attrs:{id:"notification-center",position:e.$_rtl?"left":"right",noShadow:"",blurred:!1}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Notifications")]),e._v(" "),t("ui-button",{staticClass:"clear-button",attrs:{slot:"button",size:"normal",theme:"light",icon:"notifications-cancel"},on:{click:e.clearArchive},slot:"button"},[t("translate",[e._v("Clear All")])],1),e._v(" "),t("div",{staticClass:"NotificationArchive pEvents:auto"},[t("div",{staticClass:"Notifications"},[t("transition-group",{ref:"notifications-group",attrs:{tag:"div",name:"slideLeft"}},e._l(e.ids,(function(n){return t("archived-notification",e._b({key:n},"archived-notification",e.archive[n],!1))})),1)],1),e._v(" "),t("div",{staticClass:"NotificationArchiveActions"},e._l(["primary","safe","danger"],(function(n){return t("notification-filter-button",e._b({key:n,model:{value:e.filters,callback:function(n){e.filters=n},expression:"filters"}},"notification-filter-button",{id:n},!1))})),1)])],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-dialog",e._b({attrs:{id:"REQUEST_RESULT_DIALOG",size:"normal",noCloseBtn:""}},"ui-dialog",{theme:e.theme},!1),[t("span",{attrs:{slot:"title"},domProps:{textContent:e._s(e.title)},slot:"title"}),e._v(" "),t(e.tag,{tag:"component",staticClass:"content",attrs:{slot:"content"},domProps:{innerHTML:e._s(e.trimmedContent)},slot:"content"})],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-overlay",{attrs:{id:"ROUTE_SEARCH_OVERLAY",visible:e.showOverlay,blocking:"",blurred:""}},[e.showOverlay?t("div",{staticClass:"route-search-overlay"},[t("ui-form-element",{attrs:{underline:!1}},[t("input-autocomplete",{ref:"input",attrs:{slot:"content",placeholder:e.$gettext("Search Criteria"),values:e.computedResults,forceAllValues:"",suggestAfter:0,autofocus:"",maxHeight:"calc(100vh - 13rem)"},on:{escape:function(n){e.showOverlay=!1},autocomplete:e.handleAutocomplete},slot:"content",model:{value:e.value,callback:function(n){e.value=n},expression:"value"}},[t("ui-button",{attrs:{slot:"additions:right",icon:"close"},on:{click:function(n){e.showOverlay=!1}},slot:"additions:right"})],1)],1)],1):e._e()])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-drawer",{attrs:{id:"skin-options",position:e.$_rtl?"left":"right"}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Skin Options\n ")]),e._v(" "),t("ui-button",{attrs:{slot:"button",theme:"light",size:"normal",icon:"notifications-cancel"},on:{click:e.resetOptions},slot:"button"},[t("translate",[e._v("Reset All")])],1),e._v(" "),t("app-page-section",{directives:[{name:"margin",rawName:"v-margin",value:2,expression:"2"}]},[e.showLayoutSelect?t("ui-form-element",{attrs:{underline:!1}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Layout\n ")]),e._v(" "),t("input-select",{attrs:{slot:"content",options:{standard:e.$gettext("Standard"),sidebar:e.$gettext("Sidebar"),grid:e.$gettext("Icons Grid"),hybrid:e.$gettext("Hybrid")}},slot:"content",model:{value:e.skinLayout,callback:function(n){e.skinLayout=n},expression:"skinLayout"}})],1):e._e(),e._v(" "),e.showThemeSelect?t("ui-form-element",[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Theme\n ")]),e._v(" "),t("input-select",{attrs:{slot:"content",options:e.themeList},on:{change:function(n){e.skinThemeChanged=!0}},slot:"content",model:{value:e.skinTheme,callback:function(n){e.skinTheme=n},expression:"skinTheme"}})],1):e._e(),e._v(" "),e.showThemeSelect?t("ui-form-element",[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Dark Mode\n ")]),e._v(" "),t("input-select",{attrs:{slot:"content",options:e.$state.themes.hasAutoMode?{auto:e.$gettext("Auto"),enabled:e.$gettext("Enabled"),disabled:e.$gettext("Disabled")}:{enabled:e.$gettext("Enabled"),disabled:e.$gettext("Disabled")}},slot:"content",model:{value:e.darkMode,callback:function(n){e.darkMode=n},expression:"darkMode"}})],1):e._e(),e._v(" "),t("ui-form-element",{attrs:{underline:!1}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Master Login\n ")]),e._v(" "),t("input-select",{attrs:{slot:"content",options:{topline:e.$gettext("Top Line"),drawer:e.$gettext("Aside")}},slot:"content",model:{value:e.masterLoginType,callback:function(n){e.masterLoginType=n},expression:"masterLoginType"}})],1),e._v(" "),"grid"===e.skinLayout||"hybrid"===e.skinLayout?[Object.keys(e.$api.iconPacks).length>1?t("ui-form-element",[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Icon Pack\n ")]),e._v(" "),t("input-select",{attrs:{slot:"content",options:e.iconPacks},slot:"content",model:{value:e.iconPack,callback:function(n){e.iconPack=n},expression:"iconPack"}})],1):e._e()]:e._e(),e._v(" "),"grid"===e.skinLayout&&e.showLayoutSelect?t("ui-form-element",{attrs:{underline:!1}},[t("span",{attrs:{slot:"title"},slot:"title"}),e._v(" "),t("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:e.mergeLevels,callback:function(n){e.mergeLevels=n},expression:"mergeLevels"}},[e._v("\n Merge Access Levels\n ")])],1):e._e(),e._v(" "),e.showLanguageSelect?t("ui-form-element",{attrs:{underline:!1}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Language\n ")]),e._v(" "),t("input-select",e._b({staticClass:"fxi:grow:true",attrs:{slot:"content"},on:{change:e.setLanguage},slot:"content"},"input-select",{options:e.languages,selected:e.language},!1))],1):e._e(),e._v(" "),t("ui-form-element",{attrs:{underline:!1}},[t("span",{attrs:{slot:"title"},slot:"title"}),e._v(" "),t("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:e.disableRouteTransitions,callback:function(n){e.disableRouteTransitions=n},expression:"disableRouteTransitions"}},[t("translate",[e._v("Disable Route Transitions")])],1)],1)],2),e._v(" "),t("app-page-section",{directives:[{name:"margin",rawName:"v-margin",value:[1,2],expression:"[1,2]"}]},[t("translate",{attrs:{slot:"section:title"},slot:"section:title"},[e._v("\n Date Formats\n ")]),e._v(" "),t("date-formats",{attrs:{"datetime-format":e.datetime,"date-format":e.date,"week-start":e.weekStart},on:{"update:datetimeFormat":function(n){e.datetime=n},"update:datetime-format":function(n){e.datetime=n},"update:dateFormat":function(n){e.date=n},"update:date-format":function(n){e.date=n},"update:weekStart":function(n){e.weekStart=n},"update:week-start":function(n){e.weekStart=n}}})],1),e._v(" "),t("app-page-section",{directives:[{name:"margin",rawName:"v-margin",value:[1,2],expression:"[1,2]"}]},[t("translate",{attrs:{slot:"section:title"},slot:"section:title"},[e._v("\n Tables\n ")]),e._v(" "),t("ui-form-element",[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Rows Density\n ")]),e._v(" "),t("input-select",{attrs:{slot:"content",options:{condensed:e.$gettext("Condensed"),normal:e.$gettext("Normal"),expanded:e.$gettext("Expanded")}},slot:"content",model:{value:e.density,callback:function(n){e.density=n},expression:"density"}})],1),e._v(" "),t("ui-form-element",[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Number of user domains shown\n ")]),e._v(" "),t("input-text",{attrs:{slot:"content",number:""},slot:"content",model:{value:e.userDomainLimit,callback:function(n){e.userDomainLimit=n},expression:"userDomainLimit"}})],1),e._v(" "),t("ui-form-element",{attrs:{underline:!1}},[t("span",{attrs:{slot:"title"},slot:"title"}),e._v(" "),t("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:e.highlightUsage,callback:function(n){e.highlightUsage=n},expression:"highlightUsage"}},[t("translate",[e._v("Overusage highlight")])],1)],1)],1)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-dialog",{attrs:{theme:"danger",id:"SKIN_RELOAD_DIALOG",size:"small",noCloseBtn:"",noCloseIcon:""},on:{"dialog:open":e.runTimer}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Skin has been updated")]),e._v(" "),t("translate",{staticClass:"txt:bold",attrs:{slot:"content","translate-params":{seconds:e.seconds}},slot:"content"},[e._v("\n Full reload will be performed in %{ seconds } seconds\n ")]),e._v(" "),t("ui-button",{attrs:{slot:"buttons",theme:"danger"},on:{click:e.reload},slot:"buttons"},[t("translate",[e._v("Reload Now")])],1)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-dialog",{attrs:{theme:"danger",id:"SKIN_REDIRECT_DIALOG",size:"small",noCloseBtn:"",noCloseIcon:""},on:{"dialog:open":e.runTimer}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Redirect")]),e._v(" "),t("div",{directives:[{name:"translate",rawName:"v-translate",value:{url:e.url,s:e.seconds},expression:"{\n url,\n s: seconds,\n }"}],attrs:{slot:"content"},slot:"content"},[e._v("\n Redirecting to "),t("b",[e._v("%{ url }")]),e._v(" after "),t("b",[e._v("%{ s }")]),e._v(" seconds\n ")]),e._v(" "),t("ui-button",{attrs:{slot:"buttons",theme:"danger"},on:{click:e.redirect},slot:"buttons"},[t("translate",[e._v("Redirect Now")])],1),e._v(" "),t("ui-button",{attrs:{slot:"buttons",theme:"safe"},on:{click:e.cancelRedirect},slot:"buttons"},[e._v("\n Cancel\n ")])],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"icons-grid"},[t("div",{staticClass:"filters-bar"},[!e.mergeLevels&&"user"!==e.$state.app.user.level&&e.showLevelSelector?t("access-level-dropdown"):e._e(),e._v(" "),t("div",{staticClass:"filters-bar-search"},[t("input-text",{ref:"search",attrs:{placeholder:e.$gettext("Navigation Filter")},on:{keyup:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"enter",13,n.key,"Enter")?null:e.openLink(n)}},model:{value:e.search,callback:function(n){e.search=n},expression:"search"}}),e._v(" "),t("ui-link",{staticClass:"search-icon",on:{click:function(n){return e.$refs.search.$refs.input.focus()}}},[t("ui-icon",{attrs:{id:"search",size:14,theme:"primary"}})],1)],1)],1),e._v(" "),t("div",{staticClass:"icons-grid-content",on:{click:function(n){return e.$emit("close")}}},[e._l(e.menuCategories,(function(n,r){return t("div",{key:n.icon,staticClass:"icons-grid-category",class:{"--last":r===e.menuCategories.length-1}},[t("h3",{staticClass:"icons-grid-category-title"},[e._v("\n "+e._s(e.$gettext(n.name))+"\n ")]),e._v(" "),t("div",{staticClass:"icons-grid-category-entries"},e._l(n.entries,(function(n,r){return t("icon-entry",e._b({key:n.icon+"-"+r,ref:"icons",refInFor:!0},"icon-entry",n,!1))})),1)])})),e._v(" "),e.noResults?t("div",{staticClass:"icons-grid-category no-results"},[t("translate",{staticClass:"icons-grid-category-title c:txt:danger",attrs:{tag:"h3"}},[e._v("\n No Results\n ")])],1):e._e(),e._v(" "),e.noResults?e._e():t("div",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"}]}),e._v(" "),e.showFooter?t("grid-footer"):e._e()],2)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement;return(this._self._c||e)("RouterView",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"}]})},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("header",{staticClass:"header"},[t("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"between",cross:"center"},expression:"{\n main: 'between',\n cross: 'center'\n }"}],staticClass:"header-top"},[t("div",[t("ui-link",{staticClass:"header-logo disp:block no:hover",style:{backgroundImage:e.backgroundImage},attrs:{path:"/",title:"DirectAdmin"}})],1),e._v(" "),t("div",{directives:[{name:"padding",rawName:"v-padding",value:3,expression:"3"}]},[t("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"end",cross:"center"},expression:"{ main: 'end', cross: 'center' }"},{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"},{name:"gutter",rawName:"v-gutter:padding",value:3,expression:"3",arg:"padding"}]},[t("NavigationTypeSwitch"),e._v(" "),e.showDomainDropdown?t("DomainsDropdown"):e._e(),e._v(" "),"user"!==e.$state.app.user.level?t("AccessLevelDropdown"):e._e(),e._v(" "),t("UserBar")],1)])]),e._v(" "),t("MainMenu"),e._v(" "),t("Search")],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("nav",{staticClass:"mainMenu"},[t("transition",{attrs:{name:"fade",mode:"out-in"}},[t("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"between",equalWidth:!0},expression:"{ main: 'between', equalWidth: true }"}],key:e.displayType,staticClass:"trans:fast mainMenu-categories"},[e._l(e.categories,(function(n,r){return t("main-menu-category",e._b({directives:[{name:"flex-item",rawName:"v-flex-item",value:{shrink:!0},expression:"{ shrink: true }"}],key:r,attrs:{displayType:e.displayType,placement:r<=e.categories.length-3?"bottom-left":"bottom-right"}},"main-menu-category",n,!1))})),e._v(" "),e.hasPluggedMenu?t("plugged-menu-category",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{shrink:!0},expression:"{ shrink: true }"}],attrs:{displayType:e.displayType,menu:e.pluggedMenu,placement:"bottom-right"}}):e._e()],2)])],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return e.$_Client.isPhone?t("ui-input-group",{directives:[{name:"margin",rawName:"v-margin",value:1,expression:"1"},{name:"flex-item",rawName:"v-flex-item",value:{grow:!1},expression:"{ grow: false }"}]},[t("ui-button",{attrs:{slot:"additions:left",disabled:""},slot:"additions:left"},[t("translate",{staticClass:"txt:bold"},[e._v("Domain")])],1),e._v(" "),t("input-select",e._b({attrs:{slot:"input"},on:{change:e.setDomain},slot:"input"},"input-select",{options:e.punycodedDomains,selected:e.$domain},!1))],1):t("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"}],staticClass:"domainsDropdown",style:{margin:e.$_Client.isPhone?"1rem":"0rem"}},[t("translate",{directives:[{name:"show",rawName:"v-show",value:e.showText||e.$_Client.isPhone||"sidebar"===e.layout||"hybrid"===e.layout,expression:"showText || $_Client.isPhone || layout === 'sidebar' || layout === 'hybrid'"},{name:"margin",rawName:"v-margin",value:[0,1,0,0],expression:"[0, 1, 0, 0]"}],staticClass:"txt:bold domainsDropdownLabel"},[e._v("\n Domain\n ")]),e._v(" "),t("input-select",e._b({style:{minWidth:"unset",width:"18rem"},on:{change:e.setDomain}},"input-select",{options:e.punycodedDomains,selected:e.$domain},!1))],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("section",{staticClass:"search",class:{focused:e.focused,"--has-dropdown":e.value.length>1}},[t("input-autocomplete",{ref:"autocomplete",staticClass:"width:100% SearchInput",attrs:{values:e.computedResults,"max-items-visible":10,placeholder:e.$gettext("Please enter your search criteria"),"force-all-values":"",dropdown:e.focused,pinnable:!1},on:{input:e.handleInput,focus:e.handleFocus,autocomplete:e.handleAutocomplete},model:{value:e.value,callback:function(n){e.value=n},expression:"value"}},[!e.value||e.loading||e.computedResults.length?e._e():t("div",{attrs:{slot:"empty"},slot:"empty"},[t("p",{directives:[{name:"padding",rawName:"v-padding",value:1,expression:"1"}]},[t("translate",[e._v("No results")])],1)])]),e._v(" "),t("ui-link",{staticClass:"search-icon",on:{click:function(n){return e.$refs.autocomplete.$refs.input.focus()}}},[t("ui-icon",{attrs:{id:"search",size:14,theme:"neutral"}})],1),e._v(" "),t("ui-link",{staticClass:"options-icon",on:{click:e.openSettings}},[t("ui-icon",{attrs:{id:"settings",size:14,theme:"neutral"}})],1),e._v(" "),t("ui-dialog",{attrs:{id:"SEARCH_SETTINGS","no-close-btn":""}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Search settings\n ")]),e._v(" "),t("template",{slot:"content"},[t("translate",[e._v("Select your searching criteria:")]),e._v(" "),t("div",{directives:[{name:"padding",rawName:"v-padding",value:1,expression:"1"},{name:"margin",rawName:"v-margin",value:[1,,,],expression:"[1,,,]"}],staticClass:"c:bg:gray2 border:a:def radius:def"},[t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column' }"},{name:"gutter",rawName:"v-gutter",value:1,expression:"1"}]},e._l(e.settingsMeta,(function(n,r){return t("input-checkbox",{key:r,attrs:{invert:"",value:r,disabled:e.settings.length<2&&e.settings.includes(r)},model:{value:e.settings,callback:function(n){e.settings=n},expression:"settings"}},[t("ui-grid",[t("ui-icon",{attrs:{id:n.icon,theme:e.settings.includes(r)?"primary":"gray",size:"medium4"}}),e._v(" "),t("translate",[e._v(e._s(n.label))])],1)],1)})),1)])],1)],2)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("footer",[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"between",cross:"center",wrap:!0},expression:"{\n main: 'between',\n cross: 'center',\n wrap: true,\n }"},{name:"margin",rawName:"v-margin",value:[,"auto"],expression:"[, 'auto']"}],staticClass:"type:small"},[n("Breadcrumbs",{staticClass:"breadcrumbs"}),this._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"end",dir:"column"},expression:"{\n cross: 'end',\n dir: 'column'\n }"}],staticClass:"lang-text"},[this.languagesCount>1?n("LanguageDropdown"):this._e(),this._v(" "),n("translate",{directives:[{name:"padding",rawName:"v-padding",value:[1,0],expression:"[1, 0]"}],attrs:{"translate-params":{year:this.year}}},[this._v("\n DirectAdmin Web Control Panel © %{ year } JBMC Software\n ")])],1)],1)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("header",{staticClass:"header"},[t("div",{staticClass:"header-top pos:rel"},[e.$_Client.isPhone&&e.showDomainsDropdown?t("DomainSelect"):t("Logo"),e._v(" "),e.$_Client.isTablet?t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"row",cross:"center"},expression:"{ dir: 'row', cross: 'center' }"}]},["grid"!==e.layout&&"hybrid"!==e.layout?t("NavigationTypeSwitch"):e._e(),e._v(" "),e.showDomainsDropdown?t("DomainsDropdown"):e._e(),e._v(" "),e.showAccessLevelDropdown?t("AccessLevelDropdown"):e._e()],1):e._e(),e._v(" "),t("UserBar"),e._v(" "),e.$_Client.isMobile?t("a",{staticClass:"menu-trigger",on:{click:e.openMenu}},[t("ui-icon",{attrs:{id:e.menuIcon,size:20}})],1):e._e()],1)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("footer",[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"between",cross:"center",wrap:!0},expression:"{\n main: 'between',\n cross: 'center',\n wrap: true,\n }"},{name:"margin",rawName:"v-margin",value:[,"auto"],expression:"[, 'auto']"}],staticClass:"type:small"},[n("Breadcrumbs",{staticClass:"breadcrumbs"}),this._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center",dir:"column"},expression:"{\n cross: 'center',\n dir: 'column'\n }"}],staticClass:"lang-text"},[this.languagesCount>1?n("LanguageDropdown"):this._e(),this._v(" "),n("translate",{attrs:{"translate-params":{year:this.year}}},[this._v("\n DirectAdmin Web Control Panel © %{ year } JBMC Software\n ")])],1)],1)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-drawer",{attrs:{id:"mobile-menu",position:e.$_rtl?"left":"right",noShadow:""}},[t("Logo",{attrs:{slot:"title"},nativeOn:{click:function(n){return e.closeMenu(n)}},slot:"title"}),e._v(" "),t("ui-grid",{attrs:{slot:"button"},slot:"button"},["hybrid"===e.layout?t("HybridLevelToggle"):e._e(),e._v(" "),"user"===e.$state.app.user.accessLevel&&e.$_Client.isPhone?t("ui-link",{on:{click:e.openDomainDropdown}},[t("ui-icon",{attrs:{id:"www",size:24,theme:"neutral"}})],1):e._e()],1),e._v(" "),e.showIconsGrid?t("div",{staticClass:"icons-grid-wrapper"},[t("IconsGrid",{attrs:{showLevelSelector:""},on:{close:e.closeMenu}})],1):[t("Menu",{on:{click:e.closeMenu}}),e._v(" "),t("AccessLevelDropdown")]],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("footer",{staticClass:"grid-footer"},[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"between",cross:"center"},expression:"{\n main: 'between',\n cross: 'center',\n }"}],staticClass:"type:small"},[n("translate",{directives:[{name:"padding",rawName:"v-padding",value:[1,0],expression:"[1, 0]"}],attrs:{"translate-params":{year:this.year}}},[this._v("\n DirectAdmin Web Control Panel © %{ year } JBMC Software\n ")]),this._v(" "),this.languagesCount>1?n("LanguageDropdown",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!1},expression:"{ grow: false }"},{name:"margin",rawName:"v-margin",value:[0,1],expression:"[0, 1]"}]}):this._e()],1)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("aside",{staticClass:"app-sidebar"},[t("div",{staticClass:"app-sidebar-header",class:{"--white-background":e.whiteBackground}},[t("ui-link",{staticClass:"app-sidebar-header-logo no:hover",style:{backgroundImage:e.backgroundImage},attrs:{path:"/",title:"DirectAdmin"}})],1),e._v(" "),t("MainMenu",{key:e.$state.app.user.accessLevel,on:{update:function(n){return e.$emit("update")}}}),e._v(" "),t("div",{staticClass:"app-sidebar-footer"},[t("div",{staticClass:"app-sidebar-language"},[t("language-selector")],1),e._v(" "),t("div",{staticClass:"app-sidebar-copyright"},[t("translate",{attrs:{"translate-params":{year:e.year}}},[e._v("\n © %{ year } JBMC Software\n ")])],1)])],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"app-header"},[t("search",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"}]}),e._v(" "),t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"row",cross:"center"},expression:"{ dir: 'row', cross: 'center' }"}]},["hybrid"===e.layout?[t("translate",{directives:[{name:"margin",rawName:"v-margin",value:[0,0,0,1],expression:"[0, 0, 0, 1]"}],staticClass:"txt:bold wrap:nowrap"},[e._v("\n Access Level\n ")]),e._v(" "),t("HybridLevelToggle",{directives:[{name:"margin",rawName:"v-margin",value:[0,0,0,1],expression:"[0, 0, 0, 1]"}]})]:e.$state.app.user.canBe("reseller")?t("AccessLevelDropdown"):e._e(),e._v(" "),"user"===e.$state.app.user.accessLevel?t("DomainsDropdown",{directives:[{name:"margin",rawName:"v-margin",value:[0,0,0,1],expression:"[0, 0, 0, 1]"}]}):e._e(),e._v(" "),t("UserBar")],2)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("header",{staticClass:"app-header"},[t("ui-link",{staticClass:"header-logo disp:block no:hover",style:{backgroundImage:e.backgroundImage},attrs:{path:"/",title:"DirectAdmin"}}),e._v(" "),t("span",{staticClass:"header-spacer"}),e._v(" "),t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"row",cross:"center"},expression:"{ dir: 'row', cross: 'center' }"},{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"}]},[t("search",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"},{name:"margin",rawName:"v-margin",value:[0,e.showAccessLevelDropdown?-1:1,0,0],expression:"[0, showAccessLevelDropdown ? -1 : 1, 0, 0]"}]}),e._v(" "),"hybrid"===e.layout&&"user"!==e.$state.app.user.level?[t("translate",{staticClass:"txt:bold wrap:nowrap"},[e._v("\n Access Level\n ")]),e._v(" "),t("HybridLevelToggle",{directives:[{name:"margin",rawName:"v-margin",value:[0,0,0,1],expression:"[0, 0, 0, 1]"}]})]:e._e(),e._v(" "),e.showAccessLevelDropdown?t("access-level-dropdown"):e._e(),e._v(" "),e.showDomainDropdown?t("DomainsDropdown",{directives:[{name:"margin",rawName:"v-margin",value:[0,0,0,1],expression:"[0, 0, 0, 1]"}]}):e._e(),e._v(" "),t("UserBar"),e._v(" "),"/"!==e.$route.path?t("div",{staticClass:"nav-grid-trigger",on:{click:function(n){return e.$emit("showOverlay")}}},[t("ui-icon",{attrs:{id:"nav-grid",size:20,theme:"primary"}})],1):e._e()],2)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("transition",{attrs:{name:"fade",duration:0},on:{"after-enter":e.afterEnter}},[e.show?t("ui-overlay",{staticClass:"icons-grid-overlay",attrs:{id:"icons-grid-overlay",visible:"",blocking:"",blurred:!1,transparent:""}},[t("div",{ref:"overlay",staticClass:"icons-wrapper-overlay",class:{expand:e.expand}},[t("div",{staticClass:"overlay-content"},[t("icons-grid",{on:{click:function(n){return e.$emit("close")}}})],1),e._v(" "),t("ui-link",{staticClass:"expand-trigger",on:{click:function(n){e.expand=!e.expand}}},[t("ui-icon",{attrs:{id:"arrow-down",size:20}})],1)],1)]):e._e()],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"breadcrumbs --grid"},[e._l(e.breadcrumbs,(function(n,r){return[r?[e._v("/")]:e._e(),e._v(" "),t(n.path===e.$route.path?"span":"ui-link",{tag:"component",attrs:{path:n.path}},[e._v("\n "+e._s(e.$gettext(n.name))+"\n ")])]}))],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"archived-notification"},[t("div",{staticClass:"archived-notification-header"},[t("span",{staticClass:"archived-notification-type",domProps:{textContent:e._s(e.type)}})]),e._v(" "),t("div",{staticClass:"archived-notification-body",class:[e.theme]},[t("ui-icon",{staticClass:"archived-notification-icon",attrs:{id:e.icon,size:20,color:"#afb9bd"}}),e._v(" "),t("div",{staticClass:"archived-notification-content"},[t("span",{staticClass:"archived-notification-title",domProps:{innerHTML:e._s(e.title)}}),e._v(" "),e.content&&!e.extended?t("span",{staticClass:"archived-notification-text",domProps:{innerHTML:e._s(e.content)}}):e._e()])],1),e._v(" "),t("div",{staticClass:"archived-notification-meta"},[e.date?t("span",{staticClass:"archived-notification-date",domProps:{textContent:e._s(e.date)}}):e._e(),e._v(" "),t("ui-link",{staticClass:"archived-notification-route",attrs:{path:e.route}},[e._v("\n "+e._s(e.route)+"\n ")]),e._v(" "),e.extended?t("ui-link",{staticClass:"archived-notification-details",on:{click:e.showDetails}},[t("translate",[e._v("Show details")])],1):e._e()],1)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("ui-link",{staticClass:"Btn pos:rel",attrs:{title:e.title},on:{click:e.emit}},[t("ui-icon",e._b({},"ui-icon",{size:24,id:e.icon,theme:e.theme},!1)),e._v(" "),t("div",{staticClass:"Count pos:abs"},[t("ui-round-badge",e._b({},"ui-round-badge",{size:16,theme:e.theme},!1),[e._v("\n "+e._s(e.count)+"\n ")])],1)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"},{name:"gutter",rawName:"v-gutter",value:[null,1],expression:"[null, 1]"},{name:"margin",rawName:"v-margin",value:[0,1],expression:"[0, 1]"}],staticClass:"userLevel"},["grid"!==e.layout&&e.$_Client.isTablet?e._e():t("span",{directives:[{name:"show",rawName:"v-show",value:e.showText||e.$_Client.isPhone,expression:"showText || $_Client.isPhone"}],staticClass:"txt:bold userLevelLabel wrap:nowrap",class:{"c:txt:light":e.$_Client.isPhone}},[t("translate",[e._v("Access Level")])],1),e._v(" "),t("input-select",e._b({staticClass:"userLevel-select",model:{value:e.accessLevel,callback:function(n){e.accessLevel=n},expression:"accessLevel"}},"input-select",{options:e.options},!1))],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e,n=this,t=n.$createElement,r=n._self._c||t;return r("ui-link",n._b({staticClass:"icons-grid-category-entry",class:{currentRoute:n.currentRoute}},"ui-link",((e={})[n.isRoute?"path":"href"]=n.isRoute?n.routeHref:n.href,e.title=n.$gettext(n.name),e.target=n.newTab?"_blank":"_self",e.params=n.params,e.query=n.query,e),!1),[r("img",{staticClass:"icons-grid-category-entry-icon",attrs:{src:n.iconSrc,alt:n.$gettext(n.name)}}),n._v(" "),r("span",{staticClass:"icons-grid-category-entry-name",domProps:{textContent:n._s(n.$gettext(n.name))}}),n._v(" "),r("span",{staticClass:"icons-grid-category-entry-updates"},[n.updates?r("ui-round-badge",{attrs:{theme:"primary",size:20}},[n._v("\n "+n._s(n.updates)+"\n ")]):n._e()],1),n._v(" "),"user"!==n.$state.app.user.level&&n.level?r("span",{staticClass:"icons-grid-category-entry-level"},[r("ui-round-badge",{attrs:{size:15,theme:n.levelTheme}},[n._v("\n "+n._s(n.levelLetter)+"\n ")])],1):n._e()])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("section",{staticClass:"route-container"},[n("transition",{attrs:{mode:"out-in",name:this.disableRouteTransitions?"none":"fadeBounce"},on:{"after-leave":this.afterLeave}},[this.hasRouteLoaded?n("router-view",{key:"routerView"}):n("div",{staticClass:"route-loading-container"},[n("div",{staticClass:"route-loading-progress"},[n("ui-loader-bar",{ref:"loader"})],1)])],1)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("app-page",{attrs:{id:"Error"}},[t("template",{slot:"page:title"},[e._v("\n Error Captured inside "+e._s(e.info)+" on “"+e._s(e.vm.$options._componentTag)+"”\n ")]),e._v(" "),t("ui-button",{attrs:{slot:"header:buttons",theme:"safe"},on:{click:function(n){return e.$emit("close")}},slot:"header:buttons"},[t("translate",[e._v("Close Report")])],1),e._v(" "),t("app-page-section",[t("div",{staticClass:"Table"},[t("h3",[e._v("\n Data\n ")]),e._v(" "),t("table",{staticClass:"table-elem"},[t("tr",{staticClass:"table-row"},[t("td",{attrs:{width:"400px"}},[t("strong",[e._v("Route Name")])]),e._v(" "),t("td",[e._v(e._s(e.$route.name))])]),e._v(" "),t("tr",{staticClass:"table-row"},[t("td",[t("strong",[e._v("Route Query")])]),e._v(" "),t("td",[e._v(e._s(e.$route.query))])]),e._v(" "),t("tr",{staticClass:"table-row"},[t("td",[t("strong",[e._v("Route Params")])]),e._v(" "),t("td",[e._v(e._s(e.$route.params))])]),e._v(" "),t("tr",{staticClass:"table-row"},[t("td",[t("strong",[e._v("Domain")])]),e._v(" "),t("td",[e._v(e._s(e.$domain))])]),e._v(" "),t("tr",{staticClass:"table-row"},[t("td",[t("strong",[e._v("User")])]),e._v(" "),t("td",[e._v(e._s(e.$state.app.user.name))])]),e._v(" "),t("tr",{staticClass:"table-row"},[t("td",[t("strong",[e._v("User Level")])]),e._v(" "),t("td",[e._v(e._s(e.$state.app.user.level))])])])])]),e._v(" "),t("app-page-section",[t("translate",{attrs:{slot:"section:title"},slot:"section:title"},[e._v(e._s(e.err.toString()))]),e._v(" "),t("pre",{staticClass:"StackTrace",domProps:{textContent:e._s(e.err.stack)}})],1)],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"mainMenuCat c:txt:light pos:rel",class:{"--open":e.isOpen},on:{mouseover:e.open,mouseout:e.close,touchend:e.open}},["grid"===e.displayType?[t("ui-link",{directives:[{name:"padding",rawName:"v-padding",value:[2,2,1],expression:"[2, 2, 1]"}],ref:"link",staticClass:"mainMenuCat-link pos:rel disp:block c:txt:light txt:center no:hover",attrs:{href:e.link||void 0,target:e.newTab?"_blank":"_self"}},[t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column",cross:"center"},expression:"{ dir: 'column', cross: 'center' }"},{name:"gutter",rawName:"v-gutter",value:[1,null],expression:"[1, null]"}],staticClass:"pos:rel z:1"},[t("div",{staticClass:"pos:rel"},[t("category-icon",{attrs:{icon:e.icon,width:40}}),e._v(" "),e.updates?t("ui-round-badge",{staticClass:"mainMenuCat-updates pos:abs",attrs:{theme:"primary:light",size:16}},[e._v("\n "+e._s(e.updates)+"\n ")]):e._e()],1),e._v(" "),t("span",{staticClass:"txt:medium",domProps:{textContent:e._s(e.$gettext(e.name))}})])]),e._v(" "),e.link?e._e():t("div",{staticClass:"mainMenuCat-dropdown",class:[e.placement],style:{minWidth:e.minWidth+"px"}},[t("nav",{directives:[{name:"flex",rawName:"v-flex"},{name:"gutter",rawName:"v-gutter",value:[null,4],expression:"[null, 4]"},{name:"padding",rawName:"v-padding",value:2,expression:"2"}]},e._l(e.columnizedEntries,(function(n){return t("div",e._l(n,(function(n,r){return n.enabled?t("main-menu-entry",e._b({key:r},"main-menu-entry",n,!1)):e._e()})),1)})),0)])]:e._e(),e._v(" "),"list"===e.displayType?[t("div",{directives:[{name:"flex",rawName:"v-flex"},{name:"gutter",rawName:"v-gutter",value:[null,1],expression:"[null, 1]"},{name:"margin",rawName:"v-margin",value:[1,0],expression:"[1, 0]"}]},[t("span",{staticClass:"pos:rel"},[t("category-icon",{attrs:{icon:e.icon,width:16}}),e._v(" "),e.updates?t("ui-round-badge",{staticClass:"mainMenuCat-updates pos:abs",attrs:{theme:"primary:light",size:16}},[e._v("\n "+e._s(e.updates)+"\n ")]):e._e()],1),e._v(" "),t("span",{staticClass:"txt:bold",domProps:{textContent:e._s(e.$gettext(e.name))}})]),e._v(" "),e.link?e._e():t("nav",{directives:[{name:"padding",rawName:"v-padding",value:[1,0,1,2.5],expression:"[1, 0, 1, 2.5]"}],staticClass:"mainMenuCat-border"},e._l(e.entries,(function(n,r){return t("main-menu-entry",e._b({key:r,staticClass:"type:small"},"main-menu-entry",n,!1))})),1)]:e._e()],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"mainMenuCat c:txt:light pos:rel",class:{"--open":e.isOpen},on:{mouseover:e.open,mouseout:e.close,touchend:e.open}},["grid"===e.displayType?[t("ui-link",{directives:[{name:"padding",rawName:"v-padding",value:[2,2,1],expression:"[2, 2, 1]"}],ref:"link",staticClass:"mainMenuCat-link pos:rel disp:block c:txt:light txt:center no:hover"},[t("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column",cross:"center"},expression:"{ dir: 'column', cross: 'center' }"},{name:"gutter",rawName:"v-gutter",value:[1,null],expression:"[1, null]"}],staticClass:"pos:rel z:1"},[t("div",{staticClass:"pos:rel"},[t("category-icon",{attrs:{icon:"plugins",width:40}}),e._v(" "),e.updates?t("ui-round-badge",{staticClass:"mainMenuCat-updates pos:abs",attrs:{theme:"primary:light",size:16}},[e._v("\n "+e._s(e.updates)+"\n ")]):e._e()],1),e._v(" "),t("translate",{staticClass:"txt:medium"},[e._v("Plugins")])],1)]),e._v(" "),t("div",{staticClass:"mainMenuCat-dropdown bottom-right",style:{minWidth:e.minWidth+"px"}},[t("nav",{directives:[{name:"flex",rawName:"v-flex"},{name:"gutter",rawName:"v-gutter",value:[null,4],expression:"[null, 4]"},{name:"padding",rawName:"v-padding",value:2,expression:"2"}]},e._l(e.menus,(function(n){return t("div",{key:n.name},[t("translate",{directives:[{name:"margin",rawName:"v-margin",value:[.5,0],expression:"[.5, 0]"}],staticClass:"txt:bold wrap:nowrap plugged-menu-title"},[e._v("\n "+e._s(n.name)+"\n ")]),e._v(" "),e._l(n.entries,(function(n,r){return t("main-menu-entry",e._b({key:n.icon},"main-menu-entry",n,!1))}))],2)})),0)])]:e._e(),e._v(" "),"list"===e.displayType?[t("div",{directives:[{name:"flex",rawName:"v-flex"},{name:"gutter",rawName:"v-gutter",value:[null,1],expression:"[null, 1]"},{name:"margin",rawName:"v-margin",value:[1,0],expression:"[1, 0]"}]},[t("span",{staticClass:"pos:rel"},[t("category-icon",{attrs:{icon:"plugins",width:16}}),e._v(" "),e.updates?t("ui-round-badge",{staticClass:"mainMenuCat-updates pos:abs",attrs:{theme:"primary:light",size:16}},[e._v("\n "+e._s(e.updates)+"\n ")]):e._e()],1),e._v(" "),t("translate",{staticClass:"txt:bold"},[e._v("Extensions")])],1),e._v(" "),t("nav",{directives:[{name:"padding",rawName:"v-padding",value:[1,0,1,2.5],expression:"[1, 0, 1, 2.5]"}],staticClass:"mainMenuCat-border"},e._l(e.menus,(function(n){return t("div",{staticStyle:{"padding-bottom":"1rem"}},[t("translate",{staticClass:"txt:medium wrap:nowrap type:small"},[e._v("\n "+e._s(n.name)+"\n ")]),e._v(" "),e._l(n.entries,(function(n){return t("main-menu-entry",e._b({key:n.icon,staticClass:"type:small"},"main-menu-entry",n,!1))}))],2)})),0)]:e._e()],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"userbar",class:{"--open":e.isOpen}},[t("a",{staticClass:"userbar-button",on:{click:e.toggleUserbar}},[t("ui-icon-counter",{attrs:{id:"account",size:"big",original:"",badge:e.newMessages<100?e.newMessages:"99+","counter-theme":"primary"}}),e._v(" "),e.$_Client.isDesktop?t("span",{directives:[{name:"translate",rawName:"v-translate",value:{username:e.username},expression:"{ username }"}],staticClass:"userbar-button-text",on:{click:function(n){return n.stopPropagation(),e.toggleUserbar(n)}}},[t("strong",[e._v("Hello,")]),e._v(" %{ username }\n ")]):e._e(),e._v(" "),t("ui-icon",{staticClass:"userbar-button-caret",attrs:{id:"caret-down",size:12,color:"var(--neutral)"}})],1),e._v(" "),t("nav",{staticClass:"userbar-dropdown",on:{click:e.toggleUserbar}},[e._l(e.items,(function(n){return[n.disabled?e._e():t(n.route?"ui-link":"a",{key:n.value,tag:"component",staticClass:"userbar-dropdown-item",attrs:{name:n.route},on:{click:n.handler}},[t("ui-icon",{attrs:{id:n.icon,size:"medium"}}),e._v("\n "+e._s(n.label)+"\n "),n.counter?t("span",{staticClass:"userbar-dropdown-item-counter"},[e._v("\n ("+e._s(n.counter)+")\n ")]):e._e()],1),e._v(" "),n.separator?t("hr",{key:n.value+"-hr",staticClass:"userbar-dropdown-separator"}):e._e()]}))],2)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"},{name:"gutter",rawName:"v-gutter:padding",value:[,1],expression:"[, 1]",arg:"padding"}]},[t("translate",{directives:[{name:"show",rawName:"v-show",value:e.showText,expression:"showText"}],staticClass:"txt:bold"},[e._v("\n Navigation\n ")]),e._v(" "),t("ui-grid",{attrs:{gutter:"small"}},e._l(e.availableTypes,(function(n){return t("ui-button-icon",{key:n,staticClass:"no:disabled",attrs:{icon:"nav-"+n,title:e.title[n],active:e.displayType===n,theme:"gray",activeTheme:"primary:dark"},on:{click:function(t){return e.setType(n)}}})})),1)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("ui-input-group",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"},{name:"gutter",rawName:"v-gutter",value:[null,1],expression:"[null, 1]"}]},[n("ui-button",{staticClass:"txt:bold",attrs:{slot:"additions:left",disabled:""},slot:"additions:left"},[this._v("\n Language\n ")]),this._v(" "),n("input-select",this._b({staticClass:"fxi:grow:true",attrs:{slot:"input"},on:{change:this.setLanguage},slot:"input"},"input-select",{options:this.languages,selected:this.language},!1))],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",[e.showDashboard?[t("ui-link",{attrs:{path:"/"}},[t("translate",[e._v("Dashboard")])],1),e._v("\n >\n ")]:e._e(),e._v(" "),e._l(e.breadcrumbs,(function(n,r){return[r?[e._v(">")]:e._e(),e._v(" "),t("ui-link",{attrs:{path:n.path}},[e._v("\n "+e._s(e.$gettext(n.name))+"\n ")])]}))],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"domain-select"},[t("span",{staticClass:"domain-select-toggle"},[t("ui-icon",{attrs:{id:"caret-right",size:12,color:"#000"}}),e._v(" "),t("translate",{staticClass:"txt:bold"},[e._v("\n Domain:\n ")]),e._v(" "),t("a",{staticClass:"wrap:nowrap",attrs:{href:"#"},domProps:{textContent:e._s(e.$domainUnicode)},on:{click:e.openDrawer}})],1),e._v(" "),t("ui-drawer",{attrs:{id:"mobile-domain-dropdown",position:e.$_rtl?"right":"left",noShadow:"",blocking:!1,blurred:!1},on:{hide:e.checkMobileMenu}},[t("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Domain\n ")]),e._v(" "),t("div",{staticClass:"mobile-domain-dropdown-wrapper"},[t("div",{staticClass:"mobile-domain-dropdown-search"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.search,expression:"search"}],attrs:{type:"text",placeholder:e.$gettext("Search domain name")},domProps:{value:e.search},on:{input:function(n){n.target.composing||(e.search=n.target.value)}}})]),e._v(" "),t("div",{staticClass:"mobile-domain-dropdown-items"},e._l(e.matchedDomains,(function(n,r){return t("a",{staticClass:"mobile-domain-dropdown-item",class:{"--current":r===e.$domain},domProps:{innerHTML:e._s(n)},on:{click:function(n){return e.setDomain(r)}}})})),0)])],1)],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("ui-link",{staticClass:"header-logo no:hover",attrs:{slot:"title",path:"/"},slot:"title"},[n("img",{attrs:{src:"/IMG_LOGO?rand="+this.rand,width:"120"}})])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"app-sidebar-navigation"},[t("div",{staticClass:"app-sidebar-navigation-filter"},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.filter,expression:"filter"}],attrs:{type:"text",placeholder:e.$gettext("Navigation filter")},domProps:{value:e.filter},on:{keyup:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"enter",13,n.key,"Enter")?null:e.openLink(n)},input:function(n){n.target.composing||(e.filter=n.target.value)}}}),e._v(" "),t("ui-icon",{attrs:{id:"search",theme:"light",size:18}})],1),e._v(" "),e.filter?t("div",{key:"searchResults",staticClass:"navigation-category"},[t("div",{staticClass:"navigation-category-header"},[t("category-icon",{staticClass:"navigation-category-icon",attrs:{width:20,icon:"search"}}),e._v(" "),t("translate",{staticClass:"navigation-category-name"},[e._v("\n Search Results\n ")])],1),e._v(" "),t("nav",{staticClass:"navigation-category-entries",style:{height:"auto"}},[e._l(e.matchedEntries,(function(n,r){return n?t("main-menu-entry",e._b({key:n.name+"-"+r,ref:"matched",refInFor:!0,staticClass:"navigation-category-entry",nativeOn:{click:function(n){return e.$emit("click")}}},"main-menu-entry",n,!1)):e._e()})),e._v(" "),e.matchedEntries.length?e._e():t("translate",{staticClass:"navigation-category-empty"},[e._v("\n No Results\n ")])],2)]):e._l(e.categories,(function(n,r){return t("div",{key:n.icon,staticClass:"navigation-category",class:{"--opened":e.openedCategoryIndex===r}},[t("div",{staticClass:"navigation-category-header",on:{click:function(n){return e.toggleCategory(r)}}},[t("category-icon",{staticClass:"navigation-category-icon",attrs:{icon:n.icon,width:20}}),e._v(" "),t(n.link?"a":"span",{tag:"component",staticClass:"navigation-category-name",attrs:{href:n.link,target:n.newTab?"_blank":"_self"}},[e._v("\n "+e._s(e.$gettext(n.name))+"\n "),n.updates?t("span",{staticClass:"navigation-category-updates"},[e._v("\n "+e._s(n.updates)+"\n ")]):e._e()]),e._v(" "),n.link?e._e():t("ui-icon",{staticClass:"navigation-category-caret",attrs:{id:"caret-down",size:8,theme:"light"}})],1),e._v(" "),t("transition",{attrs:{name:"fade"}},[t("nav",{staticClass:"navigation-category-entries",style:{height:e.openedCategoryIndex===r?4*n.entries.length+"rem":"0px"}},e._l(n.entries,(function(n,r){return t("main-menu-entry",e._b({key:n.name+"-"+r,staticClass:"navigation-category-entry",nativeOn:{click:function(n){return e.$emit("click")}}},"main-menu-entry",n,!1))})),1)])],1)}))],2)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"app-mobile-access-level-selector",class:{"--open":e.isOpen}},[t("div",{staticClass:"current-level",on:{click:e.toggleDropdown}},[t("span",[t("translate",[e._v("Access Level:")]),e._v(" "+e._s(e.levels[e.accessLevel])+"\n ")],1),e._v(" "),t("ui-icon",{class:{"rotate:180":e.isOpen},attrs:{id:"caret-down",size:8}})],1),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isOpen,expression:"isOpen"}],staticClass:"levels-dropdown"},e._l(e.levels,(function(n,r){return t("span",{key:r,staticClass:"level",class:{"--current":n===r},on:{click:function(n){return e.setLevel(r)}}},[e._v("\n "+e._s(n)+"\n ")])})),0)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"hybrid-level-toggle"},[t("label",{staticClass:"switch-label switch-label-poweruser",class:{"--current":e.accessLevel===e.usertype},domProps:{textContent:e._s(e.powerLevelName)},on:{click:function(n){e.accessLevel=e.usertype}}}),e._v(" "),t("label",{staticClass:"switch-label switch-label-user",class:{"--current":"user"===e.accessLevel},domProps:{textContent:e._s(e.$gettext("User"))},on:{click:function(n){e.accessLevel="user"}}})])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this,n=e.$createElement,t=e._self._c||n;return t("div",{staticClass:"app-sidebar-language-selector",class:{"--open":e.isOpen}},[t("div",{staticClass:"current-language",on:{click:e.toggleDropdown}},[e._v("\n "+e._s(e.languages[e.language])+"\n "),t("ui-icon",{class:{"rotate:180":e.isOpen},attrs:{id:"caret-down",size:8}})],1),e._v(" "),t("div",{directives:[{name:"show",rawName:"v-show",value:e.isOpen,expression:"isOpen"}],staticClass:"language-dropdown"},e._l(e.languages,(function(n,r){return t("span",{key:r,staticClass:"language",class:{"--current":n===r},on:{click:function(n){return e.setLanguage(r)}}},[e._v("\n "+e._s(n)+"\n ")])})),0)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e,n=this,t=n.$createElement,r=n._self._c||t;return r("ui-link",n._b({staticClass:"disp:block wrap:nowrap c:txt:light mainMenuEntry",class:{currentRoute:n.currentRoute}},"ui-link",((e={})[n.isRoute?"path":"href"]=n.isRoute?n.routeHref:n.tokenizedHref,e.title=n.$gettext(n.name),e.target=n.newTab?"_blank":"_self",e.params=n.params,e.query=n.query,e),!1),[r("span",{attrs:{title:"sidebar"===n.skinLayout?n.$gettext(n.name):""},domProps:{textContent:n._s(n.$gettext(n.name))}}),n._v(" "),n.updates?r("span",{staticClass:"c:txt:primary:light"},[n._v("\n ("+n._s(n.updates)+")\n ")]):n._e(),n._v(" "),r("span",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{grow: true}"}]}),n._v(" "),r("span",{directives:[{name:"margin",rawName:"v-margin",value:[0,0,0,1],expression:"[0, 0, 0, 1]"}]},[n._t("default")],2)])},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";var r=function(){var e=this.$createElement,n=this._self._c||e;return n("span",{staticClass:"icon"},[this.validIconID?n("ui-icon",{attrs:{id:this.icon,size:this.width}}):n("img",{attrs:{src:this.icon,width:this.width,height:this.width}})],1)},i=[];t.d(n,"a",(function(){return r})),t.d(n,"b",(function(){return i}))},function(e,n,t){"use strict";t.r(n);var r=t(9),i=t(8);function a(e,n){Object(i.a)(2,arguments);var t=Object(r.a)(e),a=Object(r.a)(n),o=t.getTime()-a.getTime();return o<0?-1:o>0?1:o}function o(e,n){Object(i.a)(2,arguments);var t=Object(r.a)(e),a=Object(r.a)(n),o=t.getFullYear()-a.getFullYear(),s=t.getMonth()-a.getMonth();return 12*o+s}function s(e,n){Object(i.a)(2,arguments);var t=Object(r.a)(e),s=Object(r.a)(n),l=a(t,s),u=Math.abs(o(t,s));t.setMonth(t.getMonth()-l*u);var c=a(t,s)===-l,d=l*(u-c);return 0===d?0:d}function l(e,n){Object(i.a)(2,arguments);var t=Object(r.a)(e),a=Object(r.a)(n);return t.getTime()-a.getTime()}function u(e,n){Object(i.a)(2,arguments);var t=l(e,n)/1e3;return t>0?Math.floor(t):Math.ceil(t)}var c=t(443),d=t(648),p=t(48);t.d(n,"default",(function(){return f}));function f(e,n,t){Object(i.a)(2,arguments);var o=t||{},l=o.locale||c.a;if(!l.formatDistance)throw new RangeError("locale must contain formatDistance property");var f=a(e,n);if(isNaN(f))throw new RangeError("Invalid time value");var h,m,g=Object(d.a)(o);g.addSuffix=Boolean(o.addSuffix),g.comparison=f,f>0?(h=Object(r.a)(n),m=Object(r.a)(e)):(h=Object(r.a)(e),m=Object(r.a)(n));var v,b=u(m,h),$=(Object(p.a)(m)-Object(p.a)(h))/1e3,A=Math.round((b-$)/60);if(A<2)return o.includeSeconds?b<5?l.formatDistance("lessThanXSeconds",5,g):b<10?l.formatDistance("lessThanXSeconds",10,g):b<20?l.formatDistance("lessThanXSeconds",20,g):b<40?l.formatDistance("halfAMinute",null,g):b<60?l.formatDistance("lessThanXMinutes",1,g):l.formatDistance("xMinutes",1,g):0===A?l.formatDistance("lessThanXMinutes",1,g):l.formatDistance("xMinutes",A,g);if(A<45)return l.formatDistance("xMinutes",A,g);if(A<90)return l.formatDistance("aboutXHours",1,g);if(A<1440){var y=Math.round(A/60);return l.formatDistance("aboutXHours",y,g)}if(A<2520)return l.formatDistance("xDays",1,g);if(A<43200){var w=Math.round(A/1440);return l.formatDistance("xDays",w,g)}if(A<86400)return v=Math.round(A/43200),l.formatDistance("aboutXMonths",v,g);if((v=s(m,h))<12){var x=Math.round(A/43200);return l.formatDistance("xMonths",x,g)}var C=v%12,_=Math.floor(v/12);return C<3?l.formatDistance("aboutXYears",_,g):C<9?l.formatDistance("overXYears",_,g):l.formatDistance("almostXYears",_+1,g)}},function(e,n,t){"use strict";t.r(n),t.d(n,"fromObject",(function(){return s})),t.d(n,"getOptionsFromKeyValObj",(function(){return l})),t.d(n,"fromString",(function(){return u}));var r=t(6),i=t(35),a=t(28),o=t(58),s=function(e){var n={name:e.name,type:"listbox"===e.type?"select":e.type,label:e.string,description:e.desc||"",value:"checkbox"===e.type?Object(i.toBoolean)(e.checked||"no"):e.value||""};return"select"===n.type?r.merge(n,Object(o.a)(e.select||{})):n},l=function(e){return Object(a.mergeTransduce)([Object(a.filterReducer)((function(e){return/^item\d+val$/.test(e)})),Object(a.mapReducer)((function(n){var t,r=n,i=n.replace("val","txt"),a=e[r],o=e[i];return(t={})[a]=o,t}))],Object.keys(e))},u=function(e,n){return r.compose((function(e){var n={name:e.name,type:"listbox"===e.type?"select":e.type,description:e.desc||"",value:e.value||"",label:e.string};return"listbox"===e.type?(n.value=e.default,n.options=l(e)):"checkbox"===e.type&&(n.value="yes"===e.checked),n}),r.merge({name:e}),Object(a.mergeTransduce)([Object(a.mapReducer)((function(e){var n,t=r.split("=",e),i=t[0],a=t[1];return(n={})[i]=a,n}))]),r.split("&"))(n)};n.default={fromObject:s,fromString:u}},function(e,n,t){"use strict";t.r(n);var r=t(9),i=t(8);function a(e){Object(i.a)(1,arguments);var n=Object(r.a)(e);return!isNaN(n)}var o=t(443),s=t(643);function l(e,n){for(var t=e<0?"-":"",r=Math.abs(e).toString();r.length0?t:1-t;return l("yy"===n?r%100:r,n.length)},M:function(e,n){var t=e.getUTCMonth();return"M"===n?String(t+1):l(t+1,2)},d:function(e,n){return l(e.getUTCDate(),n.length)},a:function(e,n){var t=e.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":case"aaa":return t.toUpperCase();case"aaaaa":return t[0];case"aaaa":default:return"am"===t?"a.m.":"p.m."}},h:function(e,n){return l(e.getUTCHours()%12||12,n.length)},H:function(e,n){return l(e.getUTCHours(),n.length)},m:function(e,n){return l(e.getUTCMinutes(),n.length)},s:function(e,n){return l(e.getUTCSeconds(),n.length)},S:function(e,n){var t=n.length,r=e.getUTCMilliseconds();return l(Math.floor(r*Math.pow(10,t-3)),n.length)}};function c(e){Object(i.a)(1,arguments);var n=1,t=Object(r.a)(e),a=t.getUTCDay(),o=(a=o.getTime()?t+1:n.getTime()>=l.getTime()?t:t-1}function p(e){Object(i.a)(1,arguments);var n=d(e),t=new Date(0);t.setUTCFullYear(n,0,4),t.setUTCHours(0,0,0,0);var r=c(t);return r}var f=t(19);function h(e,n){Object(i.a)(1,arguments);var t=n||{},a=t.locale,o=a&&a.options&&a.options.weekStartsOn,s=null==o?0:Object(f.a)(o),l=null==t.weekStartsOn?s:Object(f.a)(t.weekStartsOn);if(!(l>=0&&l<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var u=Object(r.a)(e),c=u.getUTCDay(),d=(c=1&&c<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var d=new Date(0);d.setUTCFullYear(a+1,0,c),d.setUTCHours(0,0,0,0);var p=h(d,n),m=new Date(0);m.setUTCFullYear(a,0,c),m.setUTCHours(0,0,0,0);var g=h(m,n);return t.getTime()>=p.getTime()?a+1:t.getTime()>=g.getTime()?a:a-1}function g(e,n){Object(i.a)(1,arguments);var t=n||{},r=t.locale,a=r&&r.options&&r.options.firstWeekContainsDate,o=null==a?1:Object(f.a)(a),s=null==t.firstWeekContainsDate?o:Object(f.a)(t.firstWeekContainsDate),l=m(e,n),u=new Date(0);u.setUTCFullYear(l,0,s),u.setUTCHours(0,0,0,0);var c=h(u,n);return c}var v="midnight",b="noon",$="morning",A="afternoon",y="evening",w="night";function x(e,n){var t=e>0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),a=r%60;if(0===a)return t+String(i);var o=n||"";return t+String(i)+o+l(a,2)}function C(e,n){return e%60==0?(e>0?"-":"+")+l(Math.abs(e)/60,2):_(e,n)}function _(e,n){var t=n||"",r=e>0?"-":"+",i=Math.abs(e);return r+l(Math.floor(i/60),2)+t+l(i%60,2)}var k={G:function(e,n,t){var r=e.getUTCFullYear()>0?1:0;switch(n){case"G":case"GG":case"GGG":return t.era(r,{width:"abbreviated"});case"GGGGG":return t.era(r,{width:"narrow"});case"GGGG":default:return t.era(r,{width:"wide"})}},y:function(e,n,t){if("yo"===n){var r=e.getUTCFullYear(),i=r>0?r:1-r;return t.ordinalNumber(i,{unit:"year"})}return u.y(e,n)},Y:function(e,n,t,r){var i=m(e,r),a=i>0?i:1-i;return"YY"===n?l(a%100,2):"Yo"===n?t.ordinalNumber(a,{unit:"year"}):l(a,n.length)},R:function(e,n){return l(d(e),n.length)},u:function(e,n){return l(e.getUTCFullYear(),n.length)},Q:function(e,n,t){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(n){case"Q":return String(r);case"QQ":return l(r,2);case"Qo":return t.ordinalNumber(r,{unit:"quarter"});case"QQQ":return t.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,n,t){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(n){case"q":return String(r);case"qq":return l(r,2);case"qo":return t.ordinalNumber(r,{unit:"quarter"});case"qqq":return t.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,n,t){var r=e.getUTCMonth();switch(n){case"M":case"MM":return u.M(e,n);case"Mo":return t.ordinalNumber(r+1,{unit:"month"});case"MMM":return t.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(r,{width:"wide",context:"formatting"})}},L:function(e,n,t){var r=e.getUTCMonth();switch(n){case"L":return String(r+1);case"LL":return l(r+1,2);case"Lo":return t.ordinalNumber(r+1,{unit:"month"});case"LLL":return t.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(r,{width:"wide",context:"standalone"})}},w:function(e,n,t,a){var o=function(e,n){Object(i.a)(1,arguments);var t=Object(r.a)(e),a=h(t,n).getTime()-g(t,n).getTime();return Math.round(a/6048e5)+1}(e,a);return"wo"===n?t.ordinalNumber(o,{unit:"week"}):l(o,n.length)},I:function(e,n,t){var a=function(e){Object(i.a)(1,arguments);var n=Object(r.a)(e),t=c(n).getTime()-p(n).getTime();return Math.round(t/6048e5)+1}(e);return"Io"===n?t.ordinalNumber(a,{unit:"week"}):l(a,n.length)},d:function(e,n,t){return"do"===n?t.ordinalNumber(e.getUTCDate(),{unit:"date"}):u.d(e,n)},D:function(e,n,t){var a=function(e){Object(i.a)(1,arguments);var n=Object(r.a)(e),t=n.getTime();n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0);var a=n.getTime(),o=t-a;return Math.floor(o/864e5)+1}(e);return"Do"===n?t.ordinalNumber(a,{unit:"dayOfYear"}):l(a,n.length)},E:function(e,n,t){var r=e.getUTCDay();switch(n){case"E":case"EE":case"EEE":return t.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(r,{width:"short",context:"formatting"});case"EEEE":default:return t.day(r,{width:"wide",context:"formatting"})}},e:function(e,n,t,r){var i=e.getUTCDay(),a=(i-r.weekStartsOn+8)%7||7;switch(n){case"e":return String(a);case"ee":return l(a,2);case"eo":return t.ordinalNumber(a,{unit:"day"});case"eee":return t.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(i,{width:"short",context:"formatting"});case"eeee":default:return t.day(i,{width:"wide",context:"formatting"})}},c:function(e,n,t,r){var i=e.getUTCDay(),a=(i-r.weekStartsOn+8)%7||7;switch(n){case"c":return String(a);case"cc":return l(a,n.length);case"co":return t.ordinalNumber(a,{unit:"day"});case"ccc":return t.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(i,{width:"narrow",context:"standalone"});case"cccccc":return t.day(i,{width:"short",context:"standalone"});case"cccc":default:return t.day(i,{width:"wide",context:"standalone"})}},i:function(e,n,t){var r=e.getUTCDay(),i=0===r?7:r;switch(n){case"i":return String(i);case"ii":return l(i,n.length);case"io":return t.ordinalNumber(i,{unit:"day"});case"iii":return t.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(r,{width:"short",context:"formatting"});case"iiii":default:return t.day(r,{width:"wide",context:"formatting"})}},a:function(e,n,t){var r=e.getUTCHours()/12>=1?"pm":"am";switch(n){case"a":case"aa":case"aaa":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return t.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,n,t){var r,i=e.getUTCHours();switch(r=12===i?b:0===i?v:i/12>=1?"pm":"am",n){case"b":case"bb":case"bbb":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return t.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,n,t){var r,i=e.getUTCHours();switch(r=i>=17?y:i>=12?A:i>=4?$:w,n){case"B":case"BB":case"BBB":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,n,t){if("ho"===n){var r=e.getUTCHours()%12;return 0===r&&(r=12),t.ordinalNumber(r,{unit:"hour"})}return u.h(e,n)},H:function(e,n,t){return"Ho"===n?t.ordinalNumber(e.getUTCHours(),{unit:"hour"}):u.H(e,n)},K:function(e,n,t){var r=e.getUTCHours()%12;return"Ko"===n?t.ordinalNumber(r,{unit:"hour"}):l(r,n.length)},k:function(e,n,t){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===n?t.ordinalNumber(r,{unit:"hour"}):l(r,n.length)},m:function(e,n,t){return"mo"===n?t.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):u.m(e,n)},s:function(e,n,t){return"so"===n?t.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):u.s(e,n)},S:function(e,n){return u.S(e,n)},X:function(e,n,t,r){var i=(r._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(n){case"X":return C(i);case"XXXX":case"XX":return _(i);case"XXXXX":case"XXX":default:return _(i,":")}},x:function(e,n,t,r){var i=(r._originalDate||e).getTimezoneOffset();switch(n){case"x":return C(i);case"xxxx":case"xx":return _(i);case"xxxxx":case"xxx":default:return _(i,":")}},O:function(e,n,t,r){var i=(r._originalDate||e).getTimezoneOffset();switch(n){case"O":case"OO":case"OOO":return"GMT"+x(i,":");case"OOOO":default:return"GMT"+_(i,":")}},z:function(e,n,t,r){var i=(r._originalDate||e).getTimezoneOffset();switch(n){case"z":case"zz":case"zzz":return"GMT"+x(i,":");case"zzzz":default:return"GMT"+_(i,":")}},t:function(e,n,t,r){var i=r._originalDate||e;return l(Math.floor(i.getTime()/1e3),n.length)},T:function(e,n,t,r){return l((r._originalDate||e).getTime(),n.length)}};function B(e,n){switch(e){case"P":return n.date({width:"short"});case"PP":return n.date({width:"medium"});case"PPP":return n.date({width:"long"});case"PPPP":default:return n.date({width:"full"})}}function O(e,n){switch(e){case"p":return n.time({width:"short"});case"pp":return n.time({width:"medium"});case"ppp":return n.time({width:"long"});case"pppp":default:return n.time({width:"full"})}}var S={p:O,P:function(e,n){var t,r=e.match(/(P+)(p+)?/),i=r[1],a=r[2];if(!a)return B(e,n);switch(i){case"P":t=n.dateTime({width:"short"});break;case"PP":t=n.dateTime({width:"medium"});break;case"PPP":t=n.dateTime({width:"long"});break;case"PPPP":default:t=n.dateTime({width:"full"})}return t.replace("{{date}}",B(i,n)).replace("{{time}}",O(a,n))}},E=t(48),j=["D","DD"],P=["YY","YYYY"];function z(e){return-1!==j.indexOf(e)}function T(e){return-1!==P.indexOf(e)}function D(e){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===e)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===e)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===e)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}t.d(n,"default",(function(){return L}));var N=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,M=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,I=/^'([^]*?)'?$/,R=/''/g,F=/[a-zA-Z]/;function L(e,n,t){Object(i.a)(2,arguments);var l=String(n),u=t||{},c=u.locale||o.a,d=c.options&&c.options.firstWeekContainsDate,p=null==d?1:Object(f.a)(d),h=null==u.firstWeekContainsDate?p:Object(f.a)(u.firstWeekContainsDate);if(!(h>=1&&h<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var m=c.options&&c.options.weekStartsOn,g=null==m?0:Object(f.a)(m),v=null==u.weekStartsOn?g:Object(f.a)(u.weekStartsOn);if(!(v>=0&&v<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!c.localize)throw new RangeError("locale must contain localize property");if(!c.formatLong)throw new RangeError("locale must contain formatLong property");var b=Object(r.a)(e);if(!a(b))throw new RangeError("Invalid time value");var $=Object(E.a)(b),A=Object(s.a)(b,$),y={firstWeekContainsDate:h,weekStartsOn:v,locale:c,_originalDate:b},w=l.match(M).map((function(e){var n=e[0];return"p"===n||"P"===n?(0,S[n])(e,c.formatLong,y):e})).join("").match(N).map((function(e){if("''"===e)return"'";var n=e[0];if("'"===n)return U(e);var t=k[n];if(t)return!u.useAdditionalWeekYearTokens&&T(e)&&D(e),!u.useAdditionalDayOfYearTokens&&z(e)&&D(e),t(A,e,c.localize,y);if(n.match(F))throw new RangeError("Format string contains an unescaped latin alphabet character `"+n+"`");return e})).join("");return w}function U(e){return e.match(I)[1].replace(R,"'")}},function(e,n,t){"use strict";t.d(n,"a",(function(){return o}));var r=t(19),i=t(9),a=t(8);function o(e,n){Object(a.a)(2,arguments);var t=Object(i.a)(e).getTime(),o=Object(r.a)(n);return new Date(t+o)}},function(e,n,t){"use strict";t.r(n);var r=t(562),i=t(130);for(var a in i)"default"!==a&&function(e){t.d(n,e,(function(){return i[e]}))}(a);t(992);var o=t(0),s=Object(o.a)(i.default,r.a,r.b,!1,null,null,null);n.default=s.exports},function(e,n,t){"use strict";t.d(n,"a",(function(){return o}));var r=t(19),i=t(9),a=t(8);function o(e,n){Object(a.a)(2,arguments);var t=Object(i.a)(e),o=Object(r.a)(n);return t.setDate(t.getDate()+o),t}},,function(e,n,t){(function(e,t){var r="[object Arguments]",i="[object Map]",a="[object Object]",o="[object Set]",s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,l=/^\w*$/,u=/^\./,c=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,d=/\\(\\)?/g,p=/^\[object .+?Constructor\]$/,f=/^(?:0|[1-9]\d*)$/,h={};h["[object Float32Array]"]=h["[object Float64Array]"]=h["[object Int8Array]"]=h["[object Int16Array]"]=h["[object Int32Array]"]=h["[object Uint8Array]"]=h["[object Uint8ClampedArray]"]=h["[object Uint16Array]"]=h["[object Uint32Array]"]=!0,h[r]=h["[object Array]"]=h["[object ArrayBuffer]"]=h["[object Boolean]"]=h["[object DataView]"]=h["[object Date]"]=h["[object Error]"]=h["[object Function]"]=h[i]=h["[object Number]"]=h[a]=h["[object RegExp]"]=h[o]=h["[object String]"]=h["[object WeakMap]"]=!1;var m="object"==typeof e&&e&&e.Object===Object&&e,g="object"==typeof self&&self&&self.Object===Object&&self,v=m||g||Function("return this")(),b=n&&!n.nodeType&&n,$=b&&"object"==typeof t&&t&&!t.nodeType&&t,A=$&&$.exports===b&&m.process,y=function(){try{return A&&A.binding("util")}catch(e){}}(),w=y&&y.isTypedArray;function x(e,n){for(var t=-1,r=e?e.length:0;++t-1},ae.prototype.set=function(e,n){var t=this.__data__,r=ce(t,e);return r<0?t.push([e,n]):t[r][1]=n,this},oe.prototype.clear=function(){this.__data__={hash:new ie,map:new(V||ae),string:new ie}},oe.prototype.delete=function(e){return ye(this,e).delete(e)},oe.prototype.get=function(e){return ye(this,e).get(e)},oe.prototype.has=function(e){return ye(this,e).has(e)},oe.prototype.set=function(e,n){return ye(this,e).set(e,n),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ae},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,n){var t=this.__data__;if(t instanceof ae){var r=t.__data__;if(!V||r.length<199)return r.push([e,n]),this;t=this.__data__=new oe(r)}return t.set(e,n),this};var de,pe=function(e,n,t){for(var r=-1,i=Object(e),a=t(e),o=a.length;o--;){var s=a[de?o:++r];if(!1===n(i[s],s,i))break}return e};function fe(e,n){for(var t=0,r=(n=_e(n,e)?[n]:$e(n)).length;null!=e&&ts))return!1;var u=a.get(e);if(u&&a.get(n))return u==n;var c=-1,d=!0,p=1&i?new se:void 0;for(a.set(e,n),a.set(n,e);++c-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function Ie(e){var n=typeof e;return!!e&&("object"==n||"function"==n)}function Re(e){return!!e&&"object"==typeof e}function Fe(e){return"symbol"==typeof e||Re(e)&&"[object Symbol]"==M.call(e)}var Le=w?function(e){return function(n){return e(n)}}(w):function(e){return Re(e)&&Me(e.length)&&!!h[M.call(e)]};function Ue(e){return De(e)?ue(e):be(e)}function He(e){return e}t.exports=function(e,n){var t={};return n=ve(n),function(e,n){e&&pe(e,n,Ue)}(e,(function(e,r,i){t[r]=n(e,r,i)})),t}}).call(this,t(22),t(34)(e))},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=t(11),i=["users","admins","resellers","domains","email","ftp","db"],a=function(){for(var e=arguments.length,n=new Array(e),t=0;t0&&e.every((function(e){return i.includes(e)}))}},"tables/density":{type:String,default:"normal",validator:a("condensed","normal","expanded")},"tables/highlightUsage":{type:Boolean,default:!0},"tables/ipp":{type:Number,default:function(){return(0,r.State)("app.tokens.TABLE_DEFAULT_IPP")||50}},"tables/userDomainsLimit":{type:String,default:"3"}};n.default=o},function(e,n){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,n){function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},function(e,n,t){"use strict";var r=t(1);Object.defineProperty(n,"__esModule",{value:!0}),n.PASSWORD=n.USER=n.ROWS=n.PAGINATION=n.DNS_RECORD_TYPE=n.TYPE=n.ACTION=n.IPP=n.PAGE=n.SORT=n.DNS_RECORDS=n.OPTIONAL_DOMAIN=n.DOMAIN=n.JSON=n.OPTIONAL_BOOL=n.REQUIRED_BOOL=n.OPTIONAL_STRING=n.REQUIRED_STRING=void 0;var i=r(t(2)),a=t(11);function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function s(e){for(var n=1;n",b=f?">":"<",$=void 0;if(g){var A=e.util.getData(m.$data,o,e.dataPathArr),y="exclusive"+a,w="exclType"+a,x="exclIsNumber"+a,C="' + "+(B="op"+a)+" + '";i+=" var schemaExcl"+a+" = "+A+"; ",i+=" var "+y+"; var "+w+" = typeof "+(A="schemaExcl"+a)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { ";var _;$=h;(_=_||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+($||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: '"+h+" should be boolean' "),e.opts.verbose&&(i+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var k=i;i=_.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+k+"]); ":i+=" validate.errors = ["+k+"]; return false; ":i+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else if ( ",p&&(i+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),i+=" "+w+" == 'number' ? ( ("+y+" = "+r+" === undefined || "+A+" "+v+"= "+r+") ? "+d+" "+b+"= "+A+" : "+d+" "+b+" "+r+" ) : ( ("+y+" = "+A+" === true) ? "+d+" "+b+"= "+r+" : "+d+" "+b+" "+r+" ) || "+d+" !== "+d+") { var op"+a+" = "+y+" ? '"+v+"' : '"+v+"='; ",void 0===s&&($=h,u=e.errSchemaPath+"/"+h,r=A,p=g)}else{C=v;if((x="number"==typeof m)&&p){var B="'"+C+"'";i+=" if ( ",p&&(i+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),i+=" ( "+r+" === undefined || "+m+" "+v+"= "+r+" ? "+d+" "+b+"= "+m+" : "+d+" "+b+" "+r+" ) || "+d+" !== "+d+") { "}else{x&&void 0===s?(y=!0,$=h,u=e.errSchemaPath+"/"+h,r=m,b+="="):(x&&(r=Math[f?"min":"max"](m,s)),m===(!x||r)?(y=!0,$=h,u=e.errSchemaPath+"/"+h,b+="="):(y=!1,C+="="));B="'"+C+"'";i+=" if ( ",p&&(i+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),i+=" "+d+" "+b+" "+r+" || "+d+" !== "+d+") { "}}$=$||n,(_=_||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+($||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { comparison: "+B+", limit: "+r+", exclusive: "+y+" } ",!1!==e.opts.messages&&(i+=" , message: 'should be "+C+" ",i+=p?"' + "+r:r+"'"),e.opts.verbose&&(i+=" , schema: ",i+=p?"validate.schema"+l:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";k=i;return i=_.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+k+"]); ":i+=" validate.errors = ["+k+"]; return false; ":i+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } ",c&&(i+=" else { "),i}},function(e,n,t){"use strict";e.exports=function(e,n,t){var r,i=" ",a=e.level,o=e.dataLevel,s=e.schema[n],l=e.schemaPath+e.util.getProperty(n),u=e.errSchemaPath+"/"+n,c=!e.opts.allErrors,d="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(i+=" var schema"+a+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",r="schema"+a):r=s,i+="if ( ",p&&(i+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),i+=" "+d+".length "+("maxItems"==n?">":"<")+" "+r+") { ";var f=n,h=h||[];h.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxItems"==n?"more":"fewer",i+=" than ",i+=p?"' + "+r+" + '":""+s,i+=" items' "),e.opts.verbose&&(i+=" , schema: ",i+=p?"validate.schema"+l:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+m+"]); ":i+=" validate.errors = ["+m+"]; return false; ":i+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",c&&(i+=" else { "),i}},function(e,n,t){"use strict";e.exports=function(e,n,t){var r,i=" ",a=e.level,o=e.dataLevel,s=e.schema[n],l=e.schemaPath+e.util.getProperty(n),u=e.errSchemaPath+"/"+n,c=!e.opts.allErrors,d="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(i+=" var schema"+a+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",r="schema"+a):r=s;var f="maxLength"==n?">":"<";i+="if ( ",p&&(i+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),!1===e.opts.unicode?i+=" "+d+".length ":i+=" ucs2length("+d+") ",i+=" "+f+" "+r+") { ";var h=n,m=m||[];m.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(h||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT be ",i+="maxLength"==n?"longer":"shorter",i+=" than ",i+=p?"' + "+r+" + '":""+s,i+=" characters' "),e.opts.verbose&&(i+=" , schema: ",i+=p?"validate.schema"+l:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var g=i;return i=m.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+g+"]); ":i+=" validate.errors = ["+g+"]; return false; ":i+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",c&&(i+=" else { "),i}},function(e,n,t){"use strict";e.exports=function(e,n,t){var r,i=" ",a=e.level,o=e.dataLevel,s=e.schema[n],l=e.schemaPath+e.util.getProperty(n),u=e.errSchemaPath+"/"+n,c=!e.opts.allErrors,d="data"+(o||""),p=e.opts.$data&&s&&s.$data;p?(i+=" var schema"+a+" = "+e.util.getData(s.$data,o,e.dataPathArr)+"; ",r="schema"+a):r=s,i+="if ( ",p&&(i+=" ("+r+" !== undefined && typeof "+r+" != 'number') || "),i+=" Object.keys("+d+").length "+("maxProperties"==n?">":"<")+" "+r+") { ";var f=n,h=h||[];h.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { limit: "+r+" } ",!1!==e.opts.messages&&(i+=" , message: 'should NOT have ",i+="maxProperties"==n?"more":"fewer",i+=" than ",i+=p?"' + "+r+" + '":""+s,i+=" properties' "),e.opts.verbose&&(i+=" , schema: ",i+=p?"validate.schema"+l:""+s,i+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),i+=" } "):i+=" {} ";var m=i;return i=h.pop(),!e.compositeRule&&c?e.async?i+=" throw new ValidationError(["+m+"]); ":i+=" validate.errors = ["+m+"]; return false; ":i+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+="} ",c&&(i+=" else { "),i}},function(e){e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')},function(e,n,t){"use strict"; +/*! + * css-vars-ponyfill + * v1.17.2 + * https://github.com/jhildenbiddle/css-vars-ponyfill + * (c) 2018-2019 John Hildenbiddle + * MIT license + */ +function r(){return(r=Object.assign||function(e){for(var n=1;n + * MIT license + */()}function a(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t={mimeType:n.mimeType||null,onBeforeSend:n.onBeforeSend||Function.prototype,onSuccess:n.onSuccess||Function.prototype,onError:n.onError||Function.prototype,onComplete:n.onComplete||Function.prototype},r=Array.isArray(e)?e:[e],i=Array.apply(null,Array(r.length)).map((function(e){return null}));function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n="<"===e.trim().charAt(0);return!n}function o(e,n){t.onError(e,r[n],n)}function s(e,n){var a=t.onSuccess(e,r[n],n);e=!1===a?"":a||e,i[n]=e,-1===i.indexOf(null)&&t.onComplete(i)}var l=document.createElement("a");r.forEach((function(e,n){if(l.setAttribute("href",e),l.href=String(l.href),Boolean(document.all&&!window.atob)&&l.host.split(":")[0]!==location.host.split(":")[0]){if(l.protocol===location.protocol){var r=new XDomainRequest;r.open("GET",e),r.timeout=0,r.onprogress=Function.prototype,r.ontimeout=Function.prototype,r.onload=function(){a(r.responseText)?s(r.responseText,n):o(r,n)},r.onerror=function(e){o(r,n)},setTimeout((function(){r.send()}),0)}else console.warn("Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (".concat(e,")")),o(null,n)}else{var i=new XMLHttpRequest;i.open("GET",e),t.mimeType&&i.overrideMimeType&&i.overrideMimeType(t.mimeType),t.onBeforeSend(i,e,n),i.onreadystatechange=function(){4===i.readyState&&(200===i.status&&a(i.responseText)?s(i.responseText,n):o(i,n))},i.send()}}))} +/** + * Gets CSS data from \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/icons/list.json b/directadmin-1.62.4/data/skins/evolution/assets/icons/list.json new file mode 100644 index 0000000..f5dab5a --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/icons/list.json @@ -0,0 +1 @@ +{"classic":"Classic","modern":"Modern"} \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/icons/modern.svg b/directadmin-1.62.4/data/skins/evolution/assets/icons/modern.svg new file mode 100644 index 0000000..297760b --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/icons/modern.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/account-manager.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/account-manager.svg new file mode 100644 index 0000000..253f8dc --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/account-manager.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/account.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/account.svg new file mode 100644 index 0000000..8db750e --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/account.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/add-to-clipboard.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/add-to-clipboard.svg new file mode 100644 index 0000000..40f62d3 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/add-to-clipboard.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/admin-tools.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/admin-tools.svg new file mode 100644 index 0000000..2624048 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/admin-tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/advanced-features.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/advanced-features.svg new file mode 100644 index 0000000..1ae589f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/advanced-features.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/anchor.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/anchor.svg new file mode 100644 index 0000000..bfb52da --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/anchor.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-down.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-down.svg new file mode 100644 index 0000000..201f7fe --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-left.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-left.svg new file mode 100644 index 0000000..eb5c4bf --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-left.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-right.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-right.svg new file mode 100644 index 0000000..9c5cd99 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-right.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-up.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-up.svg new file mode 100644 index 0000000..3dcc4a1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrow-up.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrows.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrows.svg new file mode 100644 index 0000000..18c4404 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/arrows.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/bell.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/bell.svg new file mode 100644 index 0000000..f906449 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/cancel.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/cancel.svg new file mode 100644 index 0000000..fe39d83 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/cancel.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/caret-down.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/caret-down.svg new file mode 100644 index 0000000..1ddf177 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/caret-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/caret-right.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/caret-right.svg new file mode 100644 index 0000000..c7552d1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/caret-right.svg @@ -0,0 +1,53 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/check-mark.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/check-mark.svg new file mode 100644 index 0000000..36bd341 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/check-mark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/check.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/check.svg new file mode 100644 index 0000000..36bd341 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/check.svg @@ -0,0 +1,4 @@ + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check-fill.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check-fill.svg new file mode 100644 index 0000000..105f367 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check-fill.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check-strong.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check-strong.svg new file mode 100644 index 0000000..d7d8831 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check-strong.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check.svg new file mode 100644 index 0000000..010c68c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-deny.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-deny.svg new file mode 100644 index 0000000..9775faa --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-deny.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-info.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-info.svg new file mode 100644 index 0000000..09b1cc2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circle-info.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circles-loader.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circles-loader.svg new file mode 100644 index 0000000..9feed26 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/circles-loader.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-add.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-add.svg new file mode 100644 index 0000000..41a44fb --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-clear.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-clear.svg new file mode 100644 index 0000000..fb3f42c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-clear.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-copy.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-copy.svg new file mode 100644 index 0000000..e7306b7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-copy.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-move.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-move.svg new file mode 100644 index 0000000..3690c89 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-move.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-view.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-view.svg new file mode 100644 index 0000000..bc63312 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/clipboard-view.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/close.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/close.svg new file mode 100644 index 0000000..3cf280a --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/console.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/console.svg new file mode 100644 index 0000000..8c26092 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/console.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dark-mode.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dark-mode.svg new file mode 100644 index 0000000..e38755f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dark-mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dashboard.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dashboard.svg new file mode 100644 index 0000000..9195727 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dashboard.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/day-mode.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/day-mode.svg new file mode 100644 index 0000000..294620e --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/day-mode.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/delete.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/delete.svg new file mode 100644 index 0000000..c1aad1d --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/delete.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-condensed.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-condensed.svg new file mode 100644 index 0000000..6bbea21 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-condensed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-expanded.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-expanded.svg new file mode 100644 index 0000000..5b98be0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-expanded.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-normal.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-normal.svg new file mode 100644 index 0000000..1f73acf --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dense-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dices.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dices.svg new file mode 100644 index 0000000..b6d9ddd --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/dices.svg @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-empty.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-empty.svg new file mode 100644 index 0000000..369bcbd --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-empty.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-open.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-open.svg new file mode 100644 index 0000000..7298bb3 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-open.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-root.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-root.svg new file mode 100644 index 0000000..bca7ba1 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory-root.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory.svg new file mode 100644 index 0000000..16ba19c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/directory.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/download.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/download.svg new file mode 100644 index 0000000..a3b7138 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/download.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/email-manager.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/email-manager.svg new file mode 100644 index 0000000..13c0a72 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/email-manager.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/exclamation-triangle.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/exclamation-triangle.svg new file mode 100644 index 0000000..936317c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/exclamation-triangle.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/expand-in-new-window.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/expand-in-new-window.svg new file mode 100644 index 0000000..6805042 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/expand-in-new-window.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/extra-features.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/extra-features.svg new file mode 100644 index 0000000..9d4978a --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/extra-features.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/extract.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/extract.svg new file mode 100644 index 0000000..c036cc0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/extract.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-ai.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-ai.svg new file mode 100644 index 0000000..8d6ebea --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-ai.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-avi.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-avi.svg new file mode 100644 index 0000000..1ba046c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-avi.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-css.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-css.svg new file mode 100644 index 0000000..5022204 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-css.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-csv.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-csv.svg new file mode 100644 index 0000000..a8c88ec --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-csv.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-dbf.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-dbf.svg new file mode 100644 index 0000000..114f3f9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-dbf.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-doc.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-doc.svg new file mode 100644 index 0000000..9c86a02 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-doc.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-dwg.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-dwg.svg new file mode 100644 index 0000000..90fbda0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-dwg.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-exe.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-exe.svg new file mode 100644 index 0000000..3a8eb58 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-exe.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-fla.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-fla.svg new file mode 100644 index 0000000..3a0817f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-fla.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-gz.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-gz.svg new file mode 100644 index 0000000..dd3f348 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-gz.svg @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-html.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-html.svg new file mode 100644 index 0000000..2ac1778 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-html.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-iso.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-iso.svg new file mode 100644 index 0000000..7cd2184 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-iso.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-jpg.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-jpg.svg new file mode 100644 index 0000000..ae9c6d2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-jpg.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-js.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-js.svg new file mode 100644 index 0000000..23532cb --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-js.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-json.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-json.svg new file mode 100644 index 0000000..17ae513 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-json.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-mp3.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-mp3.svg new file mode 100644 index 0000000..d6dd593 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-mp3.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-mp4.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-mp4.svg new file mode 100644 index 0000000..40c1833 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-mp4.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-pdf.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-pdf.svg new file mode 100644 index 0000000..758720b --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-pdf.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-png.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-png.svg new file mode 100644 index 0000000..783eef5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-png.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-ppt.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-ppt.svg new file mode 100644 index 0000000..bf1ea30 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-ppt.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-psd.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-psd.svg new file mode 100644 index 0000000..e6cea70 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-psd.svg @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-rtf.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-rtf.svg new file mode 100644 index 0000000..c2c9b1a --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-rtf.svg @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-svg.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-svg.svg new file mode 100644 index 0000000..b1c3168 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-svg.svg @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-txt.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-txt.svg new file mode 100644 index 0000000..0e44caf --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-txt.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-unknown.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-unknown.svg new file mode 100644 index 0000000..00a87be --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-unknown.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-xls.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-xls.svg new file mode 100644 index 0000000..eadee3c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-xls.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-xml.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-xml.svg new file mode 100644 index 0000000..7c8bd71 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-xml.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-zip.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-zip.svg new file mode 100644 index 0000000..c4c0937 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/file-type-zip.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/filter.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/filter.svg new file mode 100644 index 0000000..c981775 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/filter.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/information.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/information.svg new file mode 100644 index 0000000..60a8acd --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/information.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/keys.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/keys.svg new file mode 100644 index 0000000..ccb2678 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/keys.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/loader.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/loader.svg new file mode 100644 index 0000000..811cb5b --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/loader.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/locked-padlock.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/locked-padlock.svg new file mode 100644 index 0000000..1c92941 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/locked-padlock.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/log.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/log.svg new file mode 100644 index 0000000..5c06221 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/log.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/mail.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/mail.svg new file mode 100644 index 0000000..cd0451e --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/mail.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/maximize.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/maximize.svg new file mode 100644 index 0000000..037c5f7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/maximize.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/minimize.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/minimize.svg new file mode 100644 index 0000000..39bc476 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/minimize.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/minus-fill.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/minus-fill.svg new file mode 100644 index 0000000..3e95e33 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/minus-fill.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/mobile-menu.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/mobile-menu.svg new file mode 100644 index 0000000..d24a2f0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/mobile-menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/nav-grid.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/nav-grid.svg new file mode 100644 index 0000000..793906f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/nav-grid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/nav-list.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/nav-list.svg new file mode 100644 index 0000000..8e24630 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/nav-list.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/network-error.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/network-error.svg new file mode 100644 index 0000000..22e4f7d --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/network-error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/new-file.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/new-file.svg new file mode 100644 index 0000000..ee1c7e7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/new-file.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/new-folder.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/new-folder.svg new file mode 100644 index 0000000..5a53167 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/new-folder.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-cancel.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-cancel.svg new file mode 100644 index 0000000..fe39d83 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-cancel.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-check.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-check.svg new file mode 100644 index 0000000..0c026b7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-check.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-information.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-information.svg new file mode 100644 index 0000000..60a8acd --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-information.svg @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-warning.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-warning.svg new file mode 100644 index 0000000..ea38be5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications-warning.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications.svg new file mode 100644 index 0000000..15fcc51 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/notifications.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/optical.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/optical.svg new file mode 100644 index 0000000..bdfed42 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/optical.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/papers.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/papers.svg new file mode 100644 index 0000000..adb29c2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/papers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pencil.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pencil.svg new file mode 100644 index 0000000..1a744fe --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pencil.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/person.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/person.svg new file mode 100644 index 0000000..3a5acf5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/person.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/plugins.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/plugins.svg new file mode 100644 index 0000000..1a94f4a --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/plugins.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/plus-fill.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/plus-fill.svg new file mode 100644 index 0000000..d6ac9a4 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/plus-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pointer-down.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pointer-down.svg new file mode 100644 index 0000000..cf83046 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pointer-down.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pointer-up.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pointer-up.svg new file mode 100644 index 0000000..3e6597f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/pointer-up.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/question.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/question.svg new file mode 100644 index 0000000..6eb1807 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/question.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/reload.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/reload.svg new file mode 100644 index 0000000..b960750 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/reload.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/rename.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/rename.svg new file mode 100644 index 0000000..f70c3e9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/rename.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/reseller-tools.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/reseller-tools.svg new file mode 100644 index 0000000..b7199d8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/reseller-tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-admins.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-admins.svg new file mode 100644 index 0000000..d87a4ce --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-admins.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-commands.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-commands.svg new file mode 100644 index 0000000..70fbb85 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-commands.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-db-entries.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-db-entries.svg new file mode 100644 index 0000000..0714904 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-db-entries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-domains.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-domains.svg new file mode 100644 index 0000000..b319243 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-domains.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-emails.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-emails.svg new file mode 100644 index 0000000..16e71d3 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-emails.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-ftp-accounts.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-ftp-accounts.svg new file mode 100644 index 0000000..bbd448b --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-ftp-accounts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-resellers.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-resellers.svg new file mode 100644 index 0000000..ab68a28 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search-resellers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search.svg new file mode 100644 index 0000000..39a5655 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/server-manager.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/server-manager.svg new file mode 100644 index 0000000..d19c643 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/server-manager.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/settings.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/settings.svg new file mode 100644 index 0000000..4debab2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/settings.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/shield.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/shield.svg new file mode 100644 index 0000000..466e9ea --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/shield.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/shut-down.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/shut-down.svg new file mode 100644 index 0000000..c030a51 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/shut-down.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/slash.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/slash.svg new file mode 100644 index 0000000..400810d --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/slash.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square-checked.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square-checked.svg new file mode 100644 index 0000000..bf98999 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square-checked.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square-radio.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square-radio.svg new file mode 100644 index 0000000..efe733d --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square-radio.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square.svg new file mode 100644 index 0000000..0312201 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/square.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/support-help.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/support-help.svg new file mode 100644 index 0000000..5863732 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/support-help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/system-information.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/system-information.svg new file mode 100644 index 0000000..f4ff7b2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/system-information.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/upload.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/upload.svg new file mode 100644 index 0000000..ae3d251 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/vertical-dots.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/vertical-dots.svg new file mode 100644 index 0000000..36fb7ba --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/vertical-dots.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/warning.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/warning.svg new file mode 100644 index 0000000..3f5a69f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/webmail-sso.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/webmail-sso.svg new file mode 100644 index 0000000..ba87b54 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/webmail-sso.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/icons/www.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/www.svg new file mode 100644 index 0000000..2652206 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/icons/www.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/logo.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/logo.svg new file mode 100644 index 0000000..50ccd26 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/logo.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/logo_white.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/logo_white.svg new file mode 100644 index 0000000..b9b55c9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/logo_white.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/preloader-error.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/preloader-error.svg new file mode 100644 index 0000000..1b1d915 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/preloader-error.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/img/preloader.svg b/directadmin-1.62.4/data/skins/evolution/assets/img/preloader.svg new file mode 100644 index 0000000..7abaf1f --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/img/preloader.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/assets/login.js b/directadmin-1.62.4/data/skins/evolution/assets/login.js new file mode 100644 index 0000000..da616f0 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/login.js @@ -0,0 +1,20 @@ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/assets/",n(n.s=76)}([function(t,e,n){"use strict";function r(t,e,n,r,o,a,i,s){var u,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),a&&(c._scopeId="data-v-"+a),i?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},c._ssrRegister=u):o&&(u=s?function(){o.call(this,this.$root.$options.shadowRoot)}:o),u)if(c.functional){c._injectStyles=u;var l=c.render;c.render=function(t,e){return u.call(e),l(t,e)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,u):[u]}return{exports:t,options:c}}n.d(e,"a",(function(){return r}))},function(t,e){t.exports=function(t){return t&&t.__esModule?t:{default:t}}},function(t,e,n){"use strict";var r=n(68),o=n(105),a=Object.prototype.toString;function i(t){return"[object Array]"===a.call(t)}function s(t){return null!==t&&"object"==typeof t}function u(t){return"[object Function]"===a.call(t)}function c(t,e){if(null!=t)if("object"!=typeof t&&(t=[t]),i(t))for(var n=0,r=t.length;n0&&(t=this.addColor(t))):o.push({name:this.iconName,component:this}),this.getValidPathData(t)},box:function(){var t=this.width||16,e=this.width||16;return this.iconData?this.iconData.viewBox?this.iconData.viewBox:"0 0 "+this.iconData.width+" "+this.iconData.height:"0 0 "+parseFloat(t)+" "+parseFloat(e)},style:function(){var t=/^\d+$/,e=Number(this.scale),n=void 0,r=void 0;return!isNaN(e)&&this.iconData?(n=Number(this.iconData.width)*e+"px",r=Number(this.iconData.height)*e+"px"):(n=t.test(this.width)?this.width+"px":this.width,r=t.test(this.height)?this.height+"px":this.height),{width:n||a,height:r||i}}},created:function(){r[this.iconName]&&(this.loaded=!0)},methods:{addColor:function(t){var e=this,n=0;return t.replace(/<(path|rect|circle|polygon|line|polyline|ellipse)\s/gi,(function(t){var r=e.colors[n++]||e.colors[e.colors.length-1],o=e.fill;return r&&"_"===r?t:(r&&0===r.indexOf("r-")&&(o=!o,r=r.split("r-")[1]),t+(o?"fill":"stroke")+'="'+r+'" '+(o?"stroke":"fill")+'="none" ')}))},addOriginalColor:function(t){return t.replace(/_fill="|_stroke="/gi,(function(t){return t&&t.slice(1)}))},getValidPathData:function(t){return this.original&&this.colors.length>0&&(t=t.replace(/<(path|rect|circle|polygon|line|polyline|ellipse)(\sfill|\sstroke)([="\w\s\.\-\+#\$\&>]+)(fill|stroke)/gi,(function(t,e,n,r,o){return"<"+e+n+r+"_"+o}))),t}},install:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.tagName||"svgicon";e.classPrefix&&(s=e.classPrefix),e.defaultWidth&&(a=e.defaultWidth),e.defaultHeight&&(i=e.defaultHeight),t.component(n,this)},register:function(t){for(var e in t)!function(e){r[e]||(r[e]=t[e]),o=o.filter((function(t,n){return t.name===e&&t.component.$set(t.component,"loaded",!0),t.name!==e}))}(e)},icons:r}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)("svg",{class:t.clazz,style:t.style,attrs:{version:"1.1",viewBox:t.box},domProps:{innerHTML:t._s(t.path)}})},staticRenderFns:[]}}])},function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){"use strict";n.r(e),function(t,n){ +/*! + * Vue.js v2.6.11 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +var r=Object.freeze({});function o(t){return null==t}function a(t){return null!=t}function i(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function u(t){return null!==t&&"object"==typeof t}var c=Object.prototype.toString;function l(t){return"[object Object]"===c.call(t)}function f(t){return"[object RegExp]"===c.call(t)}function d(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function p(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||l(t)&&t.toString===c?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function b(t,e){return _.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var x=/-(\w)/g,O=w((function(t){return t.replace(x,(function(t,e){return e?e.toUpperCase():""}))})),k=w((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),C=/\B([A-Z])/g,j=w((function(t){return t.replace(C,"-$1").toLowerCase()}));var S=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function $(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function A(t,e){for(var n in e)t[n]=e[n];return t}function T(t){for(var e={},n=0;n0,Y=X&&X.indexOf("edge/")>0,Q=(X&&X.indexOf("android"),X&&/iphone|ipad|ipod|ios/.test(X)||"ios"===W),Z=(X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X),X&&X.match(/firefox\/(\d+)/)),tt={}.watch,et=!1;if(V)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,nt)}catch(t){}var rt=function(){return void 0===z&&(z=!V&&!G&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),z},ot=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var it,st="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);it="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=E,ct=0,lt=function(){this.id=ct++,this.subs=[]};lt.prototype.addSub=function(t){this.subs.push(t)},lt.prototype.removeSub=function(t){y(this.subs,t)},lt.prototype.depend=function(){lt.target&<.target.addDep(this)},lt.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(a&&!b(o,"default"))i=!1;else if(""===i||i===j(t)){var u=Bt(String,o.type);(u<0||s0&&(le((u=t(u,(n||"")+"_"+r))[0])&&le(l)&&(f[c]=gt(l.text+u[0].text),u.shift()),f.push.apply(f,u)):s(u)?le(l)?f[c]=gt(l.text+u):""!==u&&f.push(gt(u)):le(u)&&le(l)?f[c]=gt(l.text+u.text):(i(e._isVList)&&a(u.tag)&&o(u.key)&&a(n)&&(u.key="__vlist"+n+"_"+r+"__"),f.push(u)));return f}(t):void 0}function le(t){return a(t)&&a(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=st?Reflect.ownKeys(t):Object.keys(t),o=0;o0,i=t?!!t.$stable:!a,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(i&&n&&n!==r&&s===n.$key&&!a&&!n.$hasNormal)return n;for(var u in o={},t)t[u]&&"$"!==u[0]&&(o[u]=ve(e,u,t[u]))}else o={};for(var c in e)c in o||(o[c]=me(e,c));return t&&Object.isExtensible(t)&&(t._normalized=o),B(o,"$stable",i),B(o,"$key",s),B(o,"$hasNormal",a),o}function ve(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ce(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function me(t,e){return function(){return t[e]}}function ge(t,e){var n,r,o,i,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;rdocument.createEvent("Event").timeStamp&&(un=function(){return cn.now()})}function ln(){var t,e;for(sn=un(),on=!0,tn.sort((function(t,e){return t.id-e.id})),an=0;anan&&tn[n].id>t.id;)n--;tn.splice(n+1,0,t)}else tn.push(t);rn||(rn=!0,ee(ln))}}(this)},dn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||u(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Ut(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},dn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},dn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},dn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||y(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:E,set:E};function hn(t,e,n){pn.get=function(){return this[e][n]},pn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,pn)}function vn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&Ot(!1);var a=function(a){o.push(a);var i=Ft(a,e,n,t);jt(r,a,i),a in t||hn(t,"_props",a)};for(var i in e)a(i);Ot(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?E:S(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;l(e=t._data="function"==typeof e?function(t,e){dt();try{return t.call(e,e)}catch(t){return Ut(t,e,"data()"),{}}finally{pt()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var a=n[o];0,r&&b(r,a)||(i=void 0,36!==(i=(a+"").charCodeAt(0))&&95!==i&&hn(t,"_data",a))}var i;Ct(e,!0)}(t):Ct(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=rt();for(var o in e){var a=e[o],i="function"==typeof a?a:a.get;0,r||(n[o]=new dn(t,i||E,E,mn)),o in t||gn(t,o,a)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function Sn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var a in n){var i=n[a];if(i){var s=Cn(i.componentOptions);s&&!e(s)&&$n(n,a,r,o)}}}function $n(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,y(n,e)}!function(t){t.prototype._init=function(t){var e=this;e._uid=wn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=It(xn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Xe(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=de(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return Re(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Re(t,e,n,r,o,!0)};var a=n&&n.data;jt(t,"$attrs",a&&a.attrs||r,null,!0),jt(t,"$listeners",e._parentListeners||r,null,!0)}(e),Ze(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(Ot(!1),Object.keys(e).forEach((function(n){jt(t,n,e[n])})),Ot(!0))}(e),vn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),Ze(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(On),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=St,t.prototype.$delete=$t,t.prototype.$watch=function(t,e,n){if(l(e))return bn(this,t,e,n);(n=n||{}).user=!0;var r=new dn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Ut(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(On),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,a=t.length;o1?$(n):n;for(var r=$(arguments,1),o='event handler for "'+t+'"',a=0,i=n.length;aparseInt(this.max)&&$n(i,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return R}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:A,mergeOptions:It,defineReactive:jt},t.set=St,t.delete=$t,t.nextTick=ee,t.observable=function(t){return Ct(t),t},t.options=Object.create(null),N.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,A(t.options.components,Tn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=$(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=It(this.options,t),this}}(t),kn(t),function(t){N.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(On),Object.defineProperty(On.prototype,"$isServer",{get:rt}),Object.defineProperty(On.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(On,"FunctionalRenderContext",{value:Me}),On.version="2.6.11";var En=m("style,class"),Mn=m("input,textarea,option,select,progress"),Pn=m("contenteditable,draggable,spellcheck"),Ln=m("events,caret,typing,plaintext-only"),Dn=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),In="http://www.w3.org/1999/xlink",Nn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Fn=function(t){return Nn(t)?t.slice(6,t.length):""},Rn=function(t){return null==t||!1===t};function qn(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Bn(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=Bn(e,n.data));return function(t,e){if(a(t)||a(e))return Un(t,zn(e));return""}(e.staticClass,e.class)}function Bn(t,e){return{staticClass:Un(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function Un(t,e){return t?e?t+" "+e:t:e||""}function zn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?dr(t,e,n):Dn(e)?Rn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Pn(e)?t.setAttribute(e,function(t,e){return Rn(e)||"false"===e?"false":"contenteditable"===t&&Ln(e)?e:"true"}(e,n)):Nn(e)?Rn(n)?t.removeAttributeNS(In,Fn(e)):t.setAttributeNS(In,e,n):dr(t,e,n)}function dr(t,e,n){if(Rn(n))t.removeAttribute(e);else{if(K&&!J&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var pr={create:lr,update:lr};function hr(t,e){var n=e.elm,r=e.data,i=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(i)||o(i.staticClass)&&o(i.class)))){var s=qn(e),u=n._transitionClasses;a(u)&&(s=Un(s,zn(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var vr,mr={create:hr,update:hr};function gr(t,e,n){var r=vr;return function o(){var a=e.apply(null,arguments);null!==a&&br(t,o,n,r)}}var yr=Wt&&!(Z&&Number(Z[1])<=53);function _r(t,e,n,r){if(yr){var o=sn,a=e;e=a._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return a.apply(this,arguments)}}vr.addEventListener(t,e,et?{capture:n,passive:r}:n)}function br(t,e,n,r){(r||vr).removeEventListener(t,e._wrapper||e,n)}function wr(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};vr=e.elm,function(t){if(a(t.__r)){var e=K?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),ie(n,r,_r,br,gr,e.context),vr=void 0}}var xr,Or={create:wr,update:wr};function kr(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,i=e.elm,s=t.data.domProps||{},u=e.data.domProps||{};for(n in a(u.__ob__)&&(u=e.data.domProps=A({},u)),s)n in u||(i[n]="");for(n in u){if(r=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var c=o(r)?"":String(r);Cr(i,c)&&(i.value=c)}else if("innerHTML"===n&&Gn(i.tagName)&&o(i.innerHTML)){(xr=xr||document.createElement("div")).innerHTML=""+r+"";for(var l=xr.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;l.firstChild;)i.appendChild(l.firstChild)}else if(r!==s[n])try{i[n]=r}catch(t){}}}}function Cr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var jr={create:kr,update:kr},Sr=w((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function $r(t){var e=Ar(t.style);return t.staticStyle?A(t.staticStyle,e):e}function Ar(t){return Array.isArray(t)?T(t):"string"==typeof t?Sr(t):t}var Tr,Er=/^--/,Mr=/\s*!important$/,Pr=function(t,e,n){if(Er.test(e))t.style.setProperty(e,n);else if(Mr.test(n))t.style.setProperty(j(e),n.replace(Mr,""),"important");else{var r=Dr(e);if(Array.isArray(n))for(var o=0,a=n.length;o-1?e.split(Fr).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function qr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Fr).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Br(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&A(e,Ur(t.name||"v")),A(e,t),e}return"string"==typeof t?Ur(t):void 0}}var Ur=w((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),zr=V&&!J,Hr="transition",Vr="transitionend",Gr="animation",Wr="animationend";zr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Hr="WebkitTransition",Vr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Gr="WebkitAnimation",Wr="webkitAnimationEnd"));var Xr=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Kr(t){Xr((function(){Xr(t)}))}function Jr(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Rr(t,e))}function Yr(t,e){t._transitionClasses&&y(t._transitionClasses,e),qr(t,e)}function Qr(t,e,n){var r=to(t,e),o=r.type,a=r.timeout,i=r.propCount;if(!o)return n();var s="transition"===o?Vr:Wr,u=0,c=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++u>=i&&c()};setTimeout((function(){u0&&(n="transition",l=i,f=a.length):"animation"===e?c>0&&(n="animation",l=c,f=u.length):f=(n=(l=Math.max(i,c))>0?i>c?"transition":"animation":null)?"transition"===n?a.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&Zr.test(r[Hr+"Property"])}}function eo(t,e){for(;t.length1}function so(t,e){!0!==e.data.show&&ro(e)}var uo=function(t){var e,n,r={},u=t.modules,c=t.nodeOps;for(e=0;eh?_(t,o(n[g+1])?null:n[g+1].elm,n,p,g,r):p>g&&w(e,d,h)}(d,m,g,n,l):a(g)?(a(t.text)&&c.setTextContent(d,""),_(d,null,g,0,g.length-1,n)):a(m)?w(m,0,m.length-1):a(t.text)&&c.setTextContent(d,""):t.text!==e.text&&c.setTextContent(d,e.text),a(h)&&a(p=h.hook)&&a(p=p.postpatch)&&p(t,e)}}}function C(t,e,n){if(i(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,i.selected!==a&&(i.selected=a);else if(L(ho(i),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function po(t,e){return e.every((function(e){return!L(e,t)}))}function ho(t){return"_value"in t?t._value:t.value}function vo(t){t.target.composing=!0}function mo(t){t.target.composing&&(t.target.composing=!1,go(t.target,"input"))}function go(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function yo(t){return!t.componentInstance||t.data&&t.data.transition?t:yo(t.componentInstance._vnode)}var _o={model:co,show:{bind:function(t,e,n){var r=e.value,o=(n=yo(n)).data&&n.data.transition,a=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,ro(n,(function(){t.style.display=a}))):t.style.display=r?a:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=yo(n)).data&&n.data.transition?(n.data.show=!0,r?ro(n,(function(){t.style.display=t.__vOriginalDisplay})):oo(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},bo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function wo(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?wo(He(e.children)):t}function xo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var a in o)e[O(a)]=o[a];return e}function Oo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var ko=function(t){return t.tag||ze(t)},Co=function(t){return"show"===t.name},jo={name:"transition",props:bo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(ko)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var a=wo(o);if(!a)return o;if(this._leaving)return Oo(t,o);var i="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?i+"comment":i+a.tag:s(a.key)?0===String(a.key).indexOf(i)?a.key:i+a.key:a.key;var u=(a.data||(a.data={})).transition=xo(this),c=this._vnode,l=wo(c);if(a.data.directives&&a.data.directives.some(Co)&&(a.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(a,l)&&!ze(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},u);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Oo(t,o);if("in-out"===r){if(ze(a))return c;var d,p=function(){d()};se(u,"afterEnter",p),se(u,"enterCancelled",p),se(f,"delayLeave",(function(t){d=t}))}}return o}}},So=A({tag:String,moveClass:String},bo);function $o(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Ao(t){t.data.newPos=t.elm.getBoundingClientRect()}function To(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var a=t.elm.style;a.transform=a.WebkitTransform="translate("+r+"px,"+o+"px)",a.transitionDuration="0s"}}delete So.mode;var Eo={Transition:jo,TransitionGroup:{props:So,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],a=this.children=[],i=xo(this),s=0;s-1?Xn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Xn[t]=/HTMLUnknownElement/.test(e.toString())},A(On.options.directives,_o),A(On.options.components,Eo),On.prototype.__patch__=V?uo:E,On.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=mt),Ze(t,"beforeMount"),r=function(){t._update(t._render(),n)},new dn(t,r,E,{before:function(){t._isMounted&&!t._isDestroyed&&Ze(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Ze(t,"mounted")),t}(this,t=t&&V?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},V&&setTimeout((function(){R.devtools&&ot&&ot.emit("init",On)}),0),e.default=On}.call(this,n(8),n(77).setImmediate)},function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";n.r(e);var r=n(10),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(3)),a=r(n(4)),i=r(n(7));n(82),n(83),n(84);var s,u,c,l=n(85),f={name:"LoginRoot",data:function(){return{authType:{CMD_LOGIN:"standard-auth",CMD_ASK_TWOSTEP_AUTH:"two-step-auth",CMD_ASK_SECURITY_QUESTION:"security-question-auth"}[window.tokens.AUTH_METHOD]||"standard-auth",authData:{},additionalAuth:[],authorized:!1,darkMode:!1}},computed:{lostPasswordPage:function(){return"/lost-password"===window.location.pathname},showLanguageSelector:function(){return Object.keys(i.default.$translations).length>1}},created:(c=(0,a.default)(o.default.mark((function t(){return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.tokens=window.tokens,this.lostPasswordPage&&(this.authType="remind-password-auth"),"security-question-auth"!==this.authType||this.authData.question||(this.authData.question=window.tokens.QUESTION),"two-step-auth"!==this.authType||this.authData.trust_days){t.next=7;break}return t.next=6,(0,l.get2faData)();case 6:this.authData=t.sent;case 7:this.initDarkMode();case 8:case"end":return t.stop()}}),t,this)}))),function(){return c.apply(this,arguments)}),methods:{initDarkMode:function(){var t=this,e=localStorage.getItem("evolution:dark-mode")||"auto";if("auto"===e&&window.matchMedia){var n=window.matchMedia("(prefers-color-scheme: dark)");this.darkMode=n.matches,n.addListener((function(e){var n=e.matches;t.darkMode=n}))}else this.darkMode="enabled"===e},checkAuthStatus:(u=(0,a.default)(o.default.mark((function t(){var e,n,r,a;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.additionalAuth.length){t.next=6;break}e=this.additionalAuth.shift(),n=e.type,r=e.data,this.authType=n,this.authData=r,t.next=10;break;case 6:return t.next=8,this.checkForbiddenStatus();case 8:(a=t.sent)?(this.authType="auth-forbidden-message",this.authData=a):(this.$bus.$emit("authorize"),this.loggedIn());case 10:case"end":return t.stop()}}),t,this)}))),function(){return u.apply(this,arguments)}),setAdditionalAuth:function(t){this.additionalAuth=t},checkForbiddenStatus:(s=(0,a.default)(o.default.mark((function t(){var e,n,r,a;return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.$get("/CMD_WIDGET",{json:"yes"});case 3:return t.abrupt("return",!1);case 6:return t.prev=6,t.t0=t.catch(0),e=JSON.parse(t.t0.response),n=e.error,r=e.result,window.result=r,a=function(t){return t.replace(/\\n/g,"
")},t.abrupt("return",{error:n,result:a(r)});case 12:case"end":return t.stop()}}),t,this,[[0,6]])}))),function(){return s.apply(this,arguments)}),loggedIn:function(){this.lostPasswordPage?window.location.href="/":"/CMD_LOGIN"===window.location.pathname?window.location.href="/":window.location.reload()}}};e.default=f},function(t,e,n){"use strict";n.r(e);var r=n(12),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={props:{data:{type:Object,required:!0}}};e.default=r},function(t,e,n){"use strict";n.r(e);var r=n(14),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n(97);var r={model:{prop:"value",event:"change"},props:{value:{type:Boolean,required:!0,default:!1}}};e.default=r},function(t,e,n){"use strict";n.r(e);var r=n(16),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={model:{prop:"value",event:"update"},props:{value:{type:String,required:!0,default:""},invalid:{type:Boolean,required:!1,default:!1}},data:function(){return{isTextShown:!1}},computed:{type:function(){return this.isTextShown?"text":"password"}},methods:{toggle:function(){this.isTextShown=!this.isTextShown}}};e.default=r},function(t,e,n){"use strict";n.r(e);var r=n(18),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={data:function(){return{isOpen:!1}},props:{options:{type:Object,required:!0,default:function(){return{}}},value:{type:String,required:!0},outsideSelector:{type:String,required:!1,default:".Select"}},methods:{setOption:function(t){this.$emit("input",t),this.isOpen=!1}},mounted:function(){var t=this;window.addEventListener("click",(function(e){e.target.closest(t.outsideSelector)||(t.isOpen=!1)}))}};e.default=r},function(t,e,n){"use strict";n.r(e);var r=n(20),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={model:{prop:"value",event:"update"},props:{invalid:{type:Boolean,required:!1,default:!1},value:{type:String,required:!0,default:""}},methods:{focus:function(){this.$refs.input.focus()}}};e.default=r},function(t,e,n){"use strict";n.r(e);var r=n(22),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o,a=r(n(3)),i=r(n(4)),s=r(n(7)),u=n(67),c={data:function(){return{isOpen:!1}},computed:{currentLanguage:function(){return{id:this.$language.current,label:this.$language.available[this.$language.current]}}},methods:{languageLoaded:function(t){var e=s.default.$translations[t];return!!Object.keys(e).length},setLanguage:(o=(0,i.default)(a.default.mark((function t(e){return a.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.languageLoaded(e)){t.next=3;break}return t.next=3,(0,u.loadTranslation)(e,!0);case 3:this.$language.current=e;case 4:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)}),openSelect:function(){this.$refs.select&&(this.$refs.select.isOpen=!0)}}};e.default=c},function(t,e,n){"use strict";n.r(e);var r=n(24),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n(125),n(126);e.default={data:function(){return{ajaxRequest:!1,authorized:!1}},mounted:function(){var t=this;this.$bus.$on("ajax:start",(function(){t.ajaxRequest=!0})),this.$bus.$on("ajax:end",(function(){t.ajaxRequest=!1})),this.$bus.$on("authorize",(function(){t.authorized=!0}))}}},function(t,e,n){"use strict";n.r(e);var r=n(26),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r={props:{message:{type:String,required:!1,default:""},tag:{type:String,required:!1,default:"div"}}};e.default=r},function(t,e,n){"use strict";n.r(e);var r=n(28),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(137)),a={data:function(){return{dateTime:new Date(window.tokens.TIME.current)}},computed:{timeDiff:function(){return Math.abs(Date.now()-this.dateTime)},outOfSync:function(){return this.timeDiff>window.tokens.TIME.offset},formattedDate:function(){return(0,o.default)(this.dateTime,this.format)},format:function(){var t=this.$gettext("format:datetime");return"format:datetime"===t?"M/d/yyy, HH:mm:ss":t}},methods:{updateDateTime:function(){this.dateTime=new Date(this.dateTime.getTime()+1e3)},hours:function(t){return(t/36e5).toFixed(2)}},mounted:function(){setInterval(this.updateDateTime,1e3)}};e.default=a},function(t,e,n){"use strict";n.r(e);var r=n(30),o=n.n(r);for(var a in r)"default"!==a&&function(t){n.d(e,t,(function(){return r[t]}))}(a);e.default=o.a},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a=r(n(73)),i=r(n(74)),s=r(n(75));function u(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var c=["send-message","send-confirmation","send-code","send-confirmation"],l={components:{SendMessage:a.default,SendConfirmation:i.default,SendCode:s.default},data:function(){return{stage:"send-message",payload:{username:"",message:""}}},methods:{nextStage:function(t){var e=c.indexOf(this.stage);c.length>e+1&&(this.stage=c[e+1],Object.assign(this.payload,t))}},created:function(){if("/lost-password"===window.location.pathname){var t=function(t){return function(e){return e.split(t)}},e=function(){for(var t=arguments.length,e=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return function(n){return n.reduce(t,e)}}((function(t,e){return function(t){for(var e=1;e=200&&t<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(t){u.headers[t]={}})),r.forEach(["post","put","patch"],(function(t){u.headers[t]=r.merge(a)})),t.exports=u}).call(this,n(64))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"Overlay",class:{"--dark":t.darkMode}},["yes"===t.tokens.trial?n("div",{staticClass:"TrialBox"},[n("translate",[t._v("\n License of PuaruVN\n ")])],1):t._e(),t._v(" "),n("div",{staticClass:"Login Box"},[n("login-header"),t._v(" "),n("transition",{attrs:{name:"slide-fade-left",mode:"out-in"}},[n(t.authType,{key:t.authType,tag:"component",attrs:{data:t.authData},on:{"auth:success":t.checkAuthStatus,"auth:additional":t.setAdditionalAuth}})],1)],1),t._v(" "),t.tokens.LOST_PASSWORD&&!t.authorized?n("div",{staticClass:"ForgotPasswordBlock"},["standard-auth"===t.authType?[n("translate",[t._v("Forgot Password?")]),t._v(" "),n("a",{staticClass:"Link",attrs:{href:"/"},on:{click:function(e){e.preventDefault(),t.authType="remind-password-auth"}}},[n("translate",{key:"clickHere"},[t._v("Click here")])],1)]:"remind-password-auth"===t.authType?n("a",{staticClass:"Link",attrs:{href:"/"},on:{click:function(e){e.preventDefault(),t.authType="standard-auth"}}},[n("translate",{key:"backToLoginPage"},[t._v("← Back to the login page")])],1):t._e()],2):t._e(),t._v(" "),n("div",{staticClass:"Spacer"}),t._v(" "),t.showLanguageSelector?n("language-selector"):t._e(),t._v(" "),n("login-datetime")],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("login-box",{attrs:{message:this.data.error}},[e("div",{staticClass:"Message m:top:22",domProps:{innerHTML:this._s(this.data.result)}})])},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"Input"},[n("label",{staticClass:"Input__Checkbox",on:{click:function(e){return t.$emit("change",!t.value)}}},[n("div",{staticClass:"Input__Icon"},[t.value?n("svg-icon",{attrs:{icon:"check",width:"10",height:"10"}}):t._e()],1),t._v(" "),t._t("default")],2)])},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"Input InputPassword",class:{"InputPassword-error":t.invalid}},[n("input",t._g(t._b({staticClass:"InputPassword__Input",class:{error:t.invalid},attrs:{type:t.type},domProps:{value:t.value},on:{update:function(e){return t.$emit("update",e)},input:function(e){return t.$emit("update",e.target.value)}}},"input",t.$attrs,!1),t.$listeners)),t._v(" "),n("a",{staticClass:"Input__Icon hoverable",on:{click:t.toggle}},[n("svg-icon",{attrs:{width:"20",name:"optical",color:"#8db2be"}})],1)])},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"Select",class:{"--open":t.isOpen}},[n("div",{ref:"title",staticClass:"Title",on:{click:function(e){t.isOpen=!t.isOpen}}},[t._v("\n "+t._s(t.options[t.value])+"\n\n "),n("svg-icon",{attrs:{width:"9",name:"caret-down",color:"#1e4b78"}})],1),t._v(" "),n("transition",{attrs:{name:"slide-fade-bottom"}},[t.isOpen?n("div",{ref:"dropdown",staticClass:"Dropdown"},t._l(t.options,(function(e,r){return n("a",{staticClass:"Dropdown_Item",class:{current:r===t.value},domProps:{textContent:t._s(e)},on:{click:function(e){return t.setOption(r)}}})})),0):t._e()])],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"Input",class:{"Input-error":t.invalid}},[n("input",t._g(t._b({ref:"input",staticClass:"Input__Text",class:{error:t.invalid},attrs:{type:"text"},domProps:{value:t.value},on:{input:function(e){return t.$emit("update",e.target.value)},update:function(e){return t.$emit("update",e.target.value)}}},"input",t.$attrs,!1),t.$listeners)),t._v(" "),t.invalid?n("span",{staticClass:"Input__Icon"},[n("svg-icon",{attrs:{width:"20",name:"exclamation-triangle",color:"#d77272"}})],1):t._e()])},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"LanguageSelector"},[e("label",{staticClass:"Label",on:{click:this.openSelect}},[e("translate",[this._v("Language")])],1),this._v(" "),e("input-select",{ref:"select",attrs:{outsideSelector:".LanguageSelector",options:this.$language.available,value:this.$language.current},on:{input:this.setLanguage}})],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("span",{attrs:{name:"fade"}},[this.ajaxRequest?e("svg-icon",{attrs:{icon:"loader",width:"24",height:"24",color:"#FFF"}}):this.authorized?e("span",{staticClass:"SuccessMessage"},[e("svg-icon",{attrs:{icon:"notifications-check",width:"24",height:"24",color:"#FFF"}}),this._v(" "),e("translate",[this._v("Logged in..")])],1):this._t("default")],2)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(t.tag,t._g(t._b({tag:"component",staticClass:"Box__Form"},"component",t.$attrs,!1),t.$listeners),[t.message?n("p",{staticClass:"Message"},[t._v("\n "+t._s(t.message)+"\n ")]):t._e(),t._v(" "),t._t("default")],2)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"DateTimeBlock",class:{"--out-of-sync":t.outOfSync}},[t.outOfSync?n("translate",{attrs:{"translate-params":{hours:t.hours(t.timeDiff)}}},[t._v("\n Computer or server time out of sync by %{ hours } hours.\n ")]):[t._v("\n "+t._s(t.formattedDate)+"\n ")],t._v(" "),t._e()],2)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this.$createElement;return(this._self._c||t)(this.stage,this._b({tag:"component",on:{success:this.nextStage}},"component",this.payload,!1))},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("login-box",{attrs:{message:t.$gettext("Enter your Username and a confirmation link will be sent to your email account.")}},[n("input-text",{key:"username",staticClass:"m:top:10",attrs:{placeholder:t.$gettext("Username")},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.sendMail(e)}},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),t._v(" "),n("button",{staticClass:"Button",on:{click:t.sendMail}},[n("loader",[n("translate",[t._v("Send me a Link")])],1)],1)],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this.$createElement;return(this._self._c||t)("login-box",this._b({},"login-box",{message:this.message},!1))},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("login-box",[n("translate",{staticClass:"Message",attrs:{tag:"div"}},[t._v("\n Log In using your username and code from E-mail\n ")]),t._v(" "),n("input-text",{key:"username",staticClass:"m:top:10",attrs:{placeholder:t.$gettext("Username")},model:{value:t.user,callback:function(e){t.user=e},expression:"user"}}),t._v(" "),n("input-text",{key:"code",staticClass:"m:top:10",attrs:{placeholder:t.$gettext("Code from E-mail")},model:{value:t.code,callback:function(e){t.code=e},expression:"code"}}),t._v(" "),t.codeErrorMessage?n("div",{staticClass:"Message Message--error m:top:30"},[t._v("\n "+t._s(t.codeErrorMessage)+"\n ")]):t._e(),t._v(" "),n("button",{staticClass:"Button",on:{click:t.submitCode}},[n("loader",[n("translate",[t._v("Request New Password")])],1)],1)],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("login-box",{attrs:{message:t.question},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.submit(e)}}},[n("input-text",{ref:"answer",staticClass:"m:top:10",model:{value:t.answer,callback:function(e){t.answer=e},expression:"answer"}}),t._v(" "),t.failureMessage?n("p",{staticClass:"Message Message--error"},[t._v("\n "+t._s(t.failureMessage)+"\n ")]):t._e(),t._v(" "),n("button",{staticClass:"Button",on:{click:t.submit}},[n("loader",[n("translate",[t._v("Submit Answer")])],1)],1)],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("login-box",{attrs:{tag:"form",id:"LoginForm",action:"/CMD_LOGIN"},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.login(e)},submit:function(t){t.preventDefault()}}},[n("input-text",{ref:"username",attrs:{name:"username",invalid:t.loginFailed,placeholder:t.$gettext("Please enter username")},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.login(e)}},model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),t._v(" "),n("input-password",{staticClass:"m:top:30",attrs:{name:"password",invalid:t.loginFailed,placeholder:t.$gettext("Password"),autocomplete:"current-password"},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.login(e)}},model:{value:t.password,callback:function(e){t.password=e},expression:"password"}}),t._v(" "),t.loginFailed?n("translate",{staticClass:"Message Message--error m:top:22",attrs:{tag:"p"}},[t._v("\n Hmm, login details do not seem to be correct. Please try again.\n ")]):t._e(),t._v(" "),n("button",{staticClass:"Button",attrs:{type:"submit",disabled:!t.username||!t.password||t.loading,autofocus:""},on:{click:t.login}},[n("loader",[n("translate",[t._v("Sign in to Account")])],1)],1)],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"ThemeSelector"},[n("span",{staticClass:"label",on:{click:function(e){return t.$emit("change","disabled")}}},[n("svg-icon",{attrs:{icon:"day-mode",width:"12",height:"12",color:"#fff"}})],1),t._v(" "),n("div",{staticClass:"Trigger",on:{click:function(e){return t.$emit("change","auto")}}},[n("span",{staticClass:"mark",class:"-"+t.darkMode,attrs:{title:t.title}})]),t._v(" "),n("span",{staticClass:"label",on:{click:function(e){return t.$emit("change","enabled")}}},[n("svg-icon",{attrs:{icon:"dark-mode",width:"12",height:"12",color:"#fff"}})],1)])},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.authenticate(e)}}},[n("login-box",{attrs:{message:t.$gettext("Two Step Authentication")}},[n("input-text",{ref:"code",staticClass:"m:top:10",attrs:{invalid:!!t.failureMessage,placeholder:"Get the code from your phone's app, or use a backup scratch code."},model:{value:t.code,callback:function(e){t.code=e},expression:"code"}}),t._v(" "),n("input-checkbox",{staticClass:"--align-right m:top:10",model:{value:t.trustDevice,callback:function(e){t.trustDevice=e},expression:"trustDevice"}},[n("translate",{attrs:{"translate-params":{days:t.data.trust_device}}},[t._v("\n Trust this device for %{ days } days\n ")])],1),t._v(" "),t.failureMessage?n("p",{staticClass:"Message Message--error"},[t._v("\n "+t._s(t.failureMessage)+"\n ")]):t._e(),t._v(" "),n("button",{staticClass:"Button",on:{click:t.authenticate}},[n("loader",[n("translate",[t._v("Authenticate")])],1)],1)],1)],1)},o=[];r._withStripped=!0,n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}))},function(t,e){var n,r,o=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(t){if(n===setTimeout)return setTimeout(t,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(t){n=a}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(t){r=i}}();var u,c=[],l=!1,f=-1;function d(){l&&u&&(l=!1,u.length?c=u.concat(c):f=-1,c.length&&p())}function p(){if(!l){var t=s(d);l=!0;for(var e=c.length;e;){for(u=c,c=[];++f1)for(var n=1;n3&&void 0!==arguments[3]?arguments[3]:{};return new Promise((function(n,i){var s=new XMLHttpRequest;if(s.open(t,f(e,r||{}),!0),d(a,(function(t,e){s.setRequestHeader(t,e)})),s.onreadystatechange=function(){if(4===s.readyState)if(200!==s.status)i(s);else try{var t=JSON.parse(s.responseText);n(t)}catch(t){}},"POST"===t){var u=c(o||{});s.send(u)}else s.send()}))};e.request=p,u.default.mixin({methods:{$request:(o=(0,i.default)(a.default.mark((function t(){var e,n=arguments;return a.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.$bus.$emit("ajax:start"),t.prev=1,t.next=4,p.apply(void 0,n);case 4:return e=t.sent,this.$bus.$emit("ajax:end"),t.abrupt("return",e);case 9:if(t.prev=9,t.t0=t.catch(1),this.$bus.$emit("ajax:end"),500!==t.t0.status){t.next=14;break}throw t.t0;case 14:return t.abrupt("return",l(t.t0.response));case 15:case"end":return t.stop()}}),t,this,[[1,9]])}))),function(){return o.apply(this,arguments)}),$get:function(t,e){return this.$request("GET",t,{query:e})},$post:function(t,e){return this.$request("POST",t,{body:e},{"Content-Type":"application/x-www-form-urlencoded"})}}})},function(t,e,n){var r=n(91),o=n(92),a=n(93);t.exports=function(t,e){return r(t)||o(t,e)||a()}},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.loadTranslation=void 0;var o,a=r(n(66)),i=r(n(3)),s=r(n(4)),u=r(n(7)),c=r(n(102)),l=r(n(103)),f=r(n(121)),d=r(n(123)),p=(o=(0,s.default)(i.default.mark((function t(e,n){var r,o;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,"en"!==e||n){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,l.default.get("/assets/lang/login-".concat(e,".po"));case 5:r=t.sent,o=r.data,u.default.$translations[e]=o,t.next=12;break;case 10:t.prev=10,t.t0=t.catch(0);case 12:case"end":return t.stop()}}),t,null,[[0,10]])}))),function(t,e){return o.apply(this,arguments)});e.loadTranslation=p;var h,v=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(";").reduce((function(t,e){if(e){var n=e.split("="),r=(0,a.default)(n,2),o=r[0],i=r[1];switch(o){case"default":t.defaultLanguage=i;break;case"force_en":t.forceEn="yes"===i;break;default:t.languages[o]=i}}return t}),{defaultLanguage:"en",languages:{},forceEn:!1})},m=(h=(0,s.default)(i.default.mark((function t(e){var n,r,o,a,s,l;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=v(e),r=n.defaultLanguage,o=n.languages,a=n.forceEn,s=(0,f.default)(o,(function(){return{}})),t.next=4,(0,d.default)(r,Object.keys(o));case 4:return l=t.sent,u.default.use(c.default,{availableLanguages:o,defaultLanguage:l,translations:s,silent:!0}),t.next=8,p(l,a);case 8:return t.abrupt("return",{defaultLanguage:l,languages:o});case 9:case"end":return t.stop()}}),t)}))),function(t){return h.apply(this,arguments)});e.default=m},function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;r=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},n(78),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,n(8))},function(t,e,n){(function(t,e){!function(t,n){"use strict";if(!t.setImmediate){var r,o,a,i,s,u=1,c={},l=!1,f=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){h(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(t){h(t.data)},r=function(t){a.port2.postMessage(t)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,r=function(t){var e=f.createElement("script");e.onreadystatechange=function(){h(t),e.onreadystatechange=null,o.removeChild(e),e=null},o.appendChild(e)}):r=function(t){setTimeout(h,0,t)}:(i="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(i)&&h(+e.data.slice(i.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(i+e,"*")}),d.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n",">"));else if(1==r){if(n.push("<",e.tagName),e.hasAttributes())for(var o=e.attributes,a=0,i=o.length;a");var u=e.childNodes;for(a=0,i=u.length;a")}else n.push("/>")}else{if(8!=r)throw"Error serializing XML. Unhandled node of type: "+r;n.push("\x3c!--",e.nodeValue,"--\x3e")}};Object.defineProperty(SVGElement.prototype,"innerHTML",{get:function(){for(var e=[],n=this.firstChild;n;)t(n,e),n=n.nextSibling;return e.join("")},set:function(t){for(;this.firstChild;)this.removeChild(this.firstChild);try{var e=new DOMParser;e.async=!1;for(var n=""+t+"",r=e.parseFromString(n,"text/xml").documentElement.firstChild;r;)this.appendChild(this.ownerDocument.importNode(r,!0)),r=r.nextSibling}catch(t){throw console.error(t),new Error("Error parsing XML string")}}}),Object.defineProperty(SVGElement.prototype,"innerSVG",{get:function(){return this.innerHTML},set:function(t){this.innerHTML=t}})}}])},function(t,e,n){"use strict";n.r(e);var r=n(46),o=n(9);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="Login.vue",e.default=s.exports},function(t,e,n){var r=function(t){"use strict";var e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",a=r.asyncIterator||"@@asyncIterator",i=r.toStringTag||"@@toStringTag";function s(t,e,n,r){var o=e&&e.prototype instanceof l?e:l,a=Object.create(o.prototype),i=new x(r||[]);return a._invoke=function(t,e,n){var r="suspendedStart";return function(o,a){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw a;return k()}for(n.method=o,n.arg=a;;){var i=n.delegate;if(i){var s=_(i,n);if(s){if(s===c)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(t,e,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===c)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(t,n,i),a}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var c={};function l(){}function f(){}function d(){}var p={};p[o]=function(){return this};var h=Object.getPrototypeOf,v=h&&h(h(O([])));v&&v!==e&&n.call(v,o)&&(p=v);var m=d.prototype=l.prototype=Object.create(p);function g(t){["next","throw","return"].forEach((function(e){t[e]=function(t){return this._invoke(e,t)}}))}function y(t){var e;this._invoke=function(r,o){function a(){return new Promise((function(e,a){!function e(r,o,a,i){var s=u(t[r],t,o);if("throw"!==s.type){var c=s.arg,l=c.value;return l&&"object"==typeof l&&n.call(l,"__await")?Promise.resolve(l.__await).then((function(t){e("next",t,a,i)}),(function(t){e("throw",t,a,i)})):Promise.resolve(l).then((function(t){c.value=t,a(c)}),(function(t){return e("throw",t,a,i)}))}i(s.arg)}(r,o,e,a)}))}return e=e?e.then(a,a):a()}}function _(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return c;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return c}var r=u(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,c;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,c):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,c)}function b(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function w(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(b,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,a=function e(){for(;++r=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),w(n),c}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;w(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:O(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),c}},t}(t.exports);try{regeneratorRuntime=r}catch(t){Function("r","regeneratorRuntime = r")(r)}},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"exclamation-triangle",width:16,height:16,viewBox:"0 0 329.562 329.562",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"optical",width:16,height:16,viewBox:"0 0 48 48",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"caret-down",width:16,height:16,viewBox:"0 0 292.362 292.362",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.get2faData=void 0;var o,a=r(n(3)),i=r(n(4)),s=n(65),u=(o=(0,i.default)(a.default.mark((function t(){return a.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,(0,s.request)("GET","/CMD_WIDGET",{query:{json:"yes"}});case 3:return t.abrupt("return",{});case 6:return t.prev=6,t.t0=t.catch(0),t.abrupt("return",JSON.parse(t.t0.response));case 9:case"end":return t.stop()}}),t,null,[[0,6]])}))),function(){return o.apply(this,arguments)});e.get2faData=u},function(t,e,n){var r=n(87),o=n(88),a=n(89);t.exports=function(t){return r(t)||o(t)||a()}},function(t,e){t.exports=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e'};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";n.r(e);var r=n(49),o=n(15);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/input-password.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(50),o=n(17);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/input-select.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(51),o=n(19);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/input-text.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(52),o=n(21);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/language-selector.vue",e.default=s.exports},function(t,e,n){ +/** + * vue-gettext v2.1.7 + * (c) 2020 Polyconseil + * @license MIT + */ +t.exports=function(){"use strict";"function"!=typeof Object.assign&&(Object.assign=function(t){var e,n,r,o,a=arguments;if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(e=Object(t),n=1;n2&&"pt_BR"!==t&&(t=t.split("_")[0]),t){case"ay":case"bo":case"cgg":case"dz":case"fa":case"id":case"ja":case"jbo":case"ka":case"kk":case"km":case"ko":case"ky":case"lo":case"ms":case"my":case"sah":case"su":case"th":case"tt":case"ug":case"vi":case"wo":case"zh":return 0;case"is":return e%10!=1||e%100==11?1:0;case"jv":return 0!==e?1:0;case"mk":return 1===e||e%10==1?0:1;case"ach":case"ak":case"am":case"arn":case"br":case"fil":case"fr":case"gun":case"ln":case"mfe":case"mg":case"mi":case"oc":case"pt_BR":case"tg":case"ti":case"tr":case"uz":case"wa":case"zh":return e>1?1:0;case"lv":return e%10==1&&e%100!=11?0:0!==e?1:2;case"lt":return e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2;case"be":case"bs":case"hr":case"ru":case"sr":case"uk":return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"mnk":return 0===e?0:1===e?1:2;case"ro":return 1===e?0:0===e||e%100>0&&e%100<20?1:2;case"pl":return 1===e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"cs":case"sk":return 1===e?0:e>=2&&e<=4?1:2;case"csb":return 1===e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2;case"sl":return e%100==1?0:e%100==2?1:e%100==3||e%100==4?2:3;case"mt":return 1===e?0:0===e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3;case"gd":return 1===e||11===e?0:2===e||12===e?1:e>2&&e<20?2:3;case"cy":return 1===e?0:2===e?1:8!==e&&11!==e?2:3;case"kw":return 1===e?0:2===e?1:3===e?2:3;case"ga":return 1===e?0:2===e?1:e>2&&e<7?2:e>6&&e<11?3:4;case"ar":return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5;default:return 1!==e?1:0}},n=/\s{2,}/g,r={getTranslation:function(r,o,a,i,s){if(void 0===o&&(o=1),void 0===a&&(a=null),void 0===i&&(i=null),void 0===s&&(s=t.config.language),!r)return"";var u=t.config.getTextPluginSilent||-1!==t.config.getTextPluginMuteLanguages.indexOf(s),c=i&&e(s,o)>0?i:r,l=t.$translations[s]||t.$translations[s.split("_")[0]];if(!l)return u||console.warn("No translations found for "+s),c;r=r.trim();var f=l[r];if(!f&&n.test(r)&&Object.keys(l).some((function(t){if(t.replace(n," ")===r.replace(n," "))return f=l[t]})),f&&a&&(f=f[a]),!f){if(!u){var d="Untranslated "+s+" key found: "+r;a&&(d+=" (with context: "+a+")"),console.warn(d)}return c}f instanceof Array||!f.hasOwnProperty("")||(f=f[""]),"string"==typeof f&&(f=[f]);var p=e(s,o);return 1===f.length&&1===o&&(p=0),f[p]},gettext:function(t){return this.getTranslation(t)},pgettext:function(t,e){return this.getTranslation(e,1,t)},ngettext:function(t,e,n){return this.getTranslation(t,n,null,e)},npgettext:function(t,e,n,r){return this.getTranslation(e,r,t,n)}};function o(){var t,e,n="";for(t=0;t<32;t++)e=16*Math.random()|0,8!==t&&12!==t&&16!==t&&20!==t||(n+="-"),n+=(12===t?4:16===t?3&e|8:e).toString(16);return n}var a={name:"translate",created:function(){if(this.msgid="",this.$options._renderChildren&&(this.$options._renderChildren[0].hasOwnProperty("text")?this.msgid=this.$options._renderChildren[0].text:this.msgid=this.$options._renderChildren[0]),this.isPlural=void 0!==this.translateN&&void 0!==this.translatePlural,!this.isPlural&&(this.translateN||this.translatePlural))throw new Error("`translate-n` and `translate-plural` attributes must be used together: "+this.msgid+".")},props:{tag:{type:String,default:"span"},translateN:{type:Number,required:!1},translatePlural:{type:String,required:!1},translateContext:{type:String,required:!1},translateParams:{type:Object,required:!1},translateComment:{type:String,required:!1}},computed:{translation:function(){var t=r.getTranslation(this.msgid,this.translateN,this.translateContext,this.isPlural?this.translatePlural:null,this.$language.current),e=this.$parent;return this.translateParams&&(e=Object.assign({},this.$parent,this.translateParams)),this.$gettextInterpolate(t,e)}},render:function(e){return t.config.autoAddKeyAttributes&&!this.$vnode.key&&(this.$vnode.key=o()),e(this.tag,[this.translation])}},i=/[[\].]{1,2}/g,s=/%\{((?:.|\n)+?)\}/g,u=/\{\{((?:.|\n)+?)\}\}/g,c=function(e,n,r){return void 0===n&&(n={}),void 0===r&&(r=!1),!t.config.getTextPluginSilent&&u.test(e)&&console.warn('Mustache syntax cannot be used with vue-gettext. Please use "%{}" instead of "{{}}" in: '+e),e.replace(s,(function(t,e){var o,a=e.trim(),s={"&":"&","<":"<",">":">",'"':""","'":"'"};return function t(e){try{o=function(t,e){for(var n=e.split(i).filter((function(t){return t}));n.length;)t=t[n.shift()];return t}(this,e)}catch(t){}if(void 0===o){if(this.$parent)return t.call(this.$parent,e);console.warn("Cannot evaluate expression: "+e),o=e}var n=o.toString();return r?n:n.replace(/[&<>"']/g,(function(t){return s[t]}))}.call(n,a)}))};c.INTERPOLATION_RE=s,c.INTERPOLATION_PREFIX="%{";var l,f=function(e,n,o){var a=o.data.attrs||{},i=e.dataset.msgid,s=a["translate-context"],u=a["translate-n"],l=a["translate-plural"],f=void 0!==u&&void 0!==l,d=o.context,p="true"===a["render-html"];if(!f&&(u||l))throw new Error("`translate-n` and `translate-plural` attributes must be used together:"+i+".");!t.config.getTextPluginSilent&&a["translate-params"]&&console.warn("`translate-params` is required as an expression for v-translate directive. Please change to `v-translate='params'`: "+i),n.value&&"object"==typeof n.value&&(d=Object.assign({},o.context,n.value));var h=r.getTranslation(i,u,s,f?l:null,e.dataset.currentLanguage),v=c(h,d,p);e.innerHTML=v},d={bind:function(e,n,r){t.config.autoAddKeyAttributes&&!r.key&&(r.key=o());var a=e.innerHTML;e.dataset.msgid=a,e.dataset.currentLanguage=t.config.language,t.config.getTextPluginSilent||-1!==a.indexOf(c.INTERPOLATION_PREFIX)&&!n.expression&&console.info("No expression is provided for change detection. The translation for this key will be static:\n"+a),f(e,n,r)},update:function(e,n,r){var o=!1;e.dataset.currentLanguage!==t.config.language&&(e.dataset.currentLanguage=t.config.language,o=!0),o||!n.expression||function t(e,n){if(e===n)return!0;var r=null!==e&&"object"==typeof e,o=null!==n&&"object"==typeof n;if(!r||!o)return!r&&!o&&String(e)===String(n);try{var a=Array.isArray(e),i=Array.isArray(n);if(a&&i)return e.length===n.length&&e.every((function(e,r){return t(e,n[r])}));if(e instanceof Date&&n instanceof Date)return e.getTime()===n.getTime();if(a||i)return!1;var s=Object.keys(e),u=Object.keys(n);return s.length===u.length&&s.every((function(r){return t(e[r],n[r])}))}catch(t){return!1}}(n.value,n.oldValue)||(o=!0),o&&f(e,n,r)}};return function(e,n){void 0===n&&(n={});var o={autoAddKeyAttributes:!1,availableLanguages:{en_US:"English"},defaultLanguage:"en_US",languageVmMixin:{},muteLanguages:[],silent:e.config.silent,translations:null};if(Object.keys(n).forEach((function(t){if(-1===Object.keys(o).indexOf(t))throw new Error(t+" is an invalid option for the translate plugin.")})),!n.translations)throw new Error("No translations available.");n=Object.assign(o,n),l=new e({created:function(){this.available=n.availableLanguages},data:{current:n.defaultLanguage},mixins:[n.languageVmMixin]}),function(e){t=e}(e),function(t,e){var n=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={});var r=t._parent||t.parent||this;this.$language=r.$language||e,n.call(this,t)};var r=t.prototype._destroy;t.prototype._destroy=function(){this.$language=null,r.apply(this,arguments)}}(e,l),function(t,e,n,r,o){Object.defineProperty(t.config,"language",{enumerable:!0,configurable:!0,get:function(){return e.current},set:function(t){e.current=t}}),Object.defineProperty(t.config,"getTextPluginSilent",{enumerable:!0,writable:!0,value:n}),Object.defineProperty(t.config,"autoAddKeyAttributes",{enumerable:!0,writable:!0,value:r}),Object.defineProperty(t.config,"getTextPluginMuteLanguages",{enumerable:!0,writable:!0,value:o})}(e,l,n.silent,n.autoAddKeyAttributes,n.muteLanguages),e.component("translate",a),e.directive("translate",d),e.$translations=n.translations,e.prototype.$gettext=r.gettext.bind(r),e.prototype.$pgettext=r.pgettext.bind(r),e.prototype.$ngettext=r.ngettext.bind(r),e.prototype.$npgettext=r.npgettext.bind(r),e.prototype.$gettextInterpolate=c.bind(c)}}()},function(t,e,n){t.exports=n(104)},function(t,e,n){"use strict";var r=n(2),o=n(68),a=n(106),i=n(45);function s(t){var e=new a(t),n=o(a.prototype.request,e);return r.extend(n,a.prototype,e),r.extend(n,e),n}var u=s(i);u.Axios=a,u.create=function(t){return s(r.merge(i,t))},u.Cancel=n(72),u.CancelToken=n(119),u.isCancel=n(71),u.all=function(t){return Promise.all(t)},u.spread=n(120),t.exports=u,t.exports.default=u},function(t,e){ +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +t.exports=function(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}},function(t,e,n){"use strict";var r=n(45),o=n(2),a=n(114),i=n(115);function s(t){this.defaults=t,this.interceptors={request:new a,response:new a}}s.prototype.request=function(t){"string"==typeof t&&(t=o.merge({url:arguments[0]},arguments[1])),(t=o.merge(r,{method:"get"},this.defaults,t)).method=t.method.toLowerCase();var e=[i,void 0],n=Promise.resolve(t);for(this.interceptors.request.forEach((function(t){e.unshift(t.fulfilled,t.rejected)})),this.interceptors.response.forEach((function(t){e.push(t.fulfilled,t.rejected)}));e.length;)n=n.then(e.shift(),e.shift());return n},o.forEach(["delete","get","head","options"],(function(t){s.prototype[t]=function(e,n){return this.request(o.merge(n||{},{method:t,url:e}))}})),o.forEach(["post","put","patch"],(function(t){s.prototype[t]=function(e,n,r){return this.request(o.merge(r||{},{method:t,url:e,data:n}))}})),t.exports=s},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e){r.forEach(t,(function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])}))}},function(t,e,n){"use strict";var r=n(70);t.exports=function(t,e,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?e(r("Request failed with status code "+n.status,n.config,null,n.request,n)):t(n)}},function(t,e,n){"use strict";t.exports=function(t,e,n,r,o){return t.config=e,n&&(t.code=n),t.request=r,t.response=o,t}},function(t,e,n){"use strict";var r=n(2);function o(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var a;if(n)a=n(e);else if(r.isURLSearchParams(e))a=e.toString();else{var i=[];r.forEach(e,(function(t,e){null!=t&&(r.isArray(t)?e+="[]":t=[t],r.forEach(t,(function(t){r.isDate(t)?t=t.toISOString():r.isObject(t)&&(t=JSON.stringify(t)),i.push(o(e)+"="+o(t))})))})),a=i.join("&")}return a&&(t+=(-1===t.indexOf("?")?"?":"&")+a),t}},function(t,e,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,a,i={};return t?(r.forEach(t.split("\n"),(function(t){if(a=t.indexOf(":"),e=r.trim(t.substr(0,a)).toLowerCase(),n=r.trim(t.substr(a+1)),e){if(i[e]&&o.indexOf(e)>=0)return;i[e]="set-cookie"===e?(i[e]?i[e]:[]).concat([n]):i[e]?i[e]+", "+n:n}})),i):i}},function(t,e,n){"use strict";var r=n(2);t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=o(window.location.href),function(e){var n=r.isString(e)?o(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0}},function(t,e,n){"use strict";var r=n(2);t.exports=r.isStandardBrowserEnv()?{write:function(t,e,n,o,a,i){var s=[];s.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(a)&&s.push("domain="+a),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(t,e,n){"use strict";var r=n(2);function o(){this.handlers=[]}o.prototype.use=function(t,e){return this.handlers.push({fulfilled:t,rejected:e}),this.handlers.length-1},o.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},o.prototype.forEach=function(t){r.forEach(this.handlers,(function(e){null!==e&&t(e)}))},t.exports=o},function(t,e,n){"use strict";var r=n(2),o=n(116),a=n(71),i=n(45),s=n(117),u=n(118);function c(t){t.cancelToken&&t.cancelToken.throwIfRequested()}t.exports=function(t){return c(t),t.baseURL&&!s(t.url)&&(t.url=u(t.baseURL,t.url)),t.headers=t.headers||{},t.data=o(t.data,t.headers,t.transformRequest),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]})),(t.adapter||i.adapter)(t).then((function(e){return c(t),e.data=o(e.data,e.headers,t.transformResponse),e}),(function(e){return a(e)||(c(t),e&&e.response&&(e.response.data=o(e.response.data,e.response.headers,t.transformResponse))),Promise.reject(e)}))}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e,n){return r.forEach(n,(function(n){t=n(t,e)})),t}},function(t,e,n){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},function(t,e,n){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},function(t,e,n){"use strict";var r=n(72);function o(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var n=this;t((function(t){n.reason||(n.reason=new r(t),e(n.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var t;return{token:new o((function(e){t=e})),cancel:t}},t.exports=o},function(t,e,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},function(t,e,n){(function(t,n){var r="[object Arguments]",o="[object Map]",a="[object Object]",i="[object Set]",s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/,c=/^\./,l=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,f=/\\(\\)?/g,d=/^\[object .+?Constructor\]$/,p=/^(?:0|[1-9]\d*)$/,h={};h["[object Float32Array]"]=h["[object Float64Array]"]=h["[object Int8Array]"]=h["[object Int16Array]"]=h["[object Int32Array]"]=h["[object Uint8Array]"]=h["[object Uint8ClampedArray]"]=h["[object Uint16Array]"]=h["[object Uint32Array]"]=!0,h[r]=h["[object Array]"]=h["[object ArrayBuffer]"]=h["[object Boolean]"]=h["[object DataView]"]=h["[object Date]"]=h["[object Error]"]=h["[object Function]"]=h[o]=h["[object Number]"]=h[a]=h["[object RegExp]"]=h[i]=h["[object String]"]=h["[object WeakMap]"]=!1;var v="object"==typeof t&&t&&t.Object===Object&&t,m="object"==typeof self&&self&&self.Object===Object&&self,g=v||m||Function("return this")(),y=e&&!e.nodeType&&e,_=y&&"object"==typeof n&&n&&!n.nodeType&&n,b=_&&_.exports===y&&v.process,w=function(){try{return b&&b.binding("util")}catch(t){}}(),x=w&&w.isTypedArray;function O(t,e){for(var n=-1,r=t?t.length:0;++n-1},at.prototype.set=function(t,e){var n=this.__data__,r=lt(n,t);return r<0?n.push([t,e]):n[r][1]=e,this},it.prototype.clear=function(){this.__data__={hash:new ot,map:new(V||at),string:new ot}},it.prototype.delete=function(t){return wt(this,t).delete(t)},it.prototype.get=function(t){return wt(this,t).get(t)},it.prototype.has=function(t){return wt(this,t).has(t)},it.prototype.set=function(t,e){return wt(this,t).set(t,e),this},st.prototype.add=st.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},st.prototype.has=function(t){return this.__data__.has(t)},ut.prototype.clear=function(){this.__data__=new at},ut.prototype.delete=function(t){return this.__data__.delete(t)},ut.prototype.get=function(t){return this.__data__.get(t)},ut.prototype.has=function(t){return this.__data__.has(t)},ut.prototype.set=function(t,e){var n=this.__data__;if(n instanceof at){var r=n.__data__;if(!V||r.length<199)return r.push([t,e]),this;n=this.__data__=new it(r)}return n.set(t,e),this};var ft,dt=function(t,e,n){for(var r=-1,o=Object(t),a=n(t),i=a.length;i--;){var s=a[ft?i:++r];if(!1===e(o[s],s,o))break}return t};function pt(t,e){for(var n=0,r=(e=Ct(e,t)?[e]:_t(e)).length;null!=t&&ns))return!1;var c=a.get(t);if(c&&a.get(e))return c==e;var l=-1,f=!0,d=1&o?new st:void 0;for(a.set(t,e),a.set(e,t);++l-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991}function Ft(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Rt(t){return!!t&&"object"==typeof t}function qt(t){return"symbol"==typeof t||Rt(t)&&"[object Symbol]"==N.call(t)}var Bt=x?function(t){return function(e){return t(e)}}(x):function(t){return Rt(t)&&Nt(t.length)&&!!h[N.call(t)]};function Ut(t){return Dt(t)?ct(t):yt(t)}function zt(t){return t}n.exports=function(t,e){var n={};return e=gt(e),function(t,e){t&&dt(t,e,Ut)}(t,(function(t,r,o){n[r]=e(t,r,o)})),n}}).call(this,n(8),n(122)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o,a=r(n(3)),i=r(n(4)),s=function(t,e){return-1!==t.indexOf(e)},u=(o=(0,i.default)(a.default.mark((function t(e,n){var r,o,i;return a.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("1"!==window.tokens.GEO_IP_LANG||"en"!==e){t.next=8;break}return t.next=3,new Promise((function(t,e){var n=new XMLHttpRequest;n.open("GET","https://get.geojs.io/v1/ip/country.json",!0),n.onreadystatechange=function(){if(4===n.readyState)if(200!==n.status)e(n);else try{var r=JSON.parse(n.responseText);t(r)}catch(t){e(n)}},n.send()}));case 3:if(r=t.sent,o=r.country.toLowerCase(),!s(n,o)){t.next=7;break}return t.abrupt("return",o);case 7:return t.abrupt("return",e);case 8:if(i=window.navigator.language||window.navigator.userLanguage,!s(n,i)){t.next=11;break}return t.abrupt("return",i);case 11:return t.abrupt("return",e);case 12:case"end":return t.stop()}}),t)}))),function(t,e){return o.apply(this,arguments)});e.default=u},function(t,e,n){"use strict";n.r(e);var r=n(53),o=n(23);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/loader.vue",e.default=s.exports},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"loader",width:110,height:110,viewBox:"0 0 100 100",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"notifications-check",width:16,height:16,viewBox:"0 0 512 512",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";n.r(e);var r=n(54),o=n(25);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/login-box.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(55),o=n(27);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/login-datetime.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(56),o=n(29);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/remind-password-auth.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(60),o=n(37);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/security-question-auth.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(61),o=n(39);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/standard-auth.vue",e.default=s.exports},function(t,e,n){"use strict";n.r(e);var r=n(62),o=n(41);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/theme-selector.vue",e.default=s.exports},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"day-mode",width:16,height:16,viewBox:"0 0 219.786 219.786",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=r(n(6)),a={name:"dark-mode",width:512,height:512,viewBox:"0 0 64 64",data:''};r(n(5)).default.register((0,o.default)({},a.name,a));var i=a;e.default=i},function(t,e,n){"use strict";n.r(e);var r=n(63),o=n(43);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var i=n(0),s=Object(i.a)(o.default,r.a,r.b,!1,null,null,null);s.options.__file="components/two-step-auth.vue",e.default=s.exports},function(t,e,n){},function(t,e,n){"use strict";function r(t,e){if(e.length1?"s":" required, but only "+e.length+" present")}function o(t){r(1,arguments);var e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new Date(t.getTime()):"number"==typeof t||"[object Number]"===e?new Date(t):("string"!=typeof t&&"[object String]"!==e||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function a(t,e){for(var n=t<0?"-":"",r=Math.abs(t).toString();r.length0?n:1-n;return a("yy"===e?r%100:r,e.length)},M:function(t,e){var n=t.getUTCMonth();return"M"===e?String(n+1):a(n+1,2)},d:function(t,e){return a(t.getUTCDate(),e.length)},a:function(t,e){var n=t.getUTCHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":case"aaa":return n.toUpperCase();case"aaaaa":return n[0];case"aaaa":default:return"am"===n?"a.m.":"p.m."}},h:function(t,e){return a(t.getUTCHours()%12||12,e.length)},H:function(t,e){return a(t.getUTCHours(),e.length)},m:function(t,e){return a(t.getUTCMinutes(),e.length)},s:function(t,e){return a(t.getUTCSeconds(),e.length)},S:function(t,e){var n=e.length,r=t.getUTCMilliseconds();return a(Math.floor(r*Math.pow(10,n-3)),e.length)}};function s(t){var e=new Date(t.getTime()),n=Math.ceil(e.getTimezoneOffset());return e.setSeconds(0,0),6e4*n+e.getTime()%6e4}function u(t){r(1,arguments);var e=o(t);return!isNaN(e)}function c(t){if(null===t||!0===t||!1===t)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function l(t,e){r(2,arguments);var n=o(t).getTime(),a=c(e);return new Date(n+a)}function f(t,e){r(2,arguments);var n=c(e);return l(t,-n)}n.d(e,"default",(function(){return m}));var d=/(\w)\1*|''|'(''|[^'])+('|$)|./g,p=/^'([^]*?)'?$/,h=/''/g,v=/[a-zA-Z]/;function m(t,e){r(2,arguments);var n=String(e),a=o(t);if(!u(a))throw new RangeError("Invalid time value");var c=s(a),l=f(a,c),p=n.match(d).map((function(t){if("''"===t)return"'";var e=t[0];if("'"===e)return g(t);var n=i[e];if(n)return n(l,t,null,{});if(e.match(v))throw new RangeError("Format string contains an unescaped latin alphabet character `"+e+"`");return t})).join("");return p}function g(t){return t.match(p)[1].replace(h,"'")}},function(t,e,n){"use strict";n.r(e);var r=function(t,e){var n=e._c;return n("div",{staticClass:"Box__Header"},[n("translate",{staticClass:"Box__Header__Heading",attrs:{tag:"h1"}},[e._v("\n Start DirectAdmin\n ")]),e._v(" "),n("translate",{staticClass:"Box__Header__Subheading",attrs:{tag:"span"}},[e._v("\n Manage your domains, databases & other server info.\n ")])],1)};r._withStripped=!0;var o=n(0),a=Object(o.a)({},r,[],!0,null,null,null);a.options.__file="components/login-header.vue";e.default=a.exports}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/0.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/0.js new file mode 100644 index 0000000..f9961fb --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/0.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{1465:function(e,t,r){"use strict";r.r(t);var n=r(3124),i=r(1613);for(var o in i)"default"!==o&&function(e){r.d(t,e,(function(){return i[e]}))}(o);r(2489);var a=r(0),s=Object(a.a)(i.default,n.a,n.b,!1,null,null,null);t.default=s.exports},1613:function(e,t,r){"use strict";r.r(t);var n=r(1614),i=r.n(n);for(var o in n)"default"!==o&&function(e){r.d(t,e,(function(){return n[e]}))}(o);t.default=i.a},1614:function(e,t,r){"use strict";var n=r(10);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(r(2468)),o=r(14),a=r(33),s=r(7),l=["text","html","javascript","css","php","perl","ini","xml","sql","mysql","snippets","json"];r(2469),r(2470),r(2471),r(2472),r(2473),r(2474),r(2475),r(2476),r(2478),r(2479),r(2480),r(2481),r(2483),r(2484),r(2485),r(2486),r(2487),r(2488);var c,u={mixins:[a.$inputValidation],validate:"value",props:{value:{type:String,required:!0,default:""},readOnly:{type:Boolean,required:!1,default:!1},mode:{type:String,required:!1,default:"text",validator:(c=l,function(e){return c.includes(e)})},disableModes:{type:Boolean,required:!1,default:!1},disableThemes:{type:Boolean,required:!1,default:!1}},data:function(){return{editorMode:this.mode}},staticData:{modes:l,themes:["gob","gruvbox","chrome","monokai","solarized_light"]},computed:{editorOptions:function(){return{showPrintMargin:!1,fontSize:"12px",readOnly:this.readOnly}},theme:(0,s.options)("code-editor/theme")},mounted:function(){this.editor=this.initEditor(),this.$watch("value",this.setValue,{immediate:!0}),this.$watch("mode",this.setMode,{immediate:!0}),this.$watch("theme",this.setTheme,{immediate:!0}),this.readOnly&&(this.editor.renderer.$cursorLayer.element.style.display="none",this.setEditorOption("highlightActiveLine",!1),this.setEditorOption("highlightGutterLine",!1))},methods:{setValue:function(e){e!==this.editor.getValue()&&(this.editor.setValue(e),this.editor.clearSelection())},emitValue:function(){this.$emit("input",this.editor.getValue())},setEditorOption:function(e,t){this.editor.setOption(e,t)},initEditor:function(){var e=i.edit(this.$refs.editor.id);return e.$blockScrolling=1/0,e.setOptions(this.editorOptions),e.session.on("change",this.emitValue),e},setTheme:function(e){this.editor.setTheme("ace/theme/".concat(e))},setMode:function(e){this.editorMode=e,this.$emit("update:mode",e),this.editor.getSession().setMode("ace/mode/".concat(e))},hideGhost:function(e){var t=e.target.cloneNode(!0);t.style.display="none",document.body.appendChild(t),e.dataTransfer.setDragImage(t,0,0)},resize:o._.debounce((function(e){var t=this.$refs.editor.getBoundingClientRect(),r=e.clientY-t.top;r>500&&(this.$refs.editor.style.height="".concat(r,"px"),this.editor.resize())}))}};t.default=u},1615:function(e,t){e.exports.id="ace/mode/javascript_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/range",["require","exports","module"],function(acequire,exports){"use strict";var comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},Range=function(startRow,startColumn,endRow,endColumn){this.start={row:startRow,column:startColumn},this.end={row:endRow,column:endColumn}};(function(){this.isEqual=function(range){return this.start.row===range.start.row&&this.end.row===range.end.row&&this.start.column===range.start.column&&this.end.column===range.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/javascript/jshint",["require","exports","module"],function(acequire,exports,module){module.exports=function outer(modules,cache,entry){function newRequire(name,jumped){if(!cache[name]){if(!modules[name]){var currentRequire="function"==typeof acequire&&acequire;if(!jumped&¤tRequire)return currentRequire(name,!0);if(previousRequire)return previousRequire(name,!0);var err=Error("Cannot find module \'"+name+"\'");throw err.code="MODULE_NOT_FOUND",err}var m=cache[name]={exports:{}};modules[name][0].call(m.exports,function(x){var id=modules[name][1][x];return newRequire(id?id:x)},m,m.exports,outer,modules,cache,entry)}return cache[name].exports}for(var previousRequire="function"==typeof acequire&&acequire,i=0;entry.length>i;i++)newRequire(entry[i]);return newRequire(entry[0])}({"/node_modules/browserify/node_modules/events/events.js":[function(_dereq_,module){function EventEmitter(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function isFunction(arg){return"function"==typeof arg}function isNumber(arg){return"number"==typeof arg}function isObject(arg){return"object"==typeof arg&&null!==arg}function isUndefined(arg){return void 0===arg}module.exports=EventEmitter,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(this._events||(this._events={}),"error"===type&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(er=arguments[1],er instanceof Error)throw er;throw TypeError(\'Uncaught, unspecified "error" event.\')}if(handler=this._events[type],isUndefined(handler))return!1;if(isFunction(handler))switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];handler.apply(this,args)}else if(isObject(handler)){for(len=arguments.length,args=Array(len-1),i=1;len>i;i++)args[i-1]=arguments[i];for(listeners=handler.slice(),len=listeners.length,i=0;len>i;i++)listeners[i].apply(this,args)}return!0},EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener),this._events[type]?isObject(this._events[type])?this._events[type].push(listener):this._events[type]=[this._events[type],listener]:this._events[type]=listener,isObject(this._events[type])&&!this._events[type].warned){var m;m=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,m&&m>0&&this._events[type].length>m&&(this._events[type].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[type].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(type,listener){function g(){this.removeListener(type,g),fired||(fired=!0,listener.apply(this,arguments))}if(!isFunction(listener))throw TypeError("listener must be a function");var fired=!1;return g.listener=listener,this.on(type,g),this},EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;if(list=this._events[type],length=list.length,position=-1,list===listener||isFunction(list.listener)&&list.listener===listener)delete this._events[type],this._events.removeListener&&this.emit("removeListener",type,listener);else if(isObject(list)){for(i=length;i--\x3e0;)if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}if(0>position)return this;1===list.length?(list.length=0,delete this._events[type]):list.splice(position,1),this._events.removeListener&&this.emit("removeListener",type,listener)}return this},EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[type]&&delete this._events[type],this;if(0===arguments.length){for(key in this._events)"removeListener"!==key&&this.removeAllListeners(key);return this.removeAllListeners("removeListener"),this._events={},this\n}if(listeners=this._events[type],isFunction(listeners))this.removeListener(type,listeners);else for(;listeners.length;)this.removeListener(type,listeners[listeners.length-1]);return delete this._events[type],this},EventEmitter.prototype.listeners=function(type){var ret;return ret=this._events&&this._events[type]?isFunction(this._events[type])?[this._events[type]]:this._events[type].slice():[]},EventEmitter.listenerCount=function(emitter,type){var ret;return ret=emitter._events&&emitter._events[type]?isFunction(emitter._events[type])?1:emitter._events[type].length:0}},{}],"/node_modules/jshint/data/ascii-identifier-data.js":[function(_dereq_,module){for(var identifierStartTable=[],i=0;128>i;i++)identifierStartTable[i]=36===i||i>=65&&90>=i||95===i||i>=97&&122>=i;for(var identifierPartTable=[],i=0;128>i;i++)identifierPartTable[i]=identifierStartTable[i]||i>=48&&57>=i;module.exports={asciiIdentifierStartTable:identifierStartTable,asciiIdentifierPartTable:identifierPartTable}},{}],"/node_modules/jshint/lodash.js":[function(_dereq_,module,exports){(function(global){(function(){function baseFindIndex(array,predicate,fromRight){for(var length=array.length,index=fromRight?length:-1;fromRight?index--:length>++index;)if(predicate(array[index],index,array))return index;return-1}function baseIndexOf(array,value,fromIndex){if(value!==value)return indexOfNaN(array,fromIndex);for(var index=fromIndex-1,length=array.length;length>++index;)if(array[index]===value)return index;return-1}function baseIsFunction(value){return"function"==typeof value||!1}function baseToString(value){return"string"==typeof value?value:null==value?"":value+""}function indexOfNaN(array,fromIndex,fromRight){for(var length=array.length,index=fromIndex+(fromRight?0:-1);fromRight?index--:length>++index;){var other=array[index];if(other!==other)return index}return-1}function isObjectLike(value){return!!value&&"object"==typeof value}function lodash(){}function arrayCopy(source,array){var index=-1,length=source.length;for(array||(array=Array(length));length>++index;)array[index]=source[index];return array}function arrayEach(array,iteratee){for(var index=-1,length=array.length;length>++index&&iteratee(array[index],index,array)!==!1;);return array}function arrayFilter(array,predicate){for(var index=-1,length=array.length,resIndex=-1,result=[];length>++index;){var value=array[index];predicate(value,index,array)&&(result[++resIndex]=value)}return result}function arrayMap(array,iteratee){for(var index=-1,length=array.length,result=Array(length);length>++index;)result[index]=iteratee(array[index],index,array);return result}function arrayMax(array){for(var index=-1,length=array.length,result=NEGATIVE_INFINITY;length>++index;){var value=array[index];value>result&&(result=value)}return result}function arraySome(array,predicate){for(var index=-1,length=array.length;length>++index;)if(predicate(array[index],index,array))return!0;return!1}function assignWith(object,source,customizer){var props=keys(source);push.apply(props,getSymbols(source));for(var index=-1,length=props.length;length>++index;){var key=props[index],value=object[key],result=customizer(value,source[key],key,object,source);(result===result?result===value:value!==value)&&(value!==undefined||key in object)||(object[key]=result)}return object}function baseCopy(source,props,object){object||(object={});for(var index=-1,length=props.length;length>++index;){var key=props[index];object[key]=source[key]}return object}function baseCallback(func,thisArg,argCount){var type=typeof func;return"function"==type?thisArg===undefined?func:bindCallback(func,thisArg,argCount):null==func?identity:"object"==type?baseMatches(func):thisArg===undefined?property(func):baseMatchesProperty(func,thisArg)}function baseClone(value,isDeep,customizer,key,object,stackA,stackB){var result;if(customizer&&(result=object?customizer(value,key,object):customizer(value)),result!==undefined)return result;if(!isObject(value))return value;var isArr=isArray(value);if(isArr){if(result=initCloneArray(value),!isDeep)return arrayCopy(value,result)}else{var tag=objToString.call(value),isFunc=tag==funcTag;if(tag!=objectTag&&tag!=argsTag&&(!isFunc||object))return cloneableTags[tag]?initCloneByTag(value,tag,isDeep):object?value:{};if(result=initCloneObject(isFunc?{}:value),!isDeep)return baseAssign(result,value)}stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==value)return stackB[length];return stackA.push(value),stackB.push(result),(isArr?arrayEach:baseForOwn)(value,function(subValue,key){result[key]=baseClone(subValue,isDeep,customizer,key,value,stackA,stackB)}),result}function baseFilter(collection,predicate){var result=[];return baseEach(collection,function(value,index,collection){predicate(value,index,collection)&&result.push(value)}),result}function baseForIn(object,iteratee){return baseFor(object,iteratee,keysIn)}function baseForOwn(object,iteratee){return baseFor(object,iteratee,keys)}function baseGet(object,path,pathKey){if(null!=object){pathKey!==undefined&&pathKey in toObject(object)&&(path=[pathKey]);for(var index=-1,length=path.length;null!=object&&length>++index;)var result=object=object[path[index]];return result}}function baseIsEqual(value,other,customizer,isLoose,stackA,stackB){if(value===other)return 0!==value||1/value==1/other;var valType=typeof value,othType=typeof other;return"function"!=valType&&"object"!=valType&&"function"!=othType&&"object"!=othType||null==value||null==other?value!==value&&other!==other:baseIsEqualDeep(value,other,baseIsEqual,customizer,isLoose,stackA,stackB)}function baseIsEqualDeep(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objIsArr=isArray(object),othIsArr=isArray(other),objTag=arrayTag,othTag=arrayTag;objIsArr||(objTag=objToString.call(object),objTag==argsTag?objTag=objectTag:objTag!=objectTag&&(objIsArr=isTypedArray(object))),othIsArr||(othTag=objToString.call(other),othTag==argsTag?othTag=objectTag:othTag!=objectTag&&(othIsArr=isTypedArray(other)));var objIsObj=objTag==objectTag,othIsObj=othTag==objectTag,isSameTag=objTag==othTag;if(isSameTag&&!objIsArr&&!objIsObj)return equalByTag(object,other,objTag);if(!isLoose){var valWrapped=objIsObj&&hasOwnProperty.call(object,"__wrapped__"),othWrapped=othIsObj&&hasOwnProperty.call(other,"__wrapped__");if(valWrapped||othWrapped)return equalFunc(valWrapped?object.value():object,othWrapped?other.value():other,customizer,isLoose,stackA,stackB)}if(!isSameTag)return!1;stackA||(stackA=[]),stackB||(stackB=[]);for(var length=stackA.length;length--;)if(stackA[length]==object)return stackB[length]==other;stackA.push(object),stackB.push(other);var result=(objIsArr?equalArrays:equalObjects)(object,other,equalFunc,customizer,isLoose,stackA,stackB);return stackA.pop(),stackB.pop(),result}function baseIsMatch(object,props,values,strictCompareFlags,customizer){for(var index=-1,length=props.length,noCustomizer=!customizer;length>++index;)if(noCustomizer&&strictCompareFlags[index]?values[index]!==object[props[index]]:!(props[index]in object))return!1;for(index=-1;length>++index;){var key=props[index],objValue=object[key],srcValue=values[index];if(noCustomizer&&strictCompareFlags[index])var result=objValue!==undefined||key in object;else result=customizer?customizer(objValue,srcValue,key):undefined,result===undefined&&(result=baseIsEqual(srcValue,objValue,customizer,!0));if(!result)return!1}return!0}function baseMatches(source){var props=keys(source),length=props.length;if(!length)return constant(!0);if(1==length){var key=props[0],value=source[key];if(isStrictComparable(value))return function(object){return null==object?!1:object[key]===value&&(value!==undefined||key in toObject(object))}}for(var values=Array(length),strictCompareFlags=Array(length);length--;)value=source[props[length]],values[length]=value,strictCompareFlags[length]=isStrictComparable(value);return function(object){return null!=object&&baseIsMatch(toObject(object),props,values,strictCompareFlags)}}function baseMatchesProperty(path,value){var isArr=isArray(path),isCommon=isKey(path)&&isStrictComparable(value),pathKey=path+"";return path=toPath(path),function(object){if(null==object)return!1;var key=pathKey;if(object=toObject(object),!(!isArr&&isCommon||key in object)){if(object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),null==object)return!1;key=last(path),object=toObject(object)}return object[key]===value?value!==undefined||key in object:baseIsEqual(value,object[key],null,!0)}}function baseMerge(object,source,customizer,stackA,stackB){if(!isObject(object))return object;var isSrcArr=isLength(source.length)&&(isArray(source)||isTypedArray(source));if(!isSrcArr){var props=keys(source);push.apply(props,getSymbols(source))}return arrayEach(props||source,function(srcValue,key){if(props&&(key=srcValue,srcValue=source[key]),isObjectLike(srcValue))stackA||(stackA=[]),stackB||(stackB=[]),baseMergeDeep(object,source,key,baseMerge,customizer,stackA,stackB);else{var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue),!isSrcArr&&result===undefined||!isCommon&&(result===result?result===value:value!==value)||(object[key]=result)}}),object}function baseMergeDeep(object,source,key,mergeFunc,customizer,stackA,stackB){for(var length=stackA.length,srcValue=source[key];length--;)if(stackA[length]==srcValue)return object[key]=stackB[length],undefined;var value=object[key],result=customizer?customizer(value,srcValue,key,object,source):undefined,isCommon=result===undefined;isCommon&&(result=srcValue,isLength(srcValue.length)&&(isArray(srcValue)||isTypedArray(srcValue))?result=isArray(value)?value:getLength(value)?arrayCopy(value):[]:isPlainObject(srcValue)||isArguments(srcValue)?result=isArguments(value)?toPlainObject(value):isPlainObject(value)?value:{}:isCommon=!1),stackA.push(srcValue),stackB.push(result),isCommon?object[key]=mergeFunc(result,srcValue,customizer,stackA,stackB):(result===result?result!==value:value===value)&&(object[key]=result)}function baseProperty(key){return function(object){return null==object?undefined:object[key]}}function basePropertyDeep(path){var pathKey=path+"";return path=toPath(path),function(object){return baseGet(object,path,pathKey)}}function baseSlice(array,start,end){var index=-1,length=array.length;start=null==start?0:+start||0,0>start&&(start=-start>length?0:length+start),end=end===undefined||end>length?length:+end||0,0>end&&(end+=length),length=start>end?0:end-start>>>0,start>>>=0;for(var result=Array(length);length>++index;)result[index]=array[index+start];return result}function baseSome(collection,predicate){var result;return baseEach(collection,function(value,index,collection){return result=predicate(value,index,collection),!result}),!!result}function baseValues(object,props){for(var index=-1,length=props.length,result=Array(length);length>++index;)result[index]=object[props[index]];return result}function binaryIndex(array,value,retHighest){var low=0,high=array?array.length:low;if("number"==typeof value&&value===value&&HALF_MAX_ARRAY_LENGTH>=high){for(;high>low;){var mid=low+high>>>1,computed=array[mid];(retHighest?value>=computed:value>computed)?low=mid+1:high=mid}return high}return binaryIndexBy(array,value,identity,retHighest)}function binaryIndexBy(array,value,iteratee,retHighest){value=iteratee(value);for(var low=0,high=array?array.length:0,valIsNaN=value!==value,valIsUndef=value===undefined;high>low;){var mid=floor((low+high)/2),computed=iteratee(array[mid]),isReflexive=computed===computed;if(valIsNaN)var setLow=isReflexive||retHighest;else setLow=valIsUndef?isReflexive&&(retHighest||computed!==undefined):retHighest?value>=computed:value>computed;setLow?low=mid+1:high=mid}return nativeMin(high,MAX_ARRAY_INDEX)}function bindCallback(func,thisArg,argCount){if("function"!=typeof func)return identity;if(thisArg===undefined)return func;switch(argCount){case 1:return function(value){return func.call(thisArg,value)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(thisArg,accumulator,value,index,collection)};case 5:return function(value,other,key,object,source){return func.call(thisArg,value,other,key,object,source)}}return function(){return func.apply(thisArg,arguments)}}function bufferClone(buffer){return bufferSlice.call(buffer,0)}function createAssigner(assigner){return restParam(function(object,sources){var index=-1,length=null==object?0:sources.length,customizer=length>2&&sources[length-2],guard=length>2&&sources[2],thisArg=length>1&&sources[length-1];for("function"==typeof customizer?(customizer=bindCallback(customizer,thisArg,5),length-=2):(customizer="function"==typeof thisArg?thisArg:null,length-=customizer?1:0),guard&&isIterateeCall(sources[0],sources[1],guard)&&(customizer=3>length?null:customizer,length=1);length>++index;){var source=sources[index];source&&assigner(object,source,customizer)}return object})}function createBaseEach(eachFunc,fromRight){return function(collection,iteratee){var length=collection?getLength(collection):0;if(!isLength(length))return eachFunc(collection,iteratee);for(var index=fromRight?length:-1,iterable=toObject(collection);(fromRight?index--:length>++index)&&iteratee(iterable[index],index,iterable)!==!1;);return collection}}function createBaseFor(fromRight){return function(object,iteratee,keysFunc){for(var iterable=toObject(object),props=keysFunc(object),length=props.length,index=fromRight?length:-1;fromRight?index--:length>++index;){var key=props[index];if(iteratee(iterable[key],key,iterable)===!1)break}return object}}function createFindIndex(fromRight){return function(array,predicate,thisArg){return array&&array.length?(predicate=getCallback(predicate,thisArg,3),baseFindIndex(array,predicate,fromRight)):-1}}function createForEach(arrayFunc,eachFunc){return function(collection,iteratee,thisArg){return"function"==typeof iteratee&&thisArg===undefined&&isArray(collection)?arrayFunc(collection,iteratee):eachFunc(collection,bindCallback(iteratee,thisArg,3))}}function equalArrays(array,other,equalFunc,customizer,isLoose,stackA,stackB){var index=-1,arrLength=array.length,othLength=other.length,result=!0;if(arrLength!=othLength&&!(isLoose&&othLength>arrLength))return!1;for(;result&&arrLength>++index;){var arrValue=array[index],othValue=other[index];if(result=undefined,customizer&&(result=isLoose?customizer(othValue,arrValue,index):customizer(arrValue,othValue,index)),result===undefined)if(isLoose)for(var othIndex=othLength;othIndex--&&(othValue=other[othIndex],!(result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB))););else result=arrValue&&arrValue===othValue||equalFunc(arrValue,othValue,customizer,isLoose,stackA,stackB)}return!!result}function equalByTag(object,other,tag){switch(tag){case boolTag:case dateTag:return+object==+other;case errorTag:return object.name==other.name&&object.message==other.message;case numberTag:return object!=+object?other!=+other:0==object?1/object==1/other:object==+other;case regexpTag:case stringTag:return object==other+""}return!1}function equalObjects(object,other,equalFunc,customizer,isLoose,stackA,stackB){var objProps=keys(object),objLength=objProps.length,othProps=keys(other),othLength=othProps.length;if(objLength!=othLength&&!isLoose)return!1;for(var skipCtor=isLoose,index=-1;objLength>++index;){var key=objProps[index],result=isLoose?key in other:hasOwnProperty.call(other,key);if(result){var objValue=object[key],othValue=other[key];result=undefined,customizer&&(result=isLoose?customizer(othValue,objValue,key):customizer(objValue,othValue,key)),result===undefined&&(result=objValue&&objValue===othValue||equalFunc(objValue,othValue,customizer,isLoose,stackA,stackB))}if(!result)return!1;skipCtor||(skipCtor="constructor"==key)}if(!skipCtor){var objCtor=object.constructor,othCtor=other.constructor;if(objCtor!=othCtor&&"constructor"in object&&"constructor"in other&&!("function"==typeof objCtor&&objCtor instanceof objCtor&&"function"==typeof othCtor&&othCtor instanceof othCtor))return!1}return!0}function getCallback(func,thisArg,argCount){var result=lodash.callback||callback;return result=result===callback?baseCallback:result,argCount?result(func,thisArg,argCount):result}function getIndexOf(collection,target,fromIndex){var result=lodash.indexOf||indexOf;return result=result===indexOf?baseIndexOf:result,collection?result(collection,target,fromIndex):result}function initCloneArray(array){var length=array.length,result=new array.constructor(length);return length&&"string"==typeof array[0]&&hasOwnProperty.call(array,"index")&&(result.index=array.index,result.input=array.input),result}function initCloneObject(object){var Ctor=object.constructor;return"function"==typeof Ctor&&Ctor instanceof Ctor||(Ctor=Object),new Ctor}function initCloneByTag(object,tag,isDeep){var Ctor=object.constructor;switch(tag){case arrayBufferTag:return bufferClone(object);case boolTag:case dateTag:return new Ctor(+object);case float32Tag:case float64Tag:case int8Tag:case int16Tag:case int32Tag:case uint8Tag:case uint8ClampedTag:case uint16Tag:case uint32Tag:var buffer=object.buffer;return new Ctor(isDeep?bufferClone(buffer):buffer,object.byteOffset,object.length);case numberTag:case stringTag:return new Ctor(object);case regexpTag:var result=new Ctor(object.source,reFlags.exec(object));result.lastIndex=object.lastIndex}return result}function isIndex(value,length){return value=+value,length=null==length?MAX_SAFE_INTEGER:length,value>-1&&0==value%1&&length>value}function isIterateeCall(value,index,object){if(!isObject(object))return!1;var type=typeof index;if("number"==type)var length=getLength(object),prereq=isLength(length)&&isIndex(index,length);else prereq="string"==type&&index in object;if(prereq){var other=object[index];return value===value?value===other:other!==other}return!1}function isKey(value,object){var type=typeof value;if("string"==type&&reIsPlainProp.test(value)||"number"==type)return!0;if(isArray(value))return!1;var result=!reIsDeepProp.test(value);return result||null!=object&&value in toObject(object)}function isLength(value){return"number"==typeof value&&value>-1&&0==value%1&&MAX_SAFE_INTEGER>=value}function isStrictComparable(value){return value===value&&(0===value?1/value>0:!isObject(value))}function shimIsPlainObject(value){var Ctor;if(lodash.support,!isObjectLike(value)||objToString.call(value)!=objectTag||!hasOwnProperty.call(value,"constructor")&&(Ctor=value.constructor,"function"==typeof Ctor&&!(Ctor instanceof Ctor)))return!1;var result;return baseForIn(value,function(subValue,key){result=key}),result===undefined||hasOwnProperty.call(value,result)}function shimKeys(object){for(var props=keysIn(object),propsLength=props.length,length=propsLength&&object.length,support=lodash.support,allowIndexes=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object)),index=-1,result=[];propsLength>++index;){var key=props[index];(allowIndexes&&isIndex(key,length)||hasOwnProperty.call(object,key))&&result.push(key)}return result}function toObject(value){return isObject(value)?value:Object(value)}function toPath(value){if(isArray(value))return value;var result=[];return baseToString(value).replace(rePropName,function(match,number,quote,string){result.push(quote?string.replace(reEscapeChar,"$1"):number||match)}),result}function indexOf(array,value,fromIndex){var length=array?array.length:0;if(!length)return-1;if("number"==typeof fromIndex)fromIndex=0>fromIndex?nativeMax(length+fromIndex,0):fromIndex;else if(fromIndex){var index=binaryIndex(array,value),other=array[index];return(value===value?value===other:other!==other)?index:-1}return baseIndexOf(array,value,fromIndex||0)}function last(array){var length=array?array.length:0;return length?array[length-1]:undefined}function slice(array,start,end){var length=array?array.length:0;return length?(end&&"number"!=typeof end&&isIterateeCall(array,start,end)&&(start=0,end=length),baseSlice(array,start,end)):[]}function unzip(array){for(var index=-1,length=(array&&array.length&&arrayMax(arrayMap(array,getLength)))>>>0,result=Array(length);length>++index;)result[index]=arrayMap(array,baseProperty(index));return result}function includes(collection,target,fromIndex,guard){var length=collection?getLength(collection):0;return isLength(length)||(collection=values(collection),length=collection.length),length?(fromIndex="number"!=typeof fromIndex||guard&&isIterateeCall(target,fromIndex,guard)?0:0>fromIndex?nativeMax(length+fromIndex,0):fromIndex||0,"string"==typeof collection||!isArray(collection)&&isString(collection)?length>fromIndex&&collection.indexOf(target,fromIndex)>-1:getIndexOf(collection,target,fromIndex)>-1):!1}function reject(collection,predicate,thisArg){var func=isArray(collection)?arrayFilter:baseFilter;return predicate=getCallback(predicate,thisArg,3),func(collection,function(value,index,collection){return!predicate(value,index,collection)})}function some(collection,predicate,thisArg){var func=isArray(collection)?arraySome:baseSome;return thisArg&&isIterateeCall(collection,predicate,thisArg)&&(predicate=null),("function"!=typeof predicate||thisArg!==undefined)&&(predicate=getCallback(predicate,thisArg,3)),func(collection,predicate)}function restParam(func,start){if("function"!=typeof func)throw new TypeError(FUNC_ERROR_TEXT);return start=nativeMax(start===undefined?func.length-1:+start||0,0),function(){for(var args=arguments,index=-1,length=nativeMax(args.length-start,0),rest=Array(length);length>++index;)rest[index]=args[start+index];switch(start){case 0:return func.call(this,rest);case 1:return func.call(this,args[0],rest);case 2:return func.call(this,args[0],args[1],rest)}var otherArgs=Array(start+1);for(index=-1;start>++index;)otherArgs[index]=args[index];return otherArgs[start]=rest,func.apply(this,otherArgs)}}function clone(value,isDeep,customizer,thisArg){return isDeep&&"boolean"!=typeof isDeep&&isIterateeCall(value,isDeep,customizer)?isDeep=!1:"function"==typeof isDeep&&(thisArg=customizer,customizer=isDeep,isDeep=!1),customizer="function"==typeof customizer&&bindCallback(customizer,thisArg,1),baseClone(value,isDeep,customizer)}function isArguments(value){var length=isObjectLike(value)?value.length:undefined;return isLength(length)&&objToString.call(value)==argsTag}function isEmpty(value){if(null==value)return!0;var length=getLength(value);return isLength(length)&&(isArray(value)||isString(value)||isArguments(value)||isObjectLike(value)&&isFunction(value.splice))?!length:!keys(value).length}function isObject(value){var type=typeof value;return"function"==type||!!value&&"object"==type}function isNative(value){return null==value?!1:objToString.call(value)==funcTag?reIsNative.test(fnToString.call(value)):isObjectLike(value)&&reIsHostCtor.test(value)}function isNumber(value){return"number"==typeof value||isObjectLike(value)&&objToString.call(value)==numberTag}function isString(value){return"string"==typeof value||isObjectLike(value)&&objToString.call(value)==stringTag}function isTypedArray(value){return isObjectLike(value)&&isLength(value.length)&&!!typedArrayTags[objToString.call(value)]}function toPlainObject(value){return baseCopy(value,keysIn(value))}function has(object,path){if(null==object)return!1;var result=hasOwnProperty.call(object,path);return result||isKey(path)||(path=toPath(path),object=1==path.length?object:baseGet(object,baseSlice(path,0,-1)),path=last(path),result=null!=object&&hasOwnProperty.call(object,path)),result}function keysIn(object){if(null==object)return[];isObject(object)||(object=Object(object));var length=object.length;length=length&&isLength(length)&&(isArray(object)||support.nonEnumArgs&&isArguments(object))&&length||0;for(var Ctor=object.constructor,index=-1,isProto="function"==typeof Ctor&&Ctor.prototype===object,result=Array(length),skipIndexes=length>0;length>++index;)result[index]=index+"";for(var key in object)skipIndexes&&isIndex(key,length)||"constructor"==key&&(isProto||!hasOwnProperty.call(object,key))||result.push(key);return result}function values(object){return baseValues(object,keys(object))}function escapeRegExp(string){return string=baseToString(string),string&&reHasRegExpChars.test(string)?string.replace(reRegExpChars,"\\\\$&"):string}function callback(func,thisArg,guard){return guard&&isIterateeCall(func,thisArg,guard)&&(thisArg=null),baseCallback(func,thisArg)}function constant(value){return function(){return value}}function identity(value){return value}function property(path){return isKey(path)?baseProperty(path):basePropertyDeep(path)}var undefined,VERSION="3.7.0",FUNC_ERROR_TEXT="Expected a function",argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",reIsDeepProp=/\\.|\\[(?:[^[\\]]+|(["\'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?)\\1\\]/,reIsPlainProp=/^\\w*$/,rePropName=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|(["\'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,reRegExpChars=/[.*+?^${}()|[\\]\\/\\\\]/g,reHasRegExpChars=RegExp(reRegExpChars.source),reEscapeChar=/\\\\(\\\\)?/g,reFlags=/\\w*$/,reIsHostCtor=/^\\[object .+?Constructor\\]$/,typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0,typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;var cloneableTags={};cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[stringTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[mapTag]=cloneableTags[setTag]=cloneableTags[weakMapTag]=!1;var objectTypes={"function":!0,object:!0},freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType&&exports,freeModule=objectTypes[typeof module]&&module&&!module.nodeType&&module,freeGlobal=freeExports&&freeModule&&"object"==typeof global&&global&&global.Object&&global,freeSelf=objectTypes[typeof self]&&self&&self.Object&&self,freeWindow=objectTypes[typeof window]&&window&&window.Object&&window,moduleExports=freeModule&&freeModule.exports===freeExports&&freeExports,root=freeGlobal||freeWindow!==(this&&this.window)&&freeWindow||freeSelf||this,arrayProto=Array.prototype,objectProto=Object.prototype,fnToString=Function.prototype.toString,hasOwnProperty=objectProto.hasOwnProperty,objToString=objectProto.toString,reIsNative=RegExp("^"+escapeRegExp(objToString).replace(/toString|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,"$1.*?")+"$"),ArrayBuffer=isNative(ArrayBuffer=root.ArrayBuffer)&&ArrayBuffer,bufferSlice=isNative(bufferSlice=ArrayBuffer&&new ArrayBuffer(0).slice)&&bufferSlice,floor=Math.floor,getOwnPropertySymbols=isNative(getOwnPropertySymbols=Object.getOwnPropertySymbols)&&getOwnPropertySymbols,getPrototypeOf=isNative(getPrototypeOf=Object.getPrototypeOf)&&getPrototypeOf,push=arrayProto.push,preventExtensions=isNative(Object.preventExtensions=Object.preventExtensions)&&preventExtensions,propertyIsEnumerable=objectProto.propertyIsEnumerable,Uint8Array=isNative(Uint8Array=root.Uint8Array)&&Uint8Array,Float64Array=function(){try{var func=isNative(func=root.Float64Array)&&func,result=new func(new ArrayBuffer(10),0,1)&&func}catch(e){}return result}(),nativeAssign=function(){var object={1:0},func=preventExtensions&&isNative(func=Object.assign)&&func;try{func(preventExtensions(object),"xo")}catch(e){}return!object[1]&&func}(),nativeIsArray=isNative(nativeIsArray=Array.isArray)&&nativeIsArray,nativeKeys=isNative(nativeKeys=Object.keys)&&nativeKeys,nativeMax=Math.max,nativeMin=Math.min,NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,MAX_ARRAY_LENGTH=Math.pow(2,32)-1,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH-1,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH>>>1,FLOAT64_BYTES_PER_ELEMENT=Float64Array?Float64Array.BYTES_PER_ELEMENT:0,MAX_SAFE_INTEGER=Math.pow(2,53)-1,support=lodash.support={};(function(x){var Ctor=function(){this.x=x},props=[];Ctor.prototype={valueOf:x,y:x};for(var key in new Ctor)props.push(key);support.funcDecomp=/\\bthis\\b/.test(function(){return this}),support.funcNames="string"==typeof Function.name;try{support.nonEnumArgs=!propertyIsEnumerable.call(arguments,1)}catch(e){support.nonEnumArgs=!0}})(1,0);var baseAssign=nativeAssign||function(object,source){return null==source?object:baseCopy(source,getSymbols(source),baseCopy(source,keys(source),object))},baseEach=createBaseEach(baseForOwn),baseFor=createBaseFor();bufferSlice||(bufferClone=ArrayBuffer&&Uint8Array?function(buffer){var byteLength=buffer.byteLength,floatLength=Float64Array?floor(byteLength/FLOAT64_BYTES_PER_ELEMENT):0,offset=floatLength*FLOAT64_BYTES_PER_ELEMENT,result=new ArrayBuffer(byteLength);if(floatLength){var view=new Float64Array(result,0,floatLength);view.set(new Float64Array(buffer,0,floatLength))}return byteLength!=offset&&(view=new Uint8Array(result,offset),view.set(new Uint8Array(buffer,offset))),result}:constant(null));var getLength=baseProperty("length"),getSymbols=getOwnPropertySymbols?function(object){return getOwnPropertySymbols(toObject(object))}:constant([]),findLastIndex=createFindIndex(!0),zip=restParam(unzip),forEach=createForEach(arrayEach,baseEach),isArray=nativeIsArray||function(value){return isObjectLike(value)&&isLength(value.length)&&objToString.call(value)==arrayTag},isFunction=baseIsFunction(/x/)||Uint8Array&&!baseIsFunction(Uint8Array)?function(value){return objToString.call(value)==funcTag}:baseIsFunction,isPlainObject=getPrototypeOf?function(value){if(!value||objToString.call(value)!=objectTag)return!1;var valueOf=value.valueOf,objProto=isNative(valueOf)&&(objProto=getPrototypeOf(valueOf))&&getPrototypeOf(objProto);return objProto?value==objProto||getPrototypeOf(value)==objProto:shimIsPlainObject(value)}:shimIsPlainObject,assign=createAssigner(function(object,source,customizer){return customizer?assignWith(object,source,customizer):baseAssign(object,source)}),keys=nativeKeys?function(object){if(object)var Ctor=object.constructor,length=object.length;return"function"==typeof Ctor&&Ctor.prototype===object||"function"!=typeof object&&isLength(length)?shimKeys(object):isObject(object)?nativeKeys(object):[]}:shimKeys,merge=createAssigner(baseMerge);lodash.assign=assign,lodash.callback=callback,lodash.constant=constant,lodash.forEach=forEach,lodash.keys=keys,lodash.keysIn=keysIn,lodash.merge=merge,lodash.property=property,lodash.reject=reject,lodash.restParam=restParam,lodash.slice=slice,lodash.toPlainObject=toPlainObject,lodash.unzip=unzip,lodash.values=values,lodash.zip=zip,lodash.each=forEach,lodash.extend=assign,lodash.iteratee=callback,lodash.clone=clone,lodash.escapeRegExp=escapeRegExp,lodash.findLastIndex=findLastIndex,lodash.has=has,lodash.identity=identity,lodash.includes=includes,lodash.indexOf=indexOf,lodash.isArguments=isArguments,lodash.isArray=isArray,lodash.isEmpty=isEmpty,lodash.isFunction=isFunction,lodash.isNative=isNative,lodash.isNumber=isNumber,lodash.isObject=isObject,lodash.isPlainObject=isPlainObject,lodash.isString=isString,lodash.isTypedArray=isTypedArray,lodash.last=last,lodash.some=some,lodash.any=some,lodash.contains=includes,lodash.include=includes,lodash.VERSION=VERSION,freeExports&&freeModule?moduleExports?(freeModule.exports=lodash)._=lodash:freeExports._=lodash:root._=lodash\n}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],"/node_modules/jshint/src/jshint.js":[function(_dereq_,module,exports){var _=_dereq_("../lodash"),events=_dereq_("events"),vars=_dereq_("./vars.js"),messages=_dereq_("./messages.js"),Lexer=_dereq_("./lex.js").Lexer,reg=_dereq_("./reg.js"),state=_dereq_("./state.js").state,style=_dereq_("./style.js"),options=_dereq_("./options.js"),scopeManager=_dereq_("./scope-manager.js"),JSHINT=function(){"use strict";function checkOption(name,t){return name=name.trim(),/^[+-]W\\d{3}$/g.test(name)?!0:-1!==options.validNames.indexOf(name)||"jslint"===t.type||_.has(options.removed,name)?!0:(error("E001",t,name),!1)}function isString(obj){return"[object String]"===Object.prototype.toString.call(obj)}function isIdentifier(tkn,value){return tkn?tkn.identifier&&tkn.value===value?!0:!1:!1}function isReserved(token){if(!token.reserved)return!1;var meta=token.meta;if(meta&&meta.isFutureReservedWord&&state.inES5()){if(!meta.es5)return!1;if(meta.strictOnly&&!state.option.strict&&!state.isStrict())return!1;if(token.isProperty)return!1}return!0}function supplant(str,data){return str.replace(/\\{([^{}]*)\\}/g,function(a,b){var r=data[b];return"string"==typeof r||"number"==typeof r?r:a})}function combine(dest,src){Object.keys(src).forEach(function(name){_.has(JSHINT.blacklist,name)||(dest[name]=src[name])})}function processenforceall(){if(state.option.enforceall){for(var enforceopt in options.bool.enforcing)void 0!==state.option[enforceopt]||options.noenforceall[enforceopt]||(state.option[enforceopt]=!0);for(var relaxopt in options.bool.relaxing)void 0===state.option[relaxopt]&&(state.option[relaxopt]=!1)}}function assume(){processenforceall(),state.option.esversion||state.option.moz||(state.option.esversion=state.option.es3?3:state.option.esnext?6:5),state.inES5()&&combine(predefined,vars.ecmaIdentifiers[5]),state.inES6()&&combine(predefined,vars.ecmaIdentifiers[6]),state.option.module&&(state.option.strict===!0&&(state.option.strict="global"),state.inES6()||warning("W134",state.tokens.next,"module",6)),state.option.couch&&combine(predefined,vars.couch),state.option.qunit&&combine(predefined,vars.qunit),state.option.rhino&&combine(predefined,vars.rhino),state.option.shelljs&&(combine(predefined,vars.shelljs),combine(predefined,vars.node)),state.option.typed&&combine(predefined,vars.typed),state.option.phantom&&(combine(predefined,vars.phantom),state.option.strict===!0&&(state.option.strict="global")),state.option.prototypejs&&combine(predefined,vars.prototypejs),state.option.node&&(combine(predefined,vars.node),combine(predefined,vars.typed),state.option.strict===!0&&(state.option.strict="global")),state.option.devel&&combine(predefined,vars.devel),state.option.dojo&&combine(predefined,vars.dojo),state.option.browser&&(combine(predefined,vars.browser),combine(predefined,vars.typed)),state.option.browserify&&(combine(predefined,vars.browser),combine(predefined,vars.typed),combine(predefined,vars.browserify),state.option.strict===!0&&(state.option.strict="global")),state.option.nonstandard&&combine(predefined,vars.nonstandard),state.option.jasmine&&combine(predefined,vars.jasmine),state.option.jquery&&combine(predefined,vars.jquery),state.option.mootools&&combine(predefined,vars.mootools),state.option.worker&&combine(predefined,vars.worker),state.option.wsh&&combine(predefined,vars.wsh),state.option.globalstrict&&state.option.strict!==!1&&(state.option.strict="global"),state.option.yui&&combine(predefined,vars.yui),state.option.mocha&&combine(predefined,vars.mocha)}function quit(code,line,chr){var percentage=Math.floor(100*(line/state.lines.length)),message=messages.errors[code].desc;throw{name:"JSHintError",line:line,character:chr,message:message+" ("+percentage+"% scanned).",raw:message,code:code}}function removeIgnoredMessages(){var ignored=state.ignoredLines;_.isEmpty(ignored)||(JSHINT.errors=_.reject(JSHINT.errors,function(err){return ignored[err.line]}))}function warning(code,t,a,b,c,d){var ch,l,w,msg;if(/^W\\d{3}$/.test(code)){if(state.ignored[code])return;msg=messages.warnings[code]}else/E\\d{3}/.test(code)?msg=messages.errors[code]:/I\\d{3}/.test(code)&&(msg=messages.info[code]);return t=t||state.tokens.next||{},"(end)"===t.id&&(t=state.tokens.curr),l=t.line||0,ch=t.from||0,w={id:"(error)",raw:msg.desc,code:msg.code,evidence:state.lines[l-1]||"",line:l,character:ch,scope:JSHINT.scope,a:a,b:b,c:c,d:d},w.reason=supplant(msg.desc,w),JSHINT.errors.push(w),removeIgnoredMessages(),JSHINT.errors.length>=state.option.maxerr&&quit("E043",l,ch),w}function warningAt(m,l,ch,a,b,c,d){return warning(m,{line:l,from:ch},a,b,c,d)}function error(m,t,a,b,c,d){warning(m,t,a,b,c,d)}function errorAt(m,l,ch,a,b,c,d){return error(m,{line:l,from:ch},a,b,c,d)}function addInternalSrc(elem,src){var i;return i={id:"(internal)",elem:elem,value:src},JSHINT.internals.push(i),i}function doOption(){var nt=state.tokens.next,body=nt.body.match(/(-\\s+)?[^\\s,:]+(?:\\s*:\\s*(-\\s+)?[^\\s,]+)?/g)||[],predef={};if("globals"===nt.type){body.forEach(function(g,idx){g=g.split(":");var key=(g[0]||"").trim(),val=(g[1]||"").trim();if("-"===key||!key.length){if(idx>0&&idx===body.length-1)return;return error("E002",nt),void 0}"-"===key.charAt(0)?(key=key.slice(1),val=!1,JSHINT.blacklist[key]=key,delete predefined[key]):predef[key]="true"===val}),combine(predefined,predef);for(var key in predef)_.has(predef,key)&&(declared[key]=nt)}"exported"===nt.type&&body.forEach(function(e,idx){if(!e.length){if(idx>0&&idx===body.length-1)return;return error("E002",nt),void 0}state.funct["(scope)"].addExported(e)}),"members"===nt.type&&(membersOnly=membersOnly||{},body.forEach(function(m){var ch1=m.charAt(0),ch2=m.charAt(m.length-1);ch1!==ch2||\'"\'!==ch1&&"\'"!==ch1||(m=m.substr(1,m.length-2).replace(\'\\\\"\',\'"\')),membersOnly[m]=!1}));var numvals=["maxstatements","maxparams","maxdepth","maxcomplexity","maxerr","maxlen","indent"];("jshint"===nt.type||"jslint"===nt.type)&&(body.forEach(function(g){g=g.split(":");var key=(g[0]||"").trim(),val=(g[1]||"").trim();if(checkOption(key,nt))if(numvals.indexOf(key)>=0)if("false"!==val){if(val=+val,"number"!=typeof val||!isFinite(val)||0>=val||Math.floor(val)!==val)return error("E032",nt,g[1].trim()),void 0;state.option[key]=val}else state.option[key]="indent"===key?4:!1;else{if("validthis"===key)return state.funct["(global)"]?void error("E009"):"true"!==val&&"false"!==val?void error("E002",nt):(state.option.validthis="true"===val,void 0);if("quotmark"!==key)if("shadow"!==key)if("unused"!==key)if("latedef"!==key)if("ignore"!==key)if("strict"!==key){"module"===key&&(hasParsedCode(state.funct)||error("E055",state.tokens.next,"module"));var esversions={es3:3,es5:5,esnext:6};if(!_.has(esversions,key)){if("esversion"===key){switch(val){case"5":state.inES5(!0)&&warning("I003");case"3":case"6":state.option.moz=!1,state.option.esversion=+val;break;case"2015":state.option.moz=!1,state.option.esversion=6;break;default:error("E002",nt)}return hasParsedCode(state.funct)||error("E055",state.tokens.next,"esversion"),void 0}var match=/^([+-])(W\\d{3})$/g.exec(key);if(match)return state.ignored[match[2]]="-"===match[1],void 0;var tn;return"true"===val||"false"===val?("jslint"===nt.type?(tn=options.renamed[key]||key,state.option[tn]="true"===val,void 0!==options.inverted[tn]&&(state.option[tn]=!state.option[tn])):state.option[key]="true"===val,"newcap"===key&&(state.option["(explicitNewcap)"]=!0),void 0):(error("E002",nt),void 0)}switch(val){case"true":state.option.moz=!1,state.option.esversion=esversions[key];break;case"false":state.option.moz||(state.option.esversion=5);break;default:error("E002",nt)}}else switch(val){case"true":state.option.strict=!0;break;case"false":state.option.strict=!1;break;case"func":case"global":case"implied":state.option.strict=val;break;default:error("E002",nt)}else switch(val){case"line":state.ignoredLines[nt.line]=!0,removeIgnoredMessages();break;default:error("E002",nt)}else switch(val){case"true":state.option.latedef=!0;break;case"false":state.option.latedef=!1;break;case"nofunc":state.option.latedef="nofunc";break;default:error("E002",nt)}else switch(val){case"true":state.option.unused=!0;break;case"false":state.option.unused=!1;break;case"vars":case"strict":state.option.unused=val;break;default:error("E002",nt)}else switch(val){case"true":state.option.shadow=!0;break;case"outer":state.option.shadow="outer";break;case"false":case"inner":state.option.shadow="inner";break;default:error("E002",nt)}else switch(val){case"true":case"false":state.option.quotmark="true"===val;break;case"double":case"single":state.option.quotmark=val;break;default:error("E002",nt)}}}),assume())}function peek(p){var t,i=p||0,j=lookahead.length;if(j>i)return lookahead[i];for(;i>=j;)t=lookahead[j],t||(t=lookahead[j]=lex.token()),j+=1;return t||"(end)"!==state.tokens.next.id?t:state.tokens.next}function peekIgnoreEOL(){var t,i=0;do t=peek(i++);while("(endline)"===t.id);return t}function advance(id,t){switch(state.tokens.curr.id){case"(number)":"."===state.tokens.next.id&&warning("W005",state.tokens.curr);break;case"-":("-"===state.tokens.next.id||"--"===state.tokens.next.id)&&warning("W006");break;case"+":("+"===state.tokens.next.id||"++"===state.tokens.next.id)&&warning("W007")}for(id&&state.tokens.next.id!==id&&(t?"(end)"===state.tokens.next.id?error("E019",t,t.id):error("E020",state.tokens.next,id,t.id,t.line,state.tokens.next.value):("(identifier)"!==state.tokens.next.type||state.tokens.next.value!==id)&&warning("W116",state.tokens.next,id,state.tokens.next.value)),state.tokens.prev=state.tokens.curr,state.tokens.curr=state.tokens.next;;){if(state.tokens.next=lookahead.shift()||lex.token(),state.tokens.next||quit("E041",state.tokens.curr.line),"(end)"===state.tokens.next.id||"(error)"===state.tokens.next.id)return;if(state.tokens.next.check&&state.tokens.next.check(),state.tokens.next.isSpecial)"falls through"===state.tokens.next.type?state.tokens.curr.caseFallsThrough=!0:doOption();else if("(endline)"!==state.tokens.next.id)break}}function isInfix(token){return token.infix||!token.identifier&&!token.template&&!!token.led}function isEndOfExpr(){var curr=state.tokens.curr,next=state.tokens.next;return";"===next.id||"}"===next.id||":"===next.id?!0:isInfix(next)===isInfix(curr)||"yield"===curr.id&&state.inMoz()?curr.line!==startLine(next):!1}function isBeginOfExpr(prev){return!prev.left&&"unary"!==prev.arity}function expression(rbp,initial){var left,isArray=!1,isObject=!1,isLetExpr=!1;state.nameStack.push(),initial||"let"!==state.tokens.next.value||"("!==peek(0).value||(state.inMoz()||warning("W118",state.tokens.next,"let expressions"),isLetExpr=!0,state.funct["(scope)"].stack(),advance("let"),advance("("),state.tokens.prev.fud(),advance(")")),"(end)"===state.tokens.next.id&&error("E006",state.tokens.curr);var isDangerous=state.option.asi&&state.tokens.prev.line!==startLine(state.tokens.curr)&&_.contains(["]",")"],state.tokens.prev.id)&&_.contains(["[","("],state.tokens.curr.id);if(isDangerous&&warning("W014",state.tokens.curr,state.tokens.curr.id),advance(),initial&&(state.funct["(verb)"]=state.tokens.curr.value,state.tokens.curr.beginsStmt=!0),initial===!0&&state.tokens.curr.fud)left=state.tokens.curr.fud();else for(state.tokens.curr.nud?left=state.tokens.curr.nud():error("E030",state.tokens.curr,state.tokens.curr.id);(state.tokens.next.lbp>rbp||"(template)"===state.tokens.next.type)&&!isEndOfExpr();)isArray="Array"===state.tokens.curr.value,isObject="Object"===state.tokens.curr.value,left&&(left.value||left.first&&left.first.value)&&("new"!==left.value||left.first&&left.first.value&&"."===left.first.value)&&(isArray=!1,left.value!==state.tokens.curr.value&&(isObject=!1)),advance(),isArray&&"("===state.tokens.curr.id&&")"===state.tokens.next.id&&warning("W009",state.tokens.curr),isObject&&"("===state.tokens.curr.id&&")"===state.tokens.next.id&&warning("W010",state.tokens.curr),left&&state.tokens.curr.led?left=state.tokens.curr.led(left):error("E033",state.tokens.curr,state.tokens.curr.id);return isLetExpr&&state.funct["(scope)"].unstack(),state.nameStack.pop(),left}function startLine(token){return token.startLine||token.line}function nobreaknonadjacent(left,right){left=left||state.tokens.curr,right=right||state.tokens.next,state.option.laxbreak||left.line===startLine(right)||warning("W014",right,right.value)}function nolinebreak(t){t=t||state.tokens.curr,t.line!==startLine(state.tokens.next)&&warning("E022",t,t.value)}function nobreakcomma(left,right){left.line!==startLine(right)&&(state.option.laxcomma||(comma.first&&(warning("I001"),comma.first=!1),warning("W014",left,right.value)))}function comma(opts){if(opts=opts||{},opts.peek?nobreakcomma(state.tokens.prev,state.tokens.curr):(nobreakcomma(state.tokens.curr,state.tokens.next),advance(",")),state.tokens.next.identifier&&(!opts.property||!state.inES5()))switch(state.tokens.next.value){case"break":case"case":case"catch":case"continue":case"default":case"do":case"else":case"finally":case"for":case"if":case"in":case"instanceof":case"return":case"switch":case"throw":case"try":case"var":case"let":case"while":case"with":return error("E024",state.tokens.next,state.tokens.next.value),!1}if("(punctuator)"===state.tokens.next.type)switch(state.tokens.next.value){case"}":case"]":case",":if(opts.allowTrailing)return!0;case")":return error("E024",state.tokens.next,state.tokens.next.value),!1}return!0}function symbol(s,p){var x=state.syntax[s];return x&&"object"==typeof x||(state.syntax[s]=x={id:s,lbp:p,value:s}),x}function delim(s){var x=symbol(s,0);return x.delim=!0,x}function stmt(s,f){var x=delim(s);return x.identifier=x.reserved=!0,x.fud=f,x}function blockstmt(s,f){var x=stmt(s,f);return x.block=!0,x}function reserveName(x){var c=x.id.charAt(0);return(c>="a"&&"z">=c||c>="A"&&"Z">=c)&&(x.identifier=x.reserved=!0),x}function prefix(s,f){var x=symbol(s,150);return reserveName(x),x.nud="function"==typeof f?f:function(){return this.arity="unary",this.right=expression(150),("++"===this.id||"--"===this.id)&&(state.option.plusplus?warning("W016",this,this.id):!this.right||this.right.identifier&&!isReserved(this.right)||"."===this.right.id||"["===this.right.id||warning("W017",this),this.right&&this.right.isMetaProperty?error("E031",this):this.right&&this.right.identifier&&state.funct["(scope)"].block.modify(this.right.value,this)),this},x}function type(s,f){var x=delim(s);return x.type=s,x.nud=f,x}function reserve(name,func){var x=type(name,func);return x.identifier=!0,x.reserved=!0,x}function FutureReservedWord(name,meta){var x=type(name,meta&&meta.nud||function(){return this});return meta=meta||{},meta.isFutureReservedWord=!0,x.value=name,x.identifier=!0,x.reserved=!0,x.meta=meta,x}function reservevar(s,v){return reserve(s,function(){return"function"==typeof v&&v(this),this})}function infix(s,f,p,w){var x=symbol(s,p);return reserveName(x),x.infix=!0,x.led=function(left){return w||nobreaknonadjacent(state.tokens.prev,state.tokens.curr),"in"!==s&&"instanceof"!==s||"!"!==left.id||warning("W018",left,"!"),"function"==typeof f?f(left,this):(this.left=left,this.right=expression(p),this)},x}function application(s){var x=symbol(s,42);return x.led=function(left){return nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left,this.right=doFunction({type:"arrow",loneArg:left}),this},x}function relation(s,f){var x=symbol(s,100);return x.led=function(left){nobreaknonadjacent(state.tokens.prev,state.tokens.curr),this.left=left;var right=this.right=expression(100);return isIdentifier(left,"NaN")||isIdentifier(right,"NaN")?warning("W019",this):f&&f.apply(this,[left,right]),left&&right||quit("E041",state.tokens.curr.line),"!"===left.id&&warning("W018",left,"!"),"!"===right.id&&warning("W018",right,"!"),this},x}function isPoorRelation(node){return node&&("(number)"===node.type&&0===+node.value||"(string)"===node.type&&""===node.value||"null"===node.type&&!state.option.eqnull||"true"===node.type||"false"===node.type||"undefined"===node.type)}function isTypoTypeof(left,right,state){var values;return state.option.notypeof?!1:left&&right?(values=state.inES6()?typeofValues.es6:typeofValues.es3,"(identifier)"===right.type&&"typeof"===right.value&&"(string)"===left.type?!_.contains(values,left.value):!1):!1}function isGlobalEval(left,state){var isGlobal=!1;return"this"===left.type&&null===state.funct["(context)"]?isGlobal=!0:"(identifier)"===left.type&&(state.option.node&&"global"===left.value?isGlobal=!0:!state.option.browser||"window"!==left.value&&"document"!==left.value||(isGlobal=!0)),isGlobal}function findNativePrototype(left){function walkPrototype(obj){return"object"==typeof obj?"prototype"===obj.right?obj:walkPrototype(obj.left):void 0}function walkNative(obj){for(;!obj.identifier&&"object"==typeof obj.left;)obj=obj.left;return obj.identifier&&natives.indexOf(obj.value)>=0?obj.value:void 0}var natives=["Array","ArrayBuffer","Boolean","Collator","DataView","Date","DateTimeFormat","Error","EvalError","Float32Array","Float64Array","Function","Infinity","Intl","Int16Array","Int32Array","Int8Array","Iterator","Number","NumberFormat","Object","RangeError","ReferenceError","RegExp","StopIteration","String","SyntaxError","TypeError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError"],prototype=walkPrototype(left);return prototype?walkNative(prototype):void 0}function checkLeftSideAssign(left,assignToken,options){var allowDestructuring=options&&options.allowDestructuring;if(assignToken=assignToken||left,state.option.freeze){var nativeObject=findNativePrototype(left);nativeObject&&warning("W121",left,nativeObject)}return left.identifier&&!left.isMetaProperty&&state.funct["(scope)"].block.reassign(left.value,left),"."===left.id?((!left.left||"arguments"===left.left.value&&!state.isStrict())&&warning("E031",assignToken),state.nameStack.set(state.tokens.prev),!0):"{"===left.id||"["===left.id?(allowDestructuring&&state.tokens.curr.left.destructAssign?state.tokens.curr.left.destructAssign.forEach(function(t){t.id&&state.funct["(scope)"].block.modify(t.id,t.token)}):"{"!==left.id&&left.left?"arguments"!==left.left.value||state.isStrict()||warning("E031",assignToken):warning("E031",assignToken),"["===left.id&&state.nameStack.set(left.right),!0):left.isMetaProperty?(error("E031",assignToken),!0):left.identifier&&!isReserved(left)?("exception"===state.funct["(scope)"].labeltype(left.value)&&warning("W022",left),state.nameStack.set(left),!0):(left===state.syntax["function"]&&warning("W023",state.tokens.curr),!1)}function assignop(s,f,p){var x=infix(s,"function"==typeof f?f:function(left,that){return that.left=left,left&&checkLeftSideAssign(left,that,{allowDestructuring:!0})?(that.right=expression(10),that):(error("E031",that),void 0)},p);return x.exps=!0,x.assign=!0,x}function bitwise(s,f,p){var x=symbol(s,p);return reserveName(x),x.led="function"==typeof f?f:function(left){return state.option.bitwise&&warning("W016",this,this.id),this.left=left,this.right=expression(p),this},x}function bitwiseassignop(s){return assignop(s,function(left,that){return state.option.bitwise&&warning("W016",that,that.id),left&&checkLeftSideAssign(left,that)?(that.right=expression(10),that):(error("E031",that),void 0)},20)}function suffix(s){var x=symbol(s,150);return x.led=function(left){return state.option.plusplus?warning("W016",this,this.id):left.identifier&&!isReserved(left)||"."===left.id||"["===left.id||warning("W017",this),left.isMetaProperty?error("E031",this):left&&left.identifier&&state.funct["(scope)"].block.modify(left.value,left),this.left=left,this},x}function optionalidentifier(fnparam,prop,preserve){if(state.tokens.next.identifier){preserve||advance();var curr=state.tokens.curr,val=state.tokens.curr.value;return isReserved(curr)?prop&&state.inES5()?val:fnparam&&"undefined"===val?val:(warning("W024",state.tokens.curr,state.tokens.curr.id),val):val}}function identifier(fnparam,prop){var i=optionalidentifier(fnparam,prop,!1);if(i)return i;if("..."===state.tokens.next.value){if(state.inES6(!0)||warning("W119",state.tokens.next,"spread/rest operator","6"),advance(),checkPunctuator(state.tokens.next,"..."))for(warning("E024",state.tokens.next,"...");checkPunctuator(state.tokens.next,"...");)advance();return state.tokens.next.identifier?identifier(fnparam,prop):(warning("E024",state.tokens.curr,"..."),void 0)}error("E030",state.tokens.next,state.tokens.next.value),";"!==state.tokens.next.id&&advance()}function reachable(controlToken){var t,i=0;if(";"===state.tokens.next.id&&!controlToken.inBracelessBlock)for(;;){do t=peek(i),i+=1;while("(end)"!==t.id&&"(comment)"===t.id);if(t.reach)return;if("(endline)"!==t.id){if("function"===t.id){state.option.latedef===!0&&warning("W026",t);break}warning("W027",t,t.value,controlToken.value);break}}}function parseFinalSemicolon(){if(";"!==state.tokens.next.id){if(state.tokens.next.isUnclosed)return advance();var sameLine=startLine(state.tokens.next)===state.tokens.curr.line&&"(end)"!==state.tokens.next.id,blockEnd=checkPunctuator(state.tokens.next,"}");sameLine&&!blockEnd?errorAt("E058",state.tokens.curr.line,state.tokens.curr.character):state.option.asi||(blockEnd&&!state.option.lastsemic||!sameLine)&&warningAt("W033",state.tokens.curr.line,state.tokens.curr.character)}else advance(";")}function statement(){var r,i=indent,t=state.tokens.next,hasOwnScope=!1;if(";"===t.id)return advance(";"),void 0;var res=isReserved(t);if(res&&t.meta&&t.meta.isFutureReservedWord&&":"===peek().id&&(warning("W024",t,t.id),res=!1),t.identifier&&!res&&":"===peek().id&&(advance(),advance(":"),hasOwnScope=!0,state.funct["(scope)"].stack(),state.funct["(scope)"].block.addBreakLabel(t.value,{token:state.tokens.curr}),state.tokens.next.labelled||"{"===state.tokens.next.value||warning("W028",state.tokens.next,t.value,state.tokens.next.value),state.tokens.next.label=t.value,t=state.tokens.next),"{"===t.id){var iscase="case"===state.funct["(verb)"]&&":"===state.tokens.curr.value;return block(!0,!0,!1,!1,iscase),void 0}return r=expression(0,!0),!r||r.identifier&&"function"===r.value||"(punctuator)"===r.type&&r.left&&r.left.identifier&&"function"===r.left.value||state.isStrict()||"global"!==state.option.strict||warning("E007"),t.block||(state.option.expr||r&&r.exps?state.option.nonew&&r&&r.left&&"("===r.id&&"new"===r.left.id&&warning("W031",t):warning("W030",state.tokens.curr),parseFinalSemicolon()),indent=i,hasOwnScope&&state.funct["(scope)"].unstack(),r}function statements(){for(var p,a=[];!state.tokens.next.reach&&"(end)"!==state.tokens.next.id;)";"===state.tokens.next.id?(p=peek(),(!p||"("!==p.id&&"["!==p.id)&&warning("W032"),advance(";")):a.push(statement());return a}function directives(){for(var i,p,pn;"(string)"===state.tokens.next.id;){if(p=peek(0),"(endline)"===p.id){i=1;do pn=peek(i++);while("(endline)"===pn.id);if(";"===pn.id)p=pn;else{if("["===pn.value||"."===pn.value)break;state.option.asi&&"("!==pn.value||warning("W033",state.tokens.next)}}else{if("."===p.id||"["===p.id)break;";"!==p.id&&warning("W033",p)}advance();var directive=state.tokens.curr.value;(state.directive[directive]||"use strict"===directive&&"implied"===state.option.strict)&&warning("W034",state.tokens.curr,directive),state.directive[directive]=!0,";"===p.id&&advance(";")}state.isStrict()&&(state.option["(explicitNewcap)"]||(state.option.newcap=!0),state.option.undef=!0)}function block(ordinary,stmt,isfunc,isfatarrow,iscase){var a,m,t,line,d,b=inblock,old_indent=indent;inblock=ordinary,t=state.tokens.next;var metrics=state.funct["(metrics)"];if(metrics.nestedBlockDepth+=1,metrics.verifyMaxNestedBlockDepthPerFunction(),"{"===state.tokens.next.id){if(advance("{"),state.funct["(scope)"].stack(),line=state.tokens.curr.line,"}"!==state.tokens.next.id){for(indent+=state.option.indent;!ordinary&&state.tokens.next.from>indent;)indent+=state.option.indent;if(isfunc){m={};for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);directives(),state.option.strict&&state.funct["(context)"]["(global)"]&&(m["use strict"]||state.isStrict()||warning("E007"))}a=statements(),metrics.statementCount+=a.length,indent-=state.option.indent}advance("}",t),isfunc&&(state.funct["(scope)"].validateParams(),m&&(state.directive=m)),state.funct["(scope)"].unstack(),indent=old_indent}else if(ordinary)state.funct["(noblockscopedvar)"]="for"!==state.tokens.next.id,state.funct["(scope)"].stack(),(!stmt||state.option.curly)&&warning("W116",state.tokens.next,"{",state.tokens.next.value),state.tokens.next.inBracelessBlock=!0,indent+=state.option.indent,a=[statement()],indent-=state.option.indent,state.funct["(scope)"].unstack(),delete state.funct["(noblockscopedvar)"];else if(isfunc){if(state.funct["(scope)"].stack(),m={},!stmt||isfatarrow||state.inMoz()||error("W118",state.tokens.curr,"function closure expressions"),!stmt)for(d in state.directive)_.has(state.directive,d)&&(m[d]=state.directive[d]);expression(10),state.option.strict&&state.funct["(context)"]["(global)"]&&(m["use strict"]||state.isStrict()||warning("E007")),state.funct["(scope)"].unstack()}else error("E021",state.tokens.next,"{",state.tokens.next.value);switch(state.funct["(verb)"]){case"break":case"continue":case"return":case"throw":if(iscase)break;default:state.funct["(verb)"]=null}return inblock=b,!ordinary||!state.option.noempty||a&&0!==a.length||warning("W035",state.tokens.prev),metrics.nestedBlockDepth-=1,a}function countMember(m){membersOnly&&"boolean"!=typeof membersOnly[m]&&warning("W036",state.tokens.curr,m),"number"==typeof member[m]?member[m]+=1:member[m]=1}function comprehensiveArrayExpression(){var res={};res.exps=!0,state.funct["(comparray)"].stack();var reversed=!1;return"for"!==state.tokens.next.value&&(reversed=!0,state.inMoz()||warning("W116",state.tokens.next,"for",state.tokens.next.value),state.funct["(comparray)"].setState("use"),res.right=expression(10)),advance("for"),"each"===state.tokens.next.value&&(advance("each"),state.inMoz()||warning("W118",state.tokens.curr,"for each")),advance("("),state.funct["(comparray)"].setState("define"),res.left=expression(130),_.contains(["in","of"],state.tokens.next.value)?advance():error("E045",state.tokens.curr),state.funct["(comparray)"].setState("generate"),expression(10),advance(")"),"if"===state.tokens.next.value&&(advance("if"),advance("("),state.funct["(comparray)"].setState("filter"),res.filter=expression(10),advance(")")),reversed||(state.funct["(comparray)"].setState("use"),res.right=expression(10)),advance("]"),state.funct["(comparray)"].unstack(),res}function isMethod(){return state.funct["(statement)"]&&"class"===state.funct["(statement)"].type||state.funct["(context)"]&&"class"===state.funct["(context)"]["(verb)"]}function isPropertyName(token){return token.identifier||"(string)"===token.id||"(number)"===token.id}function propertyName(preserveOrToken){var id,preserve=!0;return"object"==typeof preserveOrToken?id=preserveOrToken:(preserve=preserveOrToken,id=optionalidentifier(!1,!0,preserve)),id?"object"==typeof id&&("(string)"===id.id||"(identifier)"===id.id?id=id.value:"(number)"===id.id&&(id=""+id.value)):"(string)"===state.tokens.next.id?(id=state.tokens.next.value,preserve||advance()):"(number)"===state.tokens.next.id&&(id=""+state.tokens.next.value,preserve||advance()),"hasOwnProperty"===id&&warning("W001"),id}function functionparams(options){function addParam(addParamArgs){state.funct["(scope)"].addParam.apply(state.funct["(scope)"],addParamArgs)}var next,ident,t,paramsIds=[],tokens=[],pastDefault=!1,pastRest=!1,arity=0,loneArg=options&&options.loneArg;if(loneArg&&loneArg.identifier===!0)return state.funct["(scope)"].addParam(loneArg.value,loneArg),{arity:1,params:[loneArg.value]};if(next=state.tokens.next,options&&options.parsedOpening||advance("("),")"===state.tokens.next.id)return advance(")"),void 0;for(;;){arity++;var currentParams=[];if(_.contains(["{","["],state.tokens.next.id)){tokens=destructuringPattern();for(t in tokens)t=tokens[t],t.id&&(paramsIds.push(t.id),currentParams.push([t.id,t.token]))}else if(checkPunctuator(state.tokens.next,"...")&&(pastRest=!0),ident=identifier(!0))paramsIds.push(ident),currentParams.push([ident,state.tokens.curr]);else for(;!checkPunctuators(state.tokens.next,[",",")"]);)advance();if(pastDefault&&"="!==state.tokens.next.id&&error("W138",state.tokens.current),"="===state.tokens.next.id&&(state.inES6()||warning("W119",state.tokens.next,"default parameters","6"),advance("="),pastDefault=!0,expression(10)),currentParams.forEach(addParam),","!==state.tokens.next.id)return advance(")",next),{arity:arity,params:paramsIds};pastRest&&warning("W131",state.tokens.next),comma()}}function functor(name,token,overwrites){var funct={"(name)":name,"(breakage)":0,"(loopage)":0,"(tokens)":{},"(properties)":{},"(catch)":!1,"(global)":!1,"(line)":null,"(character)":null,"(metrics)":null,"(statement)":null,"(context)":null,"(scope)":null,"(comparray)":null,"(generator)":null,"(arrow)":null,"(params)":null};return token&&_.extend(funct,{"(line)":token.line,"(character)":token.character,"(metrics)":createMetrics(token)}),_.extend(funct,overwrites),funct["(context)"]&&(funct["(scope)"]=funct["(context)"]["(scope)"],funct["(comparray)"]=funct["(context)"]["(comparray)"]),funct}function isFunctor(token){return"(scope)"in token}function hasParsedCode(funct){return funct["(global)"]&&!funct["(verb)"]}function doTemplateLiteral(left){function end(){if(state.tokens.curr.template&&state.tokens.curr.tail&&state.tokens.curr.context===ctx)return!0;var complete=state.tokens.next.template&&state.tokens.next.tail&&state.tokens.next.context===ctx;return complete&&advance(),complete||state.tokens.next.isUnclosed}var ctx=this.context,noSubst=this.noSubst,depth=this.depth;if(!noSubst)for(;!end();)!state.tokens.next.template||state.tokens.next.depth>depth?expression(0):advance();return{id:"(template)",type:"(template)",tag:left}}function doFunction(options){var f,token,name,statement,classExprBinding,isGenerator,isArrow,ignoreLoopFunc,oldOption=state.option,oldIgnored=state.ignored;options&&(name=options.name,statement=options.statement,classExprBinding=options.classExprBinding,isGenerator="generator"===options.type,isArrow="arrow"===options.type,ignoreLoopFunc=options.ignoreLoopFunc),state.option=Object.create(state.option),state.ignored=Object.create(state.ignored),state.funct=functor(name||state.nameStack.infer(),state.tokens.next,{"(statement)":statement,"(context)":state.funct,"(arrow)":isArrow,"(generator)":isGenerator}),f=state.funct,token=state.tokens.curr,token.funct=state.funct,functions.push(state.funct),state.funct["(scope)"].stack("functionouter");var internallyAccessibleName=name||classExprBinding;internallyAccessibleName&&state.funct["(scope)"].block.add(internallyAccessibleName,classExprBinding?"class":"function",state.tokens.curr,!1),state.funct["(scope)"].stack("functionparams");var paramsInfo=functionparams(options);return paramsInfo?(state.funct["(params)"]=paramsInfo.params,state.funct["(metrics)"].arity=paramsInfo.arity,state.funct["(metrics)"].verifyMaxParametersPerFunction()):state.funct["(metrics)"].arity=0,isArrow&&(state.inES6(!0)||warning("W119",state.tokens.curr,"arrow function syntax (=>)","6"),options.loneArg||advance("=>")),block(!1,!0,!0,isArrow),!state.option.noyield&&isGenerator&&"yielded"!==state.funct["(generator)"]&&warning("W124",state.tokens.curr),state.funct["(metrics)"].verifyMaxStatementsPerFunction(),state.funct["(metrics)"].verifyMaxComplexityPerFunction(),state.funct["(unusedOption)"]=state.option.unused,state.option=oldOption,state.ignored=oldIgnored,state.funct["(last)"]=state.tokens.curr.line,state.funct["(lastcharacter)"]=state.tokens.curr.character,state.funct["(scope)"].unstack(),state.funct["(scope)"].unstack(),state.funct=state.funct["(context)"],ignoreLoopFunc||state.option.loopfunc||!state.funct["(loopage)"]||f["(isCapturing)"]&&warning("W083",token),f}function createMetrics(functionStartToken){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){state.option.maxstatements&&this.statementCount>state.option.maxstatements&&warning("W071",functionStartToken,this.statementCount)\n},verifyMaxParametersPerFunction:function(){_.isNumber(state.option.maxparams)&&this.arity>state.option.maxparams&&warning("W072",functionStartToken,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){state.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===state.option.maxdepth+1&&warning("W073",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var max=state.option.maxcomplexity,cc=this.ComplexityCount;max&&cc>max&&warning("W074",functionStartToken,cc)}}}function increaseComplexityCount(){state.funct["(metrics)"].ComplexityCount+=1}function checkCondAssignment(expr){var id,paren;switch(expr&&(id=expr.id,paren=expr.paren,","===id&&(expr=expr.exprs[expr.exprs.length-1])&&(id=expr.id,paren=paren||expr.paren)),id){case"=":case"+=":case"-=":case"*=":case"%=":case"&=":case"|=":case"^=":case"/=":paren||state.option.boss||warning("W084")}}function checkProperties(props){if(state.inES5())for(var name in props)props[name]&&props[name].setterToken&&!props[name].getterToken&&warning("W078",props[name].setterToken)}function metaProperty(name,c){if(checkPunctuator(state.tokens.next,".")){var left=state.tokens.curr.id;advance(".");var id=identifier();return state.tokens.curr.isMetaProperty=!0,name!==id?error("E057",state.tokens.prev,left,id):c(),state.tokens.curr}}function destructuringPattern(options){var isAssignment=options&&options.assignment;return state.inES6()||warning("W104",state.tokens.curr,isAssignment?"destructuring assignment":"destructuring binding","6"),destructuringPatternRecursive(options)}function destructuringPatternRecursive(options){var ids,identifiers=[],openingParsed=options&&options.openingParsed,isAssignment=options&&options.assignment,recursiveOptions=isAssignment?{assignment:isAssignment}:null,firstToken=openingParsed?state.tokens.curr:state.tokens.next,nextInnerDE=function(){var ident;if(checkPunctuators(state.tokens.next,["[","{"])){ids=destructuringPatternRecursive(recursiveOptions);for(var id in ids)id=ids[id],identifiers.push({id:id.id,token:id.token})}else if(checkPunctuator(state.tokens.next,","))identifiers.push({id:null,token:state.tokens.curr});else{if(!checkPunctuator(state.tokens.next,"(")){var is_rest=checkPunctuator(state.tokens.next,"...");if(isAssignment){var identifierToken=is_rest?peek(0):state.tokens.next;identifierToken.identifier||warning("E030",identifierToken,identifierToken.value);var assignTarget=expression(155);assignTarget&&(checkLeftSideAssign(assignTarget),assignTarget.identifier&&(ident=assignTarget.value))}else ident=identifier();return ident&&identifiers.push({id:ident,token:state.tokens.curr}),is_rest}advance("("),nextInnerDE(),advance(")")}return!1},assignmentProperty=function(){var id;checkPunctuator(state.tokens.next,"[")?(advance("["),expression(10),advance("]"),advance(":"),nextInnerDE()):"(string)"===state.tokens.next.id||"(number)"===state.tokens.next.id?(advance(),advance(":"),nextInnerDE()):(id=identifier(),checkPunctuator(state.tokens.next,":")?(advance(":"),nextInnerDE()):id&&(isAssignment&&checkLeftSideAssign(state.tokens.curr),identifiers.push({id:id,token:state.tokens.curr})))};if(checkPunctuator(firstToken,"[")){openingParsed||advance("["),checkPunctuator(state.tokens.next,"]")&&warning("W137",state.tokens.curr);for(var element_after_rest=!1;!checkPunctuator(state.tokens.next,"]");)nextInnerDE()&&!element_after_rest&&checkPunctuator(state.tokens.next,",")&&(warning("W130",state.tokens.next),element_after_rest=!0),checkPunctuator(state.tokens.next,"=")&&(checkPunctuator(state.tokens.prev,"...")?advance("]"):advance("="),"undefined"===state.tokens.next.id&&warning("W080",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,"]")||advance(",");advance("]")}else if(checkPunctuator(firstToken,"{")){for(openingParsed||advance("{"),checkPunctuator(state.tokens.next,"}")&&warning("W137",state.tokens.curr);!checkPunctuator(state.tokens.next,"}")&&(assignmentProperty(),checkPunctuator(state.tokens.next,"=")&&(advance("="),"undefined"===state.tokens.next.id&&warning("W080",state.tokens.prev,state.tokens.prev.value),expression(10)),checkPunctuator(state.tokens.next,"}")||(advance(","),!checkPunctuator(state.tokens.next,"}"))););advance("}")}return identifiers}function destructuringPatternMatch(tokens,value){var first=value.first;first&&_.zip(tokens,Array.isArray(first)?first:[first]).forEach(function(val){var token=val[0],value=val[1];token&&value?token.first=value:token&&token.first&&!value&&warning("W080",token.first,token.first.value)})}function blockVariableStatement(type,statement,context){var tokens,lone,value,letblock,prefix=context&&context.prefix,inexport=context&&context.inexport,isLet="let"===type,isConst="const"===type;for(state.inES6()||warning("W104",state.tokens.curr,type,"6"),isLet&&"("===state.tokens.next.value?(state.inMoz()||warning("W118",state.tokens.next,"let block"),advance("("),state.funct["(scope)"].stack(),letblock=!0):state.funct["(noblockscopedvar)"]&&error("E048",state.tokens.curr,isConst?"Const":"Let"),statement.first=[];;){var names=[];_.contains(["{","["],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),!prefix&&isConst&&"="!==state.tokens.next.id&&warning("E012",state.tokens.curr,state.tokens.curr.value);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],state.funct["(scope)"].block.isGlobal()&&predefined[t.id]===!1&&warning("W079",t.token,t.id),t.id&&!state.funct["(noblockscopedvar)"]&&(state.funct["(scope)"].addlabel(t.id,{type:type,token:t.token}),names.push(t.token),lone&&inexport&&state.funct["(scope)"].setExported(t.token.value,t.token)));if("="===state.tokens.next.id&&(advance("="),prefix||"undefined"!==state.tokens.next.id||warning("W080",state.tokens.prev,state.tokens.prev.value),!prefix&&"="===peek(0).id&&state.tokens.next.identifier&&warning("W120",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),statement.first=statement.first.concat(names),","!==state.tokens.next.id)break;comma()}return letblock&&(advance(")"),block(!0,!0),statement.block=!0,state.funct["(scope)"].unstack()),statement}function classdef(isStatement){return state.inES6()||warning("W104",state.tokens.curr,"class","6"),isStatement?(this.name=identifier(),state.funct["(scope)"].addlabel(this.name,{type:"class",token:state.tokens.curr})):state.tokens.next.identifier&&"extends"!==state.tokens.next.value?(this.name=identifier(),this.namedExpr=!0):this.name=state.nameStack.infer(),classtail(this),this}function classtail(c){var wasInClassBody=state.inClassBody;"extends"===state.tokens.next.value&&(advance("extends"),c.heritage=expression(10)),state.inClassBody=!0,advance("{"),c.body=classbody(c),advance("}"),state.inClassBody=wasInClassBody}function classbody(c){for(var name,isStatic,isGenerator,getset,computed,props=Object.create(null),staticProps=Object.create(null),i=0;"}"!==state.tokens.next.id;++i)if(name=state.tokens.next,isStatic=!1,isGenerator=!1,getset=null,";"!==name.id){if("*"===name.id&&(isGenerator=!0,advance("*"),name=state.tokens.next),"["===name.id)name=computedPropertyName(),computed=!0;else{if(!isPropertyName(name)){warning("W052",state.tokens.next,state.tokens.next.value||state.tokens.next.type),advance();continue}advance(),computed=!1,name.identifier&&"static"===name.value&&(checkPunctuator(state.tokens.next,"*")&&(isGenerator=!0,advance("*")),(isPropertyName(state.tokens.next)||"["===state.tokens.next.id)&&(computed="["===state.tokens.next.id,isStatic=!0,name=state.tokens.next,"["===state.tokens.next.id?name=computedPropertyName():advance())),!name.identifier||"get"!==name.value&&"set"!==name.value||(isPropertyName(state.tokens.next)||"["===state.tokens.next.id)&&(computed="["===state.tokens.next.id,getset=name,name=state.tokens.next,"["===state.tokens.next.id?name=computedPropertyName():advance())}if(!checkPunctuator(state.tokens.next,"(")){for(error("E054",state.tokens.next,state.tokens.next.value);"}"!==state.tokens.next.id&&!checkPunctuator(state.tokens.next,"(");)advance();"("!==state.tokens.next.value&&doFunction({statement:c})}if(computed||(getset?saveAccessor(getset.value,isStatic?staticProps:props,name.value,name,!0,isStatic):("constructor"===name.value?state.nameStack.set(c):state.nameStack.set(name),saveProperty(isStatic?staticProps:props,name.value,name,!0,isStatic))),getset&&"constructor"===name.value){var propDesc="get"===getset.value?"class getter method":"class setter method";error("E049",name,propDesc,"constructor")}else"prototype"===name.value&&error("E049",name,"class method","prototype");propertyName(name),doFunction({statement:c,type:isGenerator?"generator":null,classExprBinding:c.namedExpr?c.name:null})}else warning("W032"),advance(";");checkProperties(props)}function saveProperty(props,name,tkn,isClass,isStatic){var msg=["key","class method","static class method"];msg=msg[(isClass||!1)+(isStatic||!1)],tkn.identifier&&(name=tkn.value),props[name]&&"__proto__"!==name?warning("W075",state.tokens.next,msg,name):props[name]=Object.create(null),props[name].basic=!0,props[name].basictkn=tkn}function saveAccessor(accessorType,props,name,tkn,isClass,isStatic){var flagName="get"===accessorType?"getterToken":"setterToken",msg="";isClass?(isStatic&&(msg+="static "),msg+=accessorType+"ter method"):msg="key",state.tokens.curr.accessorType=accessorType,state.nameStack.set(tkn),props[name]?(props[name].basic||props[name][flagName])&&"__proto__"!==name&&warning("W075",state.tokens.next,msg,name):props[name]=Object.create(null),props[name][flagName]=tkn}function computedPropertyName(){advance("["),state.inES6()||warning("W119",state.tokens.curr,"computed property names","6");var value=expression(10);return advance("]"),value}function checkPunctuators(token,values){return"(punctuator)"===token.type?_.contains(values,token.value):!1}function checkPunctuator(token,value){return"(punctuator)"===token.type&&token.value===value}function destructuringAssignOrJsonValue(){var block=lookupBlockType();block.notJson?(!state.inES6()&&block.isDestAssign&&warning("W104",state.tokens.curr,"destructuring assignment","6"),statements()):(state.option.laxbreak=!0,state.jsonMode=!0,jsonValue())}function jsonValue(){function jsonObject(){var o={},t=state.tokens.next;if(advance("{"),"}"!==state.tokens.next.id)for(;;){if("(end)"===state.tokens.next.id)error("E026",state.tokens.next,t.line);else{if("}"===state.tokens.next.id){warning("W094",state.tokens.curr);break}","===state.tokens.next.id?error("E028",state.tokens.next):"(string)"!==state.tokens.next.id&&warning("W095",state.tokens.next,state.tokens.next.value)}if(o[state.tokens.next.value]===!0?warning("W075",state.tokens.next,"key",state.tokens.next.value):"__proto__"===state.tokens.next.value&&!state.option.proto||"__iterator__"===state.tokens.next.value&&!state.option.iterator?warning("W096",state.tokens.next,state.tokens.next.value):o[state.tokens.next.value]=!0,advance(),advance(":"),jsonValue(),","!==state.tokens.next.id)break;advance(",")}advance("}")}function jsonArray(){var t=state.tokens.next;if(advance("["),"]"!==state.tokens.next.id)for(;;){if("(end)"===state.tokens.next.id)error("E027",state.tokens.next,t.line);else{if("]"===state.tokens.next.id){warning("W094",state.tokens.curr);break}","===state.tokens.next.id&&error("E028",state.tokens.next)}if(jsonValue(),","!==state.tokens.next.id)break;advance(",")}advance("]")}switch(state.tokens.next.id){case"{":jsonObject();break;case"[":jsonArray();break;case"true":case"false":case"null":case"(number)":case"(string)":advance();break;case"-":advance("-"),advance("(number)");break;default:error("E003",state.tokens.next)}}var api,declared,functions,inblock,indent,lookahead,lex,member,membersOnly,predefined,stack,urls,bang={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},functionicity=["closure","exception","global","label","outer","unused","var"],extraModules=[],emitter=new events.EventEmitter,typeofValues={};typeofValues.legacy=["xml","unknown"],typeofValues.es3=["undefined","boolean","number","string","function","object"],typeofValues.es3=typeofValues.es3.concat(typeofValues.legacy),typeofValues.es6=typeofValues.es3.concat("symbol"),type("(number)",function(){return this}),type("(string)",function(){return this}),state.syntax["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var v=this.value;return"=>"===state.tokens.next.id?this:(state.funct["(comparray)"].check(v)||state.funct["(scope)"].block.use(v,state.tokens.curr),this)},led:function(){error("E033",state.tokens.next,state.tokens.next.value)}};var baseTemplateSyntax={lbp:0,identifier:!1,template:!0};state.syntax["(template)"]=_.extend({type:"(template)",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!1},baseTemplateSyntax),state.syntax["(template middle)"]=_.extend({type:"(template middle)",middle:!0,noSubst:!1},baseTemplateSyntax),state.syntax["(template tail)"]=_.extend({type:"(template tail)",tail:!0,noSubst:!1},baseTemplateSyntax),state.syntax["(no subst template)"]=_.extend({type:"(template)",nud:doTemplateLiteral,led:doTemplateLiteral,noSubst:!0,tail:!0},baseTemplateSyntax),type("(regexp)",function(){return this}),delim("(endline)"),delim("(begin)"),delim("(end)").reach=!0,delim("(error)").reach=!0,delim("}").reach=!0,delim(")"),delim("]"),delim(\'"\').reach=!0,delim("\'").reach=!0,delim(";"),delim(":").reach=!0,delim("#"),reserve("else"),reserve("case").reach=!0,reserve("catch"),reserve("default").reach=!0,reserve("finally"),reservevar("arguments",function(x){state.isStrict()&&state.funct["(global)"]&&warning("E008",x)}),reservevar("eval"),reservevar("false"),reservevar("Infinity"),reservevar("null"),reservevar("this",function(x){state.isStrict()&&!isMethod()&&!state.option.validthis&&(state.funct["(statement)"]&&state.funct["(name)"].charAt(0)>"Z"||state.funct["(global)"])&&warning("W040",x)}),reservevar("true"),reservevar("undefined"),assignop("=","assign",20),assignop("+=","assignadd",20),assignop("-=","assignsub",20),assignop("*=","assignmult",20),assignop("/=","assigndiv",20).nud=function(){error("E014")},assignop("%=","assignmod",20),bitwiseassignop("&="),bitwiseassignop("|="),bitwiseassignop("^="),bitwiseassignop("<<="),bitwiseassignop(">>="),bitwiseassignop(">>>="),infix(",",function(left,that){var expr;if(that.exprs=[left],state.option.nocomma&&warning("W127"),!comma({peek:!0}))return that;for(;;){if(!(expr=expression(10)))break;if(that.exprs.push(expr),","!==state.tokens.next.value||!comma())break}return that},10,!0),infix("?",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(10),advance(":"),that["else"]=expression(10),that},30);var orPrecendence=40;infix("||",function(left,that){return increaseComplexityCount(),that.left=left,that.right=expression(orPrecendence),that},orPrecendence),infix("&&","and",50),bitwise("|","bitor",70),bitwise("^","bitxor",80),bitwise("&","bitand",90),relation("==",function(left,right){var eqnull=state.option.eqnull&&("null"===(left&&left.value)||"null"===(right&&right.value));switch(!0){case!eqnull&&state.option.eqeqeq:this.from=this.character,warning("W116",this,"===","==");break;case isPoorRelation(left):warning("W041",this,"===",left.value);break;case isPoorRelation(right):warning("W041",this,"===",right.value);break;case isTypoTypeof(right,left,state):warning("W122",this,right.value);break;case isTypoTypeof(left,right,state):warning("W122",this,left.value)}return this}),relation("===",function(left,right){return isTypoTypeof(right,left,state)?warning("W122",this,right.value):isTypoTypeof(left,right,state)&&warning("W122",this,left.value),this}),relation("!=",function(left,right){var eqnull=state.option.eqnull&&("null"===(left&&left.value)||"null"===(right&&right.value));return!eqnull&&state.option.eqeqeq?(this.from=this.character,warning("W116",this,"!==","!=")):isPoorRelation(left)?warning("W041",this,"!==",left.value):isPoorRelation(right)?warning("W041",this,"!==",right.value):isTypoTypeof(right,left,state)?warning("W122",this,right.value):isTypoTypeof(left,right,state)&&warning("W122",this,left.value),this}),relation("!==",function(left,right){return isTypoTypeof(right,left,state)?warning("W122",this,right.value):isTypoTypeof(left,right,state)&&warning("W122",this,left.value),this}),relation("<"),relation(">"),relation("<="),relation(">="),bitwise("<<","shiftleft",120),bitwise(">>","shiftright",120),bitwise(">>>","shiftrightunsigned",120),infix("in","in",120),infix("instanceof","instanceof",120),infix("+",function(left,that){var right;return that.left=left,that.right=right=expression(130),left&&right&&"(string)"===left.id&&"(string)"===right.id?(left.value+=right.value,left.character=right.character,!state.option.scripturl&®.javascriptURL.test(left.value)&&warning("W050",left),left):that},130),prefix("+","num"),prefix("+++",function(){return warning("W007"),this.arity="unary",this.right=expression(150),this}),infix("+++",function(left){return warning("W007"),this.left=left,this.right=expression(130),this},130),infix("-","sub",130),prefix("-","neg"),prefix("---",function(){return warning("W006"),this.arity="unary",this.right=expression(150),this}),infix("---",function(left){return warning("W006"),this.left=left,this.right=expression(130),this},130),infix("*","mult",140),infix("/","div",140),infix("%","mod",140),suffix("++"),prefix("++","preinc"),state.syntax["++"].exps=!0,suffix("--"),prefix("--","predec"),state.syntax["--"].exps=!0,prefix("delete",function(){var p=expression(10);return p?("."!==p.id&&"["!==p.id&&warning("W051"),this.first=p,p.identifier&&!state.isStrict()&&(p.forgiveUndef=!0),this):this}).exps=!0,prefix("~",function(){return state.option.bitwise&&warning("W016",this,"~"),this.arity="unary",this.right=expression(150),this}),prefix("...",function(){return state.inES6(!0)||warning("W119",this,"spread/rest operator","6"),state.tokens.next.identifier||"(string)"===state.tokens.next.type||checkPunctuators(state.tokens.next,["[","("])||error("E030",state.tokens.next,state.tokens.next.value),expression(150),this}),prefix("!",function(){return this.arity="unary",this.right=expression(150),this.right||quit("E041",this.line||0),bang[this.right.id]===!0&&warning("W018",this,"!"),this}),prefix("typeof",function(){var p=expression(150);return this.first=this.right=p,p||quit("E041",this.line||0,this.character||0),p.identifier&&(p.forgiveUndef=!0),this}),prefix("new",function(){var mp=metaProperty("target",function(){state.inES6(!0)||warning("W119",state.tokens.prev,"new.target","6");for(var inFunction,c=state.funct;c&&(inFunction=!c["(global)"],c["(arrow)"]);)c=c["(context)"];inFunction||warning("W136",state.tokens.prev,"new.target")});if(mp)return mp;var i,c=expression(155);if(c&&"function"!==c.id)if(c.identifier)switch(c["new"]=!0,c.value){case"Number":case"String":case"Boolean":case"Math":case"JSON":warning("W053",state.tokens.prev,c.value);break;case"Symbol":state.inES6()&&warning("W053",state.tokens.prev,c.value);break;case"Function":state.option.evil||warning("W054");break;case"Date":case"RegExp":case"this":break;default:"function"!==c.id&&(i=c.value.substr(0,1),state.option.newcap&&("A">i||i>"Z")&&!state.funct["(scope)"].isPredefined(c.value)&&warning("W055",state.tokens.curr))}else"."!==c.id&&"["!==c.id&&"("!==c.id&&warning("W056",state.tokens.curr);else state.option.supernew||warning("W057",this);return"("===state.tokens.next.id||state.option.supernew||warning("W058",state.tokens.curr,state.tokens.curr.value),this.first=this.right=c,this}),state.syntax["new"].exps=!0,prefix("void").exps=!0,infix(".",function(left,that){var m=identifier(!1,!0);return"string"==typeof m&&countMember(m),that.left=left,that.right=m,m&&"hasOwnProperty"===m&&"="===state.tokens.next.value&&warning("W001"),!left||"arguments"!==left.value||"callee"!==m&&"caller"!==m?state.option.evil||!left||"document"!==left.value||"write"!==m&&"writeln"!==m||warning("W060",left):state.option.noarg?warning("W059",left,m):state.isStrict()&&error("E008"),state.option.evil||"eval"!==m&&"execScript"!==m||isGlobalEval(left,state)&&warning("W061"),that},160,!0),infix("(",function(left,that){state.option.immed&&left&&!left.immed&&"function"===left.id&&warning("W062");var n=0,p=[];if(left&&"(identifier)"===left.type&&left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&-1==="Array Number String Boolean Date Object Error Symbol".indexOf(left.value)&&("Math"===left.value?warning("W063",left):state.option.newcap&&warning("W064",left)),")"!==state.tokens.next.id)for(;p[p.length]=expression(10),n+=1,","===state.tokens.next.id;)comma();return advance(")"),"object"==typeof left&&(state.inES5()||"parseInt"!==left.value||1!==n||warning("W065",state.tokens.curr),state.option.evil||("eval"===left.value||"Function"===left.value||"execScript"===left.value?(warning("W061",left),p[0]&&"(string)"===[0].id&&addInternalSrc(left,p[0].value)):!p[0]||"(string)"!==p[0].id||"setTimeout"!==left.value&&"setInterval"!==left.value?!p[0]||"(string)"!==p[0].id||"."!==left.value||"window"!==left.left.value||"setTimeout"!==left.right&&"setInterval"!==left.right||(warning("W066",left),addInternalSrc(left,p[0].value)):(warning("W066",left),addInternalSrc(left,p[0].value))),left.identifier||"."===left.id||"["===left.id||"=>"===left.id||"("===left.id||"&&"===left.id||"||"===left.id||"?"===left.id||state.inES6()&&left["(name)"]||warning("W067",that)),that.left=left,that},155,!0).exps=!0,prefix("(",function(){var pn1,ret,triggerFnExpr,first,last,pn=state.tokens.next,i=-1,parens=1,opening=state.tokens.curr,preceeding=state.tokens.prev,isNecessary=!state.option.singleGroups;do"("===pn.value?parens+=1:")"===pn.value&&(parens-=1),i+=1,pn1=pn,pn=peek(i);while((0!==parens||")"!==pn1.value)&&";"!==pn.value&&"(end)"!==pn.type);if("function"===state.tokens.next.id&&(triggerFnExpr=state.tokens.next.immed=!0),"=>"===pn.value)return doFunction({type:"arrow",parsedOpening:!0});var exprs=[];if(")"!==state.tokens.next.id)for(;exprs.push(expression(10)),","===state.tokens.next.id;)state.option.nocomma&&warning("W127"),comma();return advance(")",this),state.option.immed&&exprs[0]&&"function"===exprs[0].id&&"("!==state.tokens.next.id&&"."!==state.tokens.next.id&&"["!==state.tokens.next.id&&warning("W068",this),exprs.length?(exprs.length>1?(ret=Object.create(state.syntax[","]),ret.exprs=exprs,first=exprs[0],last=exprs[exprs.length-1],isNecessary||(isNecessary=preceeding.assign||preceeding.delim)):(ret=first=last=exprs[0],isNecessary||(isNecessary=opening.beginsStmt&&("{"===ret.id||triggerFnExpr||isFunctor(ret))||triggerFnExpr&&(!isEndOfExpr()||"}"!==state.tokens.prev.id)||isFunctor(ret)&&!isEndOfExpr()||"{"===ret.id&&"=>"===preceeding.id||"(number)"===ret.type&&checkPunctuator(pn,".")&&/^\\d+$/.test(ret.value))),ret&&(!isNecessary&&(first.left||first.right||ret.exprs)&&(isNecessary=!isBeginOfExpr(preceeding)&&first.lbp<=preceeding.lbp||!isEndOfExpr()&&last.lbp"),infix("[",function(left,that){var s,e=expression(10);return e&&"(string)"===e.type&&(state.option.evil||"eval"!==e.value&&"execScript"!==e.value||isGlobalEval(left,state)&&warning("W061"),countMember(e.value),!state.option.sub&®.identifier.test(e.value)&&(s=state.syntax[e.value],s&&isReserved(s)||warning("W069",state.tokens.prev,e.value))),advance("]",that),e&&"hasOwnProperty"===e.value&&"="===state.tokens.next.value&&warning("W001"),that.left=left,that.right=e,that},160,!0),prefix("[",function(){var blocktype=lookupBlockType();if(blocktype.isCompArray)return state.option.esnext||state.inMoz()||warning("W118",state.tokens.curr,"array comprehension"),comprehensiveArrayExpression();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;var b=state.tokens.curr.line!==startLine(state.tokens.next);for(this.first=[],b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));"(end)"!==state.tokens.next.id;){for(;","===state.tokens.next.id;){if(!state.option.elision){if(state.inES5()){warning("W128");do advance(",");while(","===state.tokens.next.id);continue}warning("W070")}advance(",")}if("]"===state.tokens.next.id)break;if(this.first.push(expression(10)),","!==state.tokens.next.id)break;if(comma({allowTrailing:!0}),"]"===state.tokens.next.id&&!state.inES5()){warning("W070",state.tokens.curr);break}}return b&&(indent-=state.option.indent),advance("]",this),this}),function(x){x.nud=function(){var b,f,i,p,t,nextVal,isGeneratorMethod=!1,props=Object.create(null);b=state.tokens.curr.line!==startLine(state.tokens.next),b&&(indent+=state.option.indent,state.tokens.next.from===indent+state.option.indent&&(indent+=state.option.indent));var blocktype=lookupBlockType();if(blocktype.isDestAssign)return this.destructAssign=destructuringPattern({openingParsed:!0,assignment:!0}),this;for(;"}"!==state.tokens.next.id;){if(nextVal=state.tokens.next.value,!state.tokens.next.identifier||","!==peekIgnoreEOL().id&&"}"!==peekIgnoreEOL().id)if(":"===peek().id||"get"!==nextVal&&"set"!==nextVal){if("*"===state.tokens.next.value&&"(punctuator)"===state.tokens.next.type?(state.inES6()||warning("W104",state.tokens.next,"generator functions","6"),advance("*"),isGeneratorMethod=!0):isGeneratorMethod=!1,"["===state.tokens.next.id)i=computedPropertyName(),state.nameStack.set(i);else if(state.nameStack.set(state.tokens.next),i=propertyName(),saveProperty(props,i,state.tokens.next),"string"!=typeof i)break;"("===state.tokens.next.value?(state.inES6()||warning("W104",state.tokens.curr,"concise methods","6"),doFunction({type:isGeneratorMethod?"generator":null})):(advance(":"),expression(10))}else advance(nextVal),state.inES5()||error("E034"),i=propertyName(),i||state.inES6()||error("E035"),i&&saveAccessor(nextVal,props,i,state.tokens.curr),t=state.tokens.next,f=doFunction(),p=f["(params)"],"get"===nextVal&&i&&p?warning("W076",t,p[0],i):"set"!==nextVal||!i||p&&1===p.length||warning("W077",t,i);else state.inES6()||warning("W104",state.tokens.next,"object short notation","6"),i=propertyName(!0),saveProperty(props,i,state.tokens.next),expression(10);if(countMember(i),","!==state.tokens.next.id)break;comma({allowTrailing:!0,property:!0}),","===state.tokens.next.id?warning("W070",state.tokens.curr):"}"!==state.tokens.next.id||state.inES5()||warning("W070",state.tokens.curr)}return b&&(indent-=state.option.indent),advance("}",this),checkProperties(props),this},x.fud=function(){error("E036",state.tokens.curr)}}(delim("{"));var conststatement=stmt("const",function(context){return blockVariableStatement("const",this,context)});conststatement.exps=!0;var letstatement=stmt("let",function(context){return blockVariableStatement("let",this,context)});letstatement.exps=!0;var varstatement=stmt("var",function(context){var tokens,lone,value,prefix=context&&context.prefix,inexport=context&&context.inexport,implied=context&&context.implied,report=!(context&&context.ignore);for(this.first=[];;){var names=[];_.contains(["{","["],state.tokens.next.value)?(tokens=destructuringPattern(),lone=!1):(tokens=[{id:identifier(),token:state.tokens.curr}],lone=!0),prefix&&implied||!report||!state.option.varstmt||warning("W132",this),this.first=this.first.concat(names);for(var t in tokens)tokens.hasOwnProperty(t)&&(t=tokens[t],!implied&&state.funct["(global)"]&&(predefined[t.id]===!1?warning("W079",t.token,t.id):state.option.futurehostile===!1&&(!state.inES5()&&vars.ecmaIdentifiers[5][t.id]===!1||!state.inES6()&&vars.ecmaIdentifiers[6][t.id]===!1)&&warning("W129",t.token,t.id)),t.id&&("for"===implied?(state.funct["(scope)"].has(t.id)||report&&warning("W088",t.token,t.id),state.funct["(scope)"].block.use(t.id,t.token)):(state.funct["(scope)"].addlabel(t.id,{type:"var",token:t.token}),lone&&inexport&&state.funct["(scope)"].setExported(t.id,t.token)),names.push(t.token)));if("="===state.tokens.next.id&&(state.nameStack.set(state.tokens.curr),advance("="),prefix||!report||state.funct["(loopage)"]||"undefined"!==state.tokens.next.id||warning("W080",state.tokens.prev,state.tokens.prev.value),"="===peek(0).id&&state.tokens.next.identifier&&(!prefix&&report&&!state.funct["(params)"]||-1===state.funct["(params)"].indexOf(state.tokens.next.value))&&warning("W120",state.tokens.next,state.tokens.next.value),value=expression(prefix?120:10),lone?tokens[0].first=value:destructuringPatternMatch(names,value)),","!==state.tokens.next.id)break;comma()}return this});varstatement.exps=!0,blockstmt("class",function(){return classdef.call(this,!0)}),blockstmt("function",function(context){var inexport=context&&context.inexport,generator=!1;"*"===state.tokens.next.value&&(advance("*"),state.inES6({strict:!0})?generator=!0:warning("W119",state.tokens.curr,"function*","6")),inblock&&warning("W082",state.tokens.curr);var i=optionalidentifier();return state.funct["(scope)"].addlabel(i,{type:"function",token:state.tokens.curr}),void 0===i?warning("W025"):inexport&&state.funct["(scope)"].setExported(i,state.tokens.prev),doFunction({name:i,statement:this,type:generator?"generator":null,ignoreLoopFunc:inblock}),"("===state.tokens.next.id&&state.tokens.next.line===state.tokens.curr.line&&error("E039"),this}),prefix("function",function(){var generator=!1;"*"===state.tokens.next.value&&(state.inES6()||warning("W119",state.tokens.curr,"function*","6"),advance("*"),generator=!0);var i=optionalidentifier();return doFunction({name:i,type:generator?"generator":null}),this}),blockstmt("if",function(){var t=state.tokens.next;increaseComplexityCount(),state.condition=!0,advance("(");var expr=expression(0);checkCondAssignment(expr);var forinifcheck=null;state.option.forin&&state.forinifcheckneeded&&(state.forinifcheckneeded=!1,forinifcheck=state.forinifchecks[state.forinifchecks.length-1],forinifcheck.type="(punctuator)"===expr.type&&"!"===expr.value?"(negative)":"(positive)"),advance(")",t),state.condition=!1;var s=block(!0,!0);return forinifcheck&&"(negative)"===forinifcheck.type&&s&&s[0]&&"(identifier)"===s[0].type&&"continue"===s[0].value&&(forinifcheck.type="(negative-with-continue)"),"else"===state.tokens.next.id&&(advance("else"),"if"===state.tokens.next.id||"switch"===state.tokens.next.id?statement():block(!0,!0)),this}),blockstmt("try",function(){function doCatch(){if(advance("catch"),advance("("),state.funct["(scope)"].stack("catchparams"),checkPunctuators(state.tokens.next,["[","{"])){var tokens=destructuringPattern();_.each(tokens,function(token){token.id&&state.funct["(scope)"].addParam(token.id,token,"exception")})}else"(identifier)"!==state.tokens.next.type?warning("E030",state.tokens.next,state.tokens.next.value):state.funct["(scope)"].addParam(identifier(),state.tokens.curr,"exception");"if"===state.tokens.next.value&&(state.inMoz()||warning("W118",state.tokens.curr,"catch filter"),advance("if"),expression(0)),advance(")"),block(!1),state.funct["(scope)"].unstack()}var b;for(block(!0);"catch"===state.tokens.next.id;)increaseComplexityCount(),b&&!state.inMoz()&&warning("W118",state.tokens.next,"multiple catch blocks"),doCatch(),b=!0;return"finally"===state.tokens.next.id?(advance("finally"),block(!0),void 0):(b||error("E021",state.tokens.next,"catch",state.tokens.next.value),this)}),blockstmt("while",function(){var t=state.tokens.next;return state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,increaseComplexityCount(),advance("("),checkCondAssignment(expression(0)),advance(")",t),block(!0,!0),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1,this}).labelled=!0,blockstmt("with",function(){var t=state.tokens.next;return state.isStrict()?error("E010",state.tokens.curr):state.option.withstmt||warning("W085",state.tokens.curr),advance("("),expression(0),advance(")",t),block(!0,!0),this}),blockstmt("switch",function(){var t=state.tokens.next,g=!1,noindent=!1;\nfor(state.funct["(breakage)"]+=1,advance("("),checkCondAssignment(expression(0)),advance(")",t),t=state.tokens.next,advance("{"),state.tokens.next.from===indent&&(noindent=!0),noindent||(indent+=state.option.indent),this.cases=[];;)switch(state.tokens.next.id){case"case":switch(state.funct["(verb)"]){case"yield":case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:state.tokens.curr.caseFallsThrough||warning("W086",state.tokens.curr,"case")}advance("case"),this.cases.push(expression(0)),increaseComplexityCount(),g=!0,advance(":"),state.funct["(verb)"]="case";break;case"default":switch(state.funct["(verb)"]){case"yield":case"break":case"continue":case"return":case"throw":break;default:this.cases.length&&(state.tokens.curr.caseFallsThrough||warning("W086",state.tokens.curr,"default"))}advance("default"),g=!0,advance(":");break;case"}":return noindent||(indent-=state.option.indent),advance("}",t),state.funct["(breakage)"]-=1,state.funct["(verb)"]=void 0,void 0;case"(end)":return error("E023",state.tokens.next,"}"),void 0;default:if(indent+=state.option.indent,g)switch(state.tokens.curr.id){case",":return error("E040"),void 0;case":":g=!1,statements();break;default:return error("E025",state.tokens.curr),void 0}else{if(":"!==state.tokens.curr.id)return error("E021",state.tokens.next,"case",state.tokens.next.value),void 0;advance(":"),error("E024",state.tokens.curr,":"),statements()}indent-=state.option.indent}return this}).labelled=!0,stmt("debugger",function(){return state.option.debug||warning("W087",this),this}).exps=!0,function(){var x=stmt("do",function(){state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,increaseComplexityCount(),this.first=block(!0,!0),advance("while");var t=state.tokens.next;return advance("("),checkCondAssignment(expression(0)),advance(")",t),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1,this});x.labelled=!0,x.exps=!0}(),blockstmt("for",function(){var s,t=state.tokens.next,letscope=!1,foreachtok=null;"each"===t.value&&(foreachtok=t,advance("each"),state.inMoz()||warning("W118",state.tokens.curr,"for each")),increaseComplexityCount(),advance("(");var nextop,comma,initializer,i=0,inof=["in","of"],level=0;checkPunctuators(state.tokens.next,["{","["])&&++level;do{if(nextop=peek(i),++i,checkPunctuators(nextop,["{","["])?++level:checkPunctuators(nextop,["}","]"])&&--level,0>level)break;0===level&&(!comma&&checkPunctuator(nextop,",")?comma=nextop:!initializer&&checkPunctuator(nextop,"=")&&(initializer=nextop))}while(level>0||!_.contains(inof,nextop.value)&&";"!==nextop.value&&"(end)"!==nextop.type);if(_.contains(inof,nextop.value)){state.inES6()||"of"!==nextop.value||warning("W104",nextop,"for of","6");var ok=!(initializer||comma);if(initializer&&error("W133",comma,nextop.value,"initializer is forbidden"),comma&&error("W133",comma,nextop.value,"more than one ForBinding"),"var"===state.tokens.next.id?(advance("var"),state.tokens.curr.fud({prefix:!0})):"let"===state.tokens.next.id||"const"===state.tokens.next.id?(advance(state.tokens.next.id),letscope=!0,state.funct["(scope)"].stack(),state.tokens.curr.fud({prefix:!0})):Object.create(varstatement).fud({prefix:!0,implied:"for",ignore:!ok}),advance(nextop.value),expression(20),advance(")",t),"in"===nextop.value&&state.option.forin&&(state.forinifcheckneeded=!0,void 0===state.forinifchecks&&(state.forinifchecks=[]),state.forinifchecks.push({type:"(none)"})),state.funct["(breakage)"]+=1,state.funct["(loopage)"]+=1,s=block(!0,!0),"in"===nextop.value&&state.option.forin){if(state.forinifchecks&&state.forinifchecks.length>0){var check=state.forinifchecks.pop();(s&&s.length>0&&("object"!=typeof s[0]||"if"!==s[0].value)||"(positive)"===check.type&&s.length>1||"(negative)"===check.type)&&warning("W089",this)}state.forinifcheckneeded=!1}state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1}else{if(foreachtok&&error("E045",foreachtok),";"!==state.tokens.next.id)if("var"===state.tokens.next.id)advance("var"),state.tokens.curr.fud();else if("let"===state.tokens.next.id)advance("let"),letscope=!0,state.funct["(scope)"].stack(),state.tokens.curr.fud();else for(;expression(0,"for"),","===state.tokens.next.id;)comma();if(nolinebreak(state.tokens.curr),advance(";"),state.funct["(loopage)"]+=1,";"!==state.tokens.next.id&&checkCondAssignment(expression(0)),nolinebreak(state.tokens.curr),advance(";"),";"===state.tokens.next.id&&error("E021",state.tokens.next,")",";"),")"!==state.tokens.next.id)for(;expression(0,"for"),","===state.tokens.next.id;)comma();advance(")",t),state.funct["(breakage)"]+=1,block(!0,!0),state.funct["(breakage)"]-=1,state.funct["(loopage)"]-=1}return letscope&&state.funct["(scope)"].unstack(),this}).labelled=!0,stmt("break",function(){var v=state.tokens.next.value;return state.option.asi||nolinebreak(this),";"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line!==startLine(state.tokens.next)?0===state.funct["(breakage)"]&&warning("W052",state.tokens.next,this.value):(state.funct["(scope)"].funct.hasBreakLabel(v)||warning("W090",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt("continue",function(){var v=state.tokens.next.value;return 0===state.funct["(breakage)"]&&warning("W052",state.tokens.next,this.value),state.funct["(loopage)"]||warning("W052",state.tokens.next,this.value),state.option.asi||nolinebreak(this),";"===state.tokens.next.id||state.tokens.next.reach||state.tokens.curr.line===startLine(state.tokens.next)&&(state.funct["(scope)"].funct.hasBreakLabel(v)||warning("W090",state.tokens.next,v),this.first=state.tokens.next,advance()),reachable(this),this}).exps=!0,stmt("return",function(){return this.line===startLine(state.tokens.next)?";"===state.tokens.next.id||state.tokens.next.reach||(this.first=expression(0),!this.first||"(punctuator)"!==this.first.type||"="!==this.first.value||this.first.paren||state.option.boss||warningAt("W093",this.first.line,this.first.character)):"(punctuator)"===state.tokens.next.type&&["[","{","+","-"].indexOf(state.tokens.next.value)>-1&&nolinebreak(this),reachable(this),this}).exps=!0,function(x){x.exps=!0,x.lbp=25}(prefix("yield",function(){var prev=state.tokens.prev;state.inES6(!0)&&!state.funct["(generator)"]?"(catch)"===state.funct["(name)"]&&state.funct["(context)"]["(generator)"]||error("E046",state.tokens.curr,"yield"):state.inES6()||warning("W104",state.tokens.curr,"yield","6"),state.funct["(generator)"]="yielded";var delegatingYield=!1;return"*"===state.tokens.next.value&&(delegatingYield=!0,advance("*")),this.line!==startLine(state.tokens.next)&&state.inMoz()?state.option.asi||nolinebreak(this):((delegatingYield||";"!==state.tokens.next.id&&!state.option.asi&&!state.tokens.next.reach&&state.tokens.next.nud)&&(nobreaknonadjacent(state.tokens.curr,state.tokens.next),this.first=expression(10),"(punctuator)"!==this.first.type||"="!==this.first.value||this.first.paren||state.option.boss||warningAt("W093",this.first.line,this.first.character)),state.inMoz()&&")"!==state.tokens.next.id&&(prev.lbp>30||!prev.assign&&!isEndOfExpr()||"yield"===prev.id)&&error("E050",this)),this})),stmt("throw",function(){return nolinebreak(this),this.first=expression(20),reachable(this),this}).exps=!0,stmt("import",function(){if(state.inES6()||warning("W119",state.tokens.curr,"import","6"),"(string)"===state.tokens.next.type)return advance("(string)"),this;if(state.tokens.next.identifier){if(this.name=identifier(),state.funct["(scope)"].addlabel(this.name,{type:"const",token:state.tokens.curr}),","!==state.tokens.next.value)return advance("from"),advance("(string)"),this;advance(",")}if("*"===state.tokens.next.id)advance("*"),advance("as"),state.tokens.next.identifier&&(this.name=identifier(),state.funct["(scope)"].addlabel(this.name,{type:"const",token:state.tokens.curr}));else for(advance("{");;){if("}"===state.tokens.next.value){advance("}");break}var importName;if("default"===state.tokens.next.type?(importName="default",advance("default")):importName=identifier(),"as"===state.tokens.next.value&&(advance("as"),importName=identifier()),state.funct["(scope)"].addlabel(importName,{type:"const",token:state.tokens.curr}),","!==state.tokens.next.value){if("}"===state.tokens.next.value){advance("}");break}error("E024",state.tokens.next,state.tokens.next.value);break}advance(",")}return advance("from"),advance("(string)"),this}).exps=!0,stmt("export",function(){var token,identifier,ok=!0;if(state.inES6()||(warning("W119",state.tokens.curr,"export","6"),ok=!1),state.funct["(scope)"].block.isGlobal()||(error("E053",state.tokens.curr),ok=!1),"*"===state.tokens.next.value)return advance("*"),advance("from"),advance("(string)"),this;if("default"===state.tokens.next.type){state.nameStack.set(state.tokens.next),advance("default");var exportType=state.tokens.next.id;return("function"===exportType||"class"===exportType)&&(this.block=!0),token=peek(),expression(10),identifier=token.value,this.block&&(state.funct["(scope)"].addlabel(identifier,{type:exportType,token:token}),state.funct["(scope)"].setExported(identifier,token)),this}if("{"===state.tokens.next.value){advance("{");for(var exportedTokens=[];;){if(state.tokens.next.identifier||error("E030",state.tokens.next,state.tokens.next.value),advance(),exportedTokens.push(state.tokens.curr),"as"===state.tokens.next.value&&(advance("as"),state.tokens.next.identifier||error("E030",state.tokens.next,state.tokens.next.value),advance()),","!==state.tokens.next.value){if("}"===state.tokens.next.value){advance("}");break}error("E024",state.tokens.next,state.tokens.next.value);break}advance(",")}return"from"===state.tokens.next.value?(advance("from"),advance("(string)")):ok&&exportedTokens.forEach(function(token){state.funct["(scope)"].setExported(token.value,token)}),this}if("var"===state.tokens.next.id)advance("var"),state.tokens.curr.fud({inexport:!0});else if("let"===state.tokens.next.id)advance("let"),state.tokens.curr.fud({inexport:!0});else if("const"===state.tokens.next.id)advance("const"),state.tokens.curr.fud({inexport:!0});else if("function"===state.tokens.next.id)this.block=!0,advance("function"),state.syntax["function"].fud({inexport:!0});else if("class"===state.tokens.next.id){this.block=!0,advance("class");var classNameToken=state.tokens.next;state.syntax["class"].fud(),state.funct["(scope)"].setExported(classNameToken.value,classNameToken)}else error("E024",state.tokens.next,state.tokens.next.value);return this}).exps=!0,FutureReservedWord("abstract"),FutureReservedWord("boolean"),FutureReservedWord("byte"),FutureReservedWord("char"),FutureReservedWord("class",{es5:!0,nud:classdef}),FutureReservedWord("double"),FutureReservedWord("enum",{es5:!0}),FutureReservedWord("export",{es5:!0}),FutureReservedWord("extends",{es5:!0}),FutureReservedWord("final"),FutureReservedWord("float"),FutureReservedWord("goto"),FutureReservedWord("implements",{es5:!0,strictOnly:!0}),FutureReservedWord("import",{es5:!0}),FutureReservedWord("int"),FutureReservedWord("interface",{es5:!0,strictOnly:!0}),FutureReservedWord("long"),FutureReservedWord("native"),FutureReservedWord("package",{es5:!0,strictOnly:!0}),FutureReservedWord("private",{es5:!0,strictOnly:!0}),FutureReservedWord("protected",{es5:!0,strictOnly:!0}),FutureReservedWord("public",{es5:!0,strictOnly:!0}),FutureReservedWord("short"),FutureReservedWord("static",{es5:!0,strictOnly:!0}),FutureReservedWord("super",{es5:!0}),FutureReservedWord("synchronized"),FutureReservedWord("transient"),FutureReservedWord("volatile");var lookupBlockType=function(){var pn,pn1,prev,i=-1,bracketStack=0,ret={};checkPunctuators(state.tokens.curr,["[","{"])&&(bracketStack+=1);do{if(prev=-1===i?state.tokens.curr:pn,pn=-1===i?state.tokens.next:peek(i),pn1=peek(i+1),i+=1,checkPunctuators(pn,["[","{"])?bracketStack+=1:checkPunctuators(pn,["]","}"])&&(bracketStack-=1),1===bracketStack&&pn.identifier&&"for"===pn.value&&!checkPunctuator(prev,".")){ret.isCompArray=!0,ret.notJson=!0;break}if(0===bracketStack&&checkPunctuators(pn,["}","]"])){if("="===pn1.value){ret.isDestAssign=!0,ret.notJson=!0;break}if("."===pn1.value){ret.notJson=!0;break}}checkPunctuator(pn,";")&&(ret.isBlock=!0,ret.notJson=!0)}while(bracketStack>0&&"(end)"!==pn.id);return ret},arrayComprehension=function(){function declare(v){var l=_current.variables.filter(function(elt){return elt.value===v?(elt.undef=!1,v):void 0}).length;return 0!==l}function use(v){var l=_current.variables.filter(function(elt){return elt.value!==v||elt.undef?void 0:(elt.unused===!0&&(elt.unused=!1),v)}).length;return 0===l}var _current,CompArray=function(){this.mode="use",this.variables=[]},_carrays=[];return{stack:function(){_current=new CompArray,_carrays.push(_current)},unstack:function(){_current.variables.filter(function(v){v.unused&&warning("W098",v.token,v.raw_text||v.value),v.undef&&state.funct["(scope)"].block.use(v.value,v.token)}),_carrays.splice(-1,1),_current=_carrays[_carrays.length-1]},setState:function(s){_.contains(["use","define","generate","filter"],s)&&(_current.mode=s)},check:function(v){return _current?_current&&"use"===_current.mode?(use(v)&&_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!0,unused:!1}),!0):_current&&"define"===_current.mode?(declare(v)||_current.variables.push({funct:state.funct,token:state.tokens.curr,value:v,undef:!1,unused:!0}),!0):_current&&"generate"===_current.mode?(state.funct["(scope)"].block.use(v,state.tokens.curr),!0):_current&&"filter"===_current.mode?(use(v)&&state.funct["(scope)"].block.use(v,state.tokens.curr),!0):!1:void 0}}},escapeRegex=function(str){return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,"\\\\$&")},itself=function(s,o,g){function each(obj,cb){obj&&(Array.isArray(obj)||"object"!=typeof obj||(obj=Object.keys(obj)),obj.forEach(cb))}var i,k,x,reIgnoreStr,reIgnore,optionKeys,newOptionObj={},newIgnoredObj={};o=_.clone(o),state.reset(),o&&o.scope?JSHINT.scope=o.scope:(JSHINT.errors=[],JSHINT.undefs=[],JSHINT.internals=[],JSHINT.blacklist={},JSHINT.scope="(main)"),predefined=Object.create(null),combine(predefined,vars.ecmaIdentifiers[3]),combine(predefined,vars.reservedVars),combine(predefined,g||{}),declared=Object.create(null);var exported=Object.create(null);if(o)for(each(o.predef||null,function(item){var slice,prop;"-"===item[0]?(slice=item.slice(1),JSHINT.blacklist[slice]=slice,delete predefined[slice]):(prop=Object.getOwnPropertyDescriptor(o.predef,item),predefined[item]=prop?prop.value:!1)}),each(o.exported||null,function(item){exported[item]=!0}),delete o.predef,delete o.exported,optionKeys=Object.keys(o),x=0;optionKeys.length>x;x++)if(/^-W\\d{3}$/g.test(optionKeys[x]))newIgnoredObj[optionKeys[x].slice(1)]=!0;else{var optionKey=optionKeys[x];newOptionObj[optionKey]=o[optionKey],("esversion"===optionKey&&5===o[optionKey]||"es5"===optionKey&&o[optionKey])&&warning("I003"),"newcap"===optionKeys[x]&&o[optionKey]===!1&&(newOptionObj["(explicitNewcap)"]=!0)}state.option=newOptionObj,state.ignored=newIgnoredObj,state.option.indent=state.option.indent||4,state.option.maxerr=state.option.maxerr||50,indent=1;var scopeManagerInst=scopeManager(state,predefined,exported,declared);if(scopeManagerInst.on("warning",function(ev){warning.apply(null,[ev.code,ev.token].concat(ev.data))}),scopeManagerInst.on("error",function(ev){error.apply(null,[ev.code,ev.token].concat(ev.data))}),state.funct=functor("(global)",null,{"(global)":!0,"(scope)":scopeManagerInst,"(comparray)":arrayComprehension(),"(metrics)":createMetrics(state.tokens.next)}),functions=[state.funct],urls=[],stack=null,member={},membersOnly=null,inblock=!1,lookahead=[],!isString(s)&&!Array.isArray(s))return errorAt("E004",0),!1;api={get isJSON(){return state.jsonMode},getOption:function(name){return state.option[name]||null},getCache:function(name){return state.cache[name]},setCache:function(name,value){state.cache[name]=value},warn:function(code,data){warningAt.apply(null,[code,data.line,data.char].concat(data.data))},on:function(names,listener){names.split(" ").forEach(function(name){emitter.on(name,listener)}.bind(this))}},emitter.removeAllListeners(),(extraModules||[]).forEach(function(func){func(api)}),state.tokens.prev=state.tokens.curr=state.tokens.next=state.syntax["(begin)"],o&&o.ignoreDelimiters&&(Array.isArray(o.ignoreDelimiters)||(o.ignoreDelimiters=[o.ignoreDelimiters]),o.ignoreDelimiters.forEach(function(delimiterPair){delimiterPair.start&&delimiterPair.end&&(reIgnoreStr=escapeRegex(delimiterPair.start)+"[\\\\s\\\\S]*?"+escapeRegex(delimiterPair.end),reIgnore=RegExp(reIgnoreStr,"ig"),s=s.replace(reIgnore,function(match){return match.replace(/./g," ")}))})),lex=new Lexer(s),lex.on("warning",function(ev){warningAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on("error",function(ev){errorAt.apply(null,[ev.code,ev.line,ev.character].concat(ev.data))}),lex.on("fatal",function(ev){quit("E041",ev.line,ev.from)}),lex.on("Identifier",function(ev){emitter.emit("Identifier",ev)}),lex.on("String",function(ev){emitter.emit("String",ev)}),lex.on("Number",function(ev){emitter.emit("Number",ev)}),lex.start();for(var name in o)_.has(o,name)&&checkOption(name,state.tokens.curr);assume(),combine(predefined,g||{}),comma.first=!0;try{switch(advance(),state.tokens.next.id){case"{":case"[":destructuringAssignOrJsonValue();break;default:directives(),state.directive["use strict"]&&"global"!==state.option.strict&&warning("W097",state.tokens.prev),statements()}"(end)"!==state.tokens.next.id&&quit("E041",state.tokens.curr.line),state.funct["(scope)"].unstack()}catch(err){if(!err||"JSHintError"!==err.name)throw err;var nt=state.tokens.next||{};JSHINT.errors.push({scope:"(main)",raw:err.raw,code:err.code,reason:err.message,line:err.line||nt.line,character:err.character||nt.from},null)}if("(main)"===JSHINT.scope)for(o=o||{},i=0;JSHINT.internals.length>i;i+=1)k=JSHINT.internals[i],o.scope=k.elem,itself(k.value,o,g);return 0===JSHINT.errors.length};return itself.addModule=function(func){extraModules.push(func)},itself.addModule(style.register),itself.data=function(){var fu,f,i,j,n,globals,data={functions:[],options:state.option};itself.errors.length&&(data.errors=itself.errors),state.jsonMode&&(data.json=!0);var impliedGlobals=state.funct["(scope)"].getImpliedGlobals();for(impliedGlobals.length>0&&(data.implieds=impliedGlobals),urls.length>0&&(data.urls=urls),globals=state.funct["(scope)"].getUsedOrDefinedGlobals(),globals.length>0&&(data.globals=globals),i=1;functions.length>i;i+=1){for(f=functions[i],fu={},j=0;functionicity.length>j;j+=1)fu[functionicity[j]]=[];for(j=0;functionicity.length>j;j+=1)0===fu[functionicity[j]].length&&delete fu[functionicity[j]];fu.name=f["(name)"],fu.param=f["(params)"],fu.line=f["(line)"],fu.character=f["(character)"],fu.last=f["(last)"],fu.lastcharacter=f["(lastcharacter)"],fu.metrics={complexity:f["(metrics)"].ComplexityCount,parameters:f["(metrics)"].arity,statements:f["(metrics)"].statementCount},data.functions.push(fu)}var unuseds=state.funct["(scope)"].getUnuseds();unuseds.length>0&&(data.unused=unuseds);for(n in member)if("number"==typeof member[n]){data.member=member;break}return data},itself.jshint=itself,itself}();"object"==typeof exports&&exports&&(exports.JSHINT=JSHINT)},{"../lodash":"/node_modules/jshint/lodash.js","./lex.js":"/node_modules/jshint/src/lex.js","./messages.js":"/node_modules/jshint/src/messages.js","./options.js":"/node_modules/jshint/src/options.js","./reg.js":"/node_modules/jshint/src/reg.js","./scope-manager.js":"/node_modules/jshint/src/scope-manager.js","./state.js":"/node_modules/jshint/src/state.js","./style.js":"/node_modules/jshint/src/style.js","./vars.js":"/node_modules/jshint/src/vars.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/lex.js":[function(_dereq_,module,exports){"use strict";function asyncTrigger(){var _checks=[];return{push:function(fn){_checks.push(fn)},check:function(){for(var check=0;_checks.length>check;++check)_checks[check]();_checks.splice(0,_checks.length)}}}function Lexer(source){var lines=source;"string"==typeof lines&&(lines=lines.replace(/\\r\\n/g,"\\n").replace(/\\r/g,"\\n").split("\\n")),lines[0]&&"#!"===lines[0].substr(0,2)&&(-1!==lines[0].indexOf("node")&&(state.option.node=!0),lines[0]=""),this.emitter=new events.EventEmitter,this.source=source,this.setLines(lines),this.prereg=!0,this.line=0,this.char=1,this.from=1,this.input="",this.inComment=!1,this.context=[],this.templateStarts=[];for(var i=0;state.option.indent>i;i+=1)state.tab+=" ";this.ignoreLinterErrors=!1}var _=_dereq_("../lodash"),events=_dereq_("events"),reg=_dereq_("./reg.js"),state=_dereq_("./state.js").state,unicodeData=_dereq_("../data/ascii-identifier-data.js"),asciiIdentifierStartTable=unicodeData.asciiIdentifierStartTable,asciiIdentifierPartTable=unicodeData.asciiIdentifierPartTable,Token={Identifier:1,Punctuator:2,NumericLiteral:3,StringLiteral:4,Comment:5,Keyword:6,NullLiteral:7,BooleanLiteral:8,RegExp:9,TemplateHead:10,TemplateMiddle:11,TemplateTail:12,NoSubstTemplate:13},Context={Block:1,Template:2};Lexer.prototype={_lines:[],inContext:function(ctxType){return this.context.length>0&&this.context[this.context.length-1].type===ctxType},pushContext:function(ctxType){this.context.push({type:ctxType})},popContext:function(){return this.context.pop()},isContext:function(context){return this.context.length>0&&this.context[this.context.length-1]===context},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=state.lines,this._lines},setLines:function(val){this._lines=val,state.lines=this._lines},peek:function(i){return this.input.charAt(i||0)},skip:function(i){i=i||1,this.char+=i,this.input=this.input.slice(i)},on:function(names,listener){names.split(" ").forEach(function(name){this.emitter.on(name,listener)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(type,args,checks,fn){checks.push(function(){fn()&&this.trigger(type,args)}.bind(this))},scanPunctuator:function(){var ch2,ch3,ch4,ch1=this.peek();switch(ch1){case".":if(/^[0-9]$/.test(this.peek(1)))return null;if("."===this.peek(1)&&"."===this.peek(2))return{type:Token.Punctuator,value:"..."};case"(":case")":case";":case",":case"[":case"]":case":":case"~":case"?":return{type:Token.Punctuator,value:ch1};case"{":return this.pushContext(Context.Block),{type:Token.Punctuator,value:ch1};case"}":return this.inContext(Context.Block)&&this.popContext(),{type:Token.Punctuator,value:ch1};case"#":return{type:Token.Punctuator,value:ch1};case"":return null}return ch2=this.peek(1),ch3=this.peek(2),ch4=this.peek(3),">"===ch1&&">"===ch2&&">"===ch3&&"="===ch4?{type:Token.Punctuator,value:">>>="}:"="===ch1&&"="===ch2&&"="===ch3?{type:Token.Punctuator,value:"==="}:"!"===ch1&&"="===ch2&&"="===ch3?{type:Token.Punctuator,value:"!=="}:">"===ch1&&">"===ch2&&">"===ch3?{type:Token.Punctuator,value:">>>"}:"<"===ch1&&"<"===ch2&&"="===ch3?{type:Token.Punctuator,value:"<<="}:">"===ch1&&">"===ch2&&"="===ch3?{type:Token.Punctuator,value:">>="}:"="===ch1&&">"===ch2?{type:Token.Punctuator,value:ch1+ch2}:ch1===ch2&&"+-<>&|".indexOf(ch1)>=0?{type:Token.Punctuator,value:ch1+ch2}:"<>=!+-*%&|^".indexOf(ch1)>=0?"="===ch2?{type:Token.Punctuator,value:ch1+ch2}:{type:Token.Punctuator,value:ch1}:"/"===ch1?"="===ch2?{type:Token.Punctuator,value:"/="}:{type:Token.Punctuator,value:"/"}:null},scanComments:function(){function commentToken(label,body,opt){var special=["jshint","jslint","members","member","globals","global","exported"],isSpecial=!1,value=label+body,commentType="plain";return opt=opt||{},opt.isMultiline&&(value+="*/"),body=body.replace(/\\n/g," "),"/*"===label&®.fallsThrough.test(body)&&(isSpecial=!0,commentType="falls through"),special.forEach(function(str){if(!isSpecial&&("//"!==label||"jshint"===str)&&(" "===body.charAt(str.length)&&body.substr(0,str.length)===str&&(isSpecial=!0,label+=str,body=body.substr(str.length)),isSpecial||" "!==body.charAt(0)||" "!==body.charAt(str.length+1)||body.substr(1,str.length)!==str||(isSpecial=!0,label=label+" "+str,body=body.substr(str.length+1)),isSpecial))switch(str){case"member":commentType="members";break;case"global":commentType="globals";break;default:var options=body.split(":").map(function(v){return v.replace(/^\\s+/,"").replace(/\\s+$/,"")});if(2===options.length)switch(options[0]){case"ignore":switch(options[1]){case"start":self.ignoringLinterErrors=!0,isSpecial=!1;break;case"end":self.ignoringLinterErrors=!1,isSpecial=!1}}commentType=str}}),{type:Token.Comment,commentType:commentType,value:value,body:body,isSpecial:isSpecial,isMultiline:opt.isMultiline||!1,isMalformed:opt.isMalformed||!1}}var ch1=this.peek(),ch2=this.peek(1),rest=this.input.substr(2),startLine=this.line,startChar=this.char,self=this;if("*"===ch1&&"/"===ch2)return this.trigger("error",{code:"E018",line:startLine,character:startChar}),this.skip(2),null;if("/"!==ch1||"*"!==ch2&&"/"!==ch2)return null;if("/"===ch2)return this.skip(this.input.length),commentToken("//",rest);var body="";if("*"===ch2){for(this.inComment=!0,this.skip(2);"*"!==this.peek()||"/"!==this.peek(1);)if(""===this.peek()){if(body+="\\n",!this.nextLine())return this.trigger("error",{code:"E017",line:startLine,character:startChar}),this.inComment=!1,commentToken("/*",body,{isMultiline:!0,isMalformed:!0})}else body+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,commentToken("/*",body,{isMultiline:!0})}},scanKeyword:function(){var result=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),keywords=["if","in","do","var","for","new","try","let","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];return result&&keywords.indexOf(result[0])>=0?{type:Token.Keyword,value:result[0]}:null},scanIdentifier:function(){function isNonAsciiIdentifierStart(code){return code>256}function isNonAsciiIdentifierPart(code){return code>256}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function removeEscapeSequences(id){return id.replace(/\\\\u([0-9a-fA-F]{4})/g,function(m0,codepoint){return String.fromCharCode(parseInt(codepoint,16))})}var type,char,id="",index=0,readUnicodeEscapeSequence=function(){if(index+=1,"u"!==this.peek(index))return null;var code,ch1=this.peek(index+1),ch2=this.peek(index+2),ch3=this.peek(index+3),ch4=this.peek(index+4);return isHexDigit(ch1)&&isHexDigit(ch2)&&isHexDigit(ch3)&&isHexDigit(ch4)?(code=parseInt(ch1+ch2+ch3+ch4,16),asciiIdentifierPartTable[code]||isNonAsciiIdentifierPart(code)?(index+=5,"\\\\u"+ch1+ch2+ch3+ch4):null):null}.bind(this),getIdentifierStart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierStartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierStart(code)?(index+=1,chr):null}.bind(this),getIdentifierPart=function(){var chr=this.peek(index),code=chr.charCodeAt(0);return 92===code?readUnicodeEscapeSequence():128>code?asciiIdentifierPartTable[code]?(index+=1,chr):null:isNonAsciiIdentifierPart(code)?(index+=1,chr):null}.bind(this);if(char=getIdentifierStart(),null===char)return null;for(id=char;char=getIdentifierPart(),null!==char;)id+=char;switch(id){case"true":case"false":type=Token.BooleanLiteral;break;case"null":type=Token.NullLiteral;break;default:type=Token.Identifier}return{type:type,value:removeEscapeSequences(id),text:id,tokenLength:id.length}},scanNumericLiteral:function(){function isDecimalDigit(str){return/^[0-9]$/.test(str)}function isOctalDigit(str){return/^[0-7]$/.test(str)}function isBinaryDigit(str){return/^[01]$/.test(str)}function isHexDigit(str){return/^[0-9a-fA-F]$/.test(str)}function isIdentifierStart(ch){return"$"===ch||"_"===ch||"\\\\"===ch||ch>="a"&&"z">=ch||ch>="A"&&"Z">=ch}var bad,index=0,value="",length=this.input.length,char=this.peek(index),isAllowedDigit=isDecimalDigit,base=10,isLegacy=!1;if("."!==char&&!isDecimalDigit(char))return null;if("."!==char){for(value=this.peek(index),index+=1,char=this.peek(index),"0"===value&&(("x"===char||"X"===char)&&(isAllowedDigit=isHexDigit,base=16,index+=1,value+=char),("o"===char||"O"===char)&&(isAllowedDigit=isOctalDigit,base=8,state.inES6(!0)||this.trigger("warning",{code:"W119",line:this.line,character:this.char,data:["Octal integer literal","6"]}),index+=1,value+=char),("b"===char||"B"===char)&&(isAllowedDigit=isBinaryDigit,base=2,state.inES6(!0)||this.trigger("warning",{code:"W119",line:this.line,character:this.char,data:["Binary integer literal","6"]}),index+=1,value+=char),isOctalDigit(char)&&(isAllowedDigit=isOctalDigit,base=8,isLegacy=!0,bad=!1,index+=1,value+=char),!isOctalDigit(char)&&isDecimalDigit(char)&&(index+=1,value+=char));length>index;){if(char=this.peek(index),isLegacy&&isDecimalDigit(char))bad=!0;else if(!isAllowedDigit(char))break;value+=char,index+=1}if(isAllowedDigit!==isDecimalDigit)return!isLegacy&&2>=value.length?{type:Token.NumericLiteral,value:value,isMalformed:!0}:length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isLegacy:isLegacy,isMalformed:!1}}if("."===char)for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1;if("e"===char||"E"===char){if(value+=char,index+=1,char=this.peek(index),("+"===char||"-"===char)&&(value+=this.peek(index),index+=1),char=this.peek(index),!isDecimalDigit(char))return null;for(value+=char,index+=1;length>index&&(char=this.peek(index),isDecimalDigit(char));)value+=char,index+=1}return length>index&&(char=this.peek(index),isIdentifierStart(char))?null:{type:Token.NumericLiteral,value:value,base:base,isMalformed:!isFinite(value)}},scanEscapeSequence:function(checks){var allowNewLine=!1,jump=1;this.skip();var char=this.peek();switch(char){case"\'":this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\\\\'"]},checks,function(){return state.jsonMode});break;case"b":char="\\\\b";break;case"f":char="\\\\f";break;case"n":char="\\\\n";break;case"r":char="\\\\r";break;case"t":char="\\\\t";break;case"0":char="\\\\0";var n=parseInt(this.peek(1),10);this.triggerAsync("warning",{code:"W115",line:this.line,character:this.char},checks,function(){return n>=0&&7>=n&&state.isStrict()});break;case"u":var hexCode=this.input.substr(1,4),code=parseInt(hexCode,16);isNaN(code)&&this.trigger("warning",{code:"W052",line:this.line,character:this.char,data:["u"+hexCode]}),char=String.fromCharCode(code),jump=5;break;case"v":this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\\\v"]},checks,function(){return state.jsonMode}),char="\v";break;case"x":var x=parseInt(this.input.substr(1,2),16);this.triggerAsync("warning",{code:"W114",line:this.line,character:this.char,data:["\\\\x-"]},checks,function(){return state.jsonMode}),char=String.fromCharCode(x),jump=3;break;case"\\\\":char="\\\\\\\\";break;case\'"\':char=\'\\\\"\';break;case"/":break;case"":allowNewLine=!0,char=""}return{"char":char,jump:jump,allowNewLine:allowNewLine}},scanTemplateLiteral:function(checks){var tokenType,ch,value="",startLine=this.line,startChar=this.char,depth=this.templateStarts.length;if(!state.inES6(!0))return null;if("`"===this.peek())tokenType=Token.TemplateHead,this.templateStarts.push({line:this.line,"char":this.char}),depth=this.templateStarts.length,this.skip(1),this.pushContext(Context.Template);else{if(!this.inContext(Context.Template)||"}"!==this.peek())return null;tokenType=Token.TemplateMiddle}for(;"`"!==this.peek();){for(;""===(ch=this.peek());)if(value+="\\n",!this.nextLine()){var startPos=this.templateStarts.pop();return this.trigger("error",{code:"E052",line:startPos.line,character:startPos.char}),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,depth:depth,context:this.popContext()}}if("$"===ch&&"{"===this.peek(1))return value+="${",this.skip(2),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.currentContext()};\nif("\\\\"===ch){var escape=this.scanEscapeSequence(checks);value+=escape.char,this.skip(escape.jump)}else"`"!==ch&&(value+=ch,this.skip(1))}return tokenType=tokenType===Token.TemplateHead?Token.NoSubstTemplate:Token.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:tokenType,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,depth:depth,context:this.popContext()}},scanStringLiteral:function(checks){var quote=this.peek();if(\'"\'!==quote&&"\'"!==quote)return null;this.triggerAsync("warning",{code:"W108",line:this.line,character:this.char},checks,function(){return state.jsonMode&&\'"\'!==quote});var value="",startLine=this.line,startChar=this.char,allowNewLine=!1;for(this.skip();this.peek()!==quote;)if(""===this.peek()){if(allowNewLine?(allowNewLine=!1,this.triggerAsync("warning",{code:"W043",line:this.line,character:this.char},checks,function(){return!state.option.multistr}),this.triggerAsync("warning",{code:"W042",line:this.line,character:this.char},checks,function(){return state.jsonMode&&state.option.multistr})):this.trigger("warning",{code:"W112",line:this.line,character:this.char}),!this.nextLine())return this.trigger("error",{code:"E029",line:startLine,character:startChar}),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!0,quote:quote}}else{allowNewLine=!1;var char=this.peek(),jump=1;if(" ">char&&this.trigger("warning",{code:"W113",line:this.line,character:this.char,data:[""]}),"\\\\"===char){var parsed=this.scanEscapeSequence(checks);char=parsed.char,jump=parsed.jump,allowNewLine=parsed.allowNewLine}value+=char,this.skip(jump)}return this.skip(),{type:Token.StringLiteral,value:value,startLine:startLine,startChar:startChar,isUnclosed:!1,quote:quote}},scanRegExp:function(){var terminated,index=0,length=this.input.length,char=this.peek(),value=char,body="",flags=[],malformed=!1,isCharSet=!1,scanUnexpectedChars=function(){" ">char&&(malformed=!0,this.trigger("warning",{code:"W048",line:this.line,character:this.char})),"<"===char&&(malformed=!0,this.trigger("warning",{code:"W049",line:this.line,character:this.char,data:[char]}))}.bind(this);if(!this.prereg||"/"!==char)return null;for(index+=1,terminated=!1;length>index;)if(char=this.peek(index),value+=char,body+=char,isCharSet)"]"===char&&("\\\\"!==this.peek(index-1)||"\\\\"===this.peek(index-2))&&(isCharSet=!1),"\\\\"===char&&(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars()),index+=1;else{if("\\\\"===char){if(index+=1,char=this.peek(index),body+=char,value+=char,scanUnexpectedChars(),"/"===char){index+=1;continue}if("["===char){index+=1;continue}}if("["!==char){if("/"===char){body=body.substr(0,body.length-1),terminated=!0,index+=1;break}index+=1}else isCharSet=!0,index+=1}if(!terminated)return this.trigger("error",{code:"E015",line:this.line,character:this.from}),void this.trigger("fatal",{line:this.line,from:this.from});for(;length>index&&(char=this.peek(index),/[gim]/.test(char));)flags.push(char),value+=char,index+=1;try{RegExp(body,flags.join(""))}catch(err){malformed=!0,this.trigger("error",{code:"E016",line:this.line,character:this.char,data:[err.message]})}return{type:Token.RegExp,value:value,flags:flags,isMalformed:malformed}},scanNonBreakingSpaces:function(){return state.option.nonbsp?this.input.search(/(\\u00A0)/):-1},scanUnsafeChars:function(){return this.input.search(reg.unsafeChars)},next:function(checks){this.from=this.char;var start;if(/\\s/.test(this.peek()))for(start=this.char;/\\s/.test(this.peek());)this.from+=1,this.skip();var match=this.scanComments()||this.scanStringLiteral(checks)||this.scanTemplateLiteral(checks);return match?match:(match=this.scanRegExp()||this.scanPunctuator()||this.scanKeyword()||this.scanIdentifier()||this.scanNumericLiteral(),match?(this.skip(match.tokenLength||match.value.length),match):null)},nextLine:function(){var char;if(this.line>=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this.char=1,this.from=1;var inputTrimmed=this.input.trim(),startsWith=function(){return _.some(arguments,function(prefix){return 0===inputTrimmed.indexOf(prefix)})},endsWith=function(){return _.some(arguments,function(suffix){return-1!==inputTrimmed.indexOf(suffix,inputTrimmed.length-suffix.length)})};if(this.ignoringLinterErrors===!0&&(startsWith("/*","//")||this.inComment&&endsWith("*/")||(this.input="")),char=this.scanNonBreakingSpaces(),char>=0&&this.trigger("warning",{code:"W125",line:this.line,character:char+1}),this.input=this.input.replace(/\\t/g,state.tab),char=this.scanUnsafeChars(),char>=0&&this.trigger("warning",{code:"W100",line:this.line,character:char}),!this.ignoringLinterErrors&&state.option.maxlen&&state.option.maxlen=0;--i){var scopeLabels=_scopeStack[i]["(labels)"];if(scopeLabels[labelName])return scopeLabels}}function usedSoFarInCurrentFunction(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current["(usages)"][labelName])return current["(usages)"][labelName];if(current===_currentFunctBody)break}return!1}function _checkOuterShadow(labelName,token){if("outer"===state.option.shadow)for(var isGlobal="global"===_currentFunctBody["(type)"],isNewFunction="functionparams"===_current["(type)"],outsideCurrentFunction=!isGlobal,i=0;_scopeStack.length>i;i++){var stackItem=_scopeStack[i];isNewFunction||_scopeStack[i+1]!==_currentFunctBody||(outsideCurrentFunction=!1),outsideCurrentFunction&&stackItem["(labels)"][labelName]&&warning("W123",token,labelName),stackItem["(breakLabels)"][labelName]&&warning("W123",token,labelName)}}function _latedefWarning(type,labelName,token){state.option.latedef&&(state.option.latedef===!0&&"function"===type||"function"!==type)&&warning("W003",token,labelName)}var _current,_scopeStack=[];_newScope("global"),_current["(predefined)"]=predefined;var _currentFunctBody=_current,usedPredefinedAndGlobals=Object.create(null),impliedGlobals=Object.create(null),unuseds=[],emitter=new events.EventEmitter,_getUnusedOption=function(unused_opt){return void 0===unused_opt&&(unused_opt=state.option.unused),unused_opt===!0&&(unused_opt="last-param"),unused_opt},_warnUnused=function(name,tkn,type,unused_opt){var line=tkn.line,chr=tkn.from,raw_name=tkn.raw_text||name;unused_opt=_getUnusedOption(unused_opt);var warnable_types={vars:["var"],"last-param":["var","param"],strict:["var","param","last-param"]};unused_opt&&warnable_types[unused_opt]&&-1!==warnable_types[unused_opt].indexOf(type)&&warning("W098",{line:line,from:chr},raw_name),(unused_opt||"var"===type)&&unuseds.push({name:name,line:line,character:chr})},scopeManagerInst={on:function(names,listener){names.split(" ").forEach(function(name){emitter.on(name,listener)})},isPredefined:function(labelName){return!this.has(labelName)&&_.has(_scopeStack[0]["(predefined)"],labelName)},stack:function(type){var previousScope=_current;_newScope(type),type||"functionparams"!==previousScope["(type)"]||(_current["(isFuncBody)"]=!0,_current["(context)"]=_currentFunctBody,_currentFunctBody=_current)},unstack:function(){var i,j,subScope=_scopeStack.length>1?_scopeStack[_scopeStack.length-2]:null,isUnstackingFunctionBody=_current===_currentFunctBody,isUnstackingFunctionParams="functionparams"===_current["(type)"],isUnstackingFunctionOuter="functionouter"===_current["(type)"],currentUsages=_current["(usages)"],currentLabels=_current["(labels)"],usedLabelNameList=Object.keys(currentUsages);for(currentUsages.__proto__&&-1===usedLabelNameList.indexOf("__proto__")&&usedLabelNameList.push("__proto__"),i=0;usedLabelNameList.length>i;i++){var usedLabelName=usedLabelNameList[i],usage=currentUsages[usedLabelName],usedLabel=currentLabels[usedLabelName];if(usedLabel){var usedLabelType=usedLabel["(type)"];if(usedLabel["(useOutsideOfScope)"]&&!state.option.funcscope){var usedTokens=usage["(tokens)"];if(usedTokens)for(j=0;usedTokens.length>j;j++)usedLabel["(function)"]===usedTokens[j]["(function)"]&&error("W038",usedTokens[j],usedLabelName)}if(_current["(labels)"][usedLabelName]["(unused)"]=!1,"const"===usedLabelType&&usage["(modified)"])for(j=0;usage["(modified)"].length>j;j++)error("E013",usage["(modified)"][j],usedLabelName);if(("function"===usedLabelType||"class"===usedLabelType)&&usage["(reassigned)"])for(j=0;usage["(reassigned)"].length>j;j++)error("W021",usage["(reassigned)"][j],usedLabelName,usedLabelType)}else if(isUnstackingFunctionOuter&&(state.funct["(isCapturing)"]=!0),subScope)if(subScope["(usages)"][usedLabelName]){var subScopeUsage=subScope["(usages)"][usedLabelName];subScopeUsage["(modified)"]=subScopeUsage["(modified)"].concat(usage["(modified)"]),subScopeUsage["(tokens)"]=subScopeUsage["(tokens)"].concat(usage["(tokens)"]),subScopeUsage["(reassigned)"]=subScopeUsage["(reassigned)"].concat(usage["(reassigned)"]),subScopeUsage["(onlyUsedSubFunction)"]=!1}else subScope["(usages)"][usedLabelName]=usage,isUnstackingFunctionBody&&(subScope["(usages)"][usedLabelName]["(onlyUsedSubFunction)"]=!0);else if("boolean"==typeof _current["(predefined)"][usedLabelName]){if(delete declared[usedLabelName],usedPredefinedAndGlobals[usedLabelName]=marker,_current["(predefined)"][usedLabelName]===!1&&usage["(reassigned)"])for(j=0;usage["(reassigned)"].length>j;j++)warning("W020",usage["(reassigned)"][j])}else if(usage["(tokens)"])for(j=0;usage["(tokens)"].length>j;j++){var undefinedToken=usage["(tokens)"][j];undefinedToken.forgiveUndef||(state.option.undef&&!undefinedToken.ignoreUndef&&warning("W117",undefinedToken,usedLabelName),impliedGlobals[usedLabelName]?impliedGlobals[usedLabelName].line.push(undefinedToken.line):impliedGlobals[usedLabelName]={name:usedLabelName,line:[undefinedToken.line]})}}if(subScope||Object.keys(declared).forEach(function(labelNotUsed){_warnUnused(labelNotUsed,declared[labelNotUsed],"var")}),subScope&&!isUnstackingFunctionBody&&!isUnstackingFunctionParams&&!isUnstackingFunctionOuter){var labelNames=Object.keys(currentLabels);for(i=0;labelNames.length>i;i++){var defLabelName=labelNames[i];currentLabels[defLabelName]["(blockscoped)"]||"exception"===currentLabels[defLabelName]["(type)"]||this.funct.has(defLabelName,{excludeCurrent:!0})||(subScope["(labels)"][defLabelName]=currentLabels[defLabelName],"global"!==_currentFunctBody["(type)"]&&(subScope["(labels)"][defLabelName]["(useOutsideOfScope)"]=!0),delete currentLabels[defLabelName])}}_checkForUnused(),_scopeStack.pop(),isUnstackingFunctionBody&&(_currentFunctBody=_scopeStack[_.findLastIndex(_scopeStack,function(scope){return scope["(isFuncBody)"]||"global"===scope["(type)"]})]),_current=subScope},addParam:function(labelName,token,type){if(type=type||"param","exception"===type){var previouslyDefinedLabelType=this.funct.labeltype(labelName);previouslyDefinedLabelType&&"exception"!==previouslyDefinedLabelType&&(state.option.node||warning("W002",state.tokens.next,labelName))}if(_.has(_current["(labels)"],labelName)?_current["(labels)"][labelName].duplicated=!0:(_checkOuterShadow(labelName,token,type),_current["(labels)"][labelName]={"(type)":type,"(token)":token,"(unused)":!0},_current["(params)"].push(labelName)),_.has(_current["(usages)"],labelName)){var usage=_current["(usages)"][labelName];usage["(onlyUsedSubFunction)"]?_latedefWarning(type,labelName,token):warning("E056",token,labelName,type)}},validateParams:function(){if("global"!==_currentFunctBody["(type)"]){var isStrict=state.isStrict(),currentFunctParamScope=_currentFunctBody["(parent)"];currentFunctParamScope["(params)"]&¤tFunctParamScope["(params)"].forEach(function(labelName){var label=currentFunctParamScope["(labels)"][labelName];label&&label.duplicated&&(isStrict?warning("E011",label["(token)"],labelName):state.option.shadow!==!0&&warning("W004",label["(token)"],labelName))})}},getUsedOrDefinedGlobals:function(){var list=Object.keys(usedPredefinedAndGlobals);return usedPredefinedAndGlobals.__proto__===marker&&-1===list.indexOf("__proto__")&&list.push("__proto__"),list},getImpliedGlobals:function(){var values=_.values(impliedGlobals),hasProto=!1;return impliedGlobals.__proto__&&(hasProto=values.some(function(value){return"__proto__"===value.name}),hasProto||values.push(impliedGlobals.__proto__)),values},getUnuseds:function(){return unuseds},has:function(labelName){return Boolean(_getLabel(labelName))},labeltype:function(labelName){var scopeLabels=_getLabel(labelName);return scopeLabels?scopeLabels[labelName]["(type)"]:null},addExported:function(labelName){var globalLabels=_scopeStack[0]["(labels)"];if(_.has(declared,labelName))delete declared[labelName];else if(_.has(globalLabels,labelName))globalLabels[labelName]["(unused)"]=!1;else{for(var i=1;_scopeStack.length>i;i++){var scope=_scopeStack[i];if(scope["(type)"])break;if(_.has(scope["(labels)"],labelName)&&!scope["(labels)"][labelName]["(blockscoped)"])return scope["(labels)"][labelName]["(unused)"]=!1,void 0}exported[labelName]=!0}},setExported:function(labelName,token){this.block.use(labelName,token)\n},addlabel:function(labelName,opts){var type=opts.type,token=opts.token,isblockscoped="let"===type||"const"===type||"class"===type,isexported="global"===(isblockscoped?_current:_currentFunctBody)["(type)"]&&_.has(exported,labelName);if(_checkOuterShadow(labelName,token,type),isblockscoped){var declaredInCurrentScope=_current["(labels)"][labelName];if(declaredInCurrentScope||_current!==_currentFunctBody||"global"===_current["(type)"]||(declaredInCurrentScope=!!_currentFunctBody["(parent)"]["(labels)"][labelName]),!declaredInCurrentScope&&_current["(usages)"][labelName]){var usage=_current["(usages)"][labelName];usage["(onlyUsedSubFunction)"]?_latedefWarning(type,labelName,token):warning("E056",token,labelName,type)}declaredInCurrentScope?warning("E011",token,labelName):"outer"===state.option.shadow&&scopeManagerInst.funct.has(labelName)&&warning("W004",token,labelName),scopeManagerInst.block.add(labelName,type,token,!isexported)}else{var declaredInCurrentFunctionScope=scopeManagerInst.funct.has(labelName);!declaredInCurrentFunctionScope&&usedSoFarInCurrentFunction(labelName)&&_latedefWarning(type,labelName,token),scopeManagerInst.funct.has(labelName,{onlyBlockscoped:!0})?warning("E011",token,labelName):state.option.shadow!==!0&&declaredInCurrentFunctionScope&&"__proto__"!==labelName&&"global"!==_currentFunctBody["(type)"]&&warning("W004",token,labelName),scopeManagerInst.funct.add(labelName,type,token,!isexported),"global"===_currentFunctBody["(type)"]&&(usedPredefinedAndGlobals[labelName]=marker)}},funct:{labeltype:function(labelName,options){for(var onlyBlockscoped=options&&options.onlyBlockscoped,excludeParams=options&&options.excludeParams,currentScopeIndex=_scopeStack.length-(options&&options.excludeCurrent?2:1),i=currentScopeIndex;i>=0;i--){var current=_scopeStack[i];if(current["(labels)"][labelName]&&(!onlyBlockscoped||current["(labels)"][labelName]["(blockscoped)"]))return current["(labels)"][labelName]["(type)"];var scopeCheck=excludeParams?_scopeStack[i-1]:current;if(scopeCheck&&"functionparams"===scopeCheck["(type)"])return null}return null},hasBreakLabel:function(labelName){for(var i=_scopeStack.length-1;i>=0;i--){var current=_scopeStack[i];if(current["(breakLabels)"][labelName])return!0;if("functionparams"===current["(type)"])return!1}return!1},has:function(labelName,options){return Boolean(this.labeltype(labelName,options))},add:function(labelName,type,tok,unused){_current["(labels)"][labelName]={"(type)":type,"(token)":tok,"(blockscoped)":!1,"(function)":_currentFunctBody,"(unused)":unused}}},block:{isGlobal:function(){return"global"===_current["(type)"]},use:function(labelName,token){var paramScope=_currentFunctBody["(parent)"];paramScope&¶mScope["(labels)"][labelName]&&"param"===paramScope["(labels)"][labelName]["(type)"]&&(scopeManagerInst.funct.has(labelName,{excludeParams:!0,onlyBlockscoped:!0})||(paramScope["(labels)"][labelName]["(unused)"]=!1)),token&&(state.ignored.W117||state.option.undef===!1)&&(token.ignoreUndef=!0),_setupUsages(labelName),token&&(token["(function)"]=_currentFunctBody,_current["(usages)"][labelName]["(tokens)"].push(token))},reassign:function(labelName,token){this.modify(labelName,token),_current["(usages)"][labelName]["(reassigned)"].push(token)},modify:function(labelName,token){_setupUsages(labelName),_current["(usages)"][labelName]["(modified)"].push(token)},add:function(labelName,type,tok,unused){_current["(labels)"][labelName]={"(type)":type,"(token)":tok,"(blockscoped)":!0,"(unused)":unused}},addBreakLabel:function(labelName,opts){var token=opts.token;scopeManagerInst.funct.hasBreakLabel(labelName)?warning("E011",token,labelName):"outer"===state.option.shadow&&(scopeManagerInst.funct.has(labelName)?warning("W004",token,labelName):_checkOuterShadow(labelName,token)),_current["(breakLabels)"][labelName]=token}}};return scopeManagerInst};module.exports=scopeManager},{"../lodash":"/node_modules/jshint/lodash.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/state.js":[function(_dereq_,module,exports){"use strict";var NameStack=_dereq_("./name-stack.js"),state={syntax:{},isStrict:function(){return this.directive["use strict"]||this.inClassBody||this.option.module||"implied"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(strict){return strict?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab="",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new NameStack,this.inClassBody=!1}};exports.state=state},{"./name-stack.js":"/node_modules/jshint/src/name-stack.js"}],"/node_modules/jshint/src/style.js":[function(_dereq_,module,exports){"use strict";exports.register=function(linter){linter.on("Identifier",function(data){linter.getOption("proto")||"__proto__"===data.name&&linter.warn("W103",{line:data.line,"char":data.char,data:[data.name,"6"]})}),linter.on("Identifier",function(data){linter.getOption("iterator")||"__iterator__"===data.name&&linter.warn("W103",{line:data.line,"char":data.char,data:[data.name]})}),linter.on("Identifier",function(data){linter.getOption("camelcase")&&data.name.replace(/^_+|_+$/g,"").indexOf("_")>-1&&!data.name.match(/^[A-Z0-9_]*$/)&&linter.warn("W106",{line:data.line,"char":data.from,data:[data.name]})}),linter.on("String",function(data){var code,quotmark=linter.getOption("quotmark");quotmark&&("single"===quotmark&&"\'"!==data.quote&&(code="W109"),"double"===quotmark&&\'"\'!==data.quote&&(code="W108"),quotmark===!0&&(linter.getCache("quotmark")||linter.setCache("quotmark",data.quote),linter.getCache("quotmark")!==data.quote&&(code="W110")),code&&linter.warn(code,{line:data.line,"char":data.char}))}),linter.on("Number",function(data){"."===data.value.charAt(0)&&linter.warn("W008",{line:data.line,"char":data.char,data:[data.value]}),"."===data.value.substr(data.value.length-1)&&linter.warn("W047",{line:data.line,"char":data.char,data:[data.value]}),/^00+/.test(data.value)&&linter.warn("W046",{line:data.line,"char":data.char,data:[data.value]})}),linter.on("String",function(data){var re=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\\s*:/i;linter.getOption("scripturl")||re.test(data.value)&&linter.warn("W107",{line:data.line,"char":data.char})})}},{}],"/node_modules/jshint/src/vars.js":[function(_dereq_,module,exports){"use strict";exports.reservedVars={arguments:!1,NaN:!1},exports.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},exports.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},exports.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},exports.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},exports.nonstandard={escape:!1,unescape:!1},exports.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},exports.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,acequire:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},exports.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,acequire:!1,Buffer:!0,exports:!0,process:!0},exports.phantom={phantom:!0,acequire:!0,WebPage:!0,console:!0,exports:!0},exports.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,"throws":!1},exports.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},exports.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},exports.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},exports.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},exports.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},exports.jquery={$:!1,jQuery:!1},exports.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},exports.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},exports.yui={YUI:!1,Y:!1,YUI_config:!1},exports.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},exports.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},["/node_modules/jshint/src/jshint.js"])}),ace.define("ace/mode/javascript_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/javascript/jshint"],function(acequire,exports,module){"use strict";function startRegex(arr){return RegExp("^("+arr.join("|")+")")}var oop=acequire("../lib/oop"),Mirror=acequire("../worker/mirror").Mirror,lint=acequire("./javascript/jshint").JSHINT,disabledWarningsRe=startRegex(["Bad for in variable \'(.+)\'.",\'Missing "use strict"\']),errorsRe=startRegex(["Unexpected","Expected ","Confusing (plus|minus)","\\\\{a\\\\} unterminated regular expression","Unclosed ","Unmatched ","Unbegun comment","Bad invocation","Missing space after","Missing operator at"]),infoRe=startRegex(["Expected an assignment","Bad escapement of EOL","Unexpected comma","Unexpected space","Missing radix parameter.","A leading decimal point can","\\\\[\'{a}\'\\\\] is better written in dot notation.","\'{a}\' used out of scope"]),JavaScriptWorker=exports.JavaScriptWorker=function(sender){Mirror.call(this,sender),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(options){this.options=options||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(newOptions){oop.mixin(this.options,newOptions),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval("throw 0;"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var value=this.doc.getValue();if(value=value.replace(/^#!.*\\n/,"\\n"),!value)return this.sender.emit("annotate",[]);var errors=[],maxErrorLevel=this.isValidJS(value)?"warning":"error";lint(value,this.options,this.options.globals);for(var results=lint.errors,errorAdded=!1,i=0;results.length>i;i++){var error=results[i];if(error){var raw=error.raw,type="warning";if("Missing semicolon."==raw){var str=error.evidence.substr(error.character);str=str.charAt(str.search(/\\S/)),"error"==maxErrorLevel&&str&&/[\\w\\d{([\'"]/.test(str)?(error.reason=\'Missing ";" before statement\',type="error"):type="info"}else{if(disabledWarningsRe.test(raw))continue;infoRe.test(raw)?type="info":errorsRe.test(raw)?(errorAdded=!0,type=maxErrorLevel):"\'{a}\' is not defined."==raw?type="warning":"\'{a}\' is defined but never used."==raw&&(type="info")}errors.push({row:error.line-1,column:error.character-1,text:error.reason,type:type,raw:raw})}}this.sender.emit("annotate",errors)}}.call(JavaScriptWorker.prototype)}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(){function Empty(){}function doesDefinePropertyWork(object){try{return Object.defineProperty(object,"sentinel",{}),"sentinel"in object}catch(exception){}}function toInteger(n){return n=+n,n!==n?n=0:0!==n&&n!==1/0&&n!==-(1/0)&&(n=(n>0||-1)*Math.floor(Math.abs(n))),n}Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError("Function.prototype.bind called on incompatible "+target);var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var result=target.apply(this,args.concat(slice.call(arguments)));return Object(result)===result?result:this}return target.apply(that,args.concat(slice.call(arguments)))};return target.prototype&&(Empty.prototype=target.prototype,bound.prototype=new Empty,Empty.prototype=null),bound});var defineGetter,defineSetter,lookupGetter,lookupSetter,supportsAccessors,call=Function.prototype.call,prototypeOfArray=Array.prototype,prototypeOfObject=Object.prototype,slice=prototypeOfArray.slice,_toString=call.bind(prototypeOfObject.toString),owns=call.bind(prototypeOfObject.hasOwnProperty);if((supportsAccessors=owns(prototypeOfObject,"__defineGetter__"))&&(defineGetter=call.bind(prototypeOfObject.__defineGetter__),defineSetter=call.bind(prototypeOfObject.__defineSetter__),lookupGetter=call.bind(prototypeOfObject.__lookupGetter__),lookupSetter=call.bind(prototypeOfObject.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function makeArray(l){var a=Array(l+2);return a[0]=a[1]=0,a}var lengthBefore,array=[];return array.splice.apply(array,makeArray(20)),array.splice.apply(array,makeArray(26)),lengthBefore=array.length,array.splice(5,0,"XXX"),lengthBefore+1==array.length,lengthBefore+1==array.length?!0:void 0}()){var array_splice=Array.prototype.splice;Array.prototype.splice=function(start,deleteCount){return arguments.length?array_splice.apply(this,[void 0===start?0:start,void 0===deleteCount?this.length-start:deleteCount].concat(slice.call(arguments,2))):[]}}else Array.prototype.splice=function(pos,removeCount){var length=this.length;pos>0?pos>length&&(pos=length):void 0==pos?pos=0:0>pos&&(pos=Math.max(length+pos,0)),length>pos+removeCount||(removeCount=length-pos);var removed=this.slice(pos,pos+removeCount),insert=slice.call(arguments,2),add=insert.length;if(pos===length)add&&this.push.apply(this,insert);else{var remove=Math.min(removeCount,length-pos),tailOldPos=pos+remove,tailNewPos=tailOldPos+add-remove,tailCount=length-tailOldPos,lengthAfterRemove=length-remove;if(tailOldPos>tailNewPos)for(var i=0;tailCount>i;++i)this[tailNewPos+i]=this[tailOldPos+i];else if(tailNewPos>tailOldPos)for(i=tailCount;i--;)this[tailNewPos+i]=this[tailOldPos+i];if(add&&pos===lengthAfterRemove)this.length=lengthAfterRemove,this.push.apply(this,insert);else for(this.length=lengthAfterRemove+add,i=0;add>i;++i)this[pos+i]=insert[i]}return removed};Array.isArray||(Array.isArray=function(obj){return"[object Array]"==_toString(obj)});var boxedString=Object("a"),splitString="a"!=boxedString[0]||!(0 in boxedString);if(Array.prototype.forEach||(Array.prototype.forEach=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,thisp=arguments[1],i=-1,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError;for(;length>++i;)i in self&&fun.call(thisp,self[i],i,object)}),Array.prototype.map||(Array.prototype.map=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=Array(length),thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(result[i]=fun.call(thisp,self[i],i,object));return result}),Array.prototype.filter||(Array.prototype.filter=function(fun){var value,object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,result=[],thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)i in self&&(value=self[i],fun.call(thisp,value,i,object)&&result.push(value));return result}),Array.prototype.every||(Array.prototype.every=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&!fun.call(thisp,self[i],i,object))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0,thisp=arguments[1];if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");for(var i=0;length>i;i++)if(i in self&&fun.call(thisp,self[i],i,object))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var result,i=0;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i++];break}if(++i>=length)throw new TypeError("reduce of empty array with no initial value")}for(;length>i;i++)i in self&&(result=fun.call(void 0,result,self[i],i,object));return result}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(fun){var object=toObject(this),self=splitString&&"[object String]"==_toString(this)?this.split(""):object,length=self.length>>>0;if("[object Function]"!=_toString(fun))throw new TypeError(fun+" is not a function");if(!length&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var result,i=length-1;if(arguments.length>=2)result=arguments[1];else for(;;){if(i in self){result=self[i--];break}if(0>--i)throw new TypeError("reduceRight of empty array with no initial value")}do i in this&&(result=fun.call(void 0,result,self[i],i,object));while(i--);return result}),Array.prototype.indexOf&&-1==[0,1].indexOf(1,2)||(Array.prototype.indexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=0;for(arguments.length>1&&(i=toInteger(arguments[1])),i=i>=0?i:Math.max(0,length+i);length>i;i++)if(i in self&&self[i]===sought)return i;return-1}),Array.prototype.lastIndexOf&&-1==[0,1].lastIndexOf(0,-3)||(Array.prototype.lastIndexOf=function(sought){var self=splitString&&"[object String]"==_toString(this)?this.split(""):toObject(this),length=self.length>>>0;if(!length)return-1;var i=length-1;for(arguments.length>1&&(i=Math.min(i,toInteger(arguments[1]))),i=i>=0?i:length-Math.abs(i);i>=0;i--)if(i in self&&sought===self[i])return i;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(object){return object.__proto__||(object.constructor?object.constructor.prototype:prototypeOfObject)}),!Object.getOwnPropertyDescriptor){var ERR_NON_OBJECT="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(object,property){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT+object);if(owns(object,property)){var descriptor,getter,setter;if(descriptor={enumerable:!0,configurable:!0},supportsAccessors){var prototype=object.__proto__;object.__proto__=prototypeOfObject;var getter=lookupGetter(object,property),setter=lookupSetter(object,property);if(object.__proto__=prototype,getter||setter)return getter&&(descriptor.get=getter),setter&&(descriptor.set=setter),descriptor}return descriptor.value=object[property],descriptor}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(object){return Object.keys(object)}),!Object.create){var createEmpty;createEmpty=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var empty={};for(var i in empty)empty[i]=null;return empty.constructor=empty.hasOwnProperty=empty.propertyIsEnumerable=empty.isPrototypeOf=empty.toLocaleString=empty.toString=empty.valueOf=empty.__proto__=null,empty},Object.create=function(prototype,properties){var object;if(null===prototype)object=createEmpty();else{if("object"!=typeof prototype)throw new TypeError("typeof prototype["+typeof prototype+"] != \'object\'");var Type=function(){};Type.prototype=prototype,object=new Type,object.__proto__=prototype}return void 0!==properties&&Object.defineProperties(object,properties),object}}if(Object.defineProperty){var definePropertyWorksOnObject=doesDefinePropertyWork({}),definePropertyWorksOnDom="undefined"==typeof document||doesDefinePropertyWork(document.createElement("div"));if(!definePropertyWorksOnObject||!definePropertyWorksOnDom)var definePropertyFallback=Object.defineProperty}if(!Object.defineProperty||definePropertyFallback){var ERR_NON_OBJECT_DESCRIPTOR="Property description must be an object: ",ERR_NON_OBJECT_TARGET="Object.defineProperty called on non-object: ",ERR_ACCESSORS_NOT_SUPPORTED="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(object,property,descriptor){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError(ERR_NON_OBJECT_TARGET+object);if("object"!=typeof descriptor&&"function"!=typeof descriptor||null===descriptor)throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR+descriptor);if(definePropertyFallback)try{return definePropertyFallback.call(Object,object,property,descriptor)}catch(exception){}if(owns(descriptor,"value"))if(supportsAccessors&&(lookupGetter(object,property)||lookupSetter(object,property))){var prototype=object.__proto__;object.__proto__=prototypeOfObject,delete object[property],object[property]=descriptor.value,object.__proto__=prototype}else object[property]=descriptor.value;else{if(!supportsAccessors)throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);owns(descriptor,"get")&&defineGetter(object,property,descriptor.get),owns(descriptor,"set")&&defineSetter(object,property,descriptor.set)}return object}}Object.defineProperties||(Object.defineProperties=function(object,properties){for(var property in properties)owns(properties,property)&&Object.defineProperty(object,property,properties[property]);return object}),Object.seal||(Object.seal=function(object){return object}),Object.freeze||(Object.freeze=function(object){return object});try{Object.freeze(function(){})}catch(exception){Object.freeze=function(freezeObject){return function(object){return"function"==typeof object?object:freezeObject(object)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(object){return object}),Object.isSealed||(Object.isSealed=function(){return!1}),Object.isFrozen||(Object.isFrozen=function(){return!1}),Object.isExtensible||(Object.isExtensible=function(object){if(Object(object)===object)throw new TypeError;for(var name="";owns(object,name);)name+="?";object[name]=!0;var returnValue=owns(object,name);return delete object[name],returnValue}),!Object.keys){var hasDontEnumBug=!0,dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;for(var key in{toString:null})hasDontEnumBug=!1;Object.keys=function(object){if("object"!=typeof object&&"function"!=typeof object||null===object)throw new TypeError("Object.keys called on a non-object");var keys=[];for(var name in object)owns(object,name)&&keys.push(name);if(hasDontEnumBug)for(var i=0,ii=dontEnumsLength;ii>i;i++){var dontEnum=dontEnums[i];owns(object,dontEnum)&&keys.push(dontEnum)}return keys}}Date.now||(Date.now=function(){return(new Date).getTime()});var ws="\t\\n\v\\f\\r   ᠎              \\u2028\\u2029\ufeff";if(!String.prototype.trim||ws.trim()){ws="["+ws+"]";var trimBeginRegexp=RegExp("^"+ws+ws+"*"),trimEndRegexp=RegExp(ws+ws+"*$");String.prototype.trim=function(){return(this+"").replace(trimBeginRegexp,"").replace(trimEndRegexp,"")}}var toObject=function(o){if(null==o)throw new TypeError("can\'t convert "+o+" to object");return Object(o)}});'},1616:function(e,t){e.exports.id="ace/mode/css_worker",e.exports.src='"no use strict";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail="";testPath;){var alias=paths[testPath];if("string"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\/*$/,"/")+(tail||alias.main||alias.name);if(alias===!1)return"";var i=testPath.lastIndexOf("/");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:"error",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf("!")){var chunks=moduleName.split("!");return window.normalizeModule(parentId,chunks[0])+"!"+window.normalizeModule(parentId,chunks[1])}if("."==moduleName.charAt(0)){var base=parentId.split("/").slice(0,-1).join("/");for(moduleName=(base?base+"/":"")+moduleName;-1!==moduleName.indexOf(".")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\.\\//,"").replace(/\\/\\.\\//,"/").replace(/[^\\/]+\\/\\.\\.\\//,"")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error("worker.js acequire() accepts only (parentId, id) as arguments");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log("unable to load "+id);var path=resolveModuleId(id,window.acequire.tlns);return".js"!=path.slice(-3)&&(path+=".js"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,"string"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),"function"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=["require","exports","module"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case"require":return req;case"exports":return module.exports;case"module":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire("ace/lib/event_emitter").EventEmitter,oop=window.acequire("ace/lib/oop"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:"call",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:"event",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error("Unknown command:"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire("ace/lib/es5-shim"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define("ace/lib/oop",["require","exports","module"],function(acequire,exports){"use strict";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define("ace/lib/lang",["require","exports","module"],function(acequire,exports){"use strict";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split("").reverse().join("")},exports.stringRepeat=function(string,count){for(var result="";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\s\\s*/,trimEndRegexp=/\\s\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,"")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,"")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&"object"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if("object"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if("[object Object]"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\]\\/\\\\])/g,"\\\\$1")},exports.escapeHTML=function(str){return str.replace(/&/g,"&").replace(/"/g,""").replace(/\'/g,"'").replace(/ ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){"object"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){"object"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define("ace/apply_delta",["require","exports","module"],function(acequire,exports){"use strict";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||"";switch(delta.action){case"insert":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case"remove":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(acequire,exports){"use strict";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){"object"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?"unshift":"push"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),EventEmitter=acequire("./lib/event_emitter").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal("change",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(acequire,exports){"use strict";var oop=acequire("./lib/oop"),applyDelta=acequire("./apply_delta").applyDelta,EventEmitter=acequire("./lib/event_emitter").EventEmitter,Range=acequire("./range").Range,Anchor=acequire("./anchor").Anchor,Document=function(textOrLines){this.$lines=[""],0===textOrLines.length?this.$lines=[""]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0==="aaa".split(/a/).length?function(text){return text.replace(/\\r\\n|\\r/g,"\\n").split("\\n")}:function(text){return text.split(/\\r\\n|\\r|\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\r\\n|\\r|\\n)/m);this.$autoNewLine=match?match[1]:"\\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\\r\\n";case"unix":return"\\n";default:return this.$autoNewLine||"\\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return"\\r\\n"==text||"\\r"==text||"\\n"==text},this.getLine=function(row){return this.$lines[row]||""},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||"").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, [\'\', \'\']) instead."),this.insertMergedLines(position,["",""])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:"insert",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([""]),column=0):(lines=[""].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:"insert",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:"remove",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:"remove",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:"remove",lines:["",""]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert="insert"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal("change",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(""),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:"insert"==delta.action?"remove":"insert",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(acequire,exports){"use strict";acequire("../range").Range;var Document=acequire("../document").Document,lang=acequire("../lib/lang"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(""),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on("change",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:"insert",start:data[i],lines:data[i+1]};else var d={action:"remove",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define("ace/mode/css/csslint",["require","exports","module"],function(acequire,exports,module){function objectToString(o){return Object.prototype.toString.call(o)}function clone(parent,circular,depth,prototype){function _clone(parent,depth){if(null===parent)return null;if(0==depth)return parent;var child;if("object"!=typeof parent)return parent;if(util.isArray(parent))child=[];else if(util.isRegExp(parent))child=RegExp(parent.source,util.getRegExpFlags(parent)),parent.lastIndex&&(child.lastIndex=parent.lastIndex);else if(util.isDate(parent))child=new Date(parent.getTime());else{if(useBuffer&&Buffer.isBuffer(parent))return child=new Buffer(parent.length),parent.copy(child),child;child=prototype===void 0?Object.create(Object.getPrototypeOf(parent)):Object.create(prototype)}if(circular){var index=allParents.indexOf(parent);if(-1!=index)return allChildren[index];allParents.push(parent),allChildren.push(child)}for(var i in parent)child[i]=_clone(parent[i],depth-1);return child}var allParents=[],allChildren=[],useBuffer="undefined"!=typeof Buffer;return circular===void 0&&(circular=!0),depth===void 0&&(depth=1/0),_clone(parent,depth)}function Reporter(lines,ruleset){this.messages=[],this.stats=[],this.lines=lines,this.ruleset=ruleset}var parserlib={};(function(){function EventTarget(){this._listeners={}}function StringReader(text){this._input=text.replace(/\\n\\r?/g,"\\n"),this._line=1,this._col=1,this._cursor=0}function SyntaxError(message,line,col){this.col=col,this.line=line,this.message=message}function SyntaxUnit(text,line,col,type){this.col=col,this.line=line,this.text=text,this.type=type}function TokenStreamBase(input,tokenData){this._reader=input?new StringReader(""+input):null,this._token=null,this._tokenData=tokenData,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}EventTarget.prototype={constructor:EventTarget,addListener:function(type,listener){this._listeners[type]||(this._listeners[type]=[]),this._listeners[type].push(listener)},fire:function(event){if("string"==typeof event&&(event={type:event}),event.target!==void 0&&(event.target=this),event.type===void 0)throw Error("Event object missing \'type\' property.");if(this._listeners[event.type])for(var listeners=this._listeners[event.type].concat(),i=0,len=listeners.length;len>i;i++)listeners[i].call(this,event)},removeListener:function(type,listener){if(this._listeners[type])for(var listeners=this._listeners[type],i=0,len=listeners.length;len>i;i++)if(listeners[i]===listener){listeners.splice(i,1);break}}},StringReader.prototype={constructor:StringReader,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(count){var c=null;return count=count===void 0?1:count,this._cursori;i++)nameMap.push(tokenData[i].name),tokenData[tokenData[i].name]=i,tokenData[i].text&&(typeMap[tokenData[i].text]=i);return tokenData.name=function(tt){return nameMap[tt]},tokenData.type=function(c){return typeMap[c]},tokenData},TokenStreamBase.prototype={constructor:TokenStreamBase,match:function(tokenTypes,channel){tokenTypes instanceof Array||(tokenTypes=[tokenTypes]);\nfor(var tt=this.get(channel),i=0,len=tokenTypes.length;len>i;)if(tt==tokenTypes[i++])return!0;return this.unget(),!1},mustMatch:function(tokenTypes){var token;if(tokenTypes instanceof Array||(tokenTypes=[tokenTypes]),!this.match.apply(this,arguments))throw token=this.LT(1),new SyntaxError("Expected "+this._tokenData[tokenTypes[0]].name+" at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol)},advance:function(tokenTypes,channel){for(;0!==this.LA(0)&&!this.match(tokenTypes,channel);)this.get();return this.LA(0)},get:function(channel){var token,info,tokenInfo=this._tokenData,i=(this._reader,0);if(tokenInfo.length,this._lt.length&&this._ltIndex>=0&&this._ltIndex-1&&!tokenInfo[token.type].hide&&(token.channel=tokenInfo[token.type].channel,this._token=token,this._lt.push(token),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),info=tokenInfo[token.type],info&&(info.hide||void 0!==info.channel&&channel!==info.channel)?this.get(channel):token.type},LA:function(index){var tt,total=index;if(index>0){if(index>5)throw Error("Too much lookahead.");for(;total;)tt=this.get(),total--;for(;index>total;)this.unget(),total++}else if(0>index){if(!this._lt[this._ltIndex+index])throw Error("Too much lookbehind.");tt=this._lt[this._ltIndex+index].type}else tt=this._token.type;return tt},LT:function(index){return this.LA(index),this._lt[this._ltIndex+index-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(tokenType){return 0>tokenType||tokenType>this._tokenData.length?"UNKNOWN_TOKEN":this._tokenData[tokenType].name},tokenType:function(tokenName){return this._tokenData[tokenName]||-1},unget:function(){if(!this._ltIndexCache.length)throw Error("Too much lookahead.");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:StringReader,SyntaxError:SyntaxError,SyntaxUnit:SyntaxUnit,EventTarget:EventTarget,TokenStreamBase:TokenStreamBase}})(),function(){function Combinator(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.COMBINATOR_TYPE),this.type="unknown",/^\\s+$/.test(text)?this.type="descendant":">"==text?this.type="child":"+"==text?this.type="adjacent-sibling":"~"==text&&(this.type="sibling")}function MediaFeature(name,value){SyntaxUnit.call(this,"("+name+(null!==value?":"+value:"")+")",name.startLine,name.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=name,this.value=value}function MediaQuery(modifier,mediaType,features,line,col){SyntaxUnit.call(this,(modifier?modifier+" ":"")+(mediaType?mediaType:"")+(mediaType&&features.length>0?" and ":"")+features.join(" and "),line,col,Parser.MEDIA_QUERY_TYPE),this.modifier=modifier,this.mediaType=mediaType,this.features=features}function Parser(options){EventTarget.call(this),this.options=options||{},this._tokenStream=null}function PropertyName(text,hack,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_NAME_TYPE),this.hack=hack}function PropertyValue(parts,line,col){SyntaxUnit.call(this,parts.join(" "),line,col,Parser.PROPERTY_VALUE_TYPE),this.parts=parts}function PropertyValueIterator(value){this._i=0,this._parts=value.parts,this._marks=[],this.value=value}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type="unknown";var temp;if(/^([+\\-]?[\\d\\.]+)([a-z]+)$/i.test(text))switch(this.type="dimension",this.value=+RegExp.$1,this.units=RegExp.$2,this.units.toLowerCase()){case"em":case"rem":case"ex":case"px":case"cm":case"mm":case"in":case"pt":case"pc":case"ch":case"vh":case"vw":case"vmax":case"vmin":this.type="length";break;case"deg":case"rad":case"grad":this.type="angle";break;case"ms":case"s":this.type="time";break;case"hz":case"khz":this.type="frequency";break;case"dpi":case"dpcm":this.type="resolution"}else/^([+\\-]?[\\d\\.]+)%$/i.test(text)?(this.type="percentage",this.value=+RegExp.$1):/^([+\\-]?\\d+)$/i.test(text)?(this.type="integer",this.value=+RegExp.$1):/^([+\\-]?[\\d\\.]+)$/i.test(text)?(this.type="number",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type="color",temp=RegExp.$1,3==temp.length?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type="color",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100):/^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type="color",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\\(\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type="color",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100,this.alpha=+RegExp.$4):/^hsl\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*\\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*,\\s*([\\d\\.]+)\\s*\\)/i.test(text)?(this.type="color",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\\(["\']?([^\\)"\']+)["\']?\\)/i.test(text)?(this.type="uri",this.uri=RegExp.$1):/^([^\\(]+)\\(/i.test(text)?(this.type="function",this.name=RegExp.$1,this.value=text):/^["\'][^"\']*["\']/.test(text)?(this.type="string",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type="color",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\\,\\/]$/.test(text)?(this.type="operator",this.value=text):/^[a-z\\-_\\u0080-\\uFFFF][a-z0-9\\-_\\u0080-\\uFFFF]*$/i.test(text)&&(this.type="identifier",this.value=text)}function Selector(parts,line,col){SyntaxUnit.call(this,parts.join(" "),line,col,Parser.SELECTOR_TYPE),this.parts=parts,this.specificity=Specificity.calculate(this)}function SelectorPart(elementName,modifiers,text,line,col){SyntaxUnit.call(this,text,line,col,Parser.SELECTOR_PART_TYPE),this.elementName=elementName,this.modifiers=modifiers}function SelectorSubPart(text,type,line,col){SyntaxUnit.call(this,text,line,col,Parser.SELECTOR_SUB_PART_TYPE),this.type=type,this.args=[]}function Specificity(a,b,c,d){this.a=a,this.b=b,this.c=c,this.d=d}function isHexDigit(c){return null!==c&&h.test(c)}function isDigit(c){return null!==c&&/\\d/.test(c)}function isWhitespace(c){return null!==c&&/\\s/.test(c)}function isNewLine(c){return null!==c&&nl.test(c)}function isNameStart(c){return null!==c&&/[a-z_\\u0080-\\uFFFF\\\\]/i.test(c)}function isNameChar(c){return null!==c&&(isNameStart(c)||/[0-9\\-\\\\]/.test(c))}function isIdentStart(c){return null!==c&&(isNameStart(c)||/\\-\\\\/.test(c))}function mix(receiver,supplier){for(var prop in supplier)supplier.hasOwnProperty(prop)&&(receiver[prop]=supplier[prop]);return receiver}function TokenStream(input){TokenStreamBase.call(this,input,Tokens)}function ValidationError(message,line,col){this.col=col,this.line=line,this.message=message}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32",activeBorder:"Active window border.",activecaption:"Active window caption.",appworkspace:"Background color of multiple document interface.",background:"Desktop background.",buttonface:"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonhighlight:"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttonshadow:"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",buttontext:"Text on push buttons.",captiontext:"Text in caption, size box, and scrollbar arrow box.",graytext:"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",greytext:"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.",highlight:"Item(s) selected in a control.",highlighttext:"Text of item(s) selected in a control.",inactiveborder:"Inactive window border.",inactivecaption:"Inactive window caption.",inactivecaptiontext:"Color of text in an inactive caption.",infobackground:"Background color for tooltip controls.",infotext:"Text color for tooltip controls.",menu:"Menu background.",menutext:"Text in menus.",scrollbar:"Scroll bar gray area.",threeddarkshadow:"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedface:"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedhighlight:"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedlightshadow:"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",threedshadow:"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",window:"Window background.",windowframe:"Window frame.",windowtext:"Text in windows."};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var prop,proto=new EventTarget,additions={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var count,token,tt,tokenStream=this._tokenStream;for(this.fire("startstylesheet"),this._charset(),this._skipCruft();tokenStream.peek()==Tokens.IMPORT_SYM;)this._import(),this._skipCruft();for(;tokenStream.peek()==Tokens.NAMESPACE_SYM;)this._namespace(),this._skipCruft();for(tt=tokenStream.peek();tt>Tokens.EOF;){try{switch(tt){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:if(tokenStream.get(),this.options.strict)throw new SyntaxError("Unknown @ rule.",tokenStream.LT(0).startLine,tokenStream.LT(0).startCol);for(this.fire({type:"error",error:null,message:"Unknown @ rule: "+tokenStream.LT(0).value+".",line:tokenStream.LT(0).startLine,col:tokenStream.LT(0).startCol}),count=0;tokenStream.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE;)count++;for(;count;)tokenStream.advance([Tokens.RBRACE]),count--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(tt){case Tokens.CHARSET_SYM:throw token=tokenStream.LT(1),this._charset(!1),new SyntaxError("@charset not allowed here.",token.startLine,token.startCol);case Tokens.IMPORT_SYM:throw token=tokenStream.LT(1),this._import(!1),new SyntaxError("@import not allowed here.",token.startLine,token.startCol);case Tokens.NAMESPACE_SYM:throw token=tokenStream.LT(1),this._namespace(!1),new SyntaxError("@namespace not allowed here.",token.startLine,token.startCol);default:tokenStream.get(),this._unexpectedToken(tokenStream.token())}}}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;this.fire({type:"error",error:ex,message:ex.message,line:ex.line,col:ex.col})}tt=tokenStream.peek()}tt!=Tokens.EOF&&this._unexpectedToken(tokenStream.token()),this.fire("endstylesheet")},_charset:function(emit){var charset,token,line,col,tokenStream=this._tokenStream;tokenStream.match(Tokens.CHARSET_SYM)&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.mustMatch(Tokens.STRING),token=tokenStream.token(),charset=token.value,this._readWhitespace(),tokenStream.mustMatch(Tokens.SEMICOLON),emit!==!1&&this.fire({type:"charset",charset:charset,line:line,col:col}))},_import:function(emit){var uri,importToken,tokenStream=this._tokenStream,mediaList=[];tokenStream.mustMatch(Tokens.IMPORT_SYM),importToken=tokenStream.token(),this._readWhitespace(),tokenStream.mustMatch([Tokens.STRING,Tokens.URI]),uri=tokenStream.token().value.replace(/^(?:url\\()?["\']?([^"\']+?)["\']?\\)?$/,"$1"),this._readWhitespace(),mediaList=this._media_query_list(),tokenStream.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),emit!==!1&&this.fire({type:"import",uri:uri,media:mediaList,line:importToken.startLine,col:importToken.startCol})},_namespace:function(emit){var line,col,prefix,uri,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.NAMESPACE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.match(Tokens.IDENT)&&(prefix=tokenStream.token().value,this._readWhitespace()),tokenStream.mustMatch([Tokens.STRING,Tokens.URI]),uri=tokenStream.token().value.replace(/(?:url\\()?["\']([^"\']+)["\']\\)?/,"$1"),this._readWhitespace(),tokenStream.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),emit!==!1&&this.fire({type:"namespace",prefix:prefix,uri:uri,line:line,col:col})},_media:function(){var line,col,mediaList,tokenStream=this._tokenStream;for(tokenStream.mustMatch(Tokens.MEDIA_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),mediaList=this._media_query_list(),tokenStream.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:"startmedia",media:mediaList,line:line,col:col});;)if(tokenStream.peek()==Tokens.PAGE_SYM)this._page();else if(tokenStream.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(tokenStream.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;tokenStream.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:"endmedia",media:mediaList,line:line,col:col})},_media_query_list:function(){var tokenStream=this._tokenStream,mediaList=[];for(this._readWhitespace(),(tokenStream.peek()==Tokens.IDENT||tokenStream.peek()==Tokens.LPAREN)&&mediaList.push(this._media_query());tokenStream.match(Tokens.COMMA);)this._readWhitespace(),mediaList.push(this._media_query());return mediaList},_media_query:function(){var tokenStream=this._tokenStream,type=null,ident=null,token=null,expressions=[];if(tokenStream.match(Tokens.IDENT)&&(ident=tokenStream.token().value.toLowerCase(),"only"!=ident&&"not"!=ident?(tokenStream.unget(),ident=null):token=tokenStream.token()),this._readWhitespace(),tokenStream.peek()==Tokens.IDENT?(type=this._media_type(),null===token&&(token=tokenStream.token())):tokenStream.peek()==Tokens.LPAREN&&(null===token&&(token=tokenStream.LT(1)),expressions.push(this._media_expression())),null===type&&0===expressions.length)return null;for(this._readWhitespace();tokenStream.match(Tokens.IDENT);)"and"!=tokenStream.token().value.toLowerCase()&&this._unexpectedToken(tokenStream.token()),this._readWhitespace(),expressions.push(this._media_expression());return new MediaQuery(ident,type,expressions,token.startLine,token.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var token,tokenStream=this._tokenStream,feature=null,expression=null;return tokenStream.mustMatch(Tokens.LPAREN),this._readWhitespace(),feature=this._media_feature(),this._readWhitespace(),tokenStream.match(Tokens.COLON)&&(this._readWhitespace(),token=tokenStream.LT(1),expression=this._expression()),tokenStream.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(feature,expression?new SyntaxUnit(expression,token.startLine,token.startCol):null)},_media_feature:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(tokenStream.token())},_page:function(){var line,col,tokenStream=this._tokenStream,identifier=null,pseudoPage=null;tokenStream.mustMatch(Tokens.PAGE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.match(Tokens.IDENT)&&(identifier=tokenStream.token().value,"auto"===identifier.toLowerCase()&&this._unexpectedToken(tokenStream.token())),tokenStream.peek()==Tokens.COLON&&(pseudoPage=this._pseudo_page()),this._readWhitespace(),this.fire({type:"startpage",id:identifier,pseudo:pseudoPage,line:line,col:col}),this._readDeclarations(!0,!0),this.fire({type:"endpage",id:identifier,pseudo:pseudoPage,line:line,col:col})},_margin:function(){var line,col,tokenStream=this._tokenStream,marginSym=this._margin_sym();return marginSym?(line=tokenStream.token().startLine,col=tokenStream.token().startCol,this.fire({type:"startpagemargin",margin:marginSym,line:line,col:col}),this._readDeclarations(!0),this.fire({type:"endpagemargin",margin:marginSym,line:line,col:col}),!0):!1},_margin_sym:function(){var tokenStream=this._tokenStream;return tokenStream.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(tokenStream.token()):null},_pseudo_page:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch(Tokens.COLON),tokenStream.mustMatch(Tokens.IDENT),tokenStream.token().value},_font_face:function(){var line,col,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.FONT_FACE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),this.fire({type:"startfontface",line:line,col:col}),this._readDeclarations(!0),this.fire({type:"endfontface",line:line,col:col})},_viewport:function(){var line,col,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.VIEWPORT_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),this.fire({type:"startviewport",line:line,col:col}),this._readDeclarations(!0),this.fire({type:"endviewport",line:line,col:col})},_operator:function(inFunction){var tokenStream=this._tokenStream,token=null;return(tokenStream.match([Tokens.SLASH,Tokens.COMMA])||inFunction&&tokenStream.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))&&(token=tokenStream.token(),this._readWhitespace()),token?PropertyValuePart.fromToken(token):null},_combinator:function(){var token,tokenStream=this._tokenStream,value=null;return tokenStream.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(token=tokenStream.token(),value=new Combinator(token.value,token.startLine,token.startCol),this._readWhitespace()),value},_unary_operator:function(){var tokenStream=this._tokenStream;return tokenStream.match([Tokens.MINUS,Tokens.PLUS])?tokenStream.token().value:null},_property:function(){var tokenValue,token,line,col,tokenStream=this._tokenStream,value=null,hack=null;return tokenStream.peek()==Tokens.STAR&&this.options.starHack&&(tokenStream.get(),token=tokenStream.token(),hack=token.value,line=token.startLine,col=token.startCol),tokenStream.match(Tokens.IDENT)&&(token=tokenStream.token(),tokenValue=token.value,"_"==tokenValue.charAt(0)&&this.options.underscoreHack&&(hack="_",tokenValue=tokenValue.substring(1)),value=new PropertyName(tokenValue,hack,line||token.startLine,col||token.startCol),this._readWhitespace()),value},_ruleset:function(){var tt,selectors,tokenStream=this._tokenStream;try{selectors=this._selectors_group()}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;if(this.fire({type:"error",error:ex,message:ex.message,line:ex.line,col:ex.col}),tt=tokenStream.advance([Tokens.RBRACE]),tt!=Tokens.RBRACE)throw ex;return!0}return selectors&&(this.fire({type:"startrule",selectors:selectors,line:selectors[0].line,col:selectors[0].col}),this._readDeclarations(!0),this.fire({type:"endrule",selectors:selectors,line:selectors[0].line,col:selectors[0].col})),selectors},_selectors_group:function(){var selector,tokenStream=this._tokenStream,selectors=[];if(selector=this._selector(),null!==selector)for(selectors.push(selector);tokenStream.match(Tokens.COMMA);)this._readWhitespace(),selector=this._selector(),null!==selector?selectors.push(selector):this._unexpectedToken(tokenStream.LT(1));return selectors.length?selectors:null},_selector:function(){var tokenStream=this._tokenStream,selector=[],nextSelector=null,combinator=null,ws=null;if(nextSelector=this._simple_selector_sequence(),null===nextSelector)return null;for(selector.push(nextSelector);;)if(combinator=this._combinator(),null!==combinator)selector.push(combinator),nextSelector=this._simple_selector_sequence(),null===nextSelector?this._unexpectedToken(tokenStream.LT(1)):selector.push(nextSelector);else{if(!this._readWhitespace())break;ws=new Combinator(tokenStream.token().value,tokenStream.token().startLine,tokenStream.token().startCol),combinator=this._combinator(),nextSelector=this._simple_selector_sequence(),null===nextSelector?null!==combinator&&this._unexpectedToken(tokenStream.LT(1)):(null!==combinator?selector.push(combinator):selector.push(ws),selector.push(nextSelector))}return new Selector(selector,selector[0].line,selector[0].col)},_simple_selector_sequence:function(){var line,col,tokenStream=this._tokenStream,elementName=null,modifiers=[],selectorText="",components=[function(){return tokenStream.match(Tokens.HASH)?new SelectorSubPart(tokenStream.token().value,"id",tokenStream.token().startLine,tokenStream.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],i=0,len=components.length,component=null;for(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol,elementName=this._type_selector(),elementName||(elementName=this._universal()),null!==elementName&&(selectorText+=elementName);;){if(tokenStream.peek()===Tokens.S)break;for(;len>i&&null===component;)component=components[i++].call(this);if(null===component){if(""===selectorText)return null;break}i=0,modifiers.push(component),selectorText+=""+component,component=null}return""!==selectorText?new SelectorPart(elementName,modifiers,selectorText,line,col):null},_type_selector:function(){var tokenStream=this._tokenStream,ns=this._namespace_prefix(),elementName=this._element_name();return elementName?(ns&&(elementName.text=ns+elementName.text,elementName.col-=ns.length),elementName):(ns&&(tokenStream.unget(),ns.length>1&&tokenStream.unget()),null)},_class:function(){var token,tokenStream=this._tokenStream;return tokenStream.match(Tokens.DOT)?(tokenStream.mustMatch(Tokens.IDENT),token=tokenStream.token(),new SelectorSubPart("."+token.value,"class",token.startLine,token.startCol-1)):null},_element_name:function(){var token,tokenStream=this._tokenStream;return tokenStream.match(Tokens.IDENT)?(token=tokenStream.token(),new SelectorSubPart(token.value,"elementName",token.startLine,token.startCol)):null},_namespace_prefix:function(){var tokenStream=this._tokenStream,value="";return(tokenStream.LA(1)===Tokens.PIPE||tokenStream.LA(2)===Tokens.PIPE)&&(tokenStream.match([Tokens.IDENT,Tokens.STAR])&&(value+=tokenStream.token().value),tokenStream.mustMatch(Tokens.PIPE),value+="|"),value.length?value:null},_universal:function(){var ns,tokenStream=this._tokenStream,value="";return ns=this._namespace_prefix(),ns&&(value+=ns),tokenStream.match(Tokens.STAR)&&(value+="*"),value.length?value:null},_attrib:function(){var ns,token,tokenStream=this._tokenStream,value=null;return tokenStream.match(Tokens.LBRACKET)?(token=tokenStream.token(),value=token.value,value+=this._readWhitespace(),ns=this._namespace_prefix(),ns&&(value+=ns),tokenStream.mustMatch(Tokens.IDENT),value+=tokenStream.token().value,value+=this._readWhitespace(),tokenStream.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(value+=tokenStream.token().value,value+=this._readWhitespace(),tokenStream.mustMatch([Tokens.IDENT,Tokens.STRING]),value+=tokenStream.token().value,value+=this._readWhitespace()),tokenStream.mustMatch(Tokens.RBRACKET),new SelectorSubPart(value+"]","attribute",token.startLine,token.startCol)):null},_pseudo:function(){var line,col,tokenStream=this._tokenStream,pseudo=null,colons=":";return tokenStream.match(Tokens.COLON)&&(tokenStream.match(Tokens.COLON)&&(colons+=":"),tokenStream.match(Tokens.IDENT)?(pseudo=tokenStream.token().value,line=tokenStream.token().startLine,col=tokenStream.token().startCol-colons.length):tokenStream.peek()==Tokens.FUNCTION&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol-colons.length,pseudo=this._functional_pseudo()),pseudo&&(pseudo=new SelectorSubPart(colons+pseudo,"pseudo",line,col))),pseudo},_functional_pseudo:function(){var tokenStream=this._tokenStream,value=null;return tokenStream.match(Tokens.FUNCTION)&&(value=tokenStream.token().value,value+=this._readWhitespace(),value+=this._expression(),tokenStream.mustMatch(Tokens.RPAREN),value+=")"),value},_expression:function(){for(var tokenStream=this._tokenStream,value="";tokenStream.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]);)value+=tokenStream.token().value,value+=this._readWhitespace();return value.length?value:null},_negation:function(){var line,col,arg,tokenStream=this._tokenStream,value="",subpart=null;return tokenStream.match(Tokens.NOT)&&(value=tokenStream.token().value,line=tokenStream.token().startLine,col=tokenStream.token().startCol,value+=this._readWhitespace(),arg=this._negation_arg(),value+=arg,value+=this._readWhitespace(),tokenStream.match(Tokens.RPAREN),value+=tokenStream.token().value,subpart=new SelectorSubPart(value,"not",line,col),subpart.args.push(arg)),subpart},_negation_arg:function(){var line,col,part,tokenStream=this._tokenStream,args=[this._type_selector,this._universal,function(){return tokenStream.match(Tokens.HASH)?new SelectorSubPart(tokenStream.token().value,"id",tokenStream.token().startLine,tokenStream.token().startCol):null},this._class,this._attrib,this._pseudo],arg=null,i=0,len=args.length;for(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol;len>i&&null===arg;)arg=args[i].call(this),i++;return null===arg&&this._unexpectedToken(tokenStream.LT(1)),part="elementName"==arg.type?new SelectorPart(arg,[],""+arg,line,col):new SelectorPart(null,[arg],""+arg,line,col)},_declaration:function(){var tokenStream=this._tokenStream,property=null,expr=null,prio=null,invalid=null,propertyName="";if(property=this._property(),null!==property){tokenStream.mustMatch(Tokens.COLON),this._readWhitespace(),expr=this._expr(),expr&&0!==expr.length||this._unexpectedToken(tokenStream.LT(1)),prio=this._prio(),propertyName=""+property,(this.options.starHack&&"*"==property.hack||this.options.underscoreHack&&"_"==property.hack)&&(propertyName=property.text);try{this._validateProperty(propertyName,expr)}catch(ex){invalid=ex}return this.fire({type:"property",property:property,value:expr,important:prio,line:property.line,col:property.col,invalid:invalid}),!0}return!1},_prio:function(){var tokenStream=this._tokenStream,result=tokenStream.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),result},_expr:function(inFunction){var values=(this._tokenStream,[]),value=null,operator=null;if(value=this._term(inFunction),null!==value)for(values.push(value);;){if(operator=this._operator(inFunction),operator&&values.push(operator),value=this._term(inFunction),null===value)break;\nvalues.push(value)}return values.length>0?new PropertyValue(values,values[0].line,values[0].col):null},_term:function(inFunction){var token,line,col,tokenStream=this._tokenStream,unary=null,value=null,endChar=null;return unary=this._unary_operator(),null!==unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(value=this._ie_function(),null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol)):inFunction&&tokenStream.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(token=tokenStream.token(),endChar=token.endChar,value=token.value+this._expr(inFunction).text,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.mustMatch(Tokens.type(endChar)),value+=endChar,this._readWhitespace()):tokenStream.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(value=tokenStream.token().value,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),this._readWhitespace()):(token=this._hexcolor(),null===token?(null===unary&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol),null===value&&(value=tokenStream.LA(3)==Tokens.EQUALS&&this.options.ieFilters?this._ie_function():this._function())):(value=token.value,null===unary&&(line=token.startLine,col=token.startCol))),null!==value?new PropertyValuePart(null!==unary?unary+value:value,line,col):null},_function:function(){var lt,tokenStream=this._tokenStream,functionText=null,expr=null;if(tokenStream.match(Tokens.FUNCTION)){if(functionText=tokenStream.token().value,this._readWhitespace(),expr=this._expr(!0),functionText+=expr,this.options.ieFilters&&tokenStream.peek()==Tokens.EQUALS)do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&<!=Tokens.S&<!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=")",this._readWhitespace()}return functionText},_ie_function:function(){var lt,tokenStream=this._tokenStream,functionText=null;if(tokenStream.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){functionText=tokenStream.token().value;do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&<!=Tokens.S&<!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=")",this._readWhitespace()}return functionText},_hexcolor:function(){var color,tokenStream=this._tokenStream,token=null;if(tokenStream.match(Tokens.HASH)){if(token=tokenStream.token(),color=token.value,!/#[a-f0-9]{3,6}/i.test(color))throw new SyntaxError("Expected a hex color but found \'"+color+"\' at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol);this._readWhitespace()}return token},_keyframes:function(){var token,tt,name,tokenStream=this._tokenStream,prefix="";for(tokenStream.mustMatch(Tokens.KEYFRAMES_SYM),token=tokenStream.token(),/^@\\-([^\\-]+)\\-/.test(token.value)&&(prefix=RegExp.$1),this._readWhitespace(),name=this._keyframe_name(),this._readWhitespace(),tokenStream.mustMatch(Tokens.LBRACE),this.fire({type:"startkeyframes",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tt=tokenStream.peek();tt==Tokens.IDENT||tt==Tokens.PERCENTAGE;)this._keyframe_rule(),this._readWhitespace(),tt=tokenStream.peek();this.fire({type:"endkeyframes",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tokenStream.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(tokenStream.token())},_keyframe_rule:function(){var keyList=(this._tokenStream,this._key_list());this.fire({type:"startkeyframerule",keys:keyList,line:keyList[0].line,col:keyList[0].col}),this._readDeclarations(!0),this.fire({type:"endkeyframerule",keys:keyList,line:keyList[0].line,col:keyList[0].col})},_key_list:function(){var tokenStream=this._tokenStream,keyList=[];for(keyList.push(this._key()),this._readWhitespace();tokenStream.match(Tokens.COMMA);)this._readWhitespace(),keyList.push(this._key()),this._readWhitespace();return keyList},_key:function(){var token,tokenStream=this._tokenStream;if(tokenStream.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(tokenStream.token());if(tokenStream.match(Tokens.IDENT)){if(token=tokenStream.token(),/from|to/i.test(token.value))return SyntaxUnit.fromToken(token);tokenStream.unget()}this._unexpectedToken(tokenStream.LT(1))},_skipCruft:function(){for(;this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]););},_readDeclarations:function(checkStart,readMargins){var tt,tokenStream=this._tokenStream;this._readWhitespace(),checkStart&&tokenStream.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(tokenStream.match(Tokens.SEMICOLON)||readMargins&&this._margin());else{if(!this._declaration())break;if(!tokenStream.match(Tokens.SEMICOLON))break}this._readWhitespace()}tokenStream.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;if(this.fire({type:"error",error:ex,message:ex.message,line:ex.line,col:ex.col}),tt=tokenStream.advance([Tokens.SEMICOLON,Tokens.RBRACE]),tt==Tokens.SEMICOLON)this._readDeclarations(!1,readMargins);else if(tt!=Tokens.RBRACE)throw ex}},_readWhitespace:function(){for(var tokenStream=this._tokenStream,ws="";tokenStream.match(Tokens.S);)ws+=tokenStream.token().value;return ws},_unexpectedToken:function(token){throw new SyntaxError("Unexpected token \'"+token.value+"\' at line "+token.startLine+", col "+token.startCol+".",token.startLine,token.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(property,value){Validation.validate(property,value)},parse:function(input){this._tokenStream=new TokenStream(input,Tokens),this._stylesheet()},parseStyleSheet:function(input){return this.parse(input)},parseMediaQuery:function(input){this._tokenStream=new TokenStream(input,Tokens);var result=this._media_query();return this._verifyEnd(),result},parsePropertyValue:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._expr();return this._readWhitespace(),this._verifyEnd(),result},parseRule:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._ruleset();return this._readWhitespace(),this._verifyEnd(),result},parseSelector:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._selector();return this._readWhitespace(),this._verifyEnd(),result},parseStyleAttribute:function(input){input+="}",this._tokenStream=new TokenStream(input,Tokens),this._readDeclarations()}};for(prop in additions)additions.hasOwnProperty(prop)&&(proto[prop]=additions[prop]);return proto}();var Properties={"align-items":"flex-start | flex-end | center | baseline | stretch","align-content":"flex-start | flex-end | center | space-between | space-around | stretch","align-self":"auto | flex-start | flex-end | center | baseline | stretch","-webkit-align-items":"flex-start | flex-end | center | baseline | stretch","-webkit-align-content":"flex-start | flex-end | center | space-between | space-around | stretch","-webkit-align-self":"auto | flex-start | flex-end | center | baseline | stretch","alignment-adjust":"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | | ","alignment-baseline":"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",animation:1,"animation-delay":{multi:"
Login:%{ login }
Password:%{ passwd }
Path:%{ path }
'),r={title:this.$gettext("FTP account created"),content:this.$gettextInterpolate(a,e),extended:!0},this.$notifications.success(r),c.emitter.emit("request:results",r),this.$router.push({name:"user/ftp-accounts"}));case 4:case"end":return t.stop()}}),t,this)}))),function(){return f.apply(this,arguments)}),isUserExists:function(t){return!this.existingUsers.includes(t)},copyPassword:function(){var t=this;(0,d.toClipboard)(this.password)&&this.$nextTick((function(){t.$notifications.success({title:"Password copied!"})}))}}};e.default=m},2862:function(t,e){},3080:function(t,e,a){"use strict";var r=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("app-page",[a("ui-button",{attrs:{slot:"footer:buttons",theme:"safe",validateGroup:"createFtpAccount"},on:{click:t.createFtpAccount},slot:"footer:buttons"},[a("translate",[t._v("Create")])],1),t._v(" "),a("app-page-section",[a("ui-form-element",{attrs:{group:"createFtpAccount",validators:{required:!0,isUserExists:t.isUserExists,regex:/^[a-z0-9]+$/i,api:t.$commands.validateFTP},vertical:t.$_Client.isPhone}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("FTP Username")]),t._v(" "),a("input-text",{attrs:{slot:"content",suffix:""+t.ftpsep+t.$p6e.toU(t.$domain)},slot:"content",model:{value:t.username,callback:function(e){t.username=e},expression:"username"}}),t._v(" "),a("translate",{attrs:{slot:"error:isUserExists"},slot:"error:isUserExists"},[t._v("\n User already exists\n ")]),t._v(" "),a("translate",{attrs:{slot:"error:regex"},slot:"error:regex"},[t._v("\n Wrong username format\n ")])],1),t._v(" "),a("ui-form-element",{attrs:{group:"createFtpAccount",validators:{required:!0,api:t.$commands.validatePassword},vertical:t.$_Client.isPhone}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Enter Password\n ")]),t._v(" "),a("input-password",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!0},expression:"{ grow: true }"}],ref:"password",attrs:{slot:"content",showGenerator:""},slot:"content",model:{value:t.password,callback:function(e){t.password=e},expression:"password"}})],1),t._v(" "),a("ui-form-element",{attrs:{underline:!1}},[a("template",{slot:"content"},[a("ui-tabs",{attrs:{radio:"",tabs:t.ftpOptions,selected:t.type},on:{"update:selected":function(e){t.type=e}}},[a("ui-form-element",{attrs:{slot:"tab:custom",underline:!1,hideTitle:t.$_Client.isPhone},slot:"tab:custom"},[t.$_Client.isPhone?t._e():a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Directory\n ")]),t._v(" "),a("ui-input-group",{attrs:{slot:"content"},slot:"content"},[a("ui-button",{attrs:{slot:"additions:left",disabled:"disabled"},slot:"additions:left"},[t._v("\n "+t._s(t.customDirPrefix)+"\n ")]),t._v(" "),a("input-autocomplete",{attrs:{slot:"input",values:t.folders,suggestAfter:3},slot:"input",model:{value:t.customDir,callback:function(e){t.customDir=e},expression:"customDir"}})],1)],1)],1)],1)],2)],1)],1)},s=[];a.d(e,"a",(function(){return r})),a.d(e,"b",(function(){return s}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/114.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/114.js new file mode 100644 index 0000000..53c5fd7 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/114.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[114],{1388:function(e,t,a){"use strict";a.r(t);var n=a(3081),s=a(2135);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var o=a(0),i=a(2863),u=a.n(i),d=Object(o.a)(s.default,n.a,n.b,!1,null,null,null);"function"==typeof u.a&&u()(d),t.default=d.exports},1425:function(e,t,a){"use strict";var n=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.validateIPRangeList=t.validateDomain=t.validatePassword=t.validateSubdomain=t.validateUsername=t.validateDBUser=t.validateDatabase=t.validateDNSName=t.validateMXValue=t.validateDNSValue=t.validateFTP=t.validateEmail=t.validateForwarder=void 0;var s=n(a(30)),r=n(a(36)),o=n(a(1426)),i=s.default.get({url:"/CMD_JSON_VALIDATE",schema:{value:s.default.REQUIRED_STRING},response:{valid:!0,message:""},mapResponse:{valid:o.default.isValid,message:o.default.getMessage}}),u=i.extend({id:"VALIDATE_FORWARDER",params:{type:"forwarder",ignore_system_default:!0}});t.validateForwarder=u;var d=i.extend({id:"VALIDATE_EMAIL",params:{type:"email",check_mailing_list:!0},schema:{check_exists:{type:Boolean,required:!1,default:!0}}});t.validateEmail=d;var c=i.extend({id:"VALIDATE_FTP",params:{type:"ftp"},domain:!0});t.validateFTP=c;var l=i.extend({params:{type:"dns"},domain:!0,schema:{record:s.default.REQUIRED_STRING}}),p=l.extend({id:"VALIDATE_DNS_VALUE",params:{check:"value",name:!0},domain:!0,schema:{value:s.default.REQUIRED_STRING}});t.validateDNSValue=p;var m=p.extend({id:"VALIDATE_MX_VALUE",params:{record:"MX"},before:function(e){return{value:"10",mx_value:e.value}}});t.validateMXValue=m;var f=l.extend({id:"VALIDATE_DNS_NAME",params:{check:"name",value:!0,mx_value:!0},schema:{name:s.default.REQUIRED_STRING,value:null}});t.validateDNSName=f;var v=i.extend({id:"VALIDATE_DATABASE",params:{type:"dbname"}});t.validateDatabase=v;var _=i.extend({id:"VALIDATE_DATABASE_USER",params:{type:"dbusername"}});t.validateDBUser=_;var A=i.extend({id:"VALIDATE_USERNAME",params:{type:"username"}});t.validateUsername=A;var h=i.extend({id:"VALIDATE_SUBDOMAIN",domain:!0,params:{type:"subdomain"}});t.validateSubdomain=h;var y=i.extend({id:"VALIDATE_PASSWORD",params:{type:"password"}});t.validatePassword=y;var D=i.extend({id:"VALIDATE_DOMAIN",params:{type:"domain"},before:function(e){var t=e.value;return{value:r.default.toASCII(t)}}});t.validateDomain=D;var E=i.extend({id:"VALIDATE_IP_RANGE_LIST",params:{type:"ip_range_list"}});t.validateIPRangeList=E},1426:function(e,t,a){"use strict";a.r(t);var n=a(35);t.default={isValid:function(e){return void 0===e.error},getMessage:function(e){return Object(n.toAppHtml)(e.error||"")}}},1475:function(e,t,a){"use strict";var n=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.changePassword=t.updateSettings=t.getSettings=t.deleteAccounts=t.unsuspendAccounts=t.suspendAccounts=t.updateAccount=t.createAccount=t.getAccounts=t.getAccount=void 0;var s=n(a(2)),r=n(a(30));function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}var i=r.default.get({id:"FTP_ACCOUNT",url:"/CMD_FTP_SHOW",domain:!0,schema:{user:r.default.REQUIRED_STRING}});t.getAccount=i;var u=r.default.get({id:"FTP_ACCOUNTS",url:"/CMD_FTP",response:[],params:{full_json:!0},domain:!0,after:function(e){return e.flow(e.project({accounts:"users",anonLogin:"ANONLOGIN"}),e.mapProp("accounts",e.flow(e.mapValues((function(e,t){return function(e){for(var t=1;tt.$api.requests},attrs:{"translate-params":{n:t.selected.length}}},[t._v("\n Selected entries count: %{n}\n ")]),t._v(" "),n("translate",{attrs:{"translate-params":{n:t.$api.requests}}},[t._v("\n Maximum requests per week: %{n}\n ")])],1),t._v(" "),n("div",{staticClass:"pageSsl-leTable overfl:auto",attrs:{slot:"content"},slot:"content"},[n("div",{staticClass:"table pos:rel"},[n("table",{staticClass:"table-elem pos:rel z:0"},[n("thead",[n("tr",[n("th",{staticClass:"lineh:1",attrs:{width:"1%"}},[n("input-checkbox",{attrs:{title:t.selected.length?t.$gettext("Clear Selection"):t.$gettext("Select All Domains"),model:t.selected.length===t.domains.length},on:{change:function(e){t.selected=t.selected.length===t.domains.length?[]:t.domains}}})],1),t._v(" "),n("th",[n("div",{staticClass:"wrap:nowrap fx:dir:row fx:main:between fx:cross:center"},[n("translate",[t._v("Let's Encrypt Certificate Entries")])],1)])])]),t._v(" "),n("tbody",t._l(t.domains,(function(e){return n("tr",[n("td",{staticClass:"lineh:1"},[n("input-checkbox",{attrs:{value:e},model:{value:t.selected,callback:function(e){t.selected=e},expression:"selected"}})],1),t._v(" "),n("td",[t._v(t._s(e))])])})),0)])])])]):t._e(),t._v(" "),n("save-button",{attrs:{valid:t.$valid("commonRequestData")&&!!t.selected.length},on:{click:t.submit}})],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3213:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tab"},[n("ui-form-element",{attrs:{group:"certificateRequest",validators:{required:!0,maxLength:2},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Country")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.country},on:{input:function(e){return t.$emit("update:country",e)}},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{group:"certificateRequest",validators:{required:!0},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("State/Province")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.province},on:{input:function(e){return t.$emit("update:province",e)}},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{group:"certificateRequest",validators:{required:!0},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("City")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.city},on:{input:function(e){return t.$emit("update:city",e)}},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{group:"certificateRequest",validators:{required:!0},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Company")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.company},on:{input:function(e){return t.$emit("update:company",e)}},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{group:"certificateRequest",validators:{required:!0},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Company Division")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.division},on:{input:function(e){return t.$emit("update:division",e)}},slot:"content"})],1),t._v(" "),n("common-data-editor",t._g(t._b({},"common-data-editor",{name:t.name,email:t.email,keysize:t.keysize,encryption:t.encryption},!1),t.$listeners)),t._v(" "),n("save-button",{attrs:{valid:t.$valid("certificateRequest")&&t.$valid("commonRequestData")},on:{click:t.submit}})],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3214:function(t,e,n){"use strict";var r=function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"tab"},[e("save-button",{on:{click:this.submit}})],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3215:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ui-dialog",{attrs:{id:"CERTIFICATE_REQUEST_DIALOG",size:"normal",noCloseBtn:"",noAutoClose:""}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Certificate Request")]),t._v(" "),n("template",{slot:"content"},[n("p",[n("translate",[t._v("Here is your SSL Certificate Request.")]),t._v(" "),n("br"),t._v(" "),n("translate",[t._v("You will send this text to a Certificate Authority and they will give you a Signed Certificate.")]),t._v(" "),n("br"),t._v(" "),n("translate",[t._v('To use it, paste the Signed Certificate on "Paste a pre-generated certificate and key" tab and click "Save".')]),t._v(" "),n("br")],1),t._v(" "),n("ui-form-element",{attrs:{underline:!1}},[n("input-textarea",{attrs:{slot:"content",value:t.$api.request,disabled:"",rows:"40"},slot:"content"})],1),t._v(" "),n("p",{directives:[{name:"translate",rawName:"v-translate"}]},[t._v('\n Be sure to copy and backup the "RSA PRIVATE KEY" along with the request. You will need it when installing the certificate. Because you\'re an admin, you will be saving to the "shared server certificate" and the key is not saved anywhere until you paste it with the certificate.\n ')])],1),t._v(" "),n("ui-button",{attrs:{slot:"buttons",theme:"light"},on:{click:t.copyRequest},slot:"buttons"},[n("translate",[t._v("Copy to Clipboard")])],1)],2)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3216:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ui-form-element",{attrs:{vertical:""}},[n("ui-grid",{attrs:{slot:"content",cross:"center"},slot:"content"},[n("input-checkbox",{model:{value:t.force,callback:function(e){t.force=e},expression:"force"}},[n("translate",[t._v("Force SSL with https redirect")])],1),t._v(" "),n("ui-button",{attrs:{theme:"light",size:"small"},on:{click:t.submit}},[n("translate",[t._v("Save")])],1)],1)],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3217:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"tab"},[n("ui-form-element",{attrs:{vertical:""}},[n("translate",{attrs:{slot:"title",tag:"h3"},slot:"title"},[t._v("Key")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column",cross:"start"},expression:"{\n dir: 'column',\n cross: 'start',\n }"},{name:"gutter",rawName:"v-gutter",value:[1,null],expression:"[1, null]"}]},[n("input-textarea",{ref:"key",staticClass:"width:100%",attrs:{rows:"10"},model:{value:t.key,callback:function(e){t.key=e},expression:"key"}}),t._v(" "),n("ui-button",{attrs:{theme:"primary"},on:{click:function(e){return t.copyToClipboard("key")}}},[n("translate",[t._v("Copy to clipboard")])],1)],1)])],1),t._v(" "),n("ui-form-element",{attrs:{vertical:""}},[n("translate",{attrs:{slot:"title",tag:"h3"},slot:"title"},[t._v("\n Certificate\n ")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column",cross:"start"},expression:"{ dir: 'column', cross: 'start' }"},{name:"gutter",rawName:"v-gutter",value:[1,null],expression:"[1, null]"}]},[t.apiData.certHosts||t.apiData.certExpiry?n("table",[t.leRenewDays?n("tr",[n("td",{attrs:{colspan:"2"}},[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center",main:"between"},expression:"{cross: 'center', main: 'between'}"}]},[n("translate",{staticClass:"txt:bold",attrs:{"translate-params":{n:t.leRenewDays}}},[t._v("\n Let's Encrypt in use. Auto Renewal in %{n} Days.\n ")]),t._v(" "),n("ui-button",{attrs:{size:"normal",theme:"safe"},on:{click:t.disableLEAutoRenew}},[t._v("\n Disable Auto-Renew\n ")])],1)])]):t._e(),t._v(" "),t.apiData.certHosts?n("tr",[n("td",[n("translate",{staticClass:"txt:bold"},[t._v("Certificate Hosts")])],1),t._v(" "),n("td",[t._v(t._s(t.apiData.certHosts))])]):t._e(),t._v(" "),t.apiData.certExpiry?n("tr",[n("td",[n("translate",{staticClass:"txt:bold"},[t._v("Certificate Expiry")])],1),t._v(" "),n("td",[t._v(t._s(t.apiData.certExpiry))])]):t._e()]):t._e(),t._v(" "),n("textarea",{directives:[{name:"model",rawName:"v-model",value:t.cert,expression:"cert"}],ref:"cert",staticClass:"pageSsl-keyArea width:100%",attrs:{rows:"10"},domProps:{value:t.cert},on:{input:function(e){e.target.composing||(t.cert=e.target.value)}}}),t._v(" "),n("ui-button",{attrs:{theme:"primary"},on:{click:function(e){return t.copyToClipboard("cert")}}},[n("translate",[t._v("Copy to clipboard")])],1)],1)])],1),t._v(" "),n("save-button",{on:{click:t.submit}})],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3239:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("ui-form-element",{attrs:{group:"commonRequestData",validators:{required:!0},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Common Name")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.name},on:{input:function(e){return t.$emit("update:name",e)}},slot:"content"},[t.showWildcard?n("ui-button",{attrs:{slot:"additions:right"},on:{click:function(e){return t.$emit("update:wildcard",!t.wildcard)}},slot:"additions:right"},[n("input-checkbox",{attrs:{model:t.wildcard}},[n("translate",[t._v("\n Wildcard\n ")])],1)],1):t._e()],1)],1),t._v(" "),t.disableEmail?t._e():n("ui-form-element",{attrs:{group:"commonRequestData",validators:{required:!0,regex:t.regexps.email},vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("E-mail")]),t._v(" "),n("input-text",{attrs:{slot:"content",value:t.email},on:{input:function(e){return t.$emit("update:email",e)}},slot:"content"}),t._v(" "),n("translate",{attrs:{slot:"error:regex"},slot:"error:regex"},[t._v("\n Should be valid email address\n ")])],1),t._v(" "),n("ui-form-element",{attrs:{vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Key Size (bits)")]),t._v(" "),n("input-select",{attrs:{slot:"content",options:t.$api.keySizes,selected:t.keysize},on:{change:function(e){return t.$emit("update:keysize",e)}},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{vertical:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Certificate Type")]),t._v(" "),n("input-select",{attrs:{slot:"content",options:t.$api.hashTypes,selected:t.encryption},on:{change:function(e){return t.$emit("update:encryption",e)}},slot:"content"})],1)],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))},3240:function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{directives:[{name:"flex",rawName:"v-flex",value:{main:"end"},expression:"{main: 'end'}"},{name:"margin",rawName:"v-margin",value:[1,0],expression:"[1, 0]"}]},[n("ui-button",{attrs:{theme:"safe",disabled:!t.valid},on:{click:function(e){return t.$emit("click")}}},[n("translate",[t._v("Save")])],1)],1)},i=[];n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/120.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/120.js new file mode 100644 index 0000000..0f1b450 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/120.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[120],{1287:function(t,e,n){"use strict";n.r(e);var r=n(2983),o=n(1622);for(var a in o)"default"!==a&&function(t){n.d(e,t,(function(){return o[t]}))}(a);var s=n(0),l=n(2497),i=n.n(l),u=Object(s.a)(o.default,r.a,r.b,!1,null,null,null);"function"==typeof i.a&&i()(u),e.default=u.exports},1537:function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.resetZone=e.deleteZones=e.addZone=e.getZones=void 0;var o=r(n(2)),a=r(n(30));function s(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}var l=a.default.get({id:"DNS_ZONES",url:"/CMD_DNS_ADMIN",domain:!1,schema:function(t){for(var e=1;e0},showWebsite:function(){var t=this;return["domain","subdomain"].some((function(e){return t.$api.backup.includes(e)}))},showEmail:function(){var t=this;return["email_data","emailsettings","forwarder","autoresponder","vacation","list"].some((function(e){return t.$api.backup.includes(e)}))},showFtp:function(){var t=this;return["ftp","ftpsettings"].some((function(e){return t.$api.backup.includes(e)}))},showDatabase:function(){var t=this;return["database","database_data"].some((function(e){return t.$api.backup.includes(e)}))}},watch:{backup:(u=(0,r.default)(o.default.mark((function t(e){return o.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e){t.next=4;break}return t.next=3,c.getBackup({file:e});case 3:this.options=t.sent;case 4:case"end":return t.stop()}}),t,this)}))),function(t){return u.apply(this,arguments)})},methods:{restoreBackup:function(){c.restoreBackup({file:this.backup,select:this.options})}}};e.default=p},2686:function(t,e){},3040:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("app-page",[a("app-page-section",[t.$api.backups.length?a("ui-form-element",{attrs:{underline:!1}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Backup")]),t._v(" "),a("div",{attrs:{slot:"content"},slot:"content"},[a("input-select",{attrs:{options:t.$api.backups},model:{value:t.backup,callback:function(e){t.backup=e},expression:"backup"}})],1)],1):[a("translate",{attrs:{tag:"p"}},[t._v("Sorry, it seems that there are no backups created yet. Would you like to create one?")]),t._v(" "),a("ui-button-link",{directives:[{name:"margin",rawName:"v-margin",value:[1,0],expression:"[1, 0]"}],attrs:{name:"user/backup",theme:"safe"}},[a("translate",[t._v("Create Backup")])],1)]],2),t._v(" "),t.hasOptions?a("app-page-section",[a("translate",{attrs:{slot:"section:title"},slot:"section:title"},[t._v("Restore Options")]),t._v(" "),t.showWebsite?a("translate",{staticClass:"subheading",attrs:{tag:"strong"}},[t._v("Website Data")]):t._e(),t._v(" "),t.backupOptions.domain?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"domain"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Domains Directory: Backs up all user files for all domains\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.subdomain?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"subdomain"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Subdomains Lists: Backs up the list of subdomains for each domain\n ")])],1)],1):t._e(),t._v(" "),t.showEmail?a("translate",{staticClass:"subheading",attrs:{tag:"strong"}},[t._v("E-mail")]):t._e(),t._v(" "),t.backupOptions.email?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"email"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n E-mail Accounts List for all domains (names and passwords)\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.email_data?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"email_data"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n E-mail Data: Includes the messages from the Inbox, IMAP Folders, and webmail data.\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.emailsettings?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"emailsettings"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n E-mail Settings: Includes the filters and the catchall address.\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.forwarder?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"forwarder"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Forwarders: Includes all forwarding addresses.\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.autoresponder?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"autoresponder"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Autoresponders: Includes all autoresponders and messages.\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.vacation?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"vacation"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Vacation Messages: Includes all vacation messages and times.\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.list?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"list"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Mailing Lists: Includes the list, digest-list and archives.\n ")])],1)],1):t._e(),t._v(" "),t.showFtp?a("translate",{staticClass:"subheading",attrs:{tag:"strong"}},[t._v("FTP")]):t._e(),t._v(" "),t.backupOptions.ftp?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"ftp"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n FTP Accounts\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.ftpsettings?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"ftpsettings"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n FTP Settings\n ")])],1)],1):t._e(),t._v(" "),t.showDatabase?a("translate",{staticClass:"subheading",attrs:{tag:"strong"}},[t._v("Databases")]):t._e(),t._v(" "),t.backupOptions.database?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"database"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Database Settings: Backs up all DB Users and DB Settings\n ")])],1)],1):t._e(),t._v(" "),t.backupOptions.database_data?a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content",value:"database_data"},slot:"content",model:{value:t.options,callback:function(e){t.options=e},expression:"options"}},[a("translate",[t._v("\n Database Data\n ")])],1)],1):t._e()],1):t._e(),t._v(" "),a("ui-link",{attrs:{slot:"bottom:links",name:"user/filemanager",bullet:"",query:{path:"/backups"}},slot:"bottom:links"},[a("translate",[t._v("Click here for a list of your current backups")])],1),t._v(" "),a("template",{slot:"footer:buttons"},[t.$api.backups.length?a("ui-button",{attrs:{theme:"safe",disabled:!t.options.length},on:{click:t.restoreBackup}},[a("translate",[t._v("Restore")])],1):t._e()],1)],2)},s=[];a.d(e,"a",(function(){return n})),a.d(e,"b",(function(){return s}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/128.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/128.js new file mode 100644 index 0000000..8591dee --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/128.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[128],{1350:function(t,e,n){"use strict";n.r(e);var o=n(3044),a=n(1898);for(var r in a)"default"!==r&&function(t){n.d(e,t,(function(){return a[t]}))}(r);var s=n(0),i=n(2694),l=n.n(i),u=Object(s.a)(a.default,o.a,o.b,!1,null,null,null);"function"==typeof l.a&&l()(u),e.default=u.exports},1896:function(t,e,n){"use strict";n.r(e),n.d(e,"getCronjobs",(function(){return i})),n.d(e,"deleteCronjobs",(function(){return l})),n.d(e,"createCronjob",(function(){return u})),n.d(e,"updateCronjobReboot",(function(){return p})),n.d(e,"updateCronjob",(function(){return m})),n.d(e,"saveEmail",(function(){return d})),n.d(e,"getPhpBinPath",(function(){return v}));var o=n(30),a=n.n(o),r=n(6),s="/CMD_CRON_JOBS",i=a.a.get({url:s,id:"CRON_JOBS",params:{ipp:"99999",page:"1"},mapResponse:{email:r.prop("MAILTO"),rows:r.pipe(r.prop("crons"),r.omit(["info"]),r.values)}}),l=a.a.select({url:s,params:{action:"delete",delete:!0}}),u=a.a.post({url:s,params:{action:"create"},schema:{reboot:a.a.REQUIRED_BOOL,minute:a.a.REQUIRED_STRING,hour:a.a.REQUIRED_STRING,dayofmonth:a.a.REQUIRED_STRING,month:a.a.REQUIRED_STRING,dayofweek:a.a.REQUIRED_STRING}}),c=a.a.post({url:s,params:{save:!0},schema:{id:a.a.REQUIRED_STRING,command:a.a.REQUIRED_STRING}}),p=c.extend({url:s,params:{reboot:!0}}),m=c.extend({url:s,schema:{minute:a.a.REQUIRED_STRING,hour:a.a.REQUIRED_STRING,dayofmonth:a.a.REQUIRED_STRING,month:a.a.REQUIRED_STRING,dayofweek:a.a.REQUIRED_STRING}}),d=a.a.post({url:s,params:{action:"saveemail"},schema:{email:a.a.REQUIRED_STRING}}),v=a.a.get({url:s,id:"CRON_PHP_BIN_PATH",response:!1,mapResponse:function(t){return"1"===t.set_php_bin_path_in_crons}})},1898:function(t,e,n){"use strict";n.r(e);var o=n(1899),a=n.n(o);for(var r in o)"default"!==r&&function(t){n.d(e,t,(function(){return o[t]}))}(r);e.default=a.a},1899:function(t,e,n){"use strict";var o=n(10),a=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r,s=a(n(15)),i=a(n(16)),l=n(1896),u=n(29),c=o(n(6)),p={preload:l.getPhpBinPath,api:[{command:l.getPhpBinPath,bind:"phpBinPath"}],data:function(){return{minute:"*",hour:"*",dayOfMonth:"*",month:"*",dayOfWeek:"*",command:"",reboot:!1}},computed:{currentTime:function(){var t=c.pipe(u.toAppDate,this.$options.filters.date),e=this.$state.app.tokens,n=e.TIMESTAMP,o=void 0!==n&&n,a=e.TIME;return o?t(o):a},emailPrevented:function(){return this.command.includes(" >/dev/null 2>&1")}},created:function(){this.command="/home/".concat(this.$state.app.user.name,"/")},methods:{createCronJob:(r=(0,i.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,l.createCronjob)({reboot:this.reboot,minute:this.minute,hour:this.hour,dayofmonth:this.dayOfMonth,month:this.month,dayofweek:this.dayOfWeek,command:this.command});case 2:t.sent&&this.$router.back();case 4:case"end":return t.stop()}}),t,this)}))),function(){return r.apply(this,arguments)}),preventEmail:function(){this.command="".concat(this.command," >/dev/null 2>&1")}}};e.default=p},2694:function(t,e){},3044:function(t,e,n){"use strict";var o=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("app-page",[n("app-page-section",[n("ui-form-element",[n("span",{attrs:{slot:"title"},slot:"title"}),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.reboot,callback:function(e){t.reboot=e},expression:"reboot"}},[n("translate",[t._v("Run on @reboot")])],1)],1)],1),t._v(" "),t.reboot?t._e():n("app-page-section",[n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Current Time\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content",disabled:"disabled",value:t.currentTime},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{group:"createCronJob",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Minute")]),t._v(" "),n("span",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("0–59")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.minute,callback:function(e){t.minute=e},expression:"minute"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"createCronJob",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Hour\n ")]),t._v(" "),n("span",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("0–23")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.hour,callback:function(e){t.hour=e},expression:"hour"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"createCronJob",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Day of Month\n ")]),t._v(" "),n("span",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("1–31")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.dayOfMonth,callback:function(e){t.dayOfMonth=e},expression:"dayOfMonth"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"createCronJob",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Month\n ")]),t._v(" "),n("span",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("1–12")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.month,callback:function(e){t.month=e},expression:"month"}})],1),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Day of Week\n ")]),t._v(" "),n("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("0–7; 0, 7 = Sunday")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.dayOfWeek,callback:function(e){t.dayOfWeek=e},expression:"dayOfWeek"}})],1)],1),t._v(" "),n("app-page-section",[n("ui-form-element",{attrs:{group:"createCronJob",validators:{required:!0}},scopedSlots:t._u([{key:"content",fn:function(){return[n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column' }"}]},[n("input-textarea",{model:{value:t.command,callback:function(e){t.command=e},expression:"command"}})],1)]},proxy:!0}])},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Command\n ")])],1)],1),t._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column'}"}],attrs:{slot:"help:content"},slot:"help:content"},[n("translate",[t._v("Valid Cron time values are the numbers indicated and *.")]),t._v(" "),n("translate",[t._v("You can specify exact times using commas to separate them. e.g. 1,2,3 (minutes 1,2 and 3) ")]),t._v(" "),n("translate",[t._v("You can specify spans using a dash. e.g. 5-7 (minutes 5 to 7) ")]),t._v(" "),n("translate",[t._v("You can specify intervals using a star and a forward slash. e.g. */2 (every 2nd minute) ")]),t._v(" "),n("translate",[t._v("You can combine them to create a more precise schedule. e.g. 1,5,11-15,30-59/2 (minutes 1, 5, 11 to 15 and every 2nd minute between 30 and 59) ")]),t._v(" "),n("translate",[t._v("Note that there are no spaces")]),t._v(" "),n("br"),t._v(" "),n("translate",{staticClass:"txt:bold"},[t._v("\n Sample Cron commands:\n ")]),t._v(" "),n("ui-pre",{attrs:{contentLines:[(t.$api.phpBinPath?"":"/usr/local/bin/")+"php /home/admin/domains/domain.com/public_html/script.php","/usr/local/bin/curl --silent http://www.domain.com/cron.php > /dev/null","/usr/bin/wget -O /dev/null http://www.domain.com/cron.php"]}})],1),t._v(" "),n("ui-button",{key:"preventButton",attrs:{slot:"footer:buttons",disabled:t.emailPrevented,theme:"safe",size:"big"},on:{click:t.preventEmail},slot:"footer:buttons"},[n("translate",[t._v("Prevent E-mail")])],1),t._v(" "),n("ui-button",{attrs:{slot:"footer:buttons",theme:"safe",validateGroup:"createCronJob"},on:{click:t.createCronJob},slot:"footer:buttons"},[n("translate",[t._v("Create")])],1)],1)},a=[];n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return a}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/129.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/129.js new file mode 100644 index 0000000..d299951 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/129.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[129],{1366:function(e,t,n){"use strict";n.r(t);var o=n(3059),r=n(2019);for(var a in r)"default"!==a&&function(e){n.d(t,e,(function(){return r[e]}))}(a);var s=n(0),u=n(2774),i=n.n(u),c=Object(s.a)(r.default,o.a,o.b,!1,null,null,null);"function"==typeof i.a&&i()(c),t.default=c.exports},1546:function(e,t,n){"use strict";var o=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.getAutoresponderDefaults=t.getAutoresponder=t.modifyAutoresponder=t.createAutoresponder=t.deleteAutoresponders=t.getAutoresponders=void 0;var r=o(n(30)),a=function(e){return e.mapProps({custom_reply_headers:e.isEqual("1"),reply_content_types:e.toSelect,reply_encodings:e.toSelect,reply_once_select:e.toSelect})},s=r.default.get({id:"AUTORESPONDERS",url:"/CMD_EMAIL_AUTORESPONDER",domain:!0,after:function(e){return e.flow(e.mapValues((function(e,t){return{name:t,cc:e}})),e.toArray)}});t.getAutoresponders=s;var u=r.default.select({url:"/CMD_EMAIL_AUTORESPONDER",params:{action:"delete"},domain:!0});t.deleteAutoresponders=u;var i=r.default.post({url:"/CMD_EMAIL_AUTORESPONDER",params:{action:"create"},domain:!0,schema:{user:r.default.REQUIRED_STRING,text:r.default.REQUIRED_STRING,cc:{type:String,required:!0,validator:function(e){return["ON","OFF"].includes(e)}},email:r.default.OPTIONAL_STRING}});t.createAutoresponder=i;var c=i.extend({params:{action:"modify"}});t.modifyAutoresponder=c;var d=r.default.get({id:"AUTORESPONDER",url:"/CMD_EMAIL_AUTORESPONDER_MODIFY",domain:!0,schema:{user:r.default.REQUIRED_STRING},after:function(e){return e.mapProps({text:e.flow(e.convert.toAppString,e.convert.toAppText),email:e.setDefault(""),cc:e.feedWith(1,e.flow(e.getProp("email"),e.notEmpty)),headers:a(e)})}});t.getAutoresponder=d;var l=r.default.get({id:"AUTORESPONDER_DEFAULTS",url:"/CMD_EMAIL_AUTORESPONDER_CREATE",domain:!0,after:function(e){return e.flow(e.getProp("headers"),a(e))}});t.getAutoresponderDefaults=l},2019:function(e,t,n){"use strict";n.r(t);var o=n(2020),r=n.n(o);for(var a in o)"default"!==a&&function(e){n.d(t,e,(function(){return o[e]}))}(a);t.default=r.a},2020:function(e,t,n){"use strict";var o=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=o(n(15)),s=o(n(16)),u=n(1546),i={preload:u.getAutoresponders,api:[{command:u.getAutoresponders,bind:"autoresponders"}],data:function(){return{checkedRows:[]}},computed:{checkedAutoresponders:function(){return this.checkedRows.map((function(e){return e.name}))}},watch:{$domain:function(){this.reloadRows()}},methods:{reloadRows:function(){(0,u.getAutoresponders)()},deleteAutoResponders:(r=(0,s.default)(a.default.mark((function e(){return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,u.deleteAutoresponders)({select:this.checkedAutoresponders});case 2:e.sent&&(this.checkedRows=[],this.reloadRows());case 4:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})}};t.default=i},2774:function(e,t){},3059:function(e,t,n){"use strict";var o=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("app-page",[n("ui-tokens-conditional-button",{attrs:{slot:"header:buttons",link:"",theme:"primary",name:"user/email/autoresponders/create",token:"USERRESPONDERMAX"},slot:"header:buttons"},[n("translate",[e._v("Create Autoresponder")]),e._v(" "),n("translate",{attrs:{slot:"limitText"},slot:"limitText"},[e._v("\n Autoresponders limit reached\n ")])],1),e._v(" "),n("app-page-section",[n("ui-r-table",e._b({attrs:{"disable-pagination":"","checked-rows":e.checkedRows},on:{"update:checkedRows":function(t){e.checkedRows=t},"update:checked-rows":function(t){e.checkedRows=t}},scopedSlots:e._u([{key:"row:actions",fn:function(t){var o=t.name;return n("ui-button-link",{attrs:{size:"small",theme:"light",name:"user/email/autoresponders/modify",params:{user:o},icon:"pencil",title:e.$gettext("Modify")}},[e.$_Client.isDesktop?n("translate",[e._v("\n Modify\n ")]):e._e()],1)}},{key:"col:name",fn:function(t){var o=t.name;return n("span",{},[e._v("\n "+e._s(o)+"@"+e._s(e.$domainUnicode)+"\n ")])}},{key:"col:cc",fn:function(t){var o=t.cc;return n("span",{},[e._v("\n "+e._s(e._f("p6eUnicodeEmail")(o))+"\n ")])}}])},"ui-r-table",{rows:e.$api.autoresponders,columns:[{id:"name",label:e.$gettext("Autoresponder"),grow:!0},{id:"cc",label:e.$gettext("CC Address")}],verticalLayout:e.$_Client.isPhone},!1),[n("ui-table-action",{attrs:{slot:"table:actions"},on:{click:function(t){e.$dialog("DELETE_ITEMS_DIALOG").open()}},slot:"table:actions"},[n("translate",[e._v("Delete")])],1)],1)],1),e._v(" "),n("ui-dialog-delete-items",{attrs:{subject:e.$ngettext("autoresponder","autoresponders",e.checkedRows.length)},on:{"click:confirm":e.deleteAutoResponders}})],1)},r=[];n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return r}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/13.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/13.js new file mode 100644 index 0000000..7c2dad9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/13.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{1339:function(e,t,a){"use strict";a.r(t);var n=a(3033),s=a(1843);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var o=a(0),i=a(2660),l=a.n(i),u=Object(o.a)(s.default,n.a,n.b,!1,null,null,null);"function"==typeof l.a&&l()(u),t.default=u.exports},1430:function(e,t,a){"use strict";a.r(t);var n=a(1431),s=a.n(n);for(var r in n)"default"!==r&&function(e){a.d(t,e,(function(){return n[e]}))}(r);t.default=s.a},1431:function(e,t,a){"use strict";var n=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.reasons=o,t.default=void 0;var s=n(a(2));function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(){var e={none:this.$gettext("None"),abuse:this.$gettext("Abuse"),billing:this.$gettext("Billing Issue"),inactive:this.$gettext("Inactive"),other:this.$gettext("Other"),spam:this.$gettext("Spam"),user_bandwidth:this.$gettext("User Bandwidth"),user_quota:this.$gettext("User Quota")};return"admin"===this.$state.app.user.accessLevel?function(e){for(var t=1;tthis.shownDomainNumber},showAllDomains:function(){return this.showAll||Object.keys(this.domains).length===this.shownDomainNumber+1},shownDomains:function(){if(this.showAllDomains)return this.domains;var e=r.slice(0,this.shownDomainNumber,r.keys(this.domains));return r.pick(e,this.domains)}}};t.default=o},1460:function(e,t,a){var n=a(1541);"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);(0,a(5).default)("943a96e0",n,!0,{})},1467:function(e,t,a){"use strict";a.r(t);var n=a(1471),s=a(1430);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var o=a(0),i=Object(o.a)(s.default,n.a,n.b,!1,null,null,null);t.default=i.exports},1471:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",{attrs:{id:"SUSPEND_USER_DIALOG"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Suspend user")]),e._v(" "),a("div",{attrs:{slot:"content"},slot:"content"},[a("ui-form-element",{attrs:{vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Reason")]),e._v(" "),a("input-select",{attrs:{slot:"content",options:e.reasons},slot:"content",model:{value:e.reason,callback:function(t){e.reason=t},expression:"reason"}})],1),e._v(" "),a("ui-form-element",{attrs:{vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Details")]),e._v(" "),a("input-textarea",{attrs:{slot:"content",rows:"3"},slot:"content",model:{value:e.details,callback:function(t){e.details=t},expression:"details"}})],1)],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"safe"},on:{click:function(t){return e.$emit("suspend",{reason:e.reason,details:e.details})}},slot:"buttons"},[a("translate",[e._v("Suspend")])],1)],1)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},1493:function(e,t,a){"use strict";a.r(t);var n=a(1523),s=a(1442);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var o=a(0),i=Object(o.a)(s.default,n.a,n.b,!1,null,null,null);t.default=i.exports},1499:function(e,t,a){"use strict";a.r(t),a.d(t,"processUserRow",(function(){return p})),a.d(t,"getUsers",(function(){return f})),a.d(t,"getUserDomains",(function(){return m})),a.d(t,"getUserComments",(function(){return _})),a.d(t,"getTodayUsage",(function(){return v})),a.d(t,"getSkinInfo",(function(){return g})),a.d(t,"getFeatures",(function(){return b})),a.d(t,"getUsage",(function(){return I})),a.d(t,"getUserData",(function(){return E})),a.d(t,"getCustomItems",(function(){return R})),a.d(t,"getUser",(function(){return T}));var n=a(6),s=a(35),r=a(52),o=a(18),i=a(28),l=a(649),u=a(49),c=a(599),d=function(){return(d=Object.assign||function(e){for(var t,a=1,n=arguments.length;at.end&&(t.end=e)}));var e=function(t,e){var a=function(t){return{morning:1,afternoon:2,evening:3}[t]};return a(t)>a(e)};this.$watch("starttime",(function(a){t.start.getTime()===t.end.getTime()&&e(a,t.endtime)&&(t.endtime=a)})),this.$watch("endtime",(function(a){t.start.getTime()===t.end.getTime()&&e(t.starttime,a)&&(t.starttime=a)}))},methods:{toAPIDate:function(t){var e,a=this[t];return e={},(0,r.default)(e,"".concat(t,"time"),this["".concat(t,"time")]),(0,r.default)(e,"".concat(t,"day"),(0,c.default)(a,"dd",{awareOfUnicodeTokens:!0})),(0,r.default)(e,"".concat(t,"month"),(0,c.default)(a,"MM")),(0,r.default)(e,"".concat(t,"year"),(0,c.default)(a,"yyyy",{awareOfUnicodeTokens:!0})),e},requestData:function(){var t=function(t){for(var e=1;eNumber(t)&&this.$refs.table.reloadTable()}},methods:{openTicket:(a=(0,o.default)(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,i.getTicket)({number:t});case 2:this.$dialog("VIEW_TICKET_DIALOG").open(),this.$store.dispatch("app/GET_TOKENS"),this.$reloadApiTable();case 5:case"end":return e.stop()}}),e,this)}))),function(e){return a.apply(this,arguments)})}};t.default=l},2883:function(e,t,n){"use strict";n.r(t);var s=n(3202),a=n(2168);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);var o=n(0),i=Object(o.a)(a.default,s.a,s.b,!1,null,null,null);t.default=i.exports},2884:function(e,t,n){"use strict";n.r(t);var s=n(3203),a=n(2170);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);var o=n(0),i=Object(o.a)(a.default,s.a,s.b,!1,null,null,null);t.default=i.exports},2885:function(e,t,n){"use strict";n.r(t);var s=n(3204),a=n(2172);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);n(2886);var o=n(0),i=Object(o.a)(a.default,s.a,s.b,!1,null,null,null);t.default=i.exports},2886:function(e,t,n){"use strict";var s=n(2174);n.n(s).a},2887:function(e,t,n){(e.exports=n(4)(!0)).push([e.i,"#MESSAGE_SYSTEM_OPTIONS_DIALOG input[type=text]{width:1px}","",{version:3,sources:["/home/evo/evolution/src/js/pages/user/messages/_dialogs/message-system-options.vue"],names:[],mappings:"AAqIA,gDAEQ,SAAU,CAAA",file:"message-system-options.vue?vue&type=style&index=0&lang=scss&",sourcesContent:['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#MESSAGE_SYSTEM_OPTIONS_DIALOG {\n input[type="text"]{\n width: 1px;\n }\n}\n'],sourceRoot:""}])},2888:function(e,t,n){"use strict";n.r(t);var s=n(3205),a=n(2175);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);n(2889);var o=n(0),i=Object(o.a)(a.default,s.a,s.b,!1,null,null,null);t.default=i.exports},2889:function(e,t,n){"use strict";var s=n(2177);n.n(s).a},2890:function(e,t,n){(e.exports=n(4)(!0)).push([e.i,"#VIEW_TICKET_DIALOG .replyButton{position:absolute;right:1.5rem;bottom:1.5rem;z-index:2}#VIEW_TICKET_DIALOG textarea{resize:none}#VIEW_TICKET_DIALOG .col\\:avatar{width:1%;white-space:nowrap}#VIEW_TICKET_DIALOG .col\\:avatar .messageAvatar{color:#fff;font-size:1.6rem;font-weight:700}#VIEW_TICKET_DIALOG .col\\:message .userName{font-weight:600;font-size:1.4rem}","",{version:3,sources:["/home/evo/evolution/src/js/pages/user/messages/_dialogs/view-ticket-dialog.vue"],names:[],mappings:"AA0GA,iCAEQ,kBACA,aACA,cACA,SAAU,CALlB,6BAQQ,WAAY,CARpB,iCAWQ,SACA,kBAAmB,CAZ3B,gDAcY,WACA,iBACA,eAAgB,CAhB5B,4CAqBY,gBACA,gBAAiB,CAAA",file:"view-ticket-dialog.vue?vue&type=style&index=0&lang=scss&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#VIEW_TICKET_DIALOG {\n .replyButton {\n position: absolute;\n right: 1.5rem;\n bottom: 1.5rem;\n z-index: 2;\n }\n textarea { \n resize: none;\n }\n .col\\:avatar {\n width: 1%;\n white-space: nowrap;\n .messageAvatar {\n color: #FFF;\n font-size: 1.6rem;\n font-weight: 700;\n }\n }\n .col\\:message {\n .userName {\n font-weight: 600;\n font-size: 1.4rem;\n }\n }\n}\n\n"],sourceRoot:""}])},2891:function(e,t,n){"use strict";n.r(t);var s=n(3206),a=n(2178);for(var r in a)"default"!==r&&function(e){n.d(t,e,(function(){return a[e]}))}(r);var o=n(0),i=Object(o.a)(a.default,s.a,s.b,!1,null,null,null);t.default=i.exports},2892:function(e,t){},3092:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("app-page",[n("app-page-section",[n("ui-tabs",{attrs:{tabs:[{id:"messages",label:e.$gettext("Messages")},"1"===e.$state.app.tokens.TICKET_SYSTEM_ENABLED?{id:"tickets",label:e.$gettext("Tickets")}:{}],hideSingleTab:"",selected:e.tab,forceHorizontal:""},on:{"update:selected":function(t){e.tab=t}}},[n("ui-api-table",e._b({ref:"table",attrs:{slot:"tab:messages"},on:{"action:del":function(t){e.$dialog("DELETE_ITEMS_DIALOG").open()},"action:read":e.markAsRead},slot:"tab:messages",scopedSlots:e._u([{key:"col:subject",fn:function(t){var s=t.id,a=t.new,r=t.subject;return n("ui-link",{on:{click:function(t){return e.openMessageDialog(s)}}},[a?n("div",[n("ui-round-badge",{attrs:{theme:"safe",size:6}}),e._v(" "),n("strong",{domProps:{innerHTML:e._s(r)}})],1):n("span",{domProps:{innerHTML:e._s(r)}})])}}]),model:{value:e.select,callback:function(t){e.select=t},expression:"select"}},"ui-api-table",{command:e.$commands.getMessages,rowID:"id",columns:{subject:{label:e.$gettext("Subject"),grow:!0},last_message:{label:e.$gettext("Date"),filter:"date"}},actions:{read:e.$gettext("Mark as read"),del:e.$gettext("Delete")},updateOn:["DELETE_MESSAGES","CLEAR_MESSAGE_SYSTEM","GET_MESSAGE","MARK_MESSAGES_AS_READ"],initialSort:{key:"last_message",order:"DESC"},verticalLayout:e.$_Client.isPhone},!1)),e._v(" "),n("tickets-table",{attrs:{slot:"tab:tickets"},slot:"tab:tickets"})],1)],1),e._v(" "),n("ui-link",{attrs:{slot:"bottom:links",bullet:""},on:{click:function(t){e.$dialog("CLEAR_MESSAGE_SYSTEM_DIALOG").open()}},slot:"bottom:links"},[n("translate",[e._v("Clear Message System")])],1),e._v(" "),n("ui-link",{attrs:{slot:"bottom:links",bullet:""},on:{click:e.openOptionsDialog},slot:"bottom:links"},[n("translate",[e._v("Options")])],1),e._v(" "),"root"!==e.$state.app.tokens.USERCREATOR&&"1"===e.$state.app.tokens.TICKET_SYSTEM_ENABLED?n("ui-link",{attrs:{slot:"bottom:links",name:"user/create-ticket",bullet:""},slot:"bottom:links"},[n("translate",[e._v("Create Ticket")])],1):e._e(),e._v(" "),n("ui-dialog-delete-items",{attrs:{subject:e.$ngettext("message","messages",e.select.length)},on:{"click:confirm":e.deleteMessages}}),e._v(" "),n("view-message-dialog"),e._v(" "),e.$state.commands.TICKET.isDone?n("view-ticket-dialog"):e._e(),e._v(" "),n("clear-message-system-dialog",{on:{updateMessages:this.$reloadApiTable}}),e._v(" "),n("message-system-options-dialog")],1)},a=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return a}))},3202:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-dialog",{attrs:{id:"VIEW_MESSAGE_DIALOG",size:"normal","no-close-btn":e.$api.isLoading},on:{"dialog:close":function(t){return e.$emit("close")}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Message\n ")]),e._v(" "),e.$api.isLoading?e._e():n("header",{directives:[{name:"flex",rawName:"v-flex",value:{main:"between",cross:"baseline",wrap:!0},expression:"{\n main: 'between',\n cross:'baseline',\n wrap: true\n }"},{name:"gutter",rawName:"v-gutter",value:[1,2],expression:"[1, 2]"}],attrs:{slot:"content:header"},slot:"content:header"},[n("h2",{directives:[{name:"margin",rawName:"v-margin",value:0,expression:"0"}],staticClass:"overfl:hid toverfl:ellipsis",domProps:{textContent:e._s(e.$api.subject)}}),e._v(" "),n("time",[e._v(e._s(e._f("date")(e.$api.time)))])]),e._v(" "),n("ui-code-area",{attrs:{slot:"content",content:e.$api.content,"break-lines":""},slot:"content"})],1)},a=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return a}))},3203:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-dialog",{attrs:{id:"CLEAR_MESSAGE_SYSTEM_DIALOG",size:"normal"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Clear Message System")]),e._v(" "),n("template",{slot:"content"},[n("ui-form-element",{attrs:{group:"clearMessages"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Subject Contains")]),e._v(" "),n("input-autocomplete",{attrs:{slot:"content",values:e.subjects,disabled:e.deleteEverything},slot:"content",model:{value:e.subject,callback:function(t){e.subject=t},expression:"subject"}},[n("input-checkbox-button",{attrs:{slot:"additions:right"},slot:"additions:right",model:{value:e.deleteEverything,callback:function(t){e.deleteEverything=t},expression:"deleteEverything"}},[n("translate",[e._v("Anything")])],1)],1),e._v(" "),n("translate",{attrs:{slot:"error:validateSubject"},slot:"error:validateSubject"},[e._v("\n Required field\n ")])],1),e._v(" "),n("ui-form-element",{attrs:{group:"clearMessages"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("When")]),e._v(" "),"all"===e.when?n("input-select",{attrs:{slot:"content",options:e.periods,disabled:e.deleteEverything,novalidate:""},slot:"content",model:{value:e.when,callback:function(t){e.when=t},expression:"when"}}):n("ui-input-group",{attrs:{slot:"content"},slot:"content"},[n("input-select",{attrs:{slot:"additions:left",options:e.periods},slot:"additions:left",model:{value:e.when,callback:function(t){e.when=t},expression:"when"}}),e._v(" "),n("input-text",{attrs:{slot:"input",number:""},slot:"input",model:{value:e.days,callback:function(t){e.days=t},expression:"days"}}),e._v(" "),n("ui-button",{attrs:{slot:"additions:right",disabled:""},slot:"additions:right"},[n("translate",{attrs:{"translate-n":Number(e.days)||1,"translate-plural":"Days"}},[e._v("\n Day\n ")])],1)],1)],1)],1),e._v(" "),n("ui-button",{attrs:{slot:"buttons",theme:"danger",disabled:!(e.deleteEverything||e.subject)||!e.days},on:{click:e.clearMessageSystem},slot:"buttons"},[n("translate",[e._v("Clear")])],1)],2)},a=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return a}))},3204:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-dialog",{attrs:{id:"MESSAGE_SYSTEM_OPTIONS_DIALOG"},on:{"dialog:open":e.initData}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Options")]),e._v(" "),n("template",{slot:"content"},[n("ui-form-element",{attrs:{vertical:"",group:"messageOptions",validators:{required:e.send,regex:e.regexps.email}}},[n("input-checkbox",{attrs:{slot:"title"},slot:"title",model:{value:e.send,callback:function(t){e.send=t},expression:"send"}},[n("translate",[e._v("E-mail a copy of all messages")])],1),e._v(" "),n("input-text",{attrs:{slot:"content",disabled:!e.send},slot:"content",model:{value:e.email,callback:function(t){e.email=t},expression:"email"}}),e._v(" "),n("translate",{attrs:{slot:"error:regex"},slot:"error:regex"},[e._v("Should be valid email")])],1),e._v(" "),n("ui-form-element",{attrs:{vertical:"",group:"messageOptions",validators:{required:!0}}},[n("input-checkbox",{attrs:{slot:"title"},slot:"title",model:{value:e.deleteTickets,callback:function(t){e.deleteTickets=t},expression:"deleteTickets"}},[n("translate",[e._v("Automatically delete tickets")])],1),e._v(" "),e.deleteTickets?n("input-text",{attrs:{slot:"content",number:""},slot:"content",model:{value:e.days.tickets,callback:function(t){e.$set(e.days,"tickets",t)},expression:"days.tickets"}},[n("ui-button",{attrs:{slot:"additions:left",disabled:""},slot:"additions:left"},[n("translate",{staticClass:"wrap:nowrap"},[e._v("Older than")])],1),e._v(" "),n("ui-button",{attrs:{slot:"additions:right",disabled:""},slot:"additions:right"},[n("translate",{staticClass:"wrap:nowrap"},[e._v("Days")])],1)],1):e._e()],1),e._v(" "),n("ui-form-element",{attrs:{group:"messageOptions",vertical:"",validators:{required:!0}}},[n("input-checkbox",{attrs:{slot:"title"},slot:"title",model:{value:e.deleteMessages,callback:function(t){e.deleteMessages=t},expression:"deleteMessages"}},[n("translate",[e._v("\n Automatically delete messages\n ")])],1),e._v(" "),e.deleteMessages?n("input-text",{attrs:{slot:"content",number:""},slot:"content",model:{value:e.days.messages,callback:function(t){e.$set(e.days,"messages",t)},expression:"days.messages"}},[n("ui-button",{attrs:{slot:"additions:left",disabled:""},slot:"additions:left"},[n("translate",{staticClass:"wrap:nowrap"},[e._v("Older than")])],1),e._v(" "),n("ui-button",{attrs:{slot:"additions:right",disabled:""},slot:"additions:right"},[n("translate",{staticClass:"wrap:nowrap"},[e._v("days")])],1)],1):e._e()],1)],1),e._v(" "),n("ui-button",{attrs:{slot:"buttons",validateGroup:"messageOptions",theme:"primary"},on:{click:e.save},slot:"buttons"},[n("translate",[e._v("Save")])],1)],2)},a=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return a}))},3205:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-dialog",{attrs:{id:"VIEW_TICKET_DIALOG",size:"normal",noCloseBtn:""}},[n("translate",{attrs:{slot:"title","translate-params":{number:e.number}},slot:"title"},[e._v("View Ticket: #%{ number }")]),e._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-form-element",{staticClass:"pos:rel",attrs:{vertical:"",validators:{required:!0},group:"ticketReply"}},[n("input-textarea",{attrs:{slot:"content",rows:"5",placeholder:e.$gettext("Type your reply here...")},slot:"content",model:{value:e.message,callback:function(t){e.message=t},expression:"message"}}),e._v(" "),n("ui-button",{staticClass:"replyButton",attrs:{slot:"content",theme:"safe",size:"normal",validateGroup:"ticketReply"},on:{click:e.postReply},slot:"content"},[n("translate",[e._v("Post Reply")])],1)],1),e._v(" "),n("ui-table",{attrs:{items:e.messages,hideHeaders:""}},[n("ui-column",{attrs:{id:"avatar",fit:""},scopedSlots:e._u([{key:"default",fn:function(t){return[n("ui-round-badge",{staticClass:"messageAvatar",attrs:{theme:e.$state.app.user.name===t.from?"safe":"primary",size:48}},[e._v("\n "+e._s(e._f("firstLetter")(t.from))+"\n ")])]}}])}),e._v(" "),n("ui-column",{attrs:{id:"message"},scopedSlots:e._u([{key:"default",fn:function(t){return[n("ui-grid",{attrs:{slot:"col:message",column:""},slot:"col:message"},[n("ui-grid",{attrs:{cross:"center"}},[n("span",{staticClass:"userName"},[e._v("\n "+e._s({admin:e.$gettext("Admin"),reseller:e.$gettext("Reseller"),user:e.$gettext("User")}[t.level])+":\n "+e._s(t.name)+"\n ")]),e._v(" "),n("span",{staticClass:"c:txt:neutral"},[e._v("\n ("+e._s(t.time)+")\n ")])]),e._v(" "),n("p",{domProps:{innerHTML:e._s(t.message)}})],1)]}}])})],1)],1)],1)},a=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return a}))},3206:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-api-table",e._b({ref:"table",attrs:{disableSelect:""},scopedSlots:e._u([{key:"col:subject",fn:function(t){var s=t.new,a=t.priority,r=t.subject,o=t.ticket;return n("ui-link",{class:{"txt:bold":s},on:{click:function(t){return e.openTicket(o)}}},[n("ui-round-badge",{attrs:{theme:{0:"safe",10:"safe",20:"primary",30:"danger"}[a],size:12}}),e._v("\n "+e._s(r)+"\n ")],1)}},{key:"col:status",fn:function(t){var s=t.status;return n("ui-badge",{attrs:{theme:{open:"safe",closed:"neutral"}[s]}},[e._v("\n "+e._s(e._f("capitalize")(s))+"\n ")])}}])},"ui-api-table",{command:e.$commands.getTickets,rowID:"ticket",columns:{ticket:e.$gettext("Ticket #"),subject:e.$gettext("Subject"),replies:e.$gettext("Replies"),status:e.$gettext("Status"),last_message:{label:e.$gettext("Last Message"),filter:"date"}},verticalLayout:e.$_Client.isPhone,requestData:{show_closed:e.showClosed}},!1),[n("input-checkbox",{attrs:{slot:"buttons:before"},slot:"buttons:before",model:{value:e.showClosed,callback:function(t){e.showClosed=t},expression:"showClosed"}},[n("translate",[e._v("Show closed")])],1)],1)},a=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return a}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/140.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/140.js new file mode 100644 index 0000000..33fa760 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/140.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[140],{1389:function(e,t,n){"use strict";n.r(t);var a=n(3082),s=n(2137);for(var o in s)"default"!==o&&function(e){n.d(t,e,(function(){return s[e]}))}(o);var r=n(0),u=n(2864),c=n.n(u),l=Object(r.a)(s.default,a.a,a.b,!1,null,null,null);"function"==typeof c.a&&c()(l),t.default=l.exports},1475:function(e,t,n){"use strict";var a=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.changePassword=t.updateSettings=t.getSettings=t.deleteAccounts=t.unsuspendAccounts=t.suspendAccounts=t.updateAccount=t.createAccount=t.getAccounts=t.getAccount=void 0;var s=a(n(2)),o=a(n(30));function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}var u=o.default.get({id:"FTP_ACCOUNT",url:"/CMD_FTP_SHOW",domain:!0,schema:{user:o.default.REQUIRED_STRING}});t.getAccount=u;var c=o.default.get({id:"FTP_ACCOUNTS",url:"/CMD_FTP",response:[],params:{full_json:!0},domain:!0,after:function(e){return e.flow(e.project({accounts:"users",anonLogin:"ANONLOGIN"}),e.mapProp("accounts",e.flow(e.mapValues((function(e,t){return function(e){for(var t=1;t[data-v-07eec782]{width:50%}","",{version:3,sources:["/home/evo/evolution/src/js/pages/user/database/_dialogs/change-db-user-privs-dialog.vue"],names:[],mappings:"AAmKA,6BACI,mBAAA,cAAc,CADlB,8BAGQ,SAAU,CAAA",file:"change-db-user-privs-dialog.vue?vue&type=style&index=0&id=07eec782&lang=scss&scoped=true&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.privs-flex {\n flex-wrap:wrap;\n & > * {\n width: 50%;\n }\n}\n"],sourceRoot:""}])},2745:function(e,t){},3047:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("app-page",[e.$api.db.pmaLogin?a("ui-button",{attrs:{slot:"header:buttons",theme:"light",size:"big",title:e.$gettext("Login to phpMyAdmin")},on:{click:e.loginPMA},slot:"header:buttons"},[a("img",{attrs:{src:e.$store.getters["themes/iconsPath"]+"#phpmyadmin",height:"50"}})]):e._e(),e._v(" "),a("app-page-section",[a("translate",{attrs:{slot:"section:title"},slot:"section:title"},[e._v("\n Users\n ")]),e._v(" "),a("ui-r-table",e._b({on:{"update:checkedRows":function(t){e.checkedUserRows=t}},scopedSlots:e._u([{key:"col:priv",fn:function(t){var n=t.user;return a("ui-link",{on:{click:function(t){return e.changePrivilegesDialog(n)}}},[e.$_Client.isPhone?a("translate",[e._v("\n Modify\n ")]):a("translate",[e._v("\n Modify Privileges\n ")])],1)}},{key:"col:password",fn:function(t){var n=t.user;return a("ui-link",{on:{click:function(t){return e.changePasswordDialog(n)}}},[e.$_Client.isPhone?a("translate",[e._v("\n Change\n ")]):a("translate",[e._v("\n Change Password\n ")])],1)}}])},"ui-r-table",{columns:[{id:"user",label:e.$gettext("User")},{id:"password",label:e.$gettext("Password")},{id:"priv",label:e.$gettext("Privileges")}],rows:e.users,checkedRows:e.checkedUserRows,verticalLayout:e.$_Client.isPhone,editable:!1},!1),[a("ui-table-action",{attrs:{slot:"table:actions"},on:{click:function(t){e.$dialog("DELETE_USERS_DIALOG").open()}},slot:"table:actions"},[a("translate",[e._v("Delete")])],1),e._v(" "),e._v(" "),e._v(" "),a("template",{slot:"buttons:before"},[a("ui-button",{directives:[{name:"margin",rawName:"v-margin",value:[0,1],expression:"[0, 1]"}],attrs:{theme:"safe",size:"normal"},on:{click:function(t){e.$dialog("CREATE_DB_USER_DIALOG").open()}}},[a("translate",[e._v("Create New User")])],1),e._v(" "),e.notAssignedUsers.length?a("ui-button",{directives:[{name:"margin",rawName:"v-margin",value:[0,1],expression:"[0, 1]"}],attrs:{theme:"primary",size:"normal"},on:{click:function(t){e.$dialog("ASSIGN_DB_USER_DIALOG").open()}}},[a("translate",[e._v("Add Existing User")])],1):e._e()],1)],2)],1),e._v(" "),a("app-page-section",[a("translate",{attrs:{slot:"section:title"},slot:"section:title"},[e._v("\n Access Hosts\n ")]),e._v(" "),a("ui-r-table",e._b({attrs:{"hide-before-controls":""},on:{"update:checkedRows":function(t){e.checkedHostRows=t}}},"ui-r-table",{rows:e.hosts,columns:[{id:"host",label:e.$gettext("Access Host")}],checkedRows:e.checkedHostRows,notCheckable:e.hosts.filter((function(e){return"localhost"===e.host}))},!1),[a("ui-table-action",{attrs:{slot:"table:actions"},on:{click:function(t){e.$dialog("DELETE_HOSTS_DIALOG").open()}},slot:"table:actions"},[a("translate",[e._v("Delete")])],1),e._v(" "),a("ui-input-group",{attrs:{slot:"buttons:after"},slot:"buttons:after"},[a("input-text",{attrs:{slot:"input",placeholder:e.$gettext("Access Host")},on:{keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.addNewAccessHost(t)}},slot:"input",model:{value:e.host,callback:function(t){e.host=t},expression:"host"}}),e._v(" "),a("ui-button",{attrs:{slot:"additions:right",theme:"safe"},on:{click:e.addNewAccessHost},slot:"additions:right"},[a("translate",{staticClass:"wrap:nowrap"},[e._v("\n Add New\n ")])],1)],1)],1)],1),e._v(" "),a("create-db-user-dialog",e._b({on:{userAdded:e.reload}},"create-db-user-dialog",{database:e.database},!1)),e._v(" "),a("existing-db-user-dialog",e._b({on:{userAssigned:e.reload}},"existing-db-user-dialog",{database:e.database,users:e.notAssignedUsers},!1)),e._v(" "),a("ui-dialog-delete-items",{attrs:{id:"DELETE_HOSTS_DIALOG",subject:e.$ngettext("Access host","Access hosts",e.checkedHosts.length)},on:{"click:confirm":e.deleteHosts}}),e._v(" "),a("ui-dialog-delete-items",{attrs:{id:"DELETE_USERS_DIALOG",subject:e.$ngettext("user","users",e.checkedUsers.length)},on:{"click:confirm":e.deleteUsers}}),e._v(" "),a("change-db-user-pass-dialog",{attrs:{database:e.database,user:e.currentUser}}),e._v(" "),a("change-db-user-privs-dialog",{attrs:{database:e.database,user:e.currentUser}})],1)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},3167:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",{attrs:{id:"CREATE_DB_USER_DIALOG"}},[a("translate",{attrs:{slot:"title","translate-params":{database:e.database}},slot:"title"},[e._v("\n Create New User for %{database}\n ")]),e._v(" "),a("template",{slot:"content"},[a("ui-form-element",{attrs:{group:"createUser",validators:{required:!0,api:e.$commands.validateDBUser},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Username:")]),e._v(" "),a("input-text",e._b({attrs:{slot:"content"},slot:"content",model:{value:e.user,callback:function(t){e.user=t},expression:"user"}},"input-text",{prefix:e.prefix},!1))],1),e._v(" "),a("ui-form-element",{attrs:{group:"createUser",validators:{required:!0,api:e.$commands.validatePassword},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Password:")]),e._v(" "),a("input-password",{attrs:{slot:"content",showGenerator:""},slot:"content",model:{value:e.passwd,callback:function(t){e.passwd=t},expression:"passwd"}})],1)],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"primary",validateGroup:"createUser"},on:{click:e.submit},slot:"buttons"},[a("translate",[e._v("Create")])],1)],2)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},3168:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",{attrs:{id:"ASSIGN_DB_USER_DIALOG",size:"small"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Assign Existing User to %{database}")]),e._v(" "),a("ui-form-element",{attrs:{slot:"content",vertical:""},slot:"content"},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Username:")]),e._v(" "),a("ui-input-group",{attrs:{slot:"content"},slot:"content"},[a("ui-button",{attrs:{slot:"additions:left",disabled:""},slot:"additions:left"},[e._v("\n "+e._s(e.$state.app.user.name)+"_\n ")]),e._v(" "),a("input-select",{attrs:{slot:"input",options:e.users},slot:"input",model:{value:e.user,callback:function(t){e.user=t},expression:"user"}})],1)],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"primary"},on:{click:e.submit},slot:"buttons"},[a("translate",[e._v("Assign")])],1)],1)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},3169:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",e._g({attrs:{id:"CHANGE_DB_USER_PASS_DIALOG"}},e.$listeners),[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Change password")]),e._v(" "),a("div",{attrs:{slot:"content"},slot:"content"},[a("ui-form-element",{attrs:{vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Username:")]),e._v(" "),a("input-text",{attrs:{slot:"content",value:e.user,disabled:""},slot:"content"})],1),e._v(" "),a("ui-form-element",{attrs:{group:"changePassword",validators:{required:!0,api:e.$commands.validatePassword},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Password:")]),e._v(" "),a("input-password",{attrs:{slot:"content",showGenerator:""},slot:"content",model:{value:e.passwd,callback:function(t){e.passwd=t},expression:"passwd"}})],1)],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"primary",validateGroup:"changePassword"},on:{click:e.submit},slot:"buttons"},[a("translate",[e._v("Change")])],1)],1)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},3170:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",{attrs:{id:"CHANGE_DB_USER_PRIVS_DIALOG",size:"normal"},on:{"dialog:open":e.loadUserPrivs}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Change privileges")]),e._v(" "),a("template",{slot:"content"},[a("ui-form-element",{attrs:{vertical:e.$_Client.isPhone}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Username")]),e._v(" "),a("input-text",{attrs:{slot:"content",disabled:"",value:e.user},slot:"content"})],1),e._v(" "),a("ui-form-element",{attrs:{vertical:e.$_Client.isPhone}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Privileges:")]),e._v(" "),a("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"},{name:"gutter",rawName:"v-gutter:padding",value:1,expression:"1",arg:"padding"}],staticClass:"privs-flex",attrs:{slot:"content"},slot:"content"},[a("input-check",{model:{value:e.privileges.select,callback:function(t){e.$set(e.privileges,"select",t)},expression:"privileges.select"}},[a("translate",[e._v("Select")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.insert,callback:function(t){e.$set(e.privileges,"insert",t)},expression:"privileges.insert"}},[a("translate",[e._v("Insert")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.update,callback:function(t){e.$set(e.privileges,"update",t)},expression:"privileges.update"}},[a("translate",[e._v("Update")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.delete,callback:function(t){e.$set(e.privileges,"delete",t)},expression:"privileges.delete"}},[a("translate",[e._v("Delete")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.create,callback:function(t){e.$set(e.privileges,"create",t)},expression:"privileges.create"}},[a("translate",[e._v("Create")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.drop,callback:function(t){e.$set(e.privileges,"drop",t)},expression:"privileges.drop"}},[a("translate",[e._v("Drop")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.alter,callback:function(t){e.$set(e.privileges,"alter",t)},expression:"privileges.alter"}},[a("translate",[e._v("Alter")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.index,callback:function(t){e.$set(e.privileges,"index",t)},expression:"privileges.index"}},[a("translate",[e._v("Index")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.grant,callback:function(t){e.$set(e.privileges,"grant",t)},expression:"privileges.grant"}},[a("translate",[e._v("Grant")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.reference,callback:function(t){e.$set(e.privileges,"reference",t)},expression:"privileges.reference"}},[a("translate",[e._v("Reference")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.tmp_table,callback:function(t){e.$set(e.privileges,"tmp_table",t)},expression:"privileges.tmp_table"}},[a("translate",[e._v("Create tmp tables")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.lock_table,callback:function(t){e.$set(e.privileges,"lock_table",t)},expression:"privileges.lock_table"}},[a("translate",[e._v("Lock Tables")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.show_view_priv,callback:function(t){e.$set(e.privileges,"show_view_priv",t)},expression:"privileges.show_view_priv"}},[a("translate",[e._v("Show View")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.create_routine_priv,callback:function(t){e.$set(e.privileges,"create_routine_priv",t)},expression:"privileges.create_routine_priv"}},[a("translate",[e._v("Create Routine")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.alter_routine_priv,callback:function(t){e.$set(e.privileges,"alter_routine_priv",t)},expression:"privileges.alter_routine_priv"}},[a("translate",[e._v("Alter Routine")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.execute_priv,callback:function(t){e.$set(e.privileges,"execute_priv",t)},expression:"privileges.execute_priv"}},[a("translate",[e._v("Execute")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.create_view_priv,callback:function(t){e.$set(e.privileges,"create_view_priv",t)},expression:"privileges.create_view_priv"}},[a("translate",[e._v("Create View")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.event_priv,callback:function(t){e.$set(e.privileges,"event_priv",t)},expression:"privileges.event_priv"}},[a("translate",[e._v("Event")])],1),e._v(" "),a("input-check",{model:{value:e.privileges.trigger_priv,callback:function(t){e.$set(e.privileges,"trigger_priv",t)},expression:"privileges.trigger_priv"}},[a("translate",[e._v("Trigger")])],1)],1)],1)],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"primary"},on:{click:e.submit},slot:"buttons"},[a("translate",[e._v("Change")])],1)],2)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/150.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/150.js new file mode 100644 index 0000000..3c4bade --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/150.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[150],{1407:function(t,e,r){"use strict";r.r(e);var a=r(3100),n=r(2196);for(var o in n)"default"!==o&&function(t){r.d(e,t,(function(){return n[t]}))}(o);var l=r(0),i=r(2906),s=r.n(i),c=Object(l.a)(n.default,a.a,a.b,!1,null,null,null);"function"==typeof s.a&&s()(c),e.default=c.exports},2196:function(t,e,r){"use strict";r.r(e);var a=r(2197),n=r.n(a);for(var o in a)"default"!==o&&function(t){r.d(e,t,(function(){return a[t]}))}(o);e.default=n.a},2197:function(t,e,r){"use strict";var a=r(10),n=r(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o,l=n(r(15)),i=n(r(16)),s=a(r(2905)),c={preload:s.getRedirects,commands:s,data:function(){return{select:[],create:{from:"/",type:"301",to:"http://"}}},watch:{$domain:"$reloadApiTable"},methods:{createRedirect:function(){s.createRedirect(this.create).then(this.$reloadApiTable)},deleteRedirects:(o=(0,i.default)(l.default.mark((function t(){return l.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:s.deleteRedirects(this.$get("select")).then(this.$reloadApiTable);case 1:case"end":return t.stop()}}),t,this)}))),function(){return o.apply(this,arguments)}),isURL:function(t){if(!t)return!0;var e=new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i");return t.length<2083&&e.test(t)},validateFrom:function(t){return!t||t.startsWith("/")}}};e.default=c},2905:function(t,e,r){"use strict";var a=r(1);Object.defineProperty(e,"__esModule",{value:!0}),e.deleteRedirects=e.createRedirect=e.getRedirects=void 0;var n=a(r(30)),o="/CMD_REDIRECT",l=n.default.get({id:"REDIRECTS",url:o,domain:!0,pagination:!0,after:function(t){return t.flow(t.processTableInfo("redirects"),t.moveProp("redirects","rows"),t.mapProps({rows:t.toArray}))}});e.getRedirects=l;var i=n.default.post({url:o,params:{action:"add"},domain:!0,schema:{from:n.default.REQUIRED_STRING,type:n.default.REQUIRED_STRING,to:n.default.REQUIRED_STRING}});e.createRedirect=i;var s=n.default.select({url:o,domain:!0,params:{action:"delete"}});e.deleteRedirects=s},2906:function(t,e){},3100:function(t,e,r){"use strict";var a=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("app-page",[r("ui-button",{attrs:{slot:"header:buttons",theme:"primary"},on:{click:function(e){t.$dialog("CREATE_REDIRECT_DIALOG").open()}},slot:"header:buttons"},[r("translate",[t._v("Create New Redirect")])],1),t._v(" "),r("app-page-section",[r("ui-api-table",t._b({on:{"action:del":function(e){t.$dialog("DELETE_REDIRECTS_DIALOG").open()}},scopedSlots:t._u([{key:"col:local_url_path",fn:function(e){var a=e.local_url_path;return r("ui-link",{attrs:{href:"//"+t.$domain+a}},[t._v("\n "+t._s(a)+"\n ")])}},{key:"col:redirect_url",fn:function(e){var a=e.redirect_url;return r("ui-link",{attrs:{href:a}},[t._v("\n "+t._s(a)+"\n ")])}},{key:"col:type",fn:function(e){var a=e.type;return r("span",{key:a},["301"===a?r("translate",[t._v("\n 301 — Permanent\n ")]):"302"===a?r("translate",[t._v("\n 302 — Temporary\n ")]):"303"===a?r("translate",[t._v("\n 303 — Replaced\n ")]):t._e()],1)}}]),model:{value:t.select,callback:function(e){t.select=e},expression:"select"}},"ui-api-table",{command:t.$commands.getRedirects,rowID:"local_url_path",columns:{local_url_path:t.$gettext("Local URL Path"),type:t.$gettext("Type"),redirect_url:t.$gettext("Redirect URL")},actions:{del:t.$gettext("Delete")},editable:!1,verticalLayout:t.$_Client.isPhone},!1))],1),t._v(" "),r("ui-dialog",{attrs:{id:"CREATE_REDIRECT_DIALOG",theme:"safe",size:"normal"}},[r("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Add New Redirect\n ")]),t._v(" "),r("template",{slot:"content"},[r("ui-form-element",{attrs:{group:"redirect",validators:{required:!0,validateFrom:t.validateFrom},vertical:t.$_Client.isPhone}},[r("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Local URL Path\n ")]),t._v(" "),r("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v('\n e.g. "/redirect", "/"\n ')]),t._v(" "),r("input-text",{attrs:{slot:"content",prefix:t.$domainUnicode},slot:"content",model:{value:t.create.from,callback:function(e){t.$set(t.create,"from",e)},expression:"create.from"}}),t._v(" "),r("translate",{attrs:{slot:"error:validateFrom"},slot:"error:validateFrom"},[t._v('\n Should start with a forward flash "/"\n ')])],1),t._v(" "),r("ui-form-element",{attrs:{vertical:t.$_Client.isPhone}},[r("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Redirect Type\n ")]),t._v(" "),r("input-select",{attrs:{slot:"content",options:{301:t.$gettext("301 — Permanent"),302:t.$gettext("302 — Temporary"),303:t.$gettext("303 — Replaced")},width:"46.3rem"},slot:"content",model:{value:t.create.type,callback:function(e){t.$set(t.create,"type",e)},expression:"create.type"}})],1),t._v(" "),r("ui-form-element",{attrs:{group:"redirect",validators:{required:!0,isURL:t.isURL},vertical:t.$_Client.isPhone}},[r("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Destination URL\n ")]),t._v(" "),r("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v('\n e.g. "http://www.redirected.com"\n ')]),t._v(" "),r("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.create.to,callback:function(e){t.$set(t.create,"to",e)},expression:"create.to"}}),t._v(" "),r("translate",{attrs:{slot:"error:isURL"},slot:"error:isURL"},[t._v("\n Should be valid URL\n ")])],1)],1),t._v(" "),r("ui-button",{attrs:{slot:"buttons",theme:"primary","validate-group":"redirect"},on:{click:t.createRedirect},slot:"buttons"},[r("translate",[t._v("Create")])],1)],2),t._v(" "),r("ui-dialog-delete-items",{attrs:{id:"DELETE_REDIRECTS_DIALOG",subject:t.$ngettext("Redirect","Redirects",t.select.length)},on:{"click:confirm":t.deleteRedirects}})],1)},n=[];r.d(e,"a",(function(){return a})),r.d(e,"b",(function(){return n}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/151.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/151.js new file mode 100644 index 0000000..60cdea2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/151.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[151],{1410:function(t,e,n){"use strict";n.r(e);var o=n(3103),r=n(2213);for(var s in r)"default"!==s&&function(t){n.d(e,t,(function(){return r[t]}))}(s);var a=n(0),i=n(2916),l=n.n(i),u=Object(a.a)(r.default,o.a,o.b,!1,null,null,null);"function"==typeof l.a&&l()(u),e.default=u.exports},1519:function(t,e,n){"use strict";n.r(e);var o,r=n(30),s=n.n(r),a=n(6),i=n(35),l=n(18),u=function(){return(u=Object.assign||function(t){for(var e,n=1,o=arguments.length;n0&&t>>0,n=0;n0)for(a=0;a=0?a?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+n}var I=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,R=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},V={};function B(e,t,a,n){var i=n;"string"==typeof n&&(i=function(){return this[n]()}),e&&(V[e]=i),t&&(V[t[0]]=function(){return z(i.apply(this,arguments),t[1],t[2])}),a&&(V[a]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function J(e,t){return e.isValid()?(t=U(t,e.localeData()),N[t]=N[t]||function(e){var t,a,n,i=e.match(I);for(t=0,a=i.length;t=0&&R.test(e);)e=e.replace(R,n),R.lastIndex=0,a-=1;return e}var G=/\d/,q=/\d\d/,$=/\d{3}/,K=/\d{4}/,Z=/[+-]?\d{6}/,Q=/\d\d?/,X=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,ae=/\d{1,4}/,ne=/[+-]?\d{1,6}/,ie=/\d+/,re=/[+-]?\d+/,se=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,de=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,le={};function ue(e,t,a){le[e]=H(t)?t:function(e,n){return e&&a?a:t}}function _e(e,t){return _(le,e)?le[e](t._strict,t._locale):new RegExp(he(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,a,n,i){return t||a||n||i}))))}function he(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var me={};function ce(e,t){var a,n=t;for("string"==typeof e&&(e=[e]),d(t)&&(n=function(e,a){a[t]=k(e)}),a=0;a68?1900:2e3)};var ye,Le=ve("FullYear",!0);function ve(e,t){return function(a){return null!=a?(ke(this,e,a),i.updateOffset(this,t),this):Ye(this,e)}}function Ye(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function ke(e,t,a){e.isValid()&&!isNaN(a)&&("FullYear"===t&&ge(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](a,e.month(),be(a,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](a))}function be(e,t){if(isNaN(e)||isNaN(t))return NaN;var a,n=(t%(a=12)+a)%a;return e+=(t-n)/12,1===n?ge(e)?29:28:31-n%7%2}ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0?(o=new Date(e+400,t,a,n,i,r,s),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,a,n,i,r,s),o}function Fe(e){var t;if(e<100&&e>=0){var a=Array.prototype.slice.call(arguments);a[0]=e+400,t=new Date(Date.UTC.apply(null,a)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function We(e,t,a){var n=7+t-a;return-(7+Fe(e,0,n).getUTCDay()-t)%7+n-1}function Ce(e,t,a,n,i){var r,s,o=1+7*(t-1)+(7+a-n)%7+We(e,n,i);return o<=0?s=pe(r=e-1)+o:o>pe(e)?(r=e+1,s=o-pe(e)):(r=e,s=o),{year:r,dayOfYear:s}}function Ee(e,t,a){var n,i,r=We(e.year(),t,a),s=Math.floor((e.dayOfYear()-r-1)/7)+1;return s<1?n=s+ze(i=e.year()-1,t,a):s>ze(e.year(),t,a)?(n=s-ze(e.year(),t,a),i=e.year()+1):(i=e.year(),n=s),{week:n,year:i}}function ze(e,t,a){var n=We(e,t,a),i=We(e+1,t,a);return(pe(e)-n+i)/7}function Ie(e,t){return e.slice(t,7).concat(e.slice(0,t))}B("w",["ww",2],"wo","week"),B("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),E("week",5),E("isoWeek",5),ue("w",Q),ue("ww",Q,q),ue("W",Q),ue("WW",Q,q),fe(["w","ww","W","WW"],(function(e,t,a,n){t[n.substr(0,1)]=k(e)})),B("d",0,"do","day"),B("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),B("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),B("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),B("e",0,0,"weekday"),B("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),E("day",11),E("weekday",11),E("isoWeekday",11),ue("d",Q),ue("e",Q),ue("E",Q),ue("dd",(function(e,t){return t.weekdaysMinRegex(e)})),ue("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),ue("dddd",(function(e,t){return t.weekdaysRegex(e)})),fe(["dd","ddd","dddd"],(function(e,t,a,n){var i=a._locale.weekdaysParse(e,n,a._strict);null!=i?t.d=i:c(a).invalidWeekday=e})),fe(["d","e","E"],(function(e,t,a,n){t[n]=k(e)}));var Re="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ne="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ve="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Be(e,t,a){var n,i,r,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)r=m([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(r,"").toLocaleLowerCase();return a?"dddd"===t?-1!==(i=ye.call(this._weekdaysParse,s))?i:null:"ddd"===t?-1!==(i=ye.call(this._shortWeekdaysParse,s))?i:null:-1!==(i=ye.call(this._minWeekdaysParse,s))?i:null:"dddd"===t?-1!==(i=ye.call(this._weekdaysParse,s))?i:-1!==(i=ye.call(this._shortWeekdaysParse,s))?i:-1!==(i=ye.call(this._minWeekdaysParse,s))?i:null:"ddd"===t?-1!==(i=ye.call(this._shortWeekdaysParse,s))?i:-1!==(i=ye.call(this._weekdaysParse,s))?i:-1!==(i=ye.call(this._minWeekdaysParse,s))?i:null:-1!==(i=ye.call(this._minWeekdaysParse,s))?i:-1!==(i=ye.call(this._weekdaysParse,s))?i:-1!==(i=ye.call(this._shortWeekdaysParse,s))?i:null}var Je=de,Ue=de,Ge=de;function qe(){function e(e,t){return t.length-e.length}var t,a,n,i,r,s=[],o=[],d=[],l=[];for(t=0;t<7;t++)a=m([2e3,1]).day(t),n=this.weekdaysMin(a,""),i=this.weekdaysShort(a,""),r=this.weekdays(a,""),s.push(n),o.push(i),d.push(r),l.push(n),l.push(i),l.push(r);for(s.sort(e),o.sort(e),d.sort(e),l.sort(e),t=0;t<7;t++)o[t]=he(o[t]),d[t]=he(d[t]),l[t]=he(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function $e(){return this.hours()%12||12}function Ke(e,t){B(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Ze(e,t){return t._meridiemParse}B("H",["HH",2],0,"hour"),B("h",["hh",2],0,$e),B("k",["kk",2],0,(function(){return this.hours()||24})),B("hmm",0,0,(function(){return""+$e.apply(this)+z(this.minutes(),2)})),B("hmmss",0,0,(function(){return""+$e.apply(this)+z(this.minutes(),2)+z(this.seconds(),2)})),B("Hmm",0,0,(function(){return""+this.hours()+z(this.minutes(),2)})),B("Hmmss",0,0,(function(){return""+this.hours()+z(this.minutes(),2)+z(this.seconds(),2)})),Ke("a",!0),Ke("A",!1),A("hour","h"),E("hour",13),ue("a",Ze),ue("A",Ze),ue("H",Q),ue("h",Q),ue("k",Q),ue("HH",Q,q),ue("hh",Q,q),ue("kk",Q,q),ue("hmm",X),ue("hmmss",ee),ue("Hmm",X),ue("Hmmss",ee),ce(["H","HH"],3),ce(["k","kk"],(function(e,t,a){var n=k(e);t[3]=24===n?0:n})),ce(["a","A"],(function(e,t,a){a._isPm=a._locale.isPM(e),a._meridiem=e})),ce(["h","hh"],(function(e,t,a){t[3]=k(e),c(a).bigHour=!0})),ce("hmm",(function(e,t,a){var n=e.length-2;t[3]=k(e.substr(0,n)),t[4]=k(e.substr(n)),c(a).bigHour=!0})),ce("hmmss",(function(e,t,a){var n=e.length-4,i=e.length-2;t[3]=k(e.substr(0,n)),t[4]=k(e.substr(n,2)),t[5]=k(e.substr(i)),c(a).bigHour=!0})),ce("Hmm",(function(e,t,a){var n=e.length-2;t[3]=k(e.substr(0,n)),t[4]=k(e.substr(n))})),ce("Hmmss",(function(e,t,a){var n=e.length-4,i=e.length-2;t[3]=k(e.substr(0,n)),t[4]=k(e.substr(n,2)),t[5]=k(e.substr(i))}));var Qe,Xe=ve("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:we,monthsShort:Te,week:{dow:0,doy:6},weekdays:Re,weekdaysMin:Ve,weekdaysShort:Ne,meridiemParse:/[ap]\.?m?\.?/i},tt={},at={};function nt(e){return e?e.toLowerCase().replace("_","-"):e}function it(t){var n=null;if(!tt[t]&&void 0!==e&&e&&e.exports)try{n=Qe._abbr,a(2512)("./"+t),rt(n)}catch(e){}return tt[t]}function rt(e,t){var a;return e&&((a=o(t)?ot(e):st(e,t))?Qe=a:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Qe._abbr}function st(e,t){if(null!==t){var a,n=et;if(t.abbr=e,null!=tt[e])S("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])n=tt[t.parentLocale]._config;else{if(null==(a=it(t.parentLocale)))return at[t.parentLocale]||(at[t.parentLocale]=[]),at[t.parentLocale].push({name:e,config:t}),null;n=a._config}return tt[e]=new P(j(n,t)),at[e]&&at[e].forEach((function(e){st(e.name,e.config)})),rt(e),tt[e]}return delete tt[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Qe;if(!r(e)){if(t=it(e))return t;e=[e]}return function(e){for(var t,a,n,i,r=0;r0;){if(n=it(i.slice(0,t).join("-")))return n;if(a&&a.length>=t&&b(i,a,!0)>=t-1)break;t--}r++}return Qe}(e)}function dt(e){var t,a=e._a;return a&&-2===c(e).overflow&&(t=a[1]<0||a[1]>11?1:a[2]<1||a[2]>be(a[0],a[1])?2:a[3]<0||a[3]>24||24===a[3]&&(0!==a[4]||0!==a[5]||0!==a[6])?3:a[4]<0||a[4]>59?4:a[5]<0||a[5]>59?5:a[6]<0||a[6]>999?6:-1,c(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),c(e)._overflowWeeks&&-1===t&&(t=7),c(e)._overflowWeekday&&-1===t&&(t=8),c(e).overflow=t),e}function lt(e,t,a){return null!=e?e:null!=t?t:a}function ut(e){var t,a,n,r,s,o=[];if(!e._d){for(n=function(e){var t=new Date(i.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,a,n,i,r,s,o,d;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,s=4,a=lt(t.GG,e._a[0],Ee(Dt(),1,4).year),n=lt(t.W,1),((i=lt(t.E,1))<1||i>7)&&(d=!0);else{r=e._locale._week.dow,s=e._locale._week.doy;var l=Ee(Dt(),r,s);a=lt(t.gg,e._a[0],l.year),n=lt(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(d=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(d=!0)):i=r}n<1||n>ze(a,r,s)?c(e)._overflowWeeks=!0:null!=d?c(e)._overflowWeekday=!0:(o=Ce(a,n,i,r,s),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(s=lt(e._a[0],n[0]),(e._dayOfYear>pe(s)||0===e._dayOfYear)&&(c(e)._overflowDayOfYear=!0),a=Fe(s,0,e._dayOfYear),e._a[1]=a.getUTCMonth(),e._a[2]=a.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=n[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Fe:Ae).apply(null,o),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(c(e).weekdayMismatch=!0)}}var _t=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ht=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/Z|[+-]\d\d(?::?\d\d)?/,ct=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],ft=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Mt=/^\/?Date\((\-?\d+)/i;function pt(e){var t,a,n,i,r,s,o=e._i,d=_t.exec(o)||ht.exec(o);if(d){for(c(e).iso=!0,t=0,a=ct.length;t0&&c(e).unusedInput.push(s),o=o.slice(o.indexOf(a)+a.length),l+=a.length),V[r]?(a?c(e).empty=!1:c(e).unusedTokens.push(r),Me(r,a,e)):e._strict&&!a&&c(e).unusedTokens.push(r);c(e).charsLeftOver=d-l,o.length>0&&c(e).unusedInput.push(o),e._a[3]<=12&&!0===c(e).bigHour&&e._a[3]>0&&(c(e).bigHour=void 0),c(e).parsedDateParts=e._a.slice(0),c(e).meridiem=e._meridiem,e._a[3]=function(e,t,a){var n;return null==a?t:null!=e.meridiemHour?e.meridiemHour(t,a):null!=e.isPM?((n=e.isPM(a))&&t<12&&(t+=12),n||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),ut(e),dt(e)}else vt(e);else pt(e)}function kt(e){var t=e._i,a=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===a&&""===t?M({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),v(t)?new L(dt(t)):(l(t)?e._d=t:r(a)?function(e){var t,a,n,i,r;if(0===e._f.length)return c(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;ithis?this:e:M()}));function xt(e,t){var a,n;if(1===t.length&&r(t[0])&&(t=t[0]),!t.length)return Dt();for(a=t[0],n=1;n=0?new Date(e+400,t,a)-126227808e5:new Date(e,t,a).valueOf()}function ea(e,t,a){return e<100&&e>=0?Date.UTC(e+400,t,a)-126227808e5:Date.UTC(e,t,a)}function ta(e,t){B(0,[e,e.length],0,t)}function aa(e,t,a,n,i){var r;return null==e?Ee(this,n,i).year:(t>(r=ze(e,n,i))&&(t=r),na.call(this,e,t,a,n,i))}function na(e,t,a,n,i){var r=Ce(e,t,a,n,i),s=Fe(r.year,0,r.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}B(0,["gg",2],0,(function(){return this.weekYear()%100})),B(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ta("gggg","weekYear"),ta("ggggg","weekYear"),ta("GGGG","isoWeekYear"),ta("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),E("weekYear",1),E("isoWeekYear",1),ue("G",re),ue("g",re),ue("GG",Q,q),ue("gg",Q,q),ue("GGGG",ae,K),ue("gggg",ae,K),ue("GGGGG",ne,Z),ue("ggggg",ne,Z),fe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,a,n){t[n.substr(0,2)]=k(e)})),fe(["gg","GG"],(function(e,t,a,n){t[n]=i.parseTwoDigitYear(e)})),B("Q",0,"Qo","quarter"),A("quarter","Q"),E("quarter",7),ue("Q",G),ce("Q",(function(e,t){t[1]=3*(k(e)-1)})),B("D",["DD",2],"Do","date"),A("date","D"),E("date",9),ue("D",Q),ue("DD",Q,q),ue("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),ce(["D","DD"],2),ce("Do",(function(e,t){t[2]=k(e.match(Q)[0])}));var ia=ve("Date",!0);B("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),E("dayOfYear",4),ue("DDD",te),ue("DDDD",$),ce(["DDD","DDDD"],(function(e,t,a){a._dayOfYear=k(e)})),B("m",["mm",2],0,"minute"),A("minute","m"),E("minute",14),ue("m",Q),ue("mm",Q,q),ce(["m","mm"],4);var ra=ve("Minutes",!1);B("s",["ss",2],0,"second"),A("second","s"),E("second",15),ue("s",Q),ue("ss",Q,q),ce(["s","ss"],5);var sa,oa=ve("Seconds",!1);for(B("S",0,0,(function(){return~~(this.millisecond()/100)})),B(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),B(0,["SSS",3],0,"millisecond"),B(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),B(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),B(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),B(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),B(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),B(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),A("millisecond","ms"),E("millisecond",16),ue("S",te,G),ue("SS",te,q),ue("SSS",te,$),sa="SSSS";sa.length<=9;sa+="S")ue(sa,ie);function da(e,t){t[6]=k(1e3*("0."+e))}for(sa="S";sa.length<=9;sa+="S")ce(sa,da);var la=ve("Milliseconds",!1);B("z",0,0,"zoneAbbr"),B("zz",0,0,"zoneName");var ua=L.prototype;function _a(e){return e}ua.add=Ut,ua.calendar=function(e,t){var a=e||Dt(),n=Wt(a,this).startOf("day"),r=i.calendarFormat(this,n)||"sameElse",s=t&&(H(t[r])?t[r].call(this,a):t[r]);return this.format(s||this.localeData().calendar(r,this,Dt(a)))},ua.clone=function(){return new L(this)},ua.diff=function(e,t,a){var n,i,r;if(!this.isValid())return NaN;if(!(n=Wt(e,this)).isValid())return NaN;switch(i=6e4*(n.utcOffset()-this.utcOffset()),t=F(t)){case"year":r=qt(this,n)/12;break;case"month":r=qt(this,n);break;case"quarter":r=qt(this,n)/3;break;case"second":r=(this-n)/1e3;break;case"minute":r=(this-n)/6e4;break;case"hour":r=(this-n)/36e5;break;case"day":r=(this-n-i)/864e5;break;case"week":r=(this-n-i)/6048e5;break;default:r=this-n}return a?r:Y(r)},ua.endOf=function(e){var t;if(void 0===(e=F(e))||"millisecond"===e||!this.isValid())return this;var a=this._isUTC?ea:Xt;switch(e){case"year":t=a(this.year()+1,0,1)-1;break;case"quarter":t=a(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=a(this.year(),this.month()+1,1)-1;break;case"week":t=a(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=a(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=a(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-Qt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-Qt(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-Qt(t,1e3)-1}return this._d.setTime(t),i.updateOffset(this,!0),this},ua.format=function(e){e||(e=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var t=J(this,e);return this.localeData().postformat(t)},ua.from=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||Dt(e).isValid())?Rt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ua.fromNow=function(e){return this.from(Dt(),e)},ua.to=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||Dt(e).isValid())?Rt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ua.toNow=function(e){return this.to(Dt(),e)},ua.get=function(e){return H(this[e=F(e)])?this[e]():this},ua.invalidAt=function(){return c(this).overflow},ua.isAfter=function(e,t){var a=v(e)?e:Dt(e);return!(!this.isValid()||!a.isValid())&&("millisecond"===(t=F(t)||"millisecond")?this.valueOf()>a.valueOf():a.valueOf()9999?J(a,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):H(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",J(a,"Z")):J(a,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ua.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var a="["+e+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(a+n+"-MM-DD[T]HH:mm:ss.SSS"+i)},ua.toJSON=function(){return this.isValid()?this.toISOString():null},ua.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ua.unix=function(){return Math.floor(this.valueOf()/1e3)},ua.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ua.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ua.year=Le,ua.isLeapYear=function(){return ge(this.year())},ua.weekYear=function(e){return aa.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ua.isoWeekYear=function(e){return aa.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},ua.quarter=ua.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},ua.month=He,ua.daysInMonth=function(){return be(this.year(),this.month())},ua.week=ua.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},ua.isoWeek=ua.isoWeeks=function(e){var t=Ee(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},ua.weeksInYear=function(){var e=this.localeData()._week;return ze(this.year(),e.dow,e.doy)},ua.isoWeeksInYear=function(){return ze(this.year(),1,4)},ua.date=ia,ua.day=ua.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},ua.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},ua.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},ua.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},ua.hour=ua.hours=Xe,ua.minute=ua.minutes=ra,ua.second=ua.seconds=oa,ua.millisecond=ua.milliseconds=la,ua.utcOffset=function(e,t,a){var n,r=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ft(oe,e)))return this}else Math.abs(e)<16&&!a&&(e*=60);return!this._isUTC&&t&&(n=Ct(this)),this._offset=e,this._isUTC=!0,null!=n&&this.add(n,"m"),r!==e&&(!t||this._changeInProgress?Jt(this,Rt(e-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,i.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Ct(this)},ua.utc=function(e){return this.utcOffset(0,e)},ua.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ct(this),"m")),this},ua.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ft(se,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},ua.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Dt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},ua.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ua.isLocal=function(){return!!this.isValid()&&!this._isUTC},ua.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ua.isUtc=Et,ua.isUTC=Et,ua.zoneAbbr=function(){return this._isUTC?"UTC":""},ua.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ua.dates=w("dates accessor is deprecated. Use date instead.",ia),ua.months=w("months accessor is deprecated. Use month instead",He),ua.years=w("years accessor is deprecated. Use year instead",Le),ua.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),ua.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(g(e,this),(e=kt(e))._a){var t=e._isUTC?m(e._a):Dt(e._a);this._isDSTShifted=this.isValid()&&b(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var ha=P.prototype;function ma(e,t,a,n){var i=ot(),r=m().set(n,t);return i[a](r,e)}function ca(e,t,a){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return ma(e,t,a,"month");var n,i=[];for(n=0;n<12;n++)i[n]=ma(e,n,a,"month");return i}function fa(e,t,a,n){"boolean"==typeof e?(d(t)&&(a=t,t=void 0),t=t||""):(a=t=e,e=!1,d(t)&&(a=t,t=void 0),t=t||"");var i,r=ot(),s=e?r._week.dow:0;if(null!=a)return ma(t,(a+s)%7,n,"day");var o=[];for(i=0;i<7;i++)o[i]=ma(t,(i+s)%7,n,"day");return o}ha.calendar=function(e,t,a){var n=this._calendar[e]||this._calendar.sameElse;return H(n)?n.call(t,a):n},ha.longDateFormat=function(e){var t=this._longDateFormat[e],a=this._longDateFormat[e.toUpperCase()];return t||!a?t:(this._longDateFormat[e]=a.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},ha.invalidDate=function(){return this._invalidDate},ha.ordinal=function(e){return this._ordinal.replace("%d",e)},ha.preparse=_a,ha.postformat=_a,ha.relativeTime=function(e,t,a,n){var i=this._relativeTime[a];return H(i)?i(e,t,a,n):i.replace(/%d/i,e)},ha.pastFuture=function(e,t){var a=this._relativeTime[e>0?"future":"past"];return H(a)?a(t):a.replace(/%s/i,t)},ha.set=function(e){var t,a;for(a in e)H(t=e[a])?this[a]=t:this["_"+a]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},ha.months=function(e,t){return e?r(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||De).test(t)?"format":"standalone"][e.month()]:r(this._months)?this._months:this._months.standalone},ha.monthsShort=function(e,t){return e?r(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[De.test(t)?"format":"standalone"][e.month()]:r(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},ha.monthsParse=function(e,t,a){var n,i,r;if(this._monthsParseExact)return xe.call(this,e,t,a);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),n=0;n<12;n++){if(i=m([2e3,n]),a&&!this._longMonthsParse[n]&&(this._longMonthsParse[n]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[n]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),a||this._monthsParse[n]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[n]=new RegExp(r.replace(".",""),"i")),a&&"MMMM"===t&&this._longMonthsParse[n].test(e))return n;if(a&&"MMM"===t&&this._shortMonthsParse[n].test(e))return n;if(!a&&this._monthsParse[n].test(e))return n}},ha.monthsRegex=function(e){return this._monthsParseExact?(_(this,"_monthsRegex")||Oe.call(this),e?this._monthsStrictRegex:this._monthsRegex):(_(this,"_monthsRegex")||(this._monthsRegex=Pe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},ha.monthsShortRegex=function(e){return this._monthsParseExact?(_(this,"_monthsRegex")||Oe.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(_(this,"_monthsShortRegex")||(this._monthsShortRegex=je),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},ha.week=function(e){return Ee(e,this._week.dow,this._week.doy).week},ha.firstDayOfYear=function(){return this._week.doy},ha.firstDayOfWeek=function(){return this._week.dow},ha.weekdays=function(e,t){var a=r(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ie(a,this._week.dow):e?a[e.day()]:a},ha.weekdaysMin=function(e){return!0===e?Ie(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},ha.weekdaysShort=function(e){return!0===e?Ie(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},ha.weekdaysParse=function(e,t,a){var n,i,r;if(this._weekdaysParseExact)return Be.call(this,e,t,a);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(i=m([2e3,1]).day(n),a&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[n]=new RegExp(r.replace(".",""),"i")),a&&"dddd"===t&&this._fullWeekdaysParse[n].test(e))return n;if(a&&"ddd"===t&&this._shortWeekdaysParse[n].test(e))return n;if(a&&"dd"===t&&this._minWeekdaysParse[n].test(e))return n;if(!a&&this._weekdaysParse[n].test(e))return n}},ha.weekdaysRegex=function(e){return this._weekdaysParseExact?(_(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(_(this,"_weekdaysRegex")||(this._weekdaysRegex=Je),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},ha.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(_(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(_(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ue),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},ha.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(_(this,"_weekdaysRegex")||qe.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(_(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ge),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},ha.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},ha.meridiem=function(e,t,a){return e>11?a?"pm":"PM":a?"am":"AM"},rt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),i.lang=w("moment.lang is deprecated. Use moment.locale instead.",rt),i.langData=w("moment.langData is deprecated. Use moment.localeData instead.",ot);var Ma=Math.abs;function pa(e,t,a,n){var i=Rt(t,a);return e._milliseconds+=n*i._milliseconds,e._days+=n*i._days,e._months+=n*i._months,e._bubble()}function ga(e){return e<0?Math.floor(e):Math.ceil(e)}function ya(e){return 4800*e/146097}function La(e){return 146097*e/4800}function va(e){return function(){return this.as(e)}}var Ya=va("ms"),ka=va("s"),ba=va("m"),Da=va("h"),wa=va("d"),Ta=va("w"),xa=va("M"),Sa=va("Q"),Ha=va("y");function ja(e){return function(){return this.isValid()?this._data[e]:NaN}}var Pa=ja("milliseconds"),Oa=ja("seconds"),Aa=ja("minutes"),Fa=ja("hours"),Wa=ja("days"),Ca=ja("months"),Ea=ja("years"),za=Math.round,Ia={ss:44,s:45,m:45,h:22,d:26,M:11};function Ra(e,t,a,n,i){return i.relativeTime(t||1,!!a,e,n)}var Na=Math.abs;function Va(e){return(e>0)-(e<0)||+e}function Ba(){if(!this.isValid())return this.localeData().invalidDate();var e,t,a=Na(this._milliseconds)/1e3,n=Na(this._days),i=Na(this._months);e=Y(a/60),t=Y(e/60),a%=60,e%=60;var r=Y(i/12),s=i%=12,o=n,d=t,l=e,u=a?a.toFixed(3).replace(/\.?0+$/,""):"",_=this.asSeconds();if(!_)return"P0D";var h=_<0?"-":"",m=Va(this._months)!==Va(_)?"-":"",c=Va(this._days)!==Va(_)?"-":"",f=Va(this._milliseconds)!==Va(_)?"-":"";return h+"P"+(r?m+r+"Y":"")+(s?m+s+"M":"")+(o?c+o+"D":"")+(d||l||u?"T":"")+(d?f+d+"H":"")+(l?f+l+"M":"")+(u?f+u+"S":"")}var Ja=Ht.prototype;return Ja.isValid=function(){return this._isValid},Ja.abs=function(){var e=this._data;return this._milliseconds=Ma(this._milliseconds),this._days=Ma(this._days),this._months=Ma(this._months),e.milliseconds=Ma(e.milliseconds),e.seconds=Ma(e.seconds),e.minutes=Ma(e.minutes),e.hours=Ma(e.hours),e.months=Ma(e.months),e.years=Ma(e.years),this},Ja.add=function(e,t){return pa(this,e,t,1)},Ja.subtract=function(e,t){return pa(this,e,t,-1)},Ja.as=function(e){if(!this.isValid())return NaN;var t,a,n=this._milliseconds;if("month"===(e=F(e))||"quarter"===e||"year"===e)switch(t=this._days+n/864e5,a=this._months+ya(t),e){case"month":return a;case"quarter":return a/3;case"year":return a/12}else switch(t=this._days+Math.round(La(this._months)),e){case"week":return t/7+n/6048e5;case"day":return t+n/864e5;case"hour":return 24*t+n/36e5;case"minute":return 1440*t+n/6e4;case"second":return 86400*t+n/1e3;case"millisecond":return Math.floor(864e5*t)+n;default:throw new Error("Unknown unit "+e)}},Ja.asMilliseconds=Ya,Ja.asSeconds=ka,Ja.asMinutes=ba,Ja.asHours=Da,Ja.asDays=wa,Ja.asWeeks=Ta,Ja.asMonths=xa,Ja.asQuarters=Sa,Ja.asYears=Ha,Ja.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},Ja._bubble=function(){var e,t,a,n,i,r=this._milliseconds,s=this._days,o=this._months,d=this._data;return r>=0&&s>=0&&o>=0||r<=0&&s<=0&&o<=0||(r+=864e5*ga(La(o)+s),s=0,o=0),d.milliseconds=r%1e3,e=Y(r/1e3),d.seconds=e%60,t=Y(e/60),d.minutes=t%60,a=Y(t/60),d.hours=a%24,s+=Y(a/24),i=Y(ya(s)),o+=i,s-=ga(La(i)),n=Y(o/12),o%=12,d.days=s,d.months=o,d.years=n,this},Ja.clone=function(){return Rt(this)},Ja.get=function(e){return e=F(e),this.isValid()?this[e+"s"]():NaN},Ja.milliseconds=Pa,Ja.seconds=Oa,Ja.minutes=Aa,Ja.hours=Fa,Ja.days=Wa,Ja.weeks=function(){return Y(this.days()/7)},Ja.months=Ca,Ja.years=Ea,Ja.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),a=function(e,t,a){var n=Rt(e).abs(),i=za(n.as("s")),r=za(n.as("m")),s=za(n.as("h")),o=za(n.as("d")),d=za(n.as("M")),l=za(n.as("y")),u=i<=Ia.ss&&["s",i]||i0,u[4]=a,Ra.apply(null,u)}(this,!e,t);return e&&(a=t.pastFuture(+this,a)),t.postformat(a)},Ja.toISOString=Ba,Ja.toString=Ba,Ja.toJSON=Ba,Ja.locale=$t,Ja.localeData=Zt,Ja.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ba),Ja.lang=Kt,B("X",0,0,"unix"),B("x",0,0,"valueOf"),ue("x",re),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",(function(e,t,a){a._d=new Date(1e3*parseFloat(e,10))})),ce("x",(function(e,t,a){a._d=new Date(k(e))})),i.version="2.24.0",t=Dt,i.fn=ua,i.min=function(){var e=[].slice.call(arguments,0);return xt("isBefore",e)},i.max=function(){var e=[].slice.call(arguments,0);return xt("isAfter",e)},i.now=function(){return Date.now?Date.now():+new Date},i.utc=m,i.unix=function(e){return Dt(1e3*e)},i.months=function(e,t){return ca(e,t,"months")},i.isDate=l,i.locale=rt,i.invalid=M,i.duration=Rt,i.isMoment=v,i.weekdays=function(e,t,a){return fa(e,t,a,"weekdays")},i.parseZone=function(){return Dt.apply(null,arguments).parseZone()},i.localeData=ot,i.isDuration=jt,i.monthsShort=function(e,t){return ca(e,t,"monthsShort")},i.weekdaysMin=function(e,t,a){return fa(e,t,a,"weekdaysMin")},i.defineLocale=st,i.updateLocale=function(e,t){if(null!=t){var a,n,i=et;null!=(n=it(e))&&(i=n._config),t=j(i,t),(a=new P(t)).parentLocale=tt[e],tt[e]=a,rt(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?tt[e]=tt[e].parentLocale:null!=tt[e]&&delete tt[e]);return tt[e]},i.locales=function(){return T(tt)},i.weekdaysShort=function(e,t,a){return fa(e,t,a,"weekdaysShort")},i.normalizeUnits=F,i.relativeTimeRounding=function(e){return void 0===e?za:"function"==typeof e&&(za=e,!0)},i.relativeTimeThreshold=function(e,t){return void 0!==Ia[e]&&(void 0===t?Ia[e]:(Ia[e]=t,"s"===e&&(Ia.ss=t-1),!0))},i.calendarFormat=function(e,t){var a=e.diff(t,"days",!0);return a<-6?"sameElse":a<-1?"lastWeek":a<0?"lastDay":a<1?"sameDay":a<2?"nextDay":a<7?"nextWeek":"sameElse"},i.prototype=ua,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}()}).call(this,a(34)(e))},1532:function(e,t,a){"use strict";function n(e,t){if(t){var a=this.$data._chart,n=e.datasets.map((function(e){return e.label})),i=t.datasets.map((function(e){return e.label})),r=JSON.stringify(i);JSON.stringify(n)===r&&t.datasets.length===e.datasets.length?(e.datasets.forEach((function(e,n){var i=Object.keys(t.datasets[n]),r=Object.keys(e),s=i.filter((function(e){return"_meta"!==e&&-1===r.indexOf(e)}));for(var o in s.forEach((function(e){delete a.data.datasets[n][e]})),e)e.hasOwnProperty(o)&&(a.data.datasets[n][o]=e[o])})),e.hasOwnProperty("labels")&&(a.data.labels=e.labels,this.$emit("labels:update")),e.hasOwnProperty("xLabels")&&(a.data.xLabels=e.xLabels,this.$emit("xlabels:update")),e.hasOwnProperty("yLabels")&&(a.data.yLabels=e.yLabels,this.$emit("ylabels:update")),a.update(),this.$emit("chart:update")):(a&&(a.destroy(),this.$emit("chart:destroy")),this.renderChart(this.chartData,this.options),this.$emit("chart:render"))}else this.$data._chart&&(this.$data._chart.destroy(),this.$emit("chart:destroy")),this.renderChart(this.chartData,this.options),this.$emit("chart:render")}a.r(t);var i={reactiveData:{data:function(){return{chartData:null}},watch:{chartData:n}},reactiveProp:{props:{chartData:{type:Object,required:!0,default:function(){}}},watch:{chartData:n}}},r=a(2511),s=a.n(r);function o(e,t){return{render:function(e){return e("div",{style:this.styles,class:this.cssClasses},[e("canvas",{attrs:{id:this.chartId,width:this.width,height:this.height},ref:"canvas"})])},props:{chartId:{default:e,type:String},width:{default:400,type:Number},height:{default:400,type:Number},cssClasses:{type:String,default:""},styles:{type:Object},plugins:{type:Array,default:function(){return[]}}},data:function(){return{_chart:null,_plugins:this.plugins}},methods:{addPlugin:function(e){this.$data._plugins.push(e)},generateLegend:function(){if(this.$data._chart)return this.$data._chart.generateLegend()},renderChart:function(e,a){this.$data._chart&&this.$data._chart.destroy(),this.$data._chart=new s.a(this.$refs.canvas.getContext("2d"),{type:t,data:e,options:a,plugins:this.$data._plugins})}},beforeDestroy:function(){this.$data._chart&&this.$data._chart.destroy()}}}var d=o("bar-chart","bar"),l=o("horizontalbar-chart","horizontalBar"),u=o("doughnut-chart","doughnut"),_=o("line-chart","line"),h=o("pie-chart","pie"),m=o("polar-chart","polarArea"),c=o("radar-chart","radar"),f=o("bubble-chart","bubble"),M=o("scatter-chart","scatter");a.d(t,"VueCharts",(function(){return p})),a.d(t,"Bar",(function(){return d})),a.d(t,"HorizontalBar",(function(){return l})),a.d(t,"Doughnut",(function(){return u})),a.d(t,"Line",(function(){return _})),a.d(t,"Pie",(function(){return h})),a.d(t,"PolarArea",(function(){return m})),a.d(t,"Radar",(function(){return c})),a.d(t,"Bubble",(function(){return f})),a.d(t,"Scatter",(function(){return M})),a.d(t,"mixins",(function(){return i})),a.d(t,"generateChart",(function(){return o}));var p={Bar:d,HorizontalBar:l,Doughnut:u,Line:_,Pie:h,PolarArea:m,Radar:c,Bubble:f,Scatter:M,mixins:i,generateChart:o,render:function(){return console.error("[vue-chartjs]: This is not a vue component. It is the whole object containing all vue components. Please import the named export or access the components over the dot notation. For more info visit https://vue-chartjs.org/#/home?id=quick-start")}};t.default=p},2286:function(e,t,a){!function(e){"use strict";e.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(e){return/^nm$/i.test(e)},meridiem:function(e,t,a){return e<12?a?"vm":"VM":a?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",ss:"%d sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(1424))},2287:function(e,t,a){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},a={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},i={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(t,a,r,s){var o=n(t),d=i[e][n(t)];return 2===o&&(d=d[a?0:1]),d.replace(/%d/i,t)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(a(1424))},2288:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})}(a(1424))},2289:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(a(1424))},2290:function(e,t,a){!function(e){"use strict";var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},a=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(e){return function(t,i,r,s){var o=a(t),d=n[e][a(t)];return 2===o&&(d=d[i?0:1]),d.replace(/%d/i,t)}},r=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:r,monthsShort:r,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(a(1424))},2291:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(a(1424))},2292:function(e,t,a){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},a={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,a){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(a(1424))},2293:function(e,t,a){!function(e){"use strict";e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(a(1424))},2294:function(e,t,a){!function(e){"use strict";var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,a){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var a=e%10;return e+(t[a]||t[e%100-a]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(1424))},2295:function(e,t,a){!function(e){"use strict";function t(e,t,a){var n,i;return"m"===a?t?"хвіліна":"хвіліну":"h"===a?t?"гадзіна":"гадзіну":e+" "+(n=+e,i={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[a].split("_"),n%10==1&&n%100!=11?i[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?i[1]:i[2])}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,a){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(a(1424))},2296:function(e,t,a){!function(e){"use strict";e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,a=e%100;return 0===e?e+"-ев":0===a?e+"-ен":a>10&&a<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(a(1424))},2297:function(e,t,a){!function(e){"use strict";e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(a(1424))},2298:function(e,t,a){!function(e){"use strict";var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},a={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,a){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(a(1424))},2299:function(e,t,a){!function(e){"use strict";var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},a={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,a){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(a(1424))},2300:function(e,t,a){!function(e){"use strict";function t(e,t,a){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[a],e)}e.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(function e(t){return t>9?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4}})}(a(1424))},2301:function(e,t,a){!function(e){"use strict";function t(e,t,a){var n=e+" ";switch(a){case"ss":return n+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return n+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return n+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return n+=1===e?"dan":"dana";case"MM":return n+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return n+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2302:function(e,t,a){!function(e){"use strict";e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var a=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(a="a"),e+a},week:{dow:1,doy:4}})}(a(1424))},2303:function(e,t,a){!function(e){"use strict";var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),a="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),n=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],i=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function r(e){return e>1&&e<5&&1!=~~(e/10)}function s(e,t,a,n){var i=e+" ";switch(a){case"s":return t||n?"pár sekund":"pár sekundami";case"ss":return t||n?i+(r(e)?"sekundy":"sekund"):i+"sekundami";case"m":return t?"minuta":n?"minutu":"minutou";case"mm":return t||n?i+(r(e)?"minuty":"minut"):i+"minutami";case"h":return t?"hodina":n?"hodinu":"hodinou";case"hh":return t||n?i+(r(e)?"hodiny":"hodin"):i+"hodinami";case"d":return t||n?"den":"dnem";case"dd":return t||n?i+(r(e)?"dny":"dní"):i+"dny";case"M":return t||n?"měsíc":"měsícem";case"MM":return t||n?i+(r(e)?"měsíce":"měsíců"):i+"měsíci";case"y":return t||n?"rok":"rokem";case"yy":return t||n?i+(r(e)?"roky":"let"):i+"lety"}}e.defineLocale("cs",{months:t,monthsShort:a,monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2304:function(e,t,a){!function(e){"use strict";e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(a(1424))},2305:function(e,t,a){!function(e){"use strict";e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(a(1424))},2306:function(e,t,a){!function(e){"use strict";e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2307:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[a][0]:i[a][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2308:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[a][0]:i[a][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2309:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?i[a][0]:i[a][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2310:function(e,t,a){!function(e){"use strict";var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],a=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:a,weekdaysShort:a,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,a){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(a(1424))},2311:function(e,t,a){!function(e){"use strict";e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,a){return e>11?a?"μμ":"ΜΜ":a?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var a,n=this._calendarEl[e],i=t&&t.hours();return((a=n)instanceof Function||"[object Function]"===Object.prototype.toString.call(a))&&(n=n.apply(t)),n.replace("{}",i%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(a(1424))},2312:function(e,t,a){!function(e){"use strict";e.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2313:function(e,t,a){!function(e){"use strict";e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2314:function(e,t,a){!function(e){"use strict";e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(a(1424))},2315:function(e,t,a){!function(e){"use strict";e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2316:function(e,t,a){!function(e){"use strict";e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2317:function(e,t,a){!function(e){"use strict";e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(a(1424))},2318:function(e,t,a){!function(e){"use strict";e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2319:function(e,t,a){!function(e){"use strict";e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,a){return e>11?a?"p.t.m.":"P.T.M.":a?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(a(1424))},2320:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],i=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?a[e.month()]:t[e.month()]:t},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2321:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],i=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?a[e.month()]:t[e.month()]:t},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2322:function(e,t,a){!function(e){"use strict";var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),a="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),n=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],i=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?a[e.month()]:t[e.month()]:t},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(a(1424))},2323:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?i[a][2]?i[a][2]:i[a][1]:n?i[a][0]:i[a][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2324:function(e,t,a){!function(e){"use strict";e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2325:function(e,t,a){!function(e){"use strict";var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},a={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,a){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(a(1424))},2326:function(e,t,a){!function(e){"use strict";var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),a=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function n(e,n,i,r){var s="";switch(i){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":return r?"sekunnin":"sekuntia";case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=function(e,n){return e<10?n?a[e]:t[e]:e}(e,r)+" "+s}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2327:function(e,t,a){!function(e){"use strict";e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2328:function(e,t,a){!function(e){"use strict";e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(a(1424))},2329:function(e,t,a){!function(e){"use strict";e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(a(1424))},2330:function(e,t,a){!function(e){"use strict";e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(a(1424))},2331:function(e,t,a){!function(e){"use strict";var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),a="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?a[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(1424))},2332:function(e,t,a){!function(e){"use strict";e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","hA","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(a(1424))},2333:function(e,t,a){!function(e){"use strict";e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(a(1424))},2334:function(e,t,a){!function(e){"use strict";e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2335:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={s:["thodde secondanim","thodde second"],ss:[e+" secondanim",e+" second"],m:["eka mintan","ek minute"],mm:[e+" mintanim",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voranim",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disanim",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineanim",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsanim",e+" vorsam"]};return t?i[a][0]:i[a][1]}e.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokalli"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"rati":e<12?"sokalli":e<16?"donparam":e<20?"sanje":"rati"}})}(a(1424))},2336:function(e,t,a){!function(e){"use strict";var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},a={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(a(1424))},2337:function(e,t,a){!function(e){"use strict";e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,a){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?a?'לפנה"צ':"לפני הצהריים":e<18?a?'אחה"צ':"אחרי הצהריים":"בערב"}})}(a(1424))},2338:function(e,t,a){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(a(1424))},2339:function(e,t,a){!function(e){"use strict";function t(e,t,a){var n=e+" ";switch(a){case"ss":return n+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return n+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return n+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return n+=1===e?"dan":"dana";case"MM":return n+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return n+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2340:function(e,t,a){!function(e){"use strict";var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function a(e,t,a,n){var i=e;switch(a){case"s":return n||t?"néhány másodperc":"néhány másodperce";case"ss":return i+(n||t)?" másodperc":" másodperce";case"m":return"egy"+(n||t?" perc":" perce");case"mm":return i+(n||t?" perc":" perce");case"h":return"egy"+(n||t?" óra":" órája");case"hh":return i+(n||t?" óra":" órája");case"d":return"egy"+(n||t?" nap":" napja");case"dd":return i+(n||t?" nap":" napja");case"M":return"egy"+(n||t?" hónap":" hónapja");case"MM":return i+(n||t?" hónap":" hónapja");case"y":return"egy"+(n||t?" év":" éve");case"yy":return i+(n||t?" év":" éve")}return""}function n(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,a){return e<12?!0===a?"de":"DE":!0===a?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return n.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return n.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2341:function(e,t,a){!function(e){"use strict";e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(a(1424))},2342:function(e,t,a){!function(e){"use strict";e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(a(1424))},2343:function(e,t,a){!function(e){"use strict";function t(e){return e%100==11||e%10!=1}function a(e,a,n,i){var r=e+" ";switch(n){case"s":return a||i?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?r+(a||i?"sekúndur":"sekúndum"):r+"sekúnda";case"m":return a?"mínúta":"mínútu";case"mm":return t(e)?r+(a||i?"mínútur":"mínútum"):a?r+"mínúta":r+"mínútu";case"hh":return t(e)?r+(a||i?"klukkustundir":"klukkustundum"):r+"klukkustund";case"d":return a?"dagur":i?"dag":"degi";case"dd":return t(e)?a?r+"dagar":r+(i?"daga":"dögum"):a?r+"dagur":r+(i?"dag":"degi");case"M":return a?"mánuður":i?"mánuð":"mánuði";case"MM":return t(e)?a?r+"mánuðir":r+(i?"mánuði":"mánuðum"):a?r+"mánuður":r+(i?"mánuð":"mánuði");case"y":return a||i?"ár":"ári";case"yy":return t(e)?r+(a||i?"ár":"árum"):r+(a||i?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:a,ss:a,m:a,mm:a,h:"klukkustund",hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2344:function(e,t,a){!function(e){"use strict";e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2345:function(e,t,a){!function(e){"use strict";e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2346:function(e,t,a){!function(e){"use strict";e.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,a){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(a(1424))},2348:function(e,t,a){!function(e){"use strict";e.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return/(წამი|წუთი|საათი|წელი)/.test(e)?e.replace(/ი$/,"ში"):e+"ში"},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(a(1424))},2349:function(e,t,a){!function(e){"use strict";var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(1424))},2350:function(e,t,a){!function(e){"use strict";var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},a={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,a){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(a(1424))},2351:function(e,t,a){!function(e){"use strict";var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},a={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(a(1424))},2352:function(e,t,a){!function(e){"use strict";e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,a){return e<12?"오전":"오후"}})}(a(1424))},2353:function(e,t,a){!function(e){"use strict";var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},a={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},n=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:n,monthsShort:n,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,a){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return a[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(a(1424))},2354:function(e,t,a){!function(e){"use strict";var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(1424))},2355:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?i[a][0]:i[a][1]}function a(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return a(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return a(e)}return a(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return a(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return a(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2356:function(e,t,a){!function(e){"use strict";e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,a){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(a(1424))},2357:function(e,t,a){!function(e){"use strict";var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function a(e,t,a,n){return t?i(a)[0]:n?i(a)[1]:i(a)[2]}function n(e){return e%10==0||e>10&&e<20}function i(e){return t[e].split("_")}function r(e,t,r,s){var o=e+" ";return 1===e?o+a(0,t,r[0],s):t?o+(n(e)?i(r)[1]:i(r)[0]):s?o+i(r)[1]:o+(n(e)?i(r)[1]:i(r)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,a,n){return t?"kelios sekundės":n?"kelių sekundžių":"kelias sekundes"},ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(a(1424))},2358:function(e,t,a){!function(e){"use strict";var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function a(e,t,a){return a?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function n(e,n,i){return e+" "+a(t[i],e,n)}function i(e,n,i){return a(t[i],e,n)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:n,m:i,mm:n,h:i,hh:n,d:i,dd:n,M:i,MM:n,y:i,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2359:function(e,t,a){!function(e){"use strict";var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,a,n){var i=t.words[n];return 1===n.length?a?i[0]:i[1]:e+" "+t.correctGrammaticalCase(e,i)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2360:function(e,t,a){!function(e){"use strict";e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2361:function(e,t,a){!function(e){"use strict";e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,a=e%100;return 0===e?e+"-ев":0===a?e+"-ен":a>10&&a<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(a(1424))},2362:function(e,t,a){!function(e){"use strict";e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,a){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(a(1424))},2363:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){switch(a){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,a){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(a(1424))},2364:function(e,t,a){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function n(e,t,a,n){var i="";if(t)switch(a){case"s":i="काही सेकंद";break;case"ss":i="%d सेकंद";break;case"m":i="एक मिनिट";break;case"mm":i="%d मिनिटे";break;case"h":i="एक तास";break;case"hh":i="%d तास";break;case"d":i="एक दिवस";break;case"dd":i="%d दिवस";break;case"M":i="एक महिना";break;case"MM":i="%d महिने";break;case"y":i="एक वर्ष";break;case"yy":i="%d वर्षे"}else switch(a){case"s":i="काही सेकंदां";break;case"ss":i="%d सेकंदां";break;case"m":i="एका मिनिटा";break;case"mm":i="%d मिनिटां";break;case"h":i="एका तासा";break;case"hh":i="%d तासां";break;case"d":i="एका दिवसा";break;case"dd":i="%d दिवसां";break;case"M":i="एका महिन्या";break;case"MM":i="%d महिन्यां";break;case"y":i="एका वर्षा";break;case"yy":i="%d वर्षां"}return i.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात्री"===t?e<4?e:e+12:"सकाळी"===t?e:"दुपारी"===t?e>=10?e:e+12:"सायंकाळी"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"रात्री":e<10?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(a(1424))},2365:function(e,t,a){!function(e){"use strict";e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(a(1424))},2366:function(e,t,a){!function(e){"use strict";e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,a){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(a(1424))},2367:function(e,t,a){!function(e){"use strict";e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2368:function(e,t,a){!function(e){"use strict";var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},a={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(a(1424))},2369:function(e,t,a){!function(e){"use strict";e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2370:function(e,t,a){!function(e){"use strict";var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},a={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,a){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(a(1424))},2371:function(e,t,a){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),a="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],i=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?a[e.month()]:t[e.month()]:t},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(1424))},2372:function(e,t,a){!function(e){"use strict";var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),a="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),n=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],i=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,n){return e?/-MMM-/.test(n)?a[e.month()]:t[e.month()]:t},monthsRegex:i,monthsShortRegex:i,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(a(1424))},2373:function(e,t,a){!function(e){"use strict";e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2374:function(e,t,a){!function(e){"use strict";var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},a={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(a(1424))},2375:function(e,t,a){!function(e){"use strict";var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),a="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function n(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function i(e,t,a){var i=e+" ";switch(a){case"ss":return i+(n(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return i+(n(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return i+(n(e)?"godziny":"godzin");case"MM":return i+(n(e)?"miesiące":"miesięcy");case"yy":return i+(n(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,n){return e?""===n?"("+a[e.month()]+"|"+t[e.month()]+")":/D MMMM/.test(n)?a[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:i,m:i,mm:i,h:i,hh:i,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:i,y:"rok",yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2376:function(e,t,a){!function(e){"use strict";e.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(a(1424))},2377:function(e,t,a){!function(e){"use strict";e.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(a(1424))},2378:function(e,t,a){!function(e){"use strict";function t(e,t,a){var n=" ";return(e%100>=20||e>=100&&e%100==0)&&(n=" de "),e+n+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[a]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(a(1424))},2379:function(e,t,a){!function(e){"use strict";function t(e,t,a){var n,i;return"m"===a?t?"минута":"минуту":e+" "+(n=+e,i={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[a].split("_"),n%10==1&&n%100!=11?i[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?i[1]:i[2])}var a=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:a,longMonthsParse:a,shortMonthsParse:a,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,a){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(a(1424))},2380:function(e,t,a){!function(e){"use strict";var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],a=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,a){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(a(1424))},2381:function(e,t,a){!function(e){"use strict";e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2382:function(e,t,a){!function(e){"use strict";e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,a){return e>11?a?"ප.ව.":"පස් වරු":a?"පෙ.ව.":"පෙර වරු"}})}(a(1424))},2383:function(e,t,a){!function(e){"use strict";var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),a="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function n(e){return e>1&&e<5}function i(e,t,a,i){var r=e+" ";switch(a){case"s":return t||i?"pár sekúnd":"pár sekundami";case"ss":return t||i?r+(n(e)?"sekundy":"sekúnd"):r+"sekundami";case"m":return t?"minúta":i?"minútu":"minútou";case"mm":return t||i?r+(n(e)?"minúty":"minút"):r+"minútami";case"h":return t?"hodina":i?"hodinu":"hodinou";case"hh":return t||i?r+(n(e)?"hodiny":"hodín"):r+"hodinami";case"d":return t||i?"deň":"dňom";case"dd":return t||i?r+(n(e)?"dni":"dní"):r+"dňami";case"M":return t||i?"mesiac":"mesiacom";case"MM":return t||i?r+(n(e)?"mesiace":"mesiacov"):r+"mesiacmi";case"y":return t||i?"rok":"rokom";case"yy":return t||i?r+(n(e)?"roky":"rokov"):r+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:a,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2384:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i=e+" ";switch(a){case"s":return t||n?"nekaj sekund":"nekaj sekundami";case"ss":return i+=1===e?t?"sekundo":"sekundi":2===e?t||n?"sekundi":"sekundah":e<5?t||n?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return i+=1===e?t?"minuta":"minuto":2===e?t||n?"minuti":"minutama":e<5?t||n?"minute":"minutami":t||n?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return i+=1===e?t?"ura":"uro":2===e?t||n?"uri":"urama":e<5?t||n?"ure":"urami":t||n?"ur":"urami";case"d":return t||n?"en dan":"enim dnem";case"dd":return i+=1===e?t||n?"dan":"dnem":2===e?t||n?"dni":"dnevoma":t||n?"dni":"dnevi";case"M":return t||n?"en mesec":"enim mesecem";case"MM":return i+=1===e?t||n?"mesec":"mesecem":2===e?t||n?"meseca":"mesecema":e<5?t||n?"mesece":"meseci":t||n?"mesecev":"meseci";case"y":return t||n?"eno leto":"enim letom";case"yy":return i+=1===e?t||n?"leto":"letom":2===e?t||n?"leti":"letoma":e<5?t||n?"leta":"leti":t||n?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2385:function(e,t,a){!function(e){"use strict";e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,a){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2386:function(e,t,a){!function(e){"use strict";var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,a,n){var i=t.words[n];return 1===n.length?a?i[0]:i[1]:e+" "+t.correctGrammaticalCase(e,i)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2387:function(e,t,a){!function(e){"use strict";var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,a,n){var i=t.words[n];return 1===n.length?a?i[0]:i[1]:e+" "+t.correctGrammaticalCase(e,i)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(a(1424))},2388:function(e,t,a){!function(e){"use strict";e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,a){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(a(1424))},2389:function(e,t,a){!function(e){"use strict";e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"e":1===t?"a":2===t?"a":"e")},week:{dow:1,doy:4}})}(a(1424))},2390:function(e,t,a){!function(e){"use strict";e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(a(1424))},2391:function(e,t,a){!function(e){"use strict";var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},a={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return a[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,a){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t?e:"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(a(1424))},2392:function(e,t,a){!function(e){"use strict";e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(a(1424))},2393:function(e,t,a){!function(e){"use strict";e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2394:function(e,t,a){!function(e){"use strict";var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,a){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(a(1424))},2395:function(e,t,a){!function(e){"use strict";e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,a){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(a(1424))},2396:function(e,t,a){!function(e){"use strict";e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(a(1424))},2397:function(e,t,a){!function(e){"use strict";var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function a(e,a,n,i){var r=function(e){var a=Math.floor(e%1e3/100),n=Math.floor(e%100/10),i=e%10,r="";return a>0&&(r+=t[a]+"vatlh"),n>0&&(r+=(""!==r?" ":"")+t[n]+"maH"),i>0&&(r+=(""!==r?" ":"")+t[i]),""===r?"pagh":r}(e);switch(n){case"ss":return r+" lup";case"mm":return r+" tup";case"hh":return r+" rep";case"dd":return r+" jaj";case"MM":return r+" jar";case"yy":return r+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:a,m:"wa’ tup",mm:a,h:"wa’ rep",hh:a,d:"wa’ jaj",dd:a,M:"wa’ jar",MM:a,y:"wa’ DIS",yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2398:function(e,t,a){!function(e){"use strict";var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,a){switch(a){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(a(1424))},2399:function(e,t,a){!function(e){"use strict";function t(e,t,a,n){var i={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return n?i[a][0]:t?i[a][0]:i[a][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,a){return e>11?a?"d'o":"D'O":a?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(a(1424))},2400:function(e,t,a){!function(e){"use strict";e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(a(1424))},2401:function(e,t,a){!function(e){"use strict";e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(a(1424))},2402:function(e,t,a){!function(e){"use strict";e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,a){var n=100*e+t;return n<600?"يېرىم كېچە":n<900?"سەھەر":n<1130?"چۈشتىن بۇرۇن":n<1230?"چۈش":n<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(a(1424))},2403:function(e,t,a){!function(e){"use strict";function t(e,t,a){var n,i;return"m"===a?t?"хвилина":"хвилину":"h"===a?t?"година":"годину":e+" "+(n=+e,i={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[a].split("_"),n%10==1&&n%100!=11?i[0]:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?i[1]:i[2])}function a(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var a={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?a.nominative.slice(1,7).concat(a.nominative.slice(0,1)):e?a[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:a.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:a("[Сьогодні "),nextDay:a("[Завтра "),lastDay:a("[Вчора "),nextWeek:a("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return a("[Минулої] dddd [").call(this);case 1:case 2:case 4:return a("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,a){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(a(1424))},2404:function(e,t,a){!function(e){"use strict";var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],a=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:a,weekdaysShort:a,weekdaysMin:a,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,a){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(a(1424))},2405:function(e,t,a){!function(e){"use strict";e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(a(1424))},2406:function(e,t,a){!function(e){"use strict";e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(a(1424))},2407:function(e,t,a){!function(e){"use strict";e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,a){return e<12?a?"sa":"SA":a?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(a(1424))},2408:function(e,t,a){!function(e){"use strict";e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(a(1424))},2409:function(e,t,a){!function(e){"use strict";e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(a(1424))},2410:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,a){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(a(1424))},2411:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,a){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(a(1424))},2412:function(e,t,a){!function(e){"use strict";e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,a){var n=100*e+t;return n<600?"凌晨":n<900?"早上":n<1130?"上午":n<1230?"中午":n<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(a(1424))},2511:function(e,t,a){ +/*! + * Chart.js v2.9.3 + * https://www.chartjs.org + * (c) 2019 Chart.js Contributors + * Released under the MIT License + */ +e.exports=function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},a=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var a={};for(var n in t)t.hasOwnProperty(n)&&(a[t[n]]=n);var i=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var r in i)if(i.hasOwnProperty(r)){if(!("channels"in i[r]))throw new Error("missing channels property: "+r);if(!("labels"in i[r]))throw new Error("missing channel labels property: "+r);if(i[r].labels.length!==i[r].channels)throw new Error("channel and label counts mismatch: "+r);var s=i[r].channels,o=i[r].labels;delete i[r].channels,delete i[r].labels,Object.defineProperty(i[r],"channels",{value:s}),Object.defineProperty(i[r],"labels",{value:o})}i.rgb.hsl=function(e){var t,a,n=e[0]/255,i=e[1]/255,r=e[2]/255,s=Math.min(n,i,r),o=Math.max(n,i,r),d=o-s;return o===s?t=0:n===o?t=(i-r)/d:i===o?t=2+(r-n)/d:r===o&&(t=4+(n-i)/d),(t=Math.min(60*t,360))<0&&(t+=360),a=(s+o)/2,[t,100*(o===s?0:a<=.5?d/(o+s):d/(2-o-s)),100*a]},i.rgb.hsv=function(e){var t,a,n,i,r,s=e[0]/255,o=e[1]/255,d=e[2]/255,l=Math.max(s,o,d),u=l-Math.min(s,o,d),_=function(e){return(l-e)/6/u+.5};return 0===u?i=r=0:(r=u/l,t=_(s),a=_(o),n=_(d),s===l?i=n-a:o===l?i=1/3+t-n:d===l&&(i=2/3+a-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*r,100*l]},i.rgb.hwb=function(e){var t=e[0],a=e[1],n=e[2];return[i.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(a,n))*100,100*(n=1-1/255*Math.max(t,Math.max(a,n)))]},i.rgb.cmyk=function(e){var t,a=e[0]/255,n=e[1]/255,i=e[2]/255;return[100*((1-a-(t=Math.min(1-a,1-n,1-i)))/(1-t)||0),100*((1-n-t)/(1-t)||0),100*((1-i-t)/(1-t)||0),100*t]},i.rgb.keyword=function(e){var n=a[e];if(n)return n;var i,r,s,o=1/0;for(var d in t)if(t.hasOwnProperty(d)){var l=t[d],u=(r=e,s=l,Math.pow(r[0]-s[0],2)+Math.pow(r[1]-s[1],2)+Math.pow(r[2]-s[2],2));u.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)+.1805*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)),100*(.2126*t+.7152*a+.0722*n),100*(.0193*t+.1192*a+.9505*n)]},i.rgb.lab=function(e){var t=i.rgb.xyz(e),a=t[0],n=t[1],r=t[2];return n/=100,r/=108.883,a=(a/=95.047)>.008856?Math.pow(a,1/3):7.787*a+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(a-n),200*(n-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},i.hsl.rgb=function(e){var t,a,n,i,r,s=e[0]/360,o=e[1]/100,d=e[2]/100;if(0===o)return[r=255*d,r,r];t=2*d-(a=d<.5?d*(1+o):d+o-d*o),i=[0,0,0];for(var l=0;l<3;l++)(n=s+1/3*-(l-1))<0&&n++,n>1&&n--,r=6*n<1?t+6*(a-t)*n:2*n<1?a:3*n<2?t+(a-t)*(2/3-n)*6:t,i[l]=255*r;return i},i.hsl.hsv=function(e){var t=e[0],a=e[1]/100,n=e[2]/100,i=a,r=Math.max(n,.01);return a*=(n*=2)<=1?n:2-n,i*=r<=1?r:2-r,[t,100*(0===n?2*i/(r+i):2*a/(n+a)),(n+a)/2*100]},i.hsv.rgb=function(e){var t=e[0]/60,a=e[1]/100,n=e[2]/100,i=Math.floor(t)%6,r=t-Math.floor(t),s=255*n*(1-a),o=255*n*(1-a*r),d=255*n*(1-a*(1-r));switch(n*=255,i){case 0:return[n,d,s];case 1:return[o,n,s];case 2:return[s,n,d];case 3:return[s,o,n];case 4:return[d,s,n];case 5:return[n,s,o]}},i.hsv.hsl=function(e){var t,a,n,i=e[0],r=e[1]/100,s=e[2]/100,o=Math.max(s,.01);return n=(2-r)*s,a=r*o,[i,100*(a=(a/=(t=(2-r)*o)<=1?t:2-t)||0),100*(n/=2)]},i.hwb.rgb=function(e){var t,a,n,i,r,s,o,d=e[0]/360,l=e[1]/100,u=e[2]/100,_=l+u;switch(_>1&&(l/=_,u/=_),n=6*d-(t=Math.floor(6*d)),0!=(1&t)&&(n=1-n),i=l+n*((a=1-u)-l),t){default:case 6:case 0:r=a,s=i,o=l;break;case 1:r=i,s=a,o=l;break;case 2:r=l,s=a,o=i;break;case 3:r=l,s=i,o=a;break;case 4:r=i,s=l,o=a;break;case 5:r=a,s=l,o=i}return[255*r,255*s,255*o]},i.cmyk.rgb=function(e){var t=e[0]/100,a=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,a*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},i.xyz.rgb=function(e){var t,a,n,i=e[0]/100,r=e[1]/100,s=e[2]/100;return a=-.9689*i+1.8758*r+.0415*s,n=.0557*i+-.204*r+1.057*s,t=(t=3.2406*i+-1.5372*r+-.4986*s)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:12.92*a,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,[255*(t=Math.min(Math.max(0,t),1)),255*(a=Math.min(Math.max(0,a),1)),255*(n=Math.min(Math.max(0,n),1))]},i.xyz.lab=function(e){var t=e[0],a=e[1],n=e[2];return a/=100,n/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(t-a),200*(a-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]},i.lab.xyz=function(e){var t,a,n,i=e[0];t=e[1]/500+(a=(i+16)/116),n=a-e[2]/200;var r=Math.pow(a,3),s=Math.pow(t,3),o=Math.pow(n,3);return a=r>.008856?r:(a-16/116)/7.787,t=s>.008856?s:(t-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,[t*=95.047,a*=100,n*=108.883]},i.lab.lch=function(e){var t,a=e[0],n=e[1],i=e[2];return(t=360*Math.atan2(i,n)/2/Math.PI)<0&&(t+=360),[a,Math.sqrt(n*n+i*i),t]},i.lch.lab=function(e){var t,a=e[0],n=e[1];return t=e[2]/360*2*Math.PI,[a,n*Math.cos(t),n*Math.sin(t)]},i.rgb.ansi16=function(e){var t=e[0],a=e[1],n=e[2],r=1 in arguments?arguments[1]:i.rgb.hsv(e)[2];if(0===(r=Math.round(r/50)))return 30;var s=30+(Math.round(n/255)<<2|Math.round(a/255)<<1|Math.round(t/255));return 2===r&&(s+=60),s},i.hsv.ansi16=function(e){return i.rgb.ansi16(i.hsv.rgb(e),e[2])},i.rgb.ansi256=function(e){var t=e[0],a=e[1],n=e[2];return t===a&&a===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(a/255*5)+Math.round(n/255*5)},i.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var a=.5*(1+~~(e>50));return[(1&t)*a*255,(t>>1&1)*a*255,(t>>2&1)*a*255]},i.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var a;return e-=16,[Math.floor(e/36)/5*255,Math.floor((a=e%36)/6)/5*255,a%6/5*255]},i.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},i.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var a=t[0];3===t[0].length&&(a=a.split("").map((function(e){return e+e})).join(""));var n=parseInt(a,16);return[n>>16&255,n>>8&255,255&n]},i.rgb.hcg=function(e){var t,a=e[0]/255,n=e[1]/255,i=e[2]/255,r=Math.max(Math.max(a,n),i),s=Math.min(Math.min(a,n),i),o=r-s;return t=o<=0?0:r===a?(n-i)/o%6:r===n?2+(i-a)/o:4+(a-n)/o+4,t/=6,[360*(t%=1),100*o,100*(o<1?s/(1-o):0)]},i.hsl.hcg=function(e){var t=e[1]/100,a=e[2]/100,n=1,i=0;return(n=a<.5?2*t*a:2*t*(1-a))<1&&(i=(a-.5*n)/(1-n)),[e[0],100*n,100*i]},i.hsv.hcg=function(e){var t=e[1]/100,a=e[2]/100,n=t*a,i=0;return n<1&&(i=(a-n)/(1-n)),[e[0],100*n,100*i]},i.hcg.rgb=function(e){var t=e[0]/360,a=e[1]/100,n=e[2]/100;if(0===a)return[255*n,255*n,255*n];var i,r=[0,0,0],s=t%1*6,o=s%1,d=1-o;switch(Math.floor(s)){case 0:r[0]=1,r[1]=o,r[2]=0;break;case 1:r[0]=d,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=o;break;case 3:r[0]=0,r[1]=d,r[2]=1;break;case 4:r[0]=o,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=d}return i=(1-a)*n,[255*(a*r[0]+i),255*(a*r[1]+i),255*(a*r[2]+i)]},i.hcg.hsv=function(e){var t=e[1]/100,a=t+e[2]/100*(1-t),n=0;return a>0&&(n=t/a),[e[0],100*n,100*a]},i.hcg.hsl=function(e){var t=e[1]/100,a=e[2]/100*(1-t)+.5*t,n=0;return a>0&&a<.5?n=t/(2*a):a>=.5&&a<1&&(n=t/(2*(1-a))),[e[0],100*n,100*a]},i.hcg.hwb=function(e){var t=e[1]/100,a=t+e[2]/100*(1-t);return[e[0],100*(a-t),100*(1-a)]},i.hwb.hcg=function(e){var t=e[1]/100,a=1-e[2]/100,n=a-t,i=0;return n<1&&(i=(a-n)/(1-n)),[e[0],100*n,100*i]},i.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},i.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},i.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},i.gray.hsl=i.gray.hsv=function(e){return[0,0,e[0]]},i.gray.hwb=function(e){return[0,100,e[0]]},i.gray.cmyk=function(e){return[0,0,0,e[0]]},i.gray.lab=function(e){return[e[0],0,0]},i.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),a=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(a.length)+a},i.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}}));function n(e){var t=function(){for(var e={},t=Object.keys(a),n=t.length,i=0;i1&&(t=Array.prototype.slice.call(arguments));var a=e(t);if("object"==typeof a)for(var n=a.length,i=0;i1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)}))}));var o=s,d={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},l={getRgba:u,getHsla:_,getRgb:function(e){var t=u(e);return t&&t.slice(0,3)},getHsl:function(e){var t=_(e);return t&&t.slice(0,3)},getHwb:h,getAlpha:function(e){var t=u(e);return t?t[3]:(t=_(e))?t[3]:(t=h(e))?t[3]:void 0},hexString:function(e,t){return t=void 0!==t&&3===e.length?t:e[3],"#"+p(e[0])+p(e[1])+p(e[2])+(t>=0&&t<1?p(Math.round(255*t)):"")},rgbString:function(e,t){return t<1||e[3]&&e[3]<1?m(e,t):"rgb("+e[0]+", "+e[1]+", "+e[2]+")"},rgbaString:m,percentString:function(e,t){if(t<1||e[3]&&e[3]<1)return c(e,t);var a=Math.round(e[0]/255*100),n=Math.round(e[1]/255*100),i=Math.round(e[2]/255*100);return"rgb("+a+"%, "+n+"%, "+i+"%)"},percentaString:c,hslString:function(e,t){return t<1||e[3]&&e[3]<1?f(e,t):"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)"},hslaString:f,hwbString:function(e,t){return void 0===t&&(t=void 0!==e[3]?e[3]:1),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+(void 0!==t&&1!==t?", "+t:"")+")"},keyword:function(e){return g[e.slice(0,3)]}};function u(e){if(e){var t=[0,0,0],a=1,n=e.match(/^#([a-fA-F0-9]{3,4})$/i),i="";if(n){i=(n=n[1])[3];for(var r=0;ra?(t+.05)/(a+.05):(a+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},dark:function(){var e=this.values.rgb;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var e=[],t=0;t<3;t++)e[t]=255-this.values.rgb[t];return this.setValues("rgb",e),this},lighten:function(e){var t=this.values.hsl;return t[2]+=t[2]*e,this.setValues("hsl",t),this},darken:function(e){var t=this.values.hsl;return t[2]-=t[2]*e,this.setValues("hsl",t),this},saturate:function(e){var t=this.values.hsl;return t[1]+=t[1]*e,this.setValues("hsl",t),this},desaturate:function(e){var t=this.values.hsl;return t[1]-=t[1]*e,this.setValues("hsl",t),this},whiten:function(e){var t=this.values.hwb;return t[1]+=t[1]*e,this.setValues("hwb",t),this},blacken:function(e){var t=this.values.hwb;return t[2]+=t[2]*e,this.setValues("hwb",t),this},greyscale:function(){var e=this.values.rgb,t=.3*e[0]+.59*e[1]+.11*e[2];return this.setValues("rgb",[t,t,t]),this},clearer:function(e){var t=this.values.alpha;return this.setValues("alpha",t-t*e),this},opaquer:function(e){var t=this.values.alpha;return this.setValues("alpha",t+t*e),this},rotate:function(e){var t=this.values.hsl,a=(t[0]+e)%360;return t[0]=a<0?360+a:a,this.setValues("hsl",t),this},mix:function(e,t){var a=e,n=void 0===t?.5:t,i=2*n-1,r=this.alpha()-a.alpha(),s=((i*r==-1?i:(i+r)/(1+i*r))+1)/2,o=1-s;return this.rgb(s*this.red()+o*a.red(),s*this.green()+o*a.green(),s*this.blue()+o*a.blue()).alpha(this.alpha()*n+a.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var e,t,a=new L,n=this.values,i=a.values;for(var r in n)n.hasOwnProperty(r)&&(e=n[r],"[object Array]"===(t={}.toString.call(e))?i[r]=e.slice(0):"[object Number]"===t?i[r]=e:console.error("unexpected color value:",e));return a}},L.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},L.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},L.prototype.getValues=function(e){for(var t=this.values,a={},n=0;n=0;i--)t.call(a,e[i],i);else for(i=0;i=1?e:-(Math.sqrt(1-e*e)-1)},easeOutCirc:function(e){return Math.sqrt(1-(e-=1)*e)},easeInOutCirc:function(e){return(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},easeInElastic:function(e){var t=1.70158,a=0,n=1;return 0===e?0:1===e?1:(a||(a=.3),n<1?(n=1,t=a/4):t=a/(2*Math.PI)*Math.asin(1/n),-n*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/a))},easeOutElastic:function(e){var t=1.70158,a=0,n=1;return 0===e?0:1===e?1:(a||(a=.3),n<1?(n=1,t=a/4):t=a/(2*Math.PI)*Math.asin(1/n),n*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/a)+1)},easeInOutElastic:function(e){var t=1.70158,a=0,n=1;return 0===e?0:2==(e/=.5)?1:(a||(a=.45),n<1?(n=1,t=a/4):t=a/(2*Math.PI)*Math.asin(1/n),e<1?n*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/a)*-.5:n*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/a)*.5+1)},easeInBack:function(e){var t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:function(e){var t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack:function(e){var t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:function(e){return 1-D.easeOutBounce(1-e)},easeOutBounce:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},easeInOutBounce:function(e){return e<.5?.5*D.easeInBounce(2*e):.5*D.easeOutBounce(2*e-1)+.5}},w={effects:D};b.easingEffects=D;var T=Math.PI,x=T/180,S=2*T,H=T/2,j=T/4,P=2*T/3,O={clear:function(e){e.ctx.clearRect(0,0,e.width,e.height)},roundedRect:function(e,t,a,n,i,r){if(r){var s=Math.min(r,i/2,n/2),o=t+s,d=a+s,l=t+n-s,u=a+i-s;e.moveTo(t,d),ot.left-1e-6&&e.xt.top-1e-6&&e.y0&&this.requestAnimationFrame()},advance:function(){for(var e,t,a,n,i=this.animations,r=0;r=a?(R.callback(e.onAnimationComplete,[e],t),t.animating=!1,i.splice(r,1)):++r}},Q=R.options.resolve,X=["push","pop","shift","splice","unshift"];function ee(e,t){var a=e._chartjs;if(a){var n=a.listeners,i=n.indexOf(t);-1!==i&&n.splice(i,1),n.length>0||(X.forEach((function(t){delete e[t]})),delete e._chartjs)}}var te=function(e,t){this.initialize(e,t)};R.extend(te.prototype,{datasetElementType:null,dataElementType:null,_datasetElementOptions:["backgroundColor","borderCapStyle","borderColor","borderDash","borderDashOffset","borderJoinStyle","borderWidth"],_dataElementOptions:["backgroundColor","borderColor","borderWidth","pointStyle"],initialize:function(e,t){var a=this;a.chart=e,a.index=t,a.linkScales(),a.addElements(),a._type=a.getMeta().type},updateIndex:function(e){this.index=e},linkScales:function(){var e=this.getMeta(),t=this.chart,a=t.scales,n=this.getDataset(),i=t.options.scales;null!==e.xAxisID&&e.xAxisID in a&&!n.xAxisID||(e.xAxisID=n.xAxisID||i.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in a&&!n.yAxisID||(e.yAxisID=n.yAxisID||i.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(e){return this.chart.scales[e]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this._update(!0)},destroy:function(){this._data&&ee(this._data,this)},createMetaDataset:function(){var e=this.datasetElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(e){var t=this.dataElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index,_index:e})},addElements:function(){var e,t,a=this.getMeta(),n=this.getDataset().data||[],i=a.data;for(e=0,t=n.length;ea&&this.insertElements(a,n-a)},insertElements:function(e,t){for(var a=0;ai?(r=i/t.innerRadius,e.arc(s,o,t.innerRadius-i,n+r,a-r,!0)):e.arc(s,o,i,n+Math.PI/2,a-Math.PI/2),e.closePath(),e.clip()}function re(e,t,a){var n="inner"===t.borderAlign;n?(e.lineWidth=2*t.borderWidth,e.lineJoin="round"):(e.lineWidth=t.borderWidth,e.lineJoin="bevel"),a.fullCircles&&function(e,t,a,n){var i,r=a.endAngle;for(n&&(a.endAngle=a.startAngle+ne,ie(e,a),a.endAngle=r,a.endAngle===a.startAngle&&a.fullCircles&&(a.endAngle+=ne,a.fullCircles--)),e.beginPath(),e.arc(a.x,a.y,a.innerRadius,a.startAngle+ne,a.startAngle,!0),i=0;io;)i-=ne;for(;i=s&&i<=o,l=r>=a.innerRadius&&r<=a.outerRadius;return d&&l}return!1},getCenterPoint:function(){var e=this._view,t=(e.startAngle+e.endAngle)/2,a=(e.innerRadius+e.outerRadius)/2;return{x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}},getArea:function(){var e=this._view;return Math.PI*((e.endAngle-e.startAngle)/(2*Math.PI))*(Math.pow(e.outerRadius,2)-Math.pow(e.innerRadius,2))},tooltipPosition:function(){var e=this._view,t=e.startAngle+(e.endAngle-e.startAngle)/2,a=(e.outerRadius-e.innerRadius)/2+e.innerRadius;return{x:e.x+Math.cos(t)*a,y:e.y+Math.sin(t)*a}},draw:function(){var e,t=this._chart.ctx,a=this._view,n="inner"===a.borderAlign?.33:0,i={x:a.x,y:a.y,innerRadius:a.innerRadius,outerRadius:Math.max(a.outerRadius-n,0),pixelMargin:n,startAngle:a.startAngle,endAngle:a.endAngle,fullCircles:Math.floor(a.circumference/ne)};if(t.save(),t.fillStyle=a.backgroundColor,t.strokeStyle=a.borderColor,i.fullCircles){for(i.endAngle=i.startAngle+ne,t.beginPath(),t.arc(i.x,i.y,i.outerRadius,i.startAngle,i.endAngle),t.arc(i.x,i.y,i.innerRadius,i.endAngle,i.startAngle,!0),t.closePath(),e=0;ee.x&&(t=pe(t,"left","right")):e.basea?a:n,r:d.right||i<0?0:i>t?t:i,b:d.bottom||r<0?0:r>a?a:r,l:d.left||s<0?0:s>t?t:s}}function ye(e,t,a){var n=null===t,i=null===a,r=!(!e||n&&i)&&Me(e);return r&&(n||t>=r.left&&t<=r.right)&&(i||a>=r.top&&a<=r.bottom)}W._set("global",{elements:{rectangle:{backgroundColor:ce,borderColor:ce,borderSkipped:"bottom",borderWidth:0}}});var Le=q.extend({_type:"rectangle",draw:function(){var e=this._chart.ctx,t=this._view,a=function(e){var t=Me(e),a=t.right-t.left,n=t.bottom-t.top,i=ge(e,a/2,n/2);return{outer:{x:t.left,y:t.top,w:a,h:n},inner:{x:t.left+i.l,y:t.top+i.t,w:a-i.l-i.r,h:n-i.t-i.b}}}(t),n=a.outer,i=a.inner;e.fillStyle=t.backgroundColor,e.fillRect(n.x,n.y,n.w,n.h),n.w===i.w&&n.h===i.h||(e.save(),e.beginPath(),e.rect(n.x,n.y,n.w,n.h),e.clip(),e.fillStyle=t.borderColor,e.rect(i.x,i.y,i.w,i.h),e.fill("evenodd"),e.restore())},height:function(){var e=this._view;return e.base-e.y},inRange:function(e,t){return ye(this._view,e,t)},inLabelRange:function(e,t){var a=this._view;return fe(a)?ye(a,e,null):ye(a,null,t)},inXRange:function(e){return ye(this._view,e,null)},inYRange:function(e){return ye(this._view,null,e)},getCenterPoint:function(){var e,t,a=this._view;return fe(a)?(e=a.x,t=(a.y+a.base)/2):(e=(a.x+a.base)/2,t=a.y),{x:e,y:t}},getArea:function(){var e=this._view;return fe(e)?e.width*Math.abs(e.y-e.base):e.height*Math.abs(e.x-e.base)},tooltipPosition:function(){var e=this._view;return{x:e.x,y:e.y}}}),ve={},Ye=se,ke=le,be=me,De=Le;ve.Arc=Ye,ve.Line=ke,ve.Point=be,ve.Rectangle=De;var we=R._deprecated,Te=R.valueOrDefault;function xe(e,t,a){var n,i,r=a.barThickness,s=t.stackCount,o=t.pixels[e],d=R.isNullOrUndef(r)?function(e,t){var a,n,i,r,s=e._length;for(i=1,r=t.length;i0?Math.min(s,Math.abs(n-a)):s,a=n;return s}(t.scale,t.pixels):-1;return R.isNullOrUndef(r)?(n=d*a.categoryPercentage,i=a.barPercentage):(n=r*s,i=1),{chunk:n/s,ratio:i,start:o-n/2}}W._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}}),W._set("global",{datasets:{bar:{categoryPercentage:.8,barPercentage:.9}}});var Se=ae.extend({dataElementType:ve.Rectangle,_dataElementOptions:["backgroundColor","borderColor","borderSkipped","borderWidth","barPercentage","barThickness","categoryPercentage","maxBarThickness","minBarLength"],initialize:function(){var e,t,a=this;ae.prototype.initialize.apply(a,arguments),(e=a.getMeta()).stack=a.getDataset().stack,e.bar=!0,t=a._getIndexScale().options,we("bar chart",t.barPercentage,"scales.[x/y]Axes.barPercentage","dataset.barPercentage"),we("bar chart",t.barThickness,"scales.[x/y]Axes.barThickness","dataset.barThickness"),we("bar chart",t.categoryPercentage,"scales.[x/y]Axes.categoryPercentage","dataset.categoryPercentage"),we("bar chart",a._getValueScale().options.minBarLength,"scales.[x/y]Axes.minBarLength","dataset.minBarLength"),we("bar chart",t.maxBarThickness,"scales.[x/y]Axes.maxBarThickness","dataset.maxBarThickness")},update:function(e){var t,a,n=this.getMeta().data;for(this._ruler=this.getRuler(),t=0,a=n.length;t=0&&f.min>=0?f.min:f.max,L=void 0===f.start?f.end:f.max>=0&&f.min>=0?f.max-f.min:f.min-f.max,v=c.length;if(p||void 0===p&&void 0!==g)for(n=0;n=0&&l.max>=0?l.max:l.min,(f.min<0&&r<0||f.max>=0&&r>0)&&(y+=r));return s=_.getPixelForValue(y),d=(o=_.getPixelForValue(y+L))-s,void 0!==M&&Math.abs(d)=0&&!h||L<0&&h?s-M:s+M),{size:d,base:s,head:o,center:o+d/2}},calculateBarIndexPixels:function(e,t,a,n){var i="flex"===n.barThickness?function(e,t,a){var n,i=t.pixels,r=i[e],s=e>0?i[e-1]:null,o=e=Ae?-Fe:g<-Ae?Fe:0)+M,L=Math.cos(g),v=Math.sin(g),Y=Math.cos(y),k=Math.sin(y),b=g<=0&&y>=0||y>=Fe,D=g<=We&&y>=We||y>=Fe+We,w=g<=-We&&y>=-We||y>=Ae+We,T=g===-Ae||y>=Ae?-1:Math.min(L,L*f,Y,Y*f),x=w?-1:Math.min(v,v*f,k,k*f),S=b?1:Math.max(L,L*f,Y,Y*f),H=D?1:Math.max(v,v*f,k,k*f);l=(S-T)/2,u=(H-x)/2,_=-(S+T)/2,h=-(H+x)/2}for(n=0,i=c.length;n0&&!isNaN(e)?Fe*(Math.abs(e)/t):0},getMaxBorderWidth:function(e){var t,a,n,i,r,s,o,d,l=0,u=this.chart;if(!e)for(t=0,a=u.data.datasets.length;t(l=o>l?o:l)?d:l);return l},setHoverStyle:function(e){var t=e._model,a=e._options,n=R.getHoverColor;e.$previousStyle={backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth},t.backgroundColor=Oe(a.hoverBackgroundColor,n(a.backgroundColor)),t.borderColor=Oe(a.hoverBorderColor,n(a.borderColor)),t.borderWidth=Oe(a.hoverBorderWidth,a.borderWidth)},_getRingWeightOffset:function(e){for(var t=0,a=0;a0&&Re(d[e-1]._model,o)&&(a.controlPointPreviousX=l(a.controlPointPreviousX,o.left,o.right),a.controlPointPreviousY=l(a.controlPointPreviousY,o.top,o.bottom)),e0&&(r=e.getDatasetMeta(r[0]._datasetIndex).data),r},"x-axis":function(e,t){return nt(e,t,{intersect:!1})},point:function(e,t){return et(e,Qe(t,e))},nearest:function(e,t,a){var n=Qe(t,e);a.axis=a.axis||"xy";var i=at(a.axis);return tt(e,n,a.intersect,i)},x:function(e,t,a){var n=Qe(t,e),i=[],r=!1;return Xe(e,(function(e){e.inXRange(n.x)&&i.push(e),e.inRange(n.x,n.y)&&(r=!0)})),a.intersect&&!r&&(i=[]),i},y:function(e,t,a){var n=Qe(t,e),i=[],r=!1;return Xe(e,(function(e){e.inYRange(n.y)&&i.push(e),e.inRange(n.x,n.y)&&(r=!0)})),a.intersect&&!r&&(i=[]),i}}},rt=R.extend;function st(e,t){return R.where(e,(function(e){return e.pos===t}))}function ot(e,t){return e.sort((function(e,a){var n=t?a:e,i=t?e:a;return n.weight===i.weight?n.index-i.index:n.weight-i.weight}))}function dt(e,t,a,n){return Math.max(e[a],t[a])+Math.max(e[n],t[n])}function lt(e,t,a){var n,i,r=a.box,s=e.maxPadding;if(a.size&&(e[a.pos]-=a.size),a.size=a.horizontal?r.height:r.width,e[a.pos]+=a.size,r.getPadding){var o=r.getPadding();s.top=Math.max(s.top,o.top),s.left=Math.max(s.left,o.left),s.bottom=Math.max(s.bottom,o.bottom),s.right=Math.max(s.right,o.right)}if(n=t.outerWidth-dt(s,e,"left","right"),i=t.outerHeight-dt(s,e,"top","bottom"),n!==e.w||i!==e.h)return e.w=n,e.h=i,a.horizontal?n!==e.w:i!==e.h}function ut(e,t){var a=t.maxPadding;function n(e){var n={left:0,top:0,right:0,bottom:0};return e.forEach((function(e){n[e]=Math.max(t[e],a[e])})),n}return n(e?["left","right"]:["top","bottom"])}function _t(e,t,a){var n,i,r,s,o,d,l=[];for(n=0,i=e.length;n div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"}))&&mt.default||mt,Mt=["animationstart","webkitAnimationStart"],pt={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function gt(e,t){var a=R.getStyle(e,t),n=a&&a.match(/^(\d+)(\.\d+)?px$/);return n?Number(n[1]):void 0}var yt=!!function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("e",null,t)}catch(e){}return e}()&&{passive:!0};function Lt(e,t,a){e.addEventListener(t,a,yt)}function vt(e,t,a){e.removeEventListener(t,a,yt)}function Yt(e,t,a,n,i){return{type:e,chart:t,native:i||null,x:void 0!==a?a:null,y:void 0!==n?n:null}}function kt(e){var t=document.createElement("div");return t.className=e||"",t}function bt(e,t,a){var n,i,r,s,o=e.$chartjs||(e.$chartjs={}),d=o.resizer=function(e){var t=kt("chartjs-size-monitor"),a=kt("chartjs-size-monitor-expand"),n=kt("chartjs-size-monitor-shrink");a.appendChild(kt()),n.appendChild(kt()),t.appendChild(a),t.appendChild(n),t._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,n.scrollLeft=1e6,n.scrollTop=1e6};var i=function(){t._reset(),e()};return Lt(a,"scroll",i.bind(a,"expand")),Lt(n,"scroll",i.bind(n,"shrink")),t}((n=function(){if(o.resizer){var n=a.options.maintainAspectRatio&&e.parentNode,i=n?n.clientWidth:0;t(Yt("resize",a)),n&&n.clientWidth0){var r=e[0];r.label?a=r.label:r.xLabel?a=r.xLabel:i>0&&r.index-1?e.split("\n"):e}function Wt(e){var t=W.global;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,rtl:e.rtl,textDirection:e.textDirection,bodyFontColor:e.bodyFontColor,_bodyFontFamily:jt(e.bodyFontFamily,t.defaultFontFamily),_bodyFontStyle:jt(e.bodyFontStyle,t.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:jt(e.bodyFontSize,t.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:jt(e.titleFontFamily,t.defaultFontFamily),_titleFontStyle:jt(e.titleFontStyle,t.defaultFontStyle),titleFontSize:jt(e.titleFontSize,t.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:jt(e.footerFontFamily,t.defaultFontFamily),_footerFontStyle:jt(e.footerFontStyle,t.defaultFontStyle),footerFontSize:jt(e.footerFontSize,t.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors,borderColor:e.borderColor,borderWidth:e.borderWidth}}function Ct(e,t){return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-e.xPadding:e.x+e.xPadding}function Et(e){return At([],Ft(e))}var zt=q.extend({initialize:function(){this._model=Wt(this._options),this._lastActive=[]},getTitle:function(){var e=this,t=e._options,a=t.callbacks,n=a.beforeTitle.apply(e,arguments),i=a.title.apply(e,arguments),r=a.afterTitle.apply(e,arguments),s=[];return s=At(s,Ft(n)),s=At(s,Ft(i)),s=At(s,Ft(r))},getBeforeBody:function(){return Et(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(e,t){var a=this,n=a._options.callbacks,i=[];return R.each(e,(function(e){var r={before:[],lines:[],after:[]};At(r.before,Ft(n.beforeLabel.call(a,e,t))),At(r.lines,n.label.call(a,e,t)),At(r.after,Ft(n.afterLabel.call(a,e,t))),i.push(r)})),i},getAfterBody:function(){return Et(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var e=this,t=e._options.callbacks,a=t.beforeFooter.apply(e,arguments),n=t.footer.apply(e,arguments),i=t.afterFooter.apply(e,arguments),r=[];return r=At(r,Ft(a)),r=At(r,Ft(n)),r=At(r,Ft(i))},update:function(e){var t,a,n,i,r,s,o,d,l,u,_=this,h=_._options,m=_._model,c=_._model=Wt(h),f=_._active,M=_._data,p={xAlign:m.xAlign,yAlign:m.yAlign},g={x:m.x,y:m.y},y={width:m.width,height:m.height},L={x:m.caretX,y:m.caretY};if(f.length){c.opacity=1;var v=[],Y=[];L=Ot[h.position].call(_,f,_._eventPosition);var k=[];for(t=0,a=f.length;tn.width&&(i=n.width-t.width),i<0&&(i=0)),"top"===u?r+=_:r-="bottom"===u?t.height+_:t.height/2,"center"===u?"left"===l?i+=_:"right"===l&&(i-=_):"left"===l?i-=h:"right"===l&&(i+=h),{x:i,y:r}}(c,y,p=function(e,t){var a,n,i,r,s,o=e._model,d=e._chart,l=e._chart.chartArea,u="center",_="center";o.yd.height-t.height&&(_="bottom");var h=(l.left+l.right)/2,m=(l.top+l.bottom)/2;"center"===_?(a=function(e){return e<=h},n=function(e){return e>h}):(a=function(e){return e<=t.width/2},n=function(e){return e>=d.width-t.width/2}),i=function(e){return e+t.width+o.caretSize+o.caretPadding>d.width},r=function(e){return e-t.width-o.caretSize-o.caretPadding<0},s=function(e){return e<=m?"top":"bottom"},a(o.x)?(u="left",i(o.x)&&(u="center",_=s(o.y))):n(o.x)&&(u="right",r(o.x)&&(u="center",_=s(o.y)));var c=e._options;return{xAlign:c.xAlign?c.xAlign:u,yAlign:c.yAlign?c.yAlign:_}}(this,y),_._chart)}else c.opacity=0;return c.xAlign=p.xAlign,c.yAlign=p.yAlign,c.x=g.x,c.y=g.y,c.width=y.width,c.height=y.height,c.caretX=L.x,c.caretY=L.y,_._model=c,e&&h.custom&&h.custom.call(_,c),_},drawCaret:function(e,t){var a=this._chart.ctx,n=this._view,i=this.getCaretPosition(e,t,n);a.lineTo(i.x1,i.y1),a.lineTo(i.x2,i.y2),a.lineTo(i.x3,i.y3)},getCaretPosition:function(e,t,a){var n,i,r,s,o,d,l=a.caretSize,u=a.cornerRadius,_=a.xAlign,h=a.yAlign,m=e.x,c=e.y,f=t.width,M=t.height;if("center"===h)o=c+M/2,"left"===_?(i=(n=m)-l,r=n,s=o+l,d=o-l):(i=(n=m+f)+l,r=n,s=o-l,d=o+l);else if("left"===_?(n=(i=m+u+l)-l,r=i+l):"right"===_?(n=(i=m+f-u-l)-l,r=i+l):(n=(i=a.caretX)-l,r=i+l),"top"===h)o=(s=c)-l,d=s;else{o=(s=c+M)+l,d=s;var p=r;r=n,n=p}return{x1:n,x2:i,x3:r,y1:s,y2:o,y3:d}},drawTitle:function(e,t,a){var n,i,r,s=t.title,o=s.length;if(o){var d=Pt(t.rtl,t.x,t.width);for(e.x=Ct(t,t._titleAlign),a.textAlign=d.textAlign(t._titleAlign),a.textBaseline="middle",n=t.titleFontSize,i=t.titleSpacing,a.fillStyle=t.titleFontColor,a.font=R.fontString(n,t._titleFontStyle,t._titleFontFamily),r=0;r0&&a.stroke()},draw:function(){var e=this._chart.ctx,t=this._view;if(0!==t.opacity){var a={width:t.width,height:t.height},n={x:t.x,y:t.y},i=Math.abs(t.opacity<.001)?0:t.opacity,r=t.title.length||t.beforeBody.length||t.body.length||t.afterBody.length||t.footer.length;this._options.enabled&&r&&(e.save(),e.globalAlpha=i,this.drawBackground(n,t,e,a),n.y+=t.yPadding,R.rtl.overrideTextDirection(e,t.textDirection),this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),R.rtl.restoreTextDirection(e,t.textDirection),e.restore())}},handleEvent:function(e){var t,a=this,n=a._options;return a._lastActive=a._lastActive||[],"mouseout"===e.type?a._active=[]:(a._active=a._chart.getElementsAtEventForMode(e,n.mode,n),n.reverse&&a._active.reverse()),(t=!R.arrayEquals(a._active,a._lastActive))&&(a._lastActive=a._active,(n.enabled||n.custom)&&(a._eventPosition={x:e.x,y:e.y},a.update(!0),a.pivot())),t}}),It=Ot,Rt=zt;Rt.positioners=It;var Nt=R.valueOrDefault;function Vt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,a,n){if("xAxes"===e||"yAxes"===e){var i,r,s,o=a[e].length;for(t[e]||(t[e]=[]),i=0;i=t[e].length&&t[e].push({}),!t[e][i].type||s.type&&s.type!==t[e][i].type?R.merge(t[e][i],[Ht.getScaleDefaults(r),s]):R.merge(t[e][i],s)}else R._merger(e,t,a,n)}})}function Bt(){return R.merge({},[].slice.call(arguments),{merger:function(e,t,a,n){var i=t[e]||{},r=a[e];"scales"===e?t[e]=Vt(i,r):"scale"===e?t[e]=R.merge(i,[Ht.getScaleDefaults(r.type),r]):R._merger(e,t,a,n)}})}function Jt(e){var t=e.options;R.each(e.scales,(function(t){ct.removeBox(e,t)})),t=Bt(W.global,W[e.config.type],t),e.options=e.config.options=t,e.ensureScalesHaveIDs(),e.buildOrUpdateScales(),e.tooltip._options=t.tooltips,e.tooltip.initialize()}function Ut(e,t,a){var n,i=function(e){return e.id===n};do{n=t+a++}while(R.findIndex(e,i)>=0);return n}function Gt(e){return"top"===e||"bottom"===e}function qt(e,t){return function(a,n){return a[e]===n[e]?a[t]-n[t]:a[e]-n[e]}}W._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var $t=function(e,t){return this.construct(e,t),this};R.extend($t.prototype,{construct:function(e,t){var a=this;t=function(e){var t=(e=e||{}).data=e.data||{};return t.datasets=t.datasets||[],t.labels=t.labels||[],e.options=Bt(W.global,W[e.type],e.options||{}),e}(t);var n=xt.acquireContext(e,t),i=n&&n.canvas,r=i&&i.height,s=i&&i.width;a.id=R.uid(),a.ctx=n,a.canvas=i,a.config=t,a.width=s,a.height=r,a.aspectRatio=r?s/r:null,a.options=t.options,a._bufferedRender=!1,a._layers=[],a.chart=a,a.controller=a,$t.instances[a.id]=a,Object.defineProperty(a,"data",{get:function(){return a.config.data},set:function(e){a.config.data=e}}),n&&i?(a.initialize(),a.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var e=this;return St.notify(e,"beforeInit"),R.retinaScale(e,e.options.devicePixelRatio),e.bindEvents(),e.options.responsive&&e.resize(!0),e.initToolTip(),St.notify(e,"afterInit"),e},clear:function(){return R.canvas.clear(this),this},stop:function(){return Z.cancelAnimation(this),this},resize:function(e){var t=this,a=t.options,n=t.canvas,i=a.maintainAspectRatio&&t.aspectRatio||null,r=Math.max(0,Math.floor(R.getMaximumWidth(n))),s=Math.max(0,Math.floor(i?r/i:R.getMaximumHeight(n)));if((t.width!==r||t.height!==s)&&(n.width=t.width=r,n.height=t.height=s,n.style.width=r+"px",n.style.height=s+"px",R.retinaScale(t,a.devicePixelRatio),!e)){var o={width:r,height:s};St.notify(t,"resize",[o]),a.onResize&&a.onResize(t,o),t.stop(),t.update({duration:a.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var e=this.options,t=e.scales||{},a=e.scale;R.each(t.xAxes,(function(e,a){e.id||(e.id=Ut(t.xAxes,"x-axis-",a))})),R.each(t.yAxes,(function(e,a){e.id||(e.id=Ut(t.yAxes,"y-axis-",a))})),a&&(a.id=a.id||"scale")},buildOrUpdateScales:function(){var e=this,t=e.options,a=e.scales||{},n=[],i=Object.keys(a).reduce((function(e,t){return e[t]=!1,e}),{});t.scales&&(n=n.concat((t.scales.xAxes||[]).map((function(e){return{options:e,dtype:"category",dposition:"bottom"}})),(t.scales.yAxes||[]).map((function(e){return{options:e,dtype:"linear",dposition:"left"}})))),t.scale&&n.push({options:t.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),R.each(n,(function(t){var n=t.options,r=n.id,s=Nt(n.type,t.dtype);Gt(n.position)!==Gt(t.dposition)&&(n.position=t.dposition),i[r]=!0;var o=null;if(r in a&&a[r].type===s)(o=a[r]).options=n,o.ctx=e.ctx,o.chart=e;else{var d=Ht.getScaleConstructor(s);if(!d)return;o=new d({id:r,type:s,options:n,ctx:e.ctx,chart:e}),a[o.id]=o}o.mergeTicksOptions(),t.isDefault&&(e.scale=o)})),R.each(i,(function(e,t){e||delete a[t]})),e.scales=a,Ht.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e,t,a=this,n=[],i=a.data.datasets;for(e=0,t=i.length;e=0;--a)this.drawDataset(t[a],e);St.notify(this,"afterDatasetsDraw",[e])}},drawDataset:function(e,t){var a={meta:e,index:e.index,easingValue:t};!1!==St.notify(this,"beforeDatasetDraw",[a])&&(e.controller.draw(t),St.notify(this,"afterDatasetDraw",[a]))},_drawTooltip:function(e){var t=this.tooltip,a={tooltip:t,easingValue:e};!1!==St.notify(this,"beforeTooltipDraw",[a])&&(t.draw(),St.notify(this,"afterTooltipDraw",[a]))},getElementAtEvent:function(e){return it.modes.single(this,e)},getElementsAtEvent:function(e){return it.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return it.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,t,a){var n=it.modes[t];return"function"==typeof n?n(this,e,a):[]},getDatasetAtEvent:function(e){return it.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(e){var t=this.data.datasets[e];t._meta||(t._meta={});var a=t._meta[this.id];return a||(a=t._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t.order||0,index:e}),a},getVisibleDatasetCount:function(){for(var e=0,t=0,a=this.data.datasets.length;t3?a[2]-a[1]:a[1]-a[0];Math.abs(n)>1&&e!==Math.floor(e)&&(n=e-Math.floor(e));var i=R.log10(Math.abs(n)),r="";if(0!==e)if(Math.max(Math.abs(a[0]),Math.abs(a[a.length-1]))<1e-4){var s=R.log10(Math.abs(e)),o=Math.floor(s)-Math.floor(i);o=Math.max(Math.min(o,20),0),r=e.toExponential(o)}else{var d=-1*Math.floor(i);d=Math.max(Math.min(d,20),0),r=e.toFixed(d)}else r="0";return r},logarithmic:function(e,t,a){var n=e/Math.pow(10,Math.floor(R.log10(e)));return 0===e?"0":1===n||2===n||5===n||0===t||t===a.length-1?e.toExponential():""}}},ta=R.isArray,aa=R.isNullOrUndef,na=R.valueOrDefault,ia=R.valueAtIndexOrDefault;function ra(e,t,a){var n,i=e.getTicks().length,r=Math.min(t,i-1),s=e.getPixelForTick(r),o=e._startPixel,d=e._endPixel;if(!(a&&(n=1===i?Math.max(s-o,d-s):0===t?(e.getPixelForTick(1)-s)/2:(s-e.getPixelForTick(r-1))/2,(s+=rd+1e-6)))return s}function sa(e,t,a,n){var i,r,s,o,d,l,u,_,h,m,c,f,M,p=a.length,g=[],y=[],L=[];for(i=0;it){for(a=0;a=h||u<=1||!o.isHorizontal()?o.labelRotation=_:(t=(e=o._getLabelSizes()).widest.width,a=e.highest.height-e.highest.offset,n=Math.min(o.maxWidth,o.chart.width-t),t+6>(i=d.offset?o.maxWidth/u:n/(u-1))&&(i=n/(u-(d.offset?.5:1)),r=o.maxHeight-oa(d.gridLines)-l.padding-da(d.scaleLabel),s=Math.sqrt(t*t+a*a),m=R.toDegrees(Math.min(Math.asin(Math.min((e.highest.height+6)/i,1)),Math.asin(Math.min(r/s,1))-Math.asin(a/s))),m=Math.max(_,Math.min(h,m))),o.labelRotation=m)},afterCalculateTickRotation:function(){R.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){R.callback(this.options.beforeFit,[this])},fit:function(){var e=this,t=e.minSize={width:0,height:0},a=e.chart,n=e.options,i=n.ticks,r=n.scaleLabel,s=n.gridLines,o=e._isVisible(),d="bottom"===n.position,l=e.isHorizontal();if(l?t.width=e.maxWidth:o&&(t.width=oa(s)+da(r)),l?o&&(t.height=oa(s)+da(r)):t.height=e.maxHeight,i.display&&o){var u=ua(i),_=e._getLabelSizes(),h=_.first,m=_.last,c=_.widest,f=_.highest,M=.4*u.minor.lineHeight,p=i.padding;if(l){var g=0!==e.labelRotation,y=R.toRadians(e.labelRotation),L=Math.cos(y),v=Math.sin(y),Y=v*c.width+L*(f.height-(g?f.offset:0))+(g?0:M);t.height=Math.min(e.maxHeight,t.height+Y+p);var k,b,D=e.getPixelForTick(0)-e.left,w=e.right-e.getPixelForTick(e.getTicks().length-1);g?(k=d?L*h.width+v*h.offset:v*(h.height-h.offset),b=d?v*(m.height-m.offset):L*m.width+v*m.offset):(k=h.width/2,b=m.width/2),e.paddingLeft=Math.max((k-D)*e.width/(e.width-D),0)+3,e.paddingRight=Math.max((b-w)*e.width/(e.width-w),0)+3}else{var T=i.mirror?0:c.width+p+M;t.width=Math.min(e.maxWidth,t.width+T),e.paddingTop=h.height/2,e.paddingBottom=m.height/2}}e.handleMargins(),l?(e.width=e._length=a.width-e.margins.left-e.margins.right,e.height=t.height):(e.width=t.width,e.height=e._length=a.height-e.margins.top-e.margins.bottom)},handleMargins:function(){var e=this;e.margins&&(e.margins.left=Math.max(e.paddingLeft,e.margins.left),e.margins.top=Math.max(e.paddingTop,e.margins.top),e.margins.right=Math.max(e.paddingRight,e.margins.right),e.margins.bottom=Math.max(e.paddingBottom,e.margins.bottom))},afterFit:function(){R.callback(this.options.afterFit,[this])},isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(e){if(aa(e))return NaN;if(("number"==typeof e||e instanceof Number)&&!isFinite(e))return NaN;if(e)if(this.isHorizontal()){if(void 0!==e.x)return this.getRightValue(e.x)}else if(void 0!==e.y)return this.getRightValue(e.y);return e},_convertTicksToLabels:function(e){var t,a,n,i=this;for(i.ticks=e.map((function(e){return e.value})),i.beforeTickToLabelConversion(),t=i.convertTicksToLabels(e)||i.ticks,i.afterTickToLabelConversion(),a=0,n=e.length;aa-1?null:this.getPixelForDecimal(e*n+(t?n/2:0))},getPixelForDecimal:function(e){return this._reversePixels&&(e=1-e),this._startPixel+e*this._length},getDecimalForPixel:function(e){var t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var e=this.min,t=this.max;return this.beginAtZero?0:e<0&&t<0?t:e>0&&t>0?e:0},_autoSkip:function(e){var t,a,n,i,r=this.options.ticks,s=this._length,o=r.maxTicksLimit||s/this._tickSize()+1,d=r.major.enabled?function(e){var t,a,n=[];for(t=0,a=e.length;to)return function(e,t,a){var n,i,r=0,s=t[0];for(a=Math.ceil(a),n=0;nl)return r;return Math.max(l,1)}(d,e,0,o),l>0){for(t=0,a=l-1;t1?(_-u)/(l-1):null,ha(e,n,R.isNullOrUndef(i)?0:u-i,u),ha(e,n,_,R.isNullOrUndef(i)?e.length:_+i),_a(e)}return ha(e,n),_a(e)},_tickSize:function(){var e=this.options.ticks,t=R.toRadians(this.labelRotation),a=Math.abs(Math.cos(t)),n=Math.abs(Math.sin(t)),i=this._getLabelSizes(),r=e.autoSkipPadding||0,s=i?i.widest.width+r:0,o=i?i.highest.height+r:0;return this.isHorizontal()?o*a>s*n?s/a:o/n:o*n=0&&(s=e),void 0!==r&&(e=a.indexOf(r))>=0&&(o=e),t.minIndex=s,t.maxIndex=o,t.min=a[s],t.max=a[o]},buildTicks:function(){var e=this._getLabels(),t=this.minIndex,a=this.maxIndex;this.ticks=0===t&&a===e.length-1?e:e.slice(t,a+1)},getLabelForIndex:function(e,t){var a=this.chart;return a.getDatasetMeta(t).controller._getValueScaleId()===this.id?this.getRightValue(a.data.datasets[t].data[e]):this._getLabels()[e]},_configure:function(){var e=this,t=e.options.offset,a=e.ticks;ca.prototype._configure.call(e),e.isHorizontal()||(e._reversePixels=!e._reversePixels),a&&(e._startValue=e.minIndex-(t?.5:0),e._valueRange=Math.max(a.length-(t?0:1),1))},getPixelForValue:function(e,t,a){var n,i,r,s=this;return fa(t)||fa(a)||(e=s.chart.data.datasets[a].data[t]),fa(e)||(n=s.isHorizontal()?e.x:e.y),(void 0!==n||void 0!==e&&isNaN(t))&&(i=s._getLabels(),e=R.valueOrDefault(n,e),t=-1!==(r=i.indexOf(e))?r:t,isNaN(t)&&(t=e)),s.getPixelForDecimal((t-s._startValue)/s._valueRange)},getPixelForTick:function(e){var t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e],e+this.minIndex)},getValueForPixel:function(e){var t=Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange);return Math.min(Math.max(t,0),this.ticks.length-1)},getBasePixel:function(){return this.bottom}}),pa={position:"bottom"};Ma._defaults=pa;var ga=R.noop,ya=R.isNullOrUndef,La=ca.extend({getRightValue:function(e){return"string"==typeof e?+e:ca.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var e=this,t=e.options.ticks;if(t.beginAtZero){var a=R.sign(e.min),n=R.sign(e.max);a<0&&n<0?e.max=0:a>0&&n>0&&(e.min=0)}var i=void 0!==t.min||void 0!==t.suggestedMin,r=void 0!==t.max||void 0!==t.suggestedMax;void 0!==t.min?e.min=t.min:void 0!==t.suggestedMin&&(null===e.min?e.min=t.suggestedMin:e.min=Math.min(e.min,t.suggestedMin)),void 0!==t.max?e.max=t.max:void 0!==t.suggestedMax&&(null===e.max?e.max=t.suggestedMax:e.max=Math.max(e.max,t.suggestedMax)),i!==r&&e.min>=e.max&&(i?e.max=e.min+1:e.min=e.max-1),e.min===e.max&&(e.max++,t.beginAtZero||e.min--)},getTickLimit:function(){var e,t=this.options.ticks,a=t.stepSize,n=t.maxTicksLimit;return a?e=Math.ceil(this.max/a)-Math.floor(this.min/a)+1:(e=this._computeTickLimit(),n=n||11),n&&(e=Math.min(n,e)),e},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:ga,buildTicks:function(){var e=this,t=e.options.ticks,a=e.getTickLimit(),n={maxTicks:a=Math.max(2,a),min:t.min,max:t.max,precision:t.precision,stepSize:R.valueOrDefault(t.fixedStepSize,t.stepSize)},i=e.ticks=function(e,t){var a,n,i,r,s=[],o=e.stepSize,d=o||1,l=e.maxTicks-1,u=e.min,_=e.max,h=e.precision,m=t.min,c=t.max,f=R.niceNum((c-m)/l/d)*d;if(f<1e-14&&ya(u)&&ya(_))return[m,c];(r=Math.ceil(c/f)-Math.floor(m/f))>l&&(f=R.niceNum(r*f/l/d)*d),o||ya(h)?a=Math.pow(10,R._decimalPlaces(f)):(a=Math.pow(10,h),f=Math.ceil(f*a)/a),n=Math.floor(m/f)*f,i=Math.ceil(c/f)*f,o&&(!ya(u)&&R.almostWhole(u/f,f/1e3)&&(n=u),!ya(_)&&R.almostWhole(_/f,f/1e3)&&(i=_)),r=(i-n)/f,r=R.almostEquals(r,Math.round(r),f/1e3)?Math.round(r):Math.ceil(r),n=Math.round(n*a)/a,i=Math.round(i*a)/a,s.push(ya(u)?n:u);for(var M=1;Mt.length-1?null:this.getPixelForValue(t[e])}}),Da=va;ba._defaults=Da;var wa=R.valueOrDefault,Ta=R.math.log10,xa={position:"left",ticks:{callback:ea.formatters.logarithmic}};function Sa(e,t){return R.isFinite(e)&&e>=0?e:t}var Ha=ca.extend({determineDataLimits:function(){var e,t,a,n,i,r,s=this,o=s.options,d=s.chart,l=d.data.datasets,u=s.isHorizontal();function _(e){return u?e.xAxisID===s.id:e.yAxisID===s.id}s.min=Number.POSITIVE_INFINITY,s.max=Number.NEGATIVE_INFINITY,s.minNotZero=Number.POSITIVE_INFINITY;var h=o.stacked;if(void 0===h)for(e=0;e0){var t=R.min(e),a=R.max(e);s.min=Math.min(s.min,t),s.max=Math.max(s.max,a)}}))}else for(e=0;e0?e.minNotZero=e.min:e.max<1?e.minNotZero=Math.pow(10,Math.floor(Ta(e.max))):e.minNotZero=1)},buildTicks:function(){var e=this,t=e.options.ticks,a=!e.isHorizontal(),n={min:Sa(t.min),max:Sa(t.max)},i=e.ticks=function(e,t){var a,n,i=[],r=wa(e.min,Math.pow(10,Math.floor(Ta(t.min)))),s=Math.floor(Ta(t.max)),o=Math.ceil(t.max/Math.pow(10,s));0===r?(a=Math.floor(Ta(t.minNotZero)),n=Math.floor(t.minNotZero/Math.pow(10,a)),i.push(r),r=n*Math.pow(10,a)):(a=Math.floor(Ta(r)),n=Math.floor(r/Math.pow(10,a)));var d=a<0?Math.pow(10,Math.abs(a)):1;do{i.push(r),10==++n&&(n=1,d=++a>=0?1:d),r=Math.round(n*Math.pow(10,a)*d)/d}while(at.length-1?null:this.getPixelForValue(t[e])},_getFirstTickValue:function(e){var t=Math.floor(Ta(e));return Math.floor(e/Math.pow(10,t))*Math.pow(10,t)},_configure:function(){var e=this,t=e.min,a=0;ca.prototype._configure.call(e),0===t&&(t=e._getFirstTickValue(e.minNotZero),a=wa(e.options.ticks.fontSize,W.global.defaultFontSize)/e._length),e._startValue=Ta(t),e._valueOffset=a,e._valueRange=(Ta(e.max)-Ta(t))/(1-a)},getPixelForValue:function(e){var t=this,a=0;return(e=+t.getRightValue(e))>t.min&&e>0&&(a=(Ta(e)-t._startValue)/t._valueRange+t._valueOffset),t.getPixelForDecimal(a)},getValueForPixel:function(e){var t=this,a=t.getDecimalForPixel(e);return 0===a&&0===t.min?0:Math.pow(10,t._startValue+(a-t._valueOffset)*t._valueRange)}}),ja=xa;Ha._defaults=ja;var Pa=R.valueOrDefault,Oa=R.valueAtIndexOrDefault,Aa=R.options.resolve,Fa={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0,0,0,0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:ea.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(e){return e}}};function Wa(e){var t=e.ticks;return t.display&&e.display?Pa(t.fontSize,W.global.defaultFontSize)+2*t.backdropPaddingY:0}function Ca(e,t,a,n,i){return e===n||e===i?{start:t-a/2,end:t+a/2}:ei?{start:t-a,end:t}:{start:t,end:t+a}}function Ea(e){return 0===e||180===e?"center":e<180?"left":"right"}function za(e,t,a,n){var i,r,s=a.y+n/2;if(R.isArray(t))for(i=0,r=t.length;i270||e<90)&&(a.y-=t.h)}function Ra(e){return R.isNumber(e)?e:0}var Na=La.extend({setDimensions:function(){var e=this;e.width=e.maxWidth,e.height=e.maxHeight,e.paddingTop=Wa(e.options)/2,e.xCenter=Math.floor(e.width/2),e.yCenter=Math.floor((e.height-e.paddingTop)/2),e.drawingArea=Math.min(e.height-e.paddingTop,e.width)/2},determineDataLimits:function(){var e=this,t=e.chart,a=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY;R.each(t.data.datasets,(function(i,r){if(t.isDatasetVisible(r)){var s=t.getDatasetMeta(r);R.each(i.data,(function(t,i){var r=+e.getRightValue(t);isNaN(r)||s.data[i].hidden||(a=Math.min(r,a),n=Math.max(r,n))}))}})),e.min=a===Number.POSITIVE_INFINITY?0:a,e.max=n===Number.NEGATIVE_INFINITY?0:n,e.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/Wa(this.options))},convertTicksToLabels:function(){var e=this;La.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map((function(){var t=R.callback(e.options.pointLabels.callback,arguments,e);return t||0===t?t:""}))},getLabelForIndex:function(e,t){return+this.getRightValue(this.chart.data.datasets[t].data[e])},fit:function(){var e=this.options;e.display&&e.pointLabels.display?function(e){var t,a,n,i=R.options._parseFont(e.options.pointLabels),r={l:0,r:e.width,t:0,b:e.height-e.paddingTop},s={};e.ctx.font=i.string,e._pointLabelSizes=[];var o,d,l,u=e.chart.data.labels.length;for(t=0;tr.r&&(r.r=m.end,s.r=_),c.startr.b&&(r.b=c.end,s.b=_)}e.setReductions(e.drawingArea,r,s)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(e,t,a){var n=this,i=t.l/Math.sin(a.l),r=Math.max(t.r-n.width,0)/Math.sin(a.r),s=-t.t/Math.cos(a.t),o=-Math.max(t.b-(n.height-n.paddingTop),0)/Math.cos(a.b);i=Ra(i),r=Ra(r),s=Ra(s),o=Ra(o),n.drawingArea=Math.min(Math.floor(e-(i+r)/2),Math.floor(e-(s+o)/2)),n.setCenterPoint(i,r,s,o)},setCenterPoint:function(e,t,a,n){var i=this,r=i.width-t-i.drawingArea,s=e+i.drawingArea,o=a+i.drawingArea,d=i.height-i.paddingTop-n-i.drawingArea;i.xCenter=Math.floor((s+r)/2+i.left),i.yCenter=Math.floor((o+d)/2+i.top+i.paddingTop)},getIndexAngle:function(e){var t=this.chart,a=(e*(360/t.data.labels.length)+((t.options||{}).startAngle||0))%360;return(a<0?a+360:a)*Math.PI*2/360},getDistanceFromCenterForValue:function(e){var t=this;if(R.isNullOrUndef(e))return NaN;var a=t.drawingArea/(t.max-t.min);return t.options.ticks.reverse?(t.max-e)*a:(e-t.min)*a},getPointPosition:function(e,t){var a=this.getIndexAngle(e)-Math.PI/2;return{x:Math.cos(a)*t+this.xCenter,y:Math.sin(a)*t+this.yCenter}},getPointPositionForValue:function(e,t){return this.getPointPosition(e,this.getDistanceFromCenterForValue(t))},getBasePosition:function(e){var t=this.min,a=this.max;return this.getPointPositionForValue(e||0,this.beginAtZero?0:t<0&&a<0?a:t>0&&a>0?t:0)},_drawGrid:function(){var e,t,a,n=this,i=n.ctx,r=n.options,s=r.gridLines,o=r.angleLines,d=Pa(o.lineWidth,s.lineWidth),l=Pa(o.color,s.color);if(r.pointLabels.display&&function(e){var t=e.ctx,a=e.options,n=a.pointLabels,i=Wa(a),r=e.getDistanceFromCenterForValue(a.ticks.reverse?e.min:e.max),s=R.options._parseFont(n);t.save(),t.font=s.string,t.textBaseline="middle";for(var o=e.chart.data.labels.length-1;o>=0;o--){var d=0===o?i/2:0,l=e.getPointPosition(o,r+d+5),u=Oa(n.fontColor,o,W.global.defaultFontColor);t.fillStyle=u;var _=e.getIndexAngle(o),h=R.toDegrees(_);t.textAlign=Ea(h),Ia(h,e._pointLabelSizes[o],l),za(t,e.pointLabels[o],l,s.lineHeight)}t.restore()}(n),s.display&&R.each(n.ticks,(function(e,a){0!==a&&(t=n.getDistanceFromCenterForValue(n.ticksAsNumbers[a]),function(e,t,a,n){var i,r=e.ctx,s=t.circular,o=e.chart.data.labels.length,d=Oa(t.color,n-1),l=Oa(t.lineWidth,n-1);if((s||o)&&d&&l){if(r.save(),r.strokeStyle=d,r.lineWidth=l,r.setLineDash&&(r.setLineDash(t.borderDash||[]),r.lineDashOffset=t.borderDashOffset||0),r.beginPath(),s)r.arc(e.xCenter,e.yCenter,a,0,2*Math.PI);else{i=e.getPointPosition(0,a),r.moveTo(i.x,i.y);for(var u=1;u=0;e--)t=n.getDistanceFromCenterForValue(r.ticks.reverse?n.min:n.max),a=n.getPointPosition(e,t),i.beginPath(),i.moveTo(n.xCenter,n.yCenter),i.lineTo(a.x,a.y),i.stroke();i.restore()}},_drawLabels:function(){var e=this,t=e.ctx,a=e.options.ticks;if(a.display){var n,i,r=e.getIndexAngle(0),s=R.options._parseFont(a),o=Pa(a.fontColor,W.global.defaultFontColor);t.save(),t.font=s.string,t.translate(e.xCenter,e.yCenter),t.rotate(r),t.textAlign="center",t.textBaseline="middle",R.each(e.ticks,(function(r,d){(0!==d||a.reverse)&&(n=e.getDistanceFromCenterForValue(e.ticksAsNumbers[d]),a.showLabelBackdrop&&(i=t.measureText(r).width,t.fillStyle=a.backdropColor,t.fillRect(-i/2-a.backdropPaddingX,-n-s.size/2-a.backdropPaddingY,i+2*a.backdropPaddingX,s.size+2*a.backdropPaddingY)),t.fillStyle=o,t.fillText(r,0,-n))})),t.restore()}},_drawTitle:R.noop}),Va=Fa;Na._defaults=Va;var Ba=R._deprecated,Ja=R.options.resolve,Ua=R.valueOrDefault,Ga=Number.MIN_SAFE_INTEGER||-9007199254740991,qa=Number.MAX_SAFE_INTEGER||9007199254740991,$a={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Ka=Object.keys($a);function Za(e,t){return e-t}function Qa(e){return R.valueOrDefault(e.time.min,e.ticks.min)}function Xa(e){return R.valueOrDefault(e.time.max,e.ticks.max)}function en(e,t,a,n){var i=function(e,t,a){for(var n,i,r,s=0,o=e.length-1;s>=0&&s<=o;){if(i=e[(n=s+o>>1)-1]||null,r=e[n],!i)return{lo:null,hi:r};if(r[t]a))return{lo:i,hi:r};o=n-1}}return{lo:r,hi:null}}(e,t,a),r=i.lo?i.hi?i.lo:e[e.length-2]:e[0],s=i.lo?i.hi?i.hi:e[e.length-1]:e[1],o=s[t]-r[t],d=o?(a-r[t])/o:0,l=(s[n]-r[n])*d;return r[n]+l}function tn(e,t){var a=e._adapter,n=e.options.time,i=n.parser,r=i||n.format,s=t;return"function"==typeof i&&(s=i(s)),R.isFinite(s)||(s="string"==typeof r?a.parse(s,r):a.parse(s)),null!==s?+s:(i||"function"!=typeof r||(s=r(t),R.isFinite(s)||(s=a.parse(s))),s)}function an(e,t){if(R.isNullOrUndef(t))return null;var a=e.options.time,n=tn(e,e.getRightValue(t));return null===n?n:(a.round&&(n=+e._adapter.startOf(n,a.round)),n)}function nn(e,t,a,n){var i,r,s,o=Ka.length;for(i=Ka.indexOf(e);i=0&&(t[r].major=!0);return t}(e,r,s,a):r}var sn=ca.extend({initialize:function(){this.mergeTicksOptions(),ca.prototype.initialize.call(this)},update:function(){var e=this,t=e.options,a=t.time||(t.time={}),n=e._adapter=new Xt._date(t.adapters.date);return Ba("time scale",a.format,"time.format","time.parser"),Ba("time scale",a.min,"time.min","ticks.min"),Ba("time scale",a.max,"time.max","ticks.max"),R.mergeIf(a.displayFormats,n.formats()),ca.prototype.update.apply(e,arguments)},getRightValue:function(e){return e&&void 0!==e.t&&(e=e.t),ca.prototype.getRightValue.call(this,e)},determineDataLimits:function(){var e,t,a,n,i,r,s,o=this,d=o.chart,l=o._adapter,u=o.options,_=u.time.unit||"day",h=qa,m=Ga,c=[],f=[],M=[],p=o._getLabels();for(e=0,a=p.length;e1?function(e){var t,a,n,i={},r=[];for(t=0,a=e.length;t1e5*l)throw t+" and "+a+" are too far apart with stepSize of "+l+" "+d;for(i=_;i=i&&a<=r&&u.push(a);return n.min=i,n.max=r,n._unit=d.unit||(o.autoSkip?nn(d.minUnit,n.min,n.max,_):function(e,t,a,n,i){var r,s;for(r=Ka.length-1;r>=Ka.indexOf(a);r--)if(s=Ka[r],$a[s].common&&e._adapter.diff(i,n,s)>=t-1)return s;return Ka[a?Ka.indexOf(a):0]}(n,u.length,d.minUnit,n.min,n.max)),n._majorUnit=o.major.enabled&&"year"!==n._unit?function(e){for(var t=Ka.indexOf(e)+1,a=Ka.length;tt&&o=0&&e0?o:1}}),on={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};sn._defaults=on;var dn={category:Ma,linear:ba,logarithmic:Ha,radialLinear:Na,time:sn},ln={datetime:"MMM D, YYYY, h:mm:ss a",millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm a",hour:"hA",day:"MMM D",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"};Xt._date.override("function"==typeof e?{_id:"moment",formats:function(){return ln},parse:function(t,a){return"string"==typeof t&&"string"==typeof a?t=e(t,a):t instanceof e||(t=e(t)),t.isValid()?t.valueOf():null},format:function(t,a){return e(t).format(a)},add:function(t,a,n){return e(t).add(a,n).valueOf()},diff:function(t,a,n){return e(t).diff(e(a),n)},startOf:function(t,a,n){return t=e(t),"isoWeek"===a?t.isoWeekday(n).valueOf():t.startOf(a).valueOf()},endOf:function(t,a){return e(t).endOf(a).valueOf()},_create:function(t){return e(t)}}:{}),W._set("global",{plugins:{filler:{propagate:!0}}});var un={dataset:function(e){var t=e.fill,a=e.chart,n=a.getDatasetMeta(t),i=n&&a.isDatasetVisible(t)&&n.dataset._children||[],r=i.length||0;return r?function(e,t){return t=a)&&n;switch(r){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return r;default:return!1}}function hn(e){return(e.el._scale||{}).getPointPositionForValue?function(e){var t,a,n,i,r,s=e.el._scale,o=s.options,d=s.chart.data.labels.length,l=e.fill,u=[];if(!d)return null;for(t=o.ticks.reverse?s.max:s.min,a=o.ticks.reverse?s.min:s.max,n=s.getPointPositionForValue(0,t),i=0;i0;--r)R.canvas.lineTo(e,a[r],a[r-1],!0);else for(s=a[0].cx,o=a[0].cy,d=Math.sqrt(Math.pow(a[0].x-s,2)+Math.pow(a[0].y-o,2)),r=i-1;r>0;--r)e.arc(s,o,d,a[r].angle,a[r-1].angle,!0)}}function pn(e,t,a,n,i,r){var s,o,d,l,u,_,h,m,c=t.length,f=n.spanGaps,M=[],p=[],g=0,y=0;for(e.beginPath(),s=0,o=c;s=0;--a)(t=d[a].$filler)&&t.visible&&(i=(n=t.el)._view,r=n._children||[],s=t.mapper,o=i.backgroundColor||W.global.defaultColor,s&&o&&r.length&&(R.canvas.clipArea(l,e.chartArea),pn(l,r,s,i,o,n._loop),R.canvas.unclipArea(l)))}},yn=R.rtl.getRtlAdapter,Ln=R.noop,vn=R.valueOrDefault;function Yn(e,t){return e.usePointStyle&&e.boxWidth>t?t:e.boxWidth}W._set("global",{legend:{display:!0,position:"top",align:"center",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(e,t){var a=t.datasetIndex,n=this.chart,i=n.getDatasetMeta(a);i.hidden=null===i.hidden?!n.data.datasets[a].hidden:null,n.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(e){var t=e.data.datasets,a=e.options.legend||{},n=a.labels&&a.labels.usePointStyle;return e._getSortedDatasetMetas().map((function(a){var i=a.controller.getStyle(n?0:void 0);return{text:t[a.index].label,fillStyle:i.backgroundColor,hidden:!e.isDatasetVisible(a.index),lineCap:i.borderCapStyle,lineDash:i.borderDash,lineDashOffset:i.borderDashOffset,lineJoin:i.borderJoinStyle,lineWidth:i.borderWidth,strokeStyle:i.borderColor,pointStyle:i.pointStyle,rotation:i.rotation,datasetIndex:a.index}}),this)}}},legendCallback:function(e){var t,a,n,i=document.createElement("ul"),r=e.data.datasets;for(i.setAttribute("class",e.id+"-legend"),t=0,a=r.length;td.width)&&(_+=s+a.padding,u[u.length-(t>0?0:1)]=0),o[t]={left:0,top:0,width:n,height:s},u[u.length-1]+=n+a.padding})),d.height+=_}else{var h=a.padding,m=e.columnWidths=[],c=e.columnHeights=[],f=a.padding,M=0,p=0;R.each(e.legendItems,(function(e,t){var n=Yn(a,s)+s/2+i.measureText(e.text).width;t>0&&p+s+2*h>d.height&&(f+=M+a.padding,m.push(M),c.push(p),M=0,p=0),M=Math.max(M,n),p+=s+h,o[t]={left:0,top:0,width:n,height:s}})),f+=M,m.push(M),c.push(p),d.width+=f}e.width=d.width,e.height=d.height}else e.width=d.width=e.height=d.height=0},afterFit:Ln,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var e=this,t=e.options,a=t.labels,n=W.global,i=n.defaultColor,r=n.elements.line,s=e.height,o=e.columnHeights,d=e.width,l=e.lineWidths;if(t.display){var u,_=yn(t.rtl,e.left,e.minSize.width),h=e.ctx,m=vn(a.fontColor,n.defaultFontColor),c=R.options._parseFont(a),f=c.size;h.textAlign=_.textAlign("left"),h.textBaseline="middle",h.lineWidth=.5,h.strokeStyle=m,h.fillStyle=m,h.font=c.string;var M=Yn(a,f),p=e.legendHitBoxes,g=function(e,n){switch(t.align){case"start":return a.padding;case"end":return e-n;default:return(e-n+a.padding)/2}},y=e.isHorizontal();u=y?{x:e.left+g(d,l[0]),y:e.top+a.padding,line:0}:{x:e.left+a.padding,y:e.top+g(s,o[0]),line:0},R.rtl.overrideTextDirection(e.ctx,t.textDirection);var L=f+a.padding;R.each(e.legendItems,(function(t,n){var m=h.measureText(t.text).width,c=M+f/2+m,v=u.x,Y=u.y;_.setWidth(e.minSize.width),y?n>0&&v+c+a.padding>e.left+e.minSize.width&&(Y=u.y+=L,u.line++,v=u.x=e.left+g(d,l[u.line])):n>0&&Y+L>e.top+e.minSize.height&&(v=u.x=v+e.columnWidths[u.line]+a.padding,u.line++,Y=u.y=e.top+g(s,o[u.line]));var k=_.x(v);!function(e,t,n){if(!(isNaN(M)||M<=0)){h.save();var s=vn(n.lineWidth,r.borderWidth);if(h.fillStyle=vn(n.fillStyle,i),h.lineCap=vn(n.lineCap,r.borderCapStyle),h.lineDashOffset=vn(n.lineDashOffset,r.borderDashOffset),h.lineJoin=vn(n.lineJoin,r.borderJoinStyle),h.lineWidth=s,h.strokeStyle=vn(n.strokeStyle,i),h.setLineDash&&h.setLineDash(vn(n.lineDash,r.borderDash)),a&&a.usePointStyle){var o=M*Math.SQRT2/2,d=_.xPlus(e,M/2),l=t+f/2;R.canvas.drawPoint(h,n.pointStyle,o,d,l,n.rotation)}else h.fillRect(_.leftForLtr(e,M),t,M,f),0!==s&&h.strokeRect(_.leftForLtr(e,M),t,M,f);h.restore()}}(k,Y,t),p[n].left=_.leftForLtr(k,p[n].width),p[n].top=Y,function(e,t,a,n){var i=f/2,r=_.xPlus(e,M+i),s=t+i;h.fillText(a.text,r,s),a.hidden&&(h.beginPath(),h.lineWidth=2,h.moveTo(r,s),h.lineTo(_.xPlus(r,n),s),h.stroke())}(k,Y,t,m),y?u.x+=c+a.padding:u.y+=L})),R.rtl.restoreTextDirection(e.ctx,t.textDirection)}},_getLegendItemAt:function(e,t){var a,n,i,r=this;if(e>=r.left&&e<=r.right&&t>=r.top&&t<=r.bottom)for(i=r.legendHitBoxes,a=0;a=(n=i[a]).left&&e<=n.left+n.width&&t>=n.top&&t<=n.top+n.height)return r.legendItems[a];return null},handleEvent:function(e){var t,a=this,n=a.options,i="mouseup"===e.type?"click":e.type;if("mousemove"===i){if(!n.onHover&&!n.onLeave)return}else{if("click"!==i)return;if(!n.onClick)return}t=a._getLegendItemAt(e.x,e.y),"click"===i?t&&n.onClick&&n.onClick.call(a,e.native,t):(n.onLeave&&t!==a._hoveredItem&&(a._hoveredItem&&n.onLeave.call(a,e.native,a._hoveredItem),a._hoveredItem=t),n.onHover&&t&&n.onHover.call(a,e.native,t))}});function bn(e,t){var a=new kn({ctx:e.ctx,options:t,chart:e});ct.configure(e,a,t),ct.addBox(e,a),e.legend=a}var Dn={id:"legend",_element:kn,beforeInit:function(e){var t=e.options.legend;t&&bn(e,t)},beforeUpdate:function(e){var t=e.options.legend,a=e.legend;t?(R.mergeIf(t,W.global.legend),a?(ct.configure(e,a,t),a.options=t):bn(e,t)):a&&(ct.removeBox(e,a),delete e.legend)},afterEvent:function(e,t){var a=e.legend;a&&a.handleEvent(t)}},wn=R.noop;W._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var Tn=q.extend({initialize:function(e){R.extend(this,e),this.legendHitBoxes=[]},beforeUpdate:wn,update:function(e,t,a){var n=this;return n.beforeUpdate(),n.maxWidth=e,n.maxHeight=t,n.margins=a,n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeBuildLabels(),n.buildLabels(),n.afterBuildLabels(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:wn,beforeSetDimensions:wn,setDimensions:function(){var e=this;e.isHorizontal()?(e.width=e.maxWidth,e.left=0,e.right=e.width):(e.height=e.maxHeight,e.top=0,e.bottom=e.height),e.paddingLeft=0,e.paddingTop=0,e.paddingRight=0,e.paddingBottom=0,e.minSize={width:0,height:0}},afterSetDimensions:wn,beforeBuildLabels:wn,buildLabels:wn,afterBuildLabels:wn,beforeFit:wn,fit:function(){var e,t=this,a=t.options,n=t.minSize={},i=t.isHorizontal();a.display?(e=(R.isArray(a.text)?a.text.length:1)*R.options._parseFont(a).lineHeight+2*a.padding,t.width=n.width=i?t.maxWidth:e,t.height=n.height=i?e:t.maxHeight):t.width=n.width=t.height=n.height=0},afterFit:wn,isHorizontal:function(){var e=this.options.position;return"top"===e||"bottom"===e},draw:function(){var e=this,t=e.ctx,a=e.options;if(a.display){var n,i,r,s=R.options._parseFont(a),o=s.lineHeight,d=o/2+a.padding,l=0,u=e.top,_=e.left,h=e.bottom,m=e.right;t.fillStyle=R.valueOrDefault(a.fontColor,W.global.defaultFontColor),t.font=s.string,e.isHorizontal()?(i=_+(m-_)/2,r=u+d,n=m-_):(i="left"===a.position?_+d:m-d,r=u+(h-u)/2,n=h-u,l=Math.PI*("left"===a.position?-.5:.5)),t.save(),t.translate(i,r),t.rotate(l),t.textAlign="center",t.textBaseline="middle";var c=a.text;if(R.isArray(c))for(var f=0,M=0;M=0;n--){var i=e[n];if(t(i))return i}},R.isNumber=function(e){return!isNaN(parseFloat(e))&&isFinite(e)},R.almostEquals=function(e,t,a){return Math.abs(e-t)=e},R.max=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.max(e,t)}),Number.NEGATIVE_INFINITY)},R.min=function(e){return e.reduce((function(e,t){return isNaN(t)?e:Math.min(e,t)}),Number.POSITIVE_INFINITY)},R.sign=Math.sign?function(e){return Math.sign(e)}:function(e){return 0==(e=+e)||isNaN(e)?e:e>0?1:-1},R.toRadians=function(e){return e*(Math.PI/180)},R.toDegrees=function(e){return e*(180/Math.PI)},R._decimalPlaces=function(e){if(R.isFinite(e)){for(var t=1,a=0;Math.round(e*t)/t!==e;)t*=10,a++;return a}},R.getAngleFromPoint=function(e,t){var a=t.x-e.x,n=t.y-e.y,i=Math.sqrt(a*a+n*n),r=Math.atan2(n,a);return r<-.5*Math.PI&&(r+=2*Math.PI),{angle:r,distance:i}},R.distanceBetweenPoints=function(e,t){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},R.aliasPixel=function(e){return e%2==0?0:.5},R._alignPixel=function(e,t,a){var n=e.currentDevicePixelRatio,i=a/2;return Math.round((t-i)*n)/n+i},R.splineCurve=function(e,t,a,n){var i=e.skip?t:e,r=t,s=a.skip?t:a,o=Math.sqrt(Math.pow(r.x-i.x,2)+Math.pow(r.y-i.y,2)),d=Math.sqrt(Math.pow(s.x-r.x,2)+Math.pow(s.y-r.y,2)),l=o/(o+d),u=d/(o+d),_=n*(l=isNaN(l)?0:l),h=n*(u=isNaN(u)?0:u);return{previous:{x:r.x-_*(s.x-i.x),y:r.y-_*(s.y-i.y)},next:{x:r.x+h*(s.x-i.x),y:r.y+h*(s.y-i.y)}}},R.EPSILON=Number.EPSILON||1e-14,R.splineCurveMonotone=function(e){var t,a,n,i,r,s,o,d,l,u=(e||[]).map((function(e){return{model:e._model,deltaK:0,mK:0}})),_=u.length;for(t=0;t<_;++t)if(!(n=u[t]).model.skip){if(a=t>0?u[t-1]:null,(i=t<_-1?u[t+1]:null)&&!i.model.skip){var h=i.model.x-n.model.x;n.deltaK=0!==h?(i.model.y-n.model.y)/h:0}!a||a.model.skip?n.mK=n.deltaK:!i||i.model.skip?n.mK=a.deltaK:this.sign(a.deltaK)!==this.sign(n.deltaK)?n.mK=0:n.mK=(a.deltaK+n.deltaK)/2}for(t=0;t<_-1;++t)n=u[t],i=u[t+1],n.model.skip||i.model.skip||(R.almostEquals(n.deltaK,0,this.EPSILON)?n.mK=i.mK=0:(r=n.mK/n.deltaK,s=i.mK/n.deltaK,(d=Math.pow(r,2)+Math.pow(s,2))<=9||(o=3/Math.sqrt(d),n.mK=r*o*n.deltaK,i.mK=s*o*n.deltaK)));for(t=0;t<_;++t)(n=u[t]).model.skip||(a=t>0?u[t-1]:null,i=t<_-1?u[t+1]:null,a&&!a.model.skip&&(l=(n.model.x-a.model.x)/3,n.model.controlPointPreviousX=n.model.x-l,n.model.controlPointPreviousY=n.model.y-l*n.mK),i&&!i.model.skip&&(l=(i.model.x-n.model.x)/3,n.model.controlPointNextX=n.model.x+l,n.model.controlPointNextY=n.model.y+l*n.mK))},R.nextItem=function(e,t,a){return a?t>=e.length-1?e[0]:e[t+1]:t>=e.length-1?e[e.length-1]:e[t+1]},R.previousItem=function(e,t,a){return a?t<=0?e[e.length-1]:e[t-1]:t<=0?e[0]:e[t-1]},R.niceNum=function(e,t){var a=Math.floor(R.log10(e)),n=e/Math.pow(10,a);return(t?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10)*Math.pow(10,a)},R.requestAnimFrame="undefined"==typeof window?function(e){e()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(e){return window.setTimeout(e,1e3/60)},R.getRelativePosition=function(e,t){var a,n,i=e.originalEvent||e,r=e.target||e.srcElement,s=r.getBoundingClientRect(),o=i.touches;o&&o.length>0?(a=o[0].clientX,n=o[0].clientY):(a=i.clientX,n=i.clientY);var d=parseFloat(R.getStyle(r,"padding-left")),l=parseFloat(R.getStyle(r,"padding-top")),u=parseFloat(R.getStyle(r,"padding-right")),_=parseFloat(R.getStyle(r,"padding-bottom")),h=s.right-s.left-d-u,m=s.bottom-s.top-l-_;return{x:a=Math.round((a-s.left-d)/h*r.width/t.currentDevicePixelRatio),y:n=Math.round((n-s.top-l)/m*r.height/t.currentDevicePixelRatio)}},R.getConstraintWidth=function(e){return a(e,"max-width","clientWidth")},R.getConstraintHeight=function(e){return a(e,"max-height","clientHeight")},R._calculatePadding=function(e,t,a){return(t=R.getStyle(e,t)).indexOf("%")>-1?a*parseInt(t,10)/100:parseInt(t,10)},R._getParentNode=function(e){var t=e.parentNode;return t&&"[object ShadowRoot]"===t.toString()&&(t=t.host),t},R.getMaximumWidth=function(e){var t=R._getParentNode(e);if(!t)return e.clientWidth;var a=t.clientWidth,n=a-R._calculatePadding(t,"padding-left",a)-R._calculatePadding(t,"padding-right",a),i=R.getConstraintWidth(e);return isNaN(i)?n:Math.min(n,i)},R.getMaximumHeight=function(e){var t=R._getParentNode(e);if(!t)return e.clientHeight;var a=t.clientHeight,n=a-R._calculatePadding(t,"padding-top",a)-R._calculatePadding(t,"padding-bottom",a),i=R.getConstraintHeight(e);return isNaN(i)?n:Math.min(n,i)},R.getStyle=function(e,t){return e.currentStyle?e.currentStyle[t]:document.defaultView.getComputedStyle(e,null).getPropertyValue(t)},R.retinaScale=function(e,t){var a=e.currentDevicePixelRatio=t||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==a){var n=e.canvas,i=e.height,r=e.width;n.height=i*a,n.width=r*a,e.ctx.scale(a,a),n.style.height||n.style.width||(n.style.height=i+"px",n.style.width=r+"px")}},R.fontString=function(e,t,a){return t+" "+e+"px "+a},R.longestText=function(e,t,a,n){var i=(n=n||{}).data=n.data||{},r=n.garbageCollect=n.garbageCollect||[];n.font!==t&&(i=n.data={},r=n.garbageCollect=[],n.font=t),e.font=t;var s,o,d,l,u,_=0,h=a.length;for(s=0;sa.length){for(s=0;sn&&(n=r),n},R.numberOfLabelLines=function(e){var t=1;return R.each(e,(function(e){R.isArray(e)&&e.length>t&&(t=e.length)})),t},R.color=Y?function(e){return e instanceof CanvasGradient&&(e=W.global.defaultColor),Y(e)}:function(e){return console.error("Color.js not found!"),e},R.getHoverColor=function(e){return e instanceof CanvasPattern||e instanceof CanvasGradient?e:R.color(e).saturate(.5).darken(.1).rgbString()}}(),Kt._adapters=Xt,Kt.Animation=K,Kt.animationService=Z,Kt.controllers=Ze,Kt.DatasetController=ae,Kt.defaults=W,Kt.Element=q,Kt.elements=ve,Kt.Interaction=it,Kt.layouts=ct,Kt.platform=xt,Kt.plugins=St,Kt.Scale=ca,Kt.scaleService=Ht,Kt.Ticks=ea,Kt.Tooltip=Rt,Kt.helpers.each(dn,(function(e,t){Kt.scaleService.registerScaleType(t,e,e._defaults)})),Sn)Sn.hasOwnProperty(On)&&Kt.plugins.register(Sn[On]);Kt.platform.initialize();var An=Kt;return"undefined"!=typeof window&&(window.Chart=Kt),Kt.Chart=Kt,Kt.Legend=Sn.legend._element,Kt.Title=Sn.title._element,Kt.pluginService=Kt.plugins,Kt.PluginBase=Kt.Element.extend({}),Kt.canvasHelpers=Kt.helpers.canvas,Kt.layoutService=Kt.layouts,Kt.LinearScaleBase=La,Kt.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(e){Kt[e]=function(t,a){return new Kt(t,Kt.helpers.merge(a||{},{type:e.charAt(0).toLowerCase()+e.slice(1)}))}})),An}(function(){try{return a(1424)}catch(e){}}())},2512:function(e,t,a){var n={"./af":2286,"./af.js":2286,"./ar":2287,"./ar-dz":2288,"./ar-dz.js":2288,"./ar-kw":2289,"./ar-kw.js":2289,"./ar-ly":2290,"./ar-ly.js":2290,"./ar-ma":2291,"./ar-ma.js":2291,"./ar-sa":2292,"./ar-sa.js":2292,"./ar-tn":2293,"./ar-tn.js":2293,"./ar.js":2287,"./az":2294,"./az.js":2294,"./be":2295,"./be.js":2295,"./bg":2296,"./bg.js":2296,"./bm":2297,"./bm.js":2297,"./bn":2298,"./bn.js":2298,"./bo":2299,"./bo.js":2299,"./br":2300,"./br.js":2300,"./bs":2301,"./bs.js":2301,"./ca":2302,"./ca.js":2302,"./cs":2303,"./cs.js":2303,"./cv":2304,"./cv.js":2304,"./cy":2305,"./cy.js":2305,"./da":2306,"./da.js":2306,"./de":2307,"./de-at":2308,"./de-at.js":2308,"./de-ch":2309,"./de-ch.js":2309,"./de.js":2307,"./dv":2310,"./dv.js":2310,"./el":2311,"./el.js":2311,"./en-SG":2312,"./en-SG.js":2312,"./en-au":2313,"./en-au.js":2313,"./en-ca":2314,"./en-ca.js":2314,"./en-gb":2315,"./en-gb.js":2315,"./en-ie":2316,"./en-ie.js":2316,"./en-il":2317,"./en-il.js":2317,"./en-nz":2318,"./en-nz.js":2318,"./eo":2319,"./eo.js":2319,"./es":2320,"./es-do":2321,"./es-do.js":2321,"./es-us":2322,"./es-us.js":2322,"./es.js":2320,"./et":2323,"./et.js":2323,"./eu":2324,"./eu.js":2324,"./fa":2325,"./fa.js":2325,"./fi":2326,"./fi.js":2326,"./fo":2327,"./fo.js":2327,"./fr":2328,"./fr-ca":2329,"./fr-ca.js":2329,"./fr-ch":2330,"./fr-ch.js":2330,"./fr.js":2328,"./fy":2331,"./fy.js":2331,"./ga":2332,"./ga.js":2332,"./gd":2333,"./gd.js":2333,"./gl":2334,"./gl.js":2334,"./gom-latn":2335,"./gom-latn.js":2335,"./gu":2336,"./gu.js":2336,"./he":2337,"./he.js":2337,"./hi":2338,"./hi.js":2338,"./hr":2339,"./hr.js":2339,"./hu":2340,"./hu.js":2340,"./hy-am":2341,"./hy-am.js":2341,"./id":2342,"./id.js":2342,"./is":2343,"./is.js":2343,"./it":2344,"./it-ch":2345,"./it-ch.js":2345,"./it.js":2344,"./ja":2346,"./ja.js":2346,"./jv":2347,"./jv.js":2347,"./ka":2348,"./ka.js":2348,"./kk":2349,"./kk.js":2349,"./km":2350,"./km.js":2350,"./kn":2351,"./kn.js":2351,"./ko":2352,"./ko.js":2352,"./ku":2353,"./ku.js":2353,"./ky":2354,"./ky.js":2354,"./lb":2355,"./lb.js":2355,"./lo":2356,"./lo.js":2356,"./lt":2357,"./lt.js":2357,"./lv":2358,"./lv.js":2358,"./me":2359,"./me.js":2359,"./mi":2360,"./mi.js":2360,"./mk":2361,"./mk.js":2361,"./ml":2362,"./ml.js":2362,"./mn":2363,"./mn.js":2363,"./mr":2364,"./mr.js":2364,"./ms":2365,"./ms-my":2366,"./ms-my.js":2366,"./ms.js":2365,"./mt":2367,"./mt.js":2367,"./my":2368,"./my.js":2368,"./nb":2369,"./nb.js":2369,"./ne":2370,"./ne.js":2370,"./nl":2371,"./nl-be":2372,"./nl-be.js":2372,"./nl.js":2371,"./nn":2373,"./nn.js":2373,"./pa-in":2374,"./pa-in.js":2374,"./pl":2375,"./pl.js":2375,"./pt":2376,"./pt-br":2377,"./pt-br.js":2377,"./pt.js":2376,"./ro":2378,"./ro.js":2378,"./ru":2379,"./ru.js":2379,"./sd":2380,"./sd.js":2380,"./se":2381,"./se.js":2381,"./si":2382,"./si.js":2382,"./sk":2383,"./sk.js":2383,"./sl":2384,"./sl.js":2384,"./sq":2385,"./sq.js":2385,"./sr":2386,"./sr-cyrl":2387,"./sr-cyrl.js":2387,"./sr.js":2386,"./ss":2388,"./ss.js":2388,"./sv":2389,"./sv.js":2389,"./sw":2390,"./sw.js":2390,"./ta":2391,"./ta.js":2391,"./te":2392,"./te.js":2392,"./tet":2393,"./tet.js":2393,"./tg":2394,"./tg.js":2394,"./th":2395,"./th.js":2395,"./tl-ph":2396,"./tl-ph.js":2396,"./tlh":2397,"./tlh.js":2397,"./tr":2398,"./tr.js":2398,"./tzl":2399,"./tzl.js":2399,"./tzm":2400,"./tzm-latn":2401,"./tzm-latn.js":2401,"./tzm.js":2400,"./ug-cn":2402,"./ug-cn.js":2402,"./uk":2403,"./uk.js":2403,"./ur":2404,"./ur.js":2404,"./uz":2405,"./uz-latn":2406,"./uz-latn.js":2406,"./uz.js":2405,"./vi":2407,"./vi.js":2407,"./x-pseudo":2408,"./x-pseudo.js":2408,"./yo":2409,"./yo.js":2409,"./zh-cn":2410,"./zh-cn.js":2410,"./zh-hk":2411,"./zh-hk.js":2411,"./zh-tw":2412,"./zh-tw.js":2412};function i(e){var t=r(e);return a(t)}function r(e){if(!a.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}i.keys=function(){return Object.keys(n)},i.resolve=r,e.exports=i,i.id=2512}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/20.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/20.js new file mode 100644 index 0000000..72d8de5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/20.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{1271:function(t,e,a){"use strict";a.r(e);var r=a(2967),n=a(1556);for(var s in n)"default"!==s&&function(t){a.d(e,t,(function(){return n[t]}))}(s);var o=a(0),i=a(2430),u=a.n(i),l=Object(o.a)(n.default,r.a,r.b,!1,null,null,null);"function"==typeof u.a&&u()(l),e.default=l.exports},1432:function(t,e,a){"use strict";var r=a(1);Object.defineProperty(e,"__esModule",{value:!0}),e.updateCron=e.getCron=e.restoreBackup=e.getRestoreFiles=e.scheduleBackup=e.getRestoreOptions=e.getScheduleOptions=e.getSettings=e.updateSettings=e.deleteCrons=e.duplicateCrons=e.getEncryptionStatus=e.getCrons=void 0;var n=r(a(2)),s=r(a(30));function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function i(t){for(var e=1;e🔒","").trim()}}))}))}))}});e.getCrons=l;var c=s.default.get({id:"BACKUP_ENCRYPTION_STATUS",url:u,after:function(t){return t.flow(t.project({enabled:"settings.allow_backup_encryption",password:"settings.encryption_password"}),t.mapProp("enabled",t.convert.toAppBoolean))}});e.getEncryptionStatus=c;var p=s.default.select({url:u,params:{duplicate:!0}});e.duplicateCrons=p;var f=s.default.select({url:u,params:{delete:!0}});e.deleteCrons=f;var d=s.default.post({url:u,params:{action:"setting"},schema:{message:s.default.REQUIRED_BOOL,local_ns:s.default.REQUIRED_BOOL,restore_spf:s.default.REQUIRED_BOOL}});e.updateSettings=d;var _=s.default.get({id:"USER_BACKUP_SETTINGS",url:u,after:function(t){return t.flow(t.project({local_ns:"settings.local_ns",message:"settings.message",restore_spf:"settings.restore_spf"}),t.mapValues(t.convert.toAppBoolean))}});e.getSettings=_;var h=s.default.get({id:"USER_BACKUP_SCHEDULE_OPTIONS",url:u,after:function(t){return t.flow(t.project({settings:"settings","settings.append":"append_to_path",where:"where",users:"users",location:"files_location"}),t.mapProps({users:t.flow(t.deleteProp("info"),t.toArray,t.mapArray(t.getProp("user"))),settings:t.flow(t.project({ip:"ftp_ip",password:"ftp_password",path:"ftp_path",port:"ftp_port",secure:"ftp_secure",username:"ftp_username",append:"append"}),t.mapProps({secure:t.convert.toAppBoolean,append:function(t){var e=Object.values(t),a=e.find((function(t){return t.selected})),r=e.reduce((function(t,e){return i({},t,(0,n.default)({},e.value,e.text))}),{});return{value:a.value,options:r}}}))}))}});e.getScheduleOptions=h;var m=s.default.get({id:"USER_BACKUP_RESTORE_OPTIONS",url:u,after:function(t){return t.flow(t.project({settings:"settings",where:"where",location:"files_location",ips:"ip_list",files:"files"}),t.mapProps({files:t.flow(t.deleteProp("info"),t.toArray),settings:t.flow(t.getProps(["ftp_ip","ftp_password","ftp_path","ftp_port","ftp_secure","ftp_username"]),t.mapProps({ftp_secure:t.convert.toAppBoolean})),ips:function(t){var e=Object.values(t),a=e.find((function(t){return t.selected})),r=e.reduce((function(t,e){return i({},t,(0,n.default)({},e.value,e.text))}),{});return{value:a.value,options:r}}}))}});e.getRestoreOptions=m;var v=s.default.post({url:u,params:{action:"create",form_version:"3"},schema:{who:s.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:s.default.OPTIONAL_BOOL,when:s.default.REQUIRED_STRING,minute:s.default.OPTIONAL_STRING,hour:s.default.OPTIONAL_STRING,dayofmonth:s.default.OPTIONAL_STRING,month:s.default.OPTIONAL_STRING,dayofweek:s.default.OPTIONAL_STRING,where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING,append_to_path:s.default.OPTIONAL_STRING,custom_append:s.default.OPTIONAL_STRING,encryption_password:s.default.OPTIONAL_STRING}});e.scheduleBackup=v;var g=s.default.get({url:u,id:"USER_BACKUP_RESTORE_FILES",params:{action:"update_files"},schema:{where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING},after:function(t){return t.flow(t.getProp("files"),t.deleteProp("info"),t.toArray)}});e.getRestoreFiles=g;var w=s.default.post({url:u,params:{action:"restore"},schema:{where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING,ip_choice:s.default.REQUIRED_STRING,ip:s.default.OPTIONAL_STRING,select:{type:Array,required:!0},encryption_password:s.default.OPTIONAL_STRING}});e.restoreBackup=w;var O=s.default.post({url:"/CMD_USER_BACKUP_MODIFY",id:"USER_BACKUP_CRON",schema:{id:s.default.REQUIRED_STRING},notifySuccess:!1,notifyError:!0,after:function(t){return t.flow(t.moveProp({append_to_path:"append","settings.where":"where"}),t.mapProps({settings:t.mapProp("ftp_secure",t.convert.toAppBoolean),who:t.mapProps({skip_suspended:t.convert.toAppBoolean,users:t.flow(t.deleteProp("info"),t.toArray,t.mapArray(t.getProp("user"))),select:t.feedWith(1,t.flow(t.getProp("users"),t.deleteProp("info"),t.filter(t.flow(t.getProp("checkbox"),t.isEqual("checked"))),t.mapValues(t.getProp("user")),t.toArray))}),append:t.flow(t.mapProps({options:t.feedWith(1,t.transformObject((function(t){var e=t.value,a=t.text;return(0,n.default)({},e,a)}))),value:t.feedWith(1,t.flow(t.find(t.getProp("selected")),t.getProp("value")))}),t.getProps(["value","options"])),custom_append:t.feedWith(1,t.getProp("append.custom_append"))}))}});e.getCron=O;var I=s.default.post({url:u,params:{action:"modify",when:"cron",form_version:"3"},schema:{id:s.default.REQUIRED_STRING,who:s.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:s.default.OPTIONAL_BOOL,minute:s.default.REQUIRED_STRING,hour:s.default.REQUIRED_STRING,dayofmonth:s.default.REQUIRED_STRING,month:s.default.REQUIRED_STRING,dayofweek:s.default.REQUIRED_STRING,where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING,append_to_path:s.default.REQUIRED_STRING,custom_append:s.default.OPTIONAL_STRING}});e.updateCron=I},1452:function(t,e,a){"use strict";var r=a(10),n=a(1);Object.defineProperty(e,"__esModule",{value:!0}),e.modifyBackup=e.runCrons=e.deleteCrons=e.duplicateCrons=e.restoreBackup=e.scheduleBackup=e.updateSettings=e.killBackup=e.getCronDetails=e.getRestoreFiles=e.getRestoreOptions=e.getScheduleOptions=e.getBackupSettings=e.getCurrentBackup=e.getCurrentBackups=e.getCrons=e.getEncryptionStatus=void 0;var s=n(a(2)),o=n(a(30)),i=a(1432),u=n(a(1476)),l=r(a(1477));function c(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function p(t){for(var e=1;e🔒","").trim()}}))})))}});e.getCrons=_;var h=f("ADMIN_CURRENT_BACKUPS",{after:function(t){return t.flow(t.getProp("current_backups"),t.toTable(t.mapArray(t.flow(t.deleteProp("details"),t.mapProps({progress:function(t){return Number(t.slice(0,-1))}})))))},silent:!0});e.getCurrentBackups=h;var m=f("ADMIN_CURRENT_BACKUP",{params:{action:"monitor"},schema:{pid:o.default.REQUIRED_STRING},after:function(t){return t.flow(t.getProp("backup_info.0"),t.mapProp("start",t.convert.toAppDate))}});e.getCurrentBackup=m;var v=f("ADMIN_BACKUP_SETTINGS",{mapResponse:l.getBackupSettings});e.getBackupSettings=v;var g=f("ADMIN_SCHEDULE_OPTIONS",{after:function(t){return t.flow(t.project({who:"who.who","whoData.users":"data_list","whoData.skip_suspended":"who.skip_suspended",where:"where","whereData.append_to_path":"settings.append_to_path","whereData.ftp_ip":"settings.ftp_ip","whereData.ftp_username":"settings.ftp_username","whereData.ftp_password":"settings.ftp_password","whereData.ftp_path":"settings.ftp_path","whereData.ftp_port":"settings.ftp_port","whereData.ftp_secure":"settings.ftp_secure","whereData.local_path":"settings.local_path",appendOptions:"append_to_path",usertypes:"who.users"}),t.mapProps({whoData:t.mapProps({skip_suspended:t.convert.toAppBoolean}),whereData:t.mapProps({ftp_secure:t.convert.toAppBoolean}),appendOptions:t.transformObject((function(t){var e=t.value,a=t.text;return(0,s.default)({},e,a)})),usertypes:t.flow(t.deleteProp("info"),t.transformObject((function(t){var e=t.user,a=t.type;return(0,s.default)({},e,a.toLowerCase()||"user")})))}))}});e.getScheduleOptions=g;var w=f("ADMIN_RESTORE_OPTIONS",{after:function(t){return t.flow(t.project({where:"where","whereData.ftp_ip":"settings.ftp_ip","whereData.ftp_username":"settings.ftp_username","whereData.ftp_password":"settings.ftp_password","whereData.ftp_path":"settings.ftp_path","whereData.ftp_port":"settings.ftp_port","whereData.ftp_secure":"settings.ftp_secure","whereData.local_path":"settings.local_path",ips:"ip_list","filesData.list":"files","filesData.location":"files_location","filesData.home_override":"create_user_home_override"}),t.mapProps({whereData:t.mapProps({ftp_secure:t.convert.toAppBoolean}),ips:t.toSelect,filesData:t.mapProps({list:t.flow(t.deleteProp("info"),t.toArray,t.mapArray((function(t){var e=t.file,a=t.info,r={file:e};return a.issues&&a.issues.length&&(r.issues=a.issues),"yes"===a.hide_checkbox&&(r.disabled=!0),r}))),home_override:function(e){return!!e&&t.toSelect(e)}})}))}});e.getRestoreOptions=w;var O=o.default.post({id:"ADMIN_RESTORE_FILES",url:"/CMD_ADMIN_BACKUP",params:{action:"update_files",json:!0},schema:{where:o.default.REQUIRED_STRING,ftp_ip:o.default.OPTIONAL_STRING,ftp_username:o.default.OPTIONAL_STRING,ftp_password:o.default.OPTIONAL_STRING,ftp_path:o.default.OPTIONAL_STRING,ftp_port:o.default.OPTIONAL_STRING,ftp_secure:o.default.OPTIONAL_BOOL,local_path:o.default.OPTIONAL_STRING},mapResponse:{location:u.default.location,list:u.default.filesList},notifySuccess:!1});e.getRestoreFiles=O;var I=o.default.get({id:"ADMIN_CRON_DETAILS",url:"/CMD_ADMIN_BACKUP_MODIFY",schema:{id:o.default.REQUIRED_STRING},after:function(t){return t.flow(t.project({who:"who.who","whoData.users":"data_list","whoData.select":"who.users","whoData.skip_suspended":"who.skip_suspended",where:"where","whereData.append_to_path":"append_to_path","whereData.ftp_ip":"settings.ftp_ip","whereData.ftp_username":"settings.ftp_username","whereData.ftp_password":"settings.ftp_password","whereData.ftp_path":"settings.ftp_path","whereData.ftp_port":"settings.ftp_port","whereData.ftp_secure":"settings.ftp_secure","whereData.local_path":"settings.local_path","whereData.custom_append":"append_to_path.custom_append",whenData:"when",what:"what.what","whatData.select":"what.select",appendOptions:"append_to_path",usertypes:"who.users"}),t.mapProps({whoData:t.mapProps({skip_suspended:t.convert.toAppBoolean,select:t.flow(t.toArray,(function(t){return t.filter((function(t){return"checked"===t.checkbox}))}),t.mapArray(t.getProp("user")))}),whereData:t.mapProps({ftp_secure:t.convert.toAppBoolean,append_to_path:t.flow((function(t){return Object.values(t).find((function(t){return t.selected}))}),t.getProp("value"))}),appendOptions:t.transformObject((function(t){var e=t.value,a=t.text;return(0,s.default)({},e,a)})),usertypes:t.flow(t.deleteProp("info"),t.transformObject((function(t){var e=t.user,a=t.type;return(0,s.default)({},e,a.toLowerCase()||"user")})))}))}});e.getCronDetails=I;var T=function(t){return o.default.post(p({url:"/CMD_ADMIN_BACKUP"},t))},S=T({params:{action:"kill",kill:!0},schema:{select:o.default.ROWS}});e.killBackup=S;var b=T({url:"/CMD_ADMIN_BACKUP",params:{action:"setting"},schema:{message:o.default.REQUIRED_BOOL,local_ns:o.default.REQUIRED_BOOL,restore_spf:o.default.REQUIRED_BOOL,confirm_with_domainowners:o.default.REQUIRED_BOOL},before:function(t){return p({},t,{message:t.message||null,local_ns:t.local_ns||null,restore_spf:t.restore_spf||null,confirm_with_domainowners:t.confirm_with_domainowners||null})}});e.updateSettings=b;var R=T({params:{action:"create",form_version:"3"},schema:{who:o.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:o.default.OPTIONAL_BOOL,when:o.default.REQUIRED_STRING,minute:o.default.OPTIONAL_STRING,hour:o.default.OPTIONAL_STRING,dayofmonth:o.default.OPTIONAL_STRING,month:o.default.OPTIONAL_STRING,dayofweek:o.default.OPTIONAL_STRING,where:o.default.REQUIRED_STRING,ftp_ip:o.default.OPTIONAL_STRING,ftp_username:o.default.OPTIONAL_STRING,ftp_password:o.default.OPTIONAL_STRING,ftp_path:o.default.OPTIONAL_STRING,ftp_port:o.default.OPTIONAL_STRING,ftp_secure:o.default.OPTIONAL_STRING,append_to_path:o.default.OPTIONAL_STRING,custom_append:o.default.OPTIONAL_STRING,what:o.default.REQUIRED_STRING,option:{type:Array,required:!1}}});e.scheduleBackup=R;var N=T({params:{action:"restore"},schema:{where:o.default.REQUIRED_STRING,ftp_ip:o.default.OPTIONAL_STRING,ftp_username:o.default.OPTIONAL_STRING,ftp_password:o.default.OPTIONAL_STRING,ftp_path:o.default.OPTIONAL_STRING,ftp_port:o.default.OPTIONAL_STRING,ftp_secure:o.default.OPTIONAL_STRING,local_path:o.default.OPTIONAL_STRING,ip_choice:o.default.REQUIRED_STRING,ip:o.default.OPTIONAL_STRING,select:{type:Array,required:!0}}});e.restoreBackup=N;var P=function(t){return o.default.select({url:"/CMD_ADMIN_BACKUP",params:(0,s.default)({},t,!0)})},k=P("duplicate");e.duplicateCrons=k;var y=P("delete");e.deleteCrons=y;var A=P("run");e.runCrons=A;var D=T({params:{action:"modify",form_version:"3"},schema:{id:o.default.REQUIRED_STRING,who:o.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:o.default.OPTIONAL_BOOL,minute:o.default.OPTIONAL_STRING,hour:o.default.OPTIONAL_STRING,dayofmonth:o.default.OPTIONAL_STRING,month:o.default.OPTIONAL_STRING,dayofweek:o.default.OPTIONAL_STRING,where:o.default.REQUIRED_STRING,ftp_ip:o.default.OPTIONAL_STRING,ftp_username:o.default.OPTIONAL_STRING,ftp_password:o.default.OPTIONAL_STRING,ftp_path:o.default.OPTIONAL_STRING,ftp_port:o.default.OPTIONAL_STRING,ftp_secure:o.default.OPTIONAL_STRING,append_to_path:o.default.OPTIONAL_STRING,custom_append:o.default.OPTIONAL_STRING,what:o.default.REQUIRED_STRING,option:{type:Array,required:!1}}});e.modifyBackup=D},1476:function(t,e,a){"use strict";var r=a(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=r(a(24)),s=a(18),o=a(14),i=function(t,e){return s.Maybe.fromNull(t).filter((function(t){return"object"===(0,n.default)(t)})).flatMap((function(t){return s.Maybe.fromNull(t[e])}))},u={location:function(t){return i(t,"files_location").map((function(t){return o.fp.convert.toAppString(t)})).orSome("")},filesList:function(t){return i(t,"files").map((function(t){return delete t.info,Object.values(t).map((function(t){var e=t.file,a=t.info,r={file:e};return a.issues&&a.issues.length&&(r.issues=a.issues),"yes"===a.hide_checkbox&&(r.disabled=!0),r}))})).orSome([])}};e.default=u},1477:function(t,e,a){"use strict";a.r(e),a.d(e,"getEncryptionStatus",(function(){return o})),a.d(e,"getIssues",(function(){return i})),a.d(e,"getFiles",(function(){return u})),a.d(e,"getSkipSuspendedValue",(function(){return l})),a.d(e,"getUsers",(function(){return c})),a.d(e,"getUsertypes",(function(){return p})),a.d(e,"getBackupSettings",(function(){return f}));var r=a(6),n=a(35),s=function(){return(s=Object.assign||function(t){for(var e,a=1,r=arguments.length;athis.shownDomainNumber},showAllDomains:function(){return this.showAll||Object.keys(this.domains).length===this.shownDomainNumber+1},shownDomains:function(){if(this.showAllDomains)return this.domains;var e=a.slice(0,this.shownDomainNumber,a.keys(this.domains));return a.pick(e,this.domains)}}};t.default=o},1460:function(e,t,n){var s=n(1541);"string"==typeof s&&(s=[[e.i,s,""]]),s.locals&&(e.exports=s.locals);(0,n(5).default)("943a96e0",s,!0,{})},1466:function(e,t,n){"use strict";var s=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.saveComments=t.createAdmin=t.deleteUsers=t.unsuspendUsers=t.suspendUsers=void 0;var r=s(n(30)),a=r.default.post({url:"/CMD_SELECT_USERS",notifySuccess:!0,params:{location:"CMD_ALL_USER_SHOW"},schema:{select:r.default.ROWS},blocking:!0}),o=a.extend({params:{dosuspend:!0},schema:{reason:r.default.REQUIRED_STRING},blocking:!0});t.suspendUsers=o;var i=a.extend({params:{dounsuspend:!0},blocking:!0});t.unsuspendUsers=i;var u=a.extend({params:{delete:!0,confirmed:!0},schema:{leave_dns:r.default.OPTIONAL_BOOL},blocking:!0});t.deleteUsers=u;var l=r.default.post({url:"/CMD_ACCOUNT_ADMIN",params:{action:"create"},schema:{username:r.default.REQUIRED_STRING,email:r.default.REQUIRED_STRING,passwd:r.default.REQUIRED_STRING,passwd2:r.default.REQUIRED_STRING,notify:r.default.REQUIRED_BOOL}});t.createAdmin=l;var c=r.default.post({url:"/CMD_COMMENTS",params:{location:"CMD_SHOW_RESELLER"},schema:{user:r.default.REQUIRED_STRING,comments:r.default.REQUIRED_STRING}});t.saveComments=c},1467:function(e,t,n){"use strict";n.r(t);var s=n(1471),r=n(1430);for(var a in r)"default"!==a&&function(e){n.d(t,e,(function(){return r[e]}))}(a);var o=n(0),i=Object(o.a)(r.default,s.a,s.b,!1,null,null,null);t.default=i.exports},1471:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-dialog",{attrs:{id:"SUSPEND_USER_DIALOG"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Suspend user")]),e._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-form-element",{attrs:{vertical:""}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Reason")]),e._v(" "),n("input-select",{attrs:{slot:"content",options:e.reasons},slot:"content",model:{value:e.reason,callback:function(t){e.reason=t},expression:"reason"}})],1),e._v(" "),n("ui-form-element",{attrs:{vertical:""}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Details")]),e._v(" "),n("input-textarea",{attrs:{slot:"content",rows:"3"},slot:"content",model:{value:e.details,callback:function(t){e.details=t},expression:"details"}})],1)],1),e._v(" "),n("ui-button",{attrs:{slot:"buttons",theme:"safe"},on:{click:function(t){return e.$emit("suspend",{reason:e.reason,details:e.details})}},slot:"buttons"},[n("translate",[e._v("Suspend")])],1)],1)},r=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return r}))},1493:function(e,t,n){"use strict";n.r(t);var s=n(1523),r=n(1442);for(var a in r)"default"!==a&&function(e){n.d(t,e,(function(){return r[e]}))}(a);var o=n(0),i=Object(o.a)(r.default,s.a,s.b,!1,null,null,null);t.default=i.exports},1523:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ui-dialog",{attrs:{id:"CREATE_MESSAGE_DIALOG",size:"normal"},on:{"dialog:close":e.$reset}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Send a Message\n ")]),e._v(" "),n("template",{slot:"content"},[n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n To:\n ")]),e._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-grid",{attrs:{wrap:""}},e._l(e.users,(function(t){return n("ui-badge",{key:t,attrs:{theme:"neutral",size:"big",icon:"person"}},[e._v("\n "+e._s(t)+"\n ")])})),1)],1)],1),e._v(" "),n("ui-form-element",{attrs:{group:"message",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Priority:\n ")]),e._v(" "),n("input-select",{attrs:{slot:"content",options:e.priorityOptions},slot:"content",model:{value:e.priority,callback:function(t){e.priority=t},expression:"priority"}})],1),e._v(" "),n("ui-form-element",{attrs:{group:"message",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Subject:\n ")]),e._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:e.subject,callback:function(t){e.subject=t},expression:"subject"}})],1),e._v(" "),n("ui-form-element",{attrs:{group:"message",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[e._v("\n Message:\n ")]),e._v(" "),n("input-textarea",{attrs:{slot:"content",rows:"10"},slot:"content",model:{value:e.message,callback:function(t){e.message=t},expression:"message"}})],1),e._v(" "),n("ui-form-element",{attrs:{underline:!1}},[n("span",{attrs:{slot:"title"},slot:"title"}),e._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"},{name:"gutter",rawName:"v-gutter",value:1,expression:"1"}],attrs:{slot:"content"},slot:"content"},[n("input-checkbox",{model:{value:e.emailOnly,callback:function(t){e.emailOnly=t},expression:"emailOnly"}},[n("translate",[e._v("E-mail Only")])],1),e._v(" "),e.emailOnly?n("input-checkbox",{model:{value:e.allEmailAccounts,callback:function(t){e.allEmailAccounts=t},expression:"allEmailAccounts"}},[n("translate",[e._v("All Email Accounts")]),e._v(" "),n("ui-tooltip",[n("translate",[e._v("Message will be delivered to all User/Reseller accounts that were selected plus all E-Mail accounts that exist under domains for selected User accounts.")])],1)],1):e._e()],1)])],1),e._v(" "),n("ui-button",{attrs:{slot:"buttons",theme:"primary","validate-group":"message"},on:{click:e.sendMessage},slot:"buttons"},[e._v("\n Send Message\n ")])],2)},r=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return r}))},1528:function(e,t,n){"use strict";n.r(t);var s=n(1552),r=n(1458);for(var a in r)"default"!==a&&function(e){n.d(t,e,(function(){return r[e]}))}(a);n(1540);var o=n(0),i=Object(o.a)(r.default,s.a,s.b,!1,null,null,null);t.default=i.exports},1539:function(e,t,n){"use strict";var s=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.getAdmins=t.getUsers=void 0;var r=s(n(2)),a=s(n(17)),o=s(n(30));function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var u=o.default.get({id:"ALL_USERS",url:"/CMD_ALL_USER_SHOW",pagination:!0,params:{bytes:!0},after:function(e){return e.flow(e.wrap("users"),e.moveProp({"users.reasons":"options.reasons","users.add_leave_dns":"options.add_leave_dns","users.remote_server":"options.remote_servers","users.RESULT":"options.connectionError"}),e.mapProp("users",e.toTable(e.flow(e.mapArrayProps({username:e.getProp("value"),is_user:e.feedWith(1,e.flow(e.getProp("username.is_user"),e.convert.toAppBoolean)),suspended:e.flow(e.getProp("value"),e.convert.toAppBoolean),reason:e.feedWith(1,(function(e){return e.suspended.reason||"none"})),vdomains:e.toLimitedUsage(),bandwidth:e.toLimitedUsage(),quota:e.toLimitedUsage(),date_created:e.convert.toAppDate,mysql:function(t){if(t){var n=t.split("/").map((function(e){return e.trim()})),s=(0,a.default)(n,2),r=s[0],o=s[1];return e.toLimitedUsage()({limit:Number(o)||1/0,usage:r})}}}),e.mapArray((function(e){return function(e){for(var t=1;t\\n").filter(e.notEmpty).join("
")},remote_servers:e.flow((function(e){return e||{}}),e.mapValues((function(t,n){var s=t.ssl,r=t.port,a=e.convert.toAppBoolean(s)?"https":"http";return"".concat(a,"://").concat(n,":").concat(r)})))})))}});t.getUsers=u;var l=o.default.get({id:"ADMINS",url:"/CMD_ADMIN_SHOW",params:{bytes:!0},pagination:!0,after:function(e){return e.flow(e.wrap("admins"),e.moveProp({"admins.reasons":"reasons"}),e.mapProp("admins",e.toTable(e.mapArrayProps({nusers:e.convert.toAppNumber,suspended:e.flow(e.getProp("value"),e.isEqual("no:"),e.not),reason:e.feedWith(1,(function(e){return e.suspended.reason||"none"})),vdomains:e.toLimitedUsage(),bandwidth:e.toLimitedUsage(),quota:e.toLimitedUsage()}))))}});t.getAdmins=l},1540:function(e,t,n){"use strict";var s=n(1460);n.n(s).a},1541:function(e,t,n){(e.exports=n(4)(!0)).push([e.i,"ol.user-domains--pointers{list-style-type:decimal!important}","",{version:3,sources:["/home/evo/evolution/src/js/components/local/user-domains.vue"],names:[],mappings:"AA+GA,0BACI,iCAAmC,CAAA",file:"user-domains.vue?vue&type=style&index=0&lang=scss&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nol.user-domains--pointers {\n list-style-type: decimal !important;\n}\n"],sourceRoot:""}])},1552:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{"scrollbar:primary":!e.$_Client.isPhone},style:{"overflow-x":"auto","min-width":e.$_Client.isPhone?"auto":"15rem"}},[e._l(e.shownDomains,(function(t,s){return n("div",{directives:[{name:"flex",rawName:"v-flex",value:{cross:"center"},expression:"{ cross: 'center' }"}],key:s},[n("a",{attrs:{href:"http://"+s,target:"_blank"}},[e._v("\n "+e._s(e._f("p6eUnicode")(s))+"\n ")]),e._v("\n  \n "),t.length&&"0"!==e.showPointers?n("ui-tooltip",[n("translate",{staticClass:"txt:bold",attrs:{slot:"trigger"},slot:"trigger"},[e._v("\n (pointers)\n ")]),e._v(" "),n("1"===e.showPointers?"ul":"ol",{tag:"component",staticClass:"wrap:nowrap user-domains--pointers"},e._l(t,(function(t){return n("li",{key:t},[n("a",{attrs:{href:"http://"+t,target:"_blank"}},[e._v("\n "+e._s(e._f("p6eUnicode")(t))+"\n ")])])})),0)],1):e._e()],1)})),e._v(" "),e.showExpandButton&&!e.showAllDomains?n("ui-button",{attrs:{theme:"light",size:"small"},on:{click:function(t){e.showAll=!0}}},[n("translate",[e._v("show all...")]),e._v(" "),n("ui-icon",{directives:[{name:"margin",rawName:"v-margin",value:[,,,1],expression:"[, , , 1]"}],attrs:{id:"caret-down",size:"small"}})],1):e._e()],2)},r=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return r}))},1706:function(e,t,n){"use strict";n.r(t);var s=n(1707),r=n.n(s);for(var a in s)"default"!==a&&function(e){n.d(t,e,(function(){return s[e]}))}(a);t.default=r.a},1707:function(e,t,n){"use strict";var s=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(17)),a=s(n(2)),o=s(n(15)),i=s(n(16)),u=n(1539),l=n(1466),c=s(n(1493)),d=s(n(1467)),p=s(n(1528));function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}function m(e){for(var t=1;t40&&(n="safe"),t>80&&(n="danger"),{size:"normal",theme:n,value:t}},deleteUsers:(g=(0,i.default)(o.default.mark((function e(){var t,n=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(t=this.select).forEach(this.setStatus("deleted")),e.next=4,(0,l.deleteUsers)({select:t,leave_dns:this.options.add_leave_dns?this.leaveDNS:null});case 4:e.sent||t.forEach((function(e){delete n.userStatus[e]})),this.$reloadApiTable({reset:!1});case 7:case"end":return e.stop()}}),e,this)}))),function(){return g.apply(this,arguments)}),getChildUsers:function(e){return this.rows.filter((function(t){return t.creator===e})).map((function(e){return e.username}))},setStatus:function(e){var t=this;return function(n){return t.$set(t.userStatus,n,e)}},deleteStatus:function(e){this.$delete(this.userStatus,e)},suspendUsers:(_=(0,i.default)(o.default.mark((function e(t){var n,s,r=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this.select,s=this.setStatus("suspended"),n.forEach((function(e){s(e),r.getChildUsers(e).forEach(s)})),e.next=5,(0,l.suspendUsers)(m({select:n},t));case 5:e.sent||n.forEach((function(e){r.deleteStatus(e),r.getChildUsers(e).forEach(r.deleteStatus)})),this.$reloadApiTable({reset:!1}),this.select=[];case 9:case"end":return e.stop()}}),e,this)}))),function(e){return _.apply(this,arguments)}),unsuspendUsers:(v=(0,i.default)(o.default.mark((function e(){var t,n,s=this;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.select,n=this.setStatus("active"),t.forEach((function(e){n(e),s.getChildUsers(e).forEach(n)})),e.next=5,(0,l.unsuspendUsers)({select:t});case 5:e.sent||t.forEach((function(e){s.deleteStatus(e),s.getChildUsers(e).forEach(s.deleteStatus)})),this.$reloadApiTable({reset:!1}),this.select=[];case 9:case"end":return e.stop()}}),e,this)}))),function(){return v.apply(this,arguments)}),filterDeletedUsers:function(e){return"deleted"!==this.userStatus[e.username]},mapUserStatus:function(e){return m({},e,{suspended:this.userStatus[e.username]?"suspended"===this.userStatus[e.username]:e.suspended})},getSentEmailsString:function(e){var t=e.split(":"),n=(0,r.default)(t,3),s=n[0],a=n[1],o=n[2];return a&&o?this.$gettextInterpolate(this.$gettext("%{ sent } (Today: %{ today } / %{ limit })"),{sent:s,today:a,limit:o}):s},loginAs:function(e){this.$store.dispatch("app/LOGIN_AS",{user:e,path:this.$route.path,router:this.$router})}}};t.default=h},2560:function(e,t){},3005:function(e,t,n){"use strict";var s=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("app-page",[n("app-page-section",[n("ui-api-table",e._b({on:{"action:message":function(t){e.$dialog("CREATE_MESSAGE_DIALOG").open()},"action:suspend":function(t){e.$dialog("SUSPEND_USER_DIALOG").open()},"action:unsuspend":e.unsuspendUsers,"action:del":function(t){e.$dialog("DELETE_ITEMS_DIALOG").open()}},scopedSlots:e._u([{key:"col:username",fn:function(t){var s=t.username,r=t.suspended,a=t.deleted,o=t.remote_server,i=t.is_user,u=t.reason;return n("div",{staticClass:"wrap:nowrap"},[n("ui-link",o?{attrs:{href:e.options.remote_servers[o]+"/CMD_SHOW_USER="+s,target:"_blank"}}:{attrs:{name:i?"reseller/users/view":"admin/users/resellers/view",params:{user:s}}},[e._v("\n "+e._s(s)+"\n ")]),e._v(" "),r?n("ui-tooltip",{attrs:{theme:"danger",icon:"warning"}},[u?n("translate",{attrs:{"translate-params":{reason:e.reasons[u]}}},[e._v("\n Suspended: %{ reason }\n ")]):n("translate",[e._v("\n Suspended\n ")])],1):e._e(),e._v(" "),a?n("ui-tooltip",{attrs:{theme:"danger",icon:"warning"}},[n("translate",[e._v("Deleted")])],1):e._e()],1)}},{key:"col:creator",fn:function(t){var s=t.creator;return["root"!==s?n("ui-link",{attrs:{name:"admin/users/resellers/view",params:{user:s}}},[e._v("\n "+e._s(s)+"\n ")]):e._e()]}},{key:"col:bandwidth",fn:function(t){var s=t.bandwidth;return n("ui-limited-usage",e._b({},"ui-limited-usage",s,!1))}},{key:"col:quota",fn:function(t){var s=t.quota;return n("ui-limited-usage",e._b({},"ui-limited-usage",s,!1))}},{key:"col:vdomains",fn:function(t){var s=t.vdomains;return n("ui-limited-usage",e._b({attrs:{plain:""}},"ui-limited-usage",s,!1))}},{key:"col:mysql",fn:function(t){var s=t.mysql;return n("ui-limited-usage",e._b({attrs:{plain:""}},"ui-limited-usage",s,!1))}},{key:"col:ip",fn:function(t){var s=t.ip;return[s.length?e._e():n("span"),e._v(" "),e._l(s,(function(t){return n("p",{directives:[{name:"margin",rawName:"v-margin",value:0,expression:"0"}],key:t},[e._v("\n "+e._s(t)+"\n ")])}))]}},{key:"col:domains",fn:function(t){var s=t.domains;return n("user-domains",e._b({},"user-domains",{domains:s},!1))}},{key:"col:sent_emails",fn:function(t){var n=t.sent_emails;return[e._v("\n "+e._s(e.getSentEmailsString(n))+"\n ")]}},{key:"col:date_created",fn:function(t){var n=t.date_created;return[e._v("\n "+e._s(e._f("date")(n))+"\n ")]}},{key:"row:actions",fn:function(t){var s=t.username,r=t.suspended;return n("ui-actions",{},[n("ui-link",{on:{click:function(t){e.select=[s],e.$dialog("CREATE_MESSAGE_DIALOG").open()}}},[n("translate",[e._v("Send a Message")])],1),e._v(" "),r?e._e():n("ui-link",{on:{click:function(t){e.select=[s],e.$dialog("SUSPEND_USER_DIALOG").open()}}},[n("translate",[e._v("Suspend")])],1),e._v(" "),r?n("ui-link",{on:{click:function(t){e.select=[s],e.unsuspendUsers()}}},[n("translate",[e._v("Unsuspend")])],1):e._e(),e._v(" "),n("ui-link",{on:{click:function(t){return e.loginAs(s)}}},[n("translate",{attrs:{"translate-params":{username:s}}},[e._v("\n Login as %{ username }\n ")])],1),e._v(" "),n("ui-link",{attrs:{name:"reseller/passwords",params:{user:s}}},[n("translate",{attrs:{"translate-params":{username:s}}},[e._v("\n Change %{ username }'s password\n ")])],1),e._v(" "),n("ui-link",{on:{click:function(t){e.select=[s],e.$dialog("DELETE_ITEMS_DIALOG").open()}}},[n("translate",[e._v("Remove")])],1)],1)}}]),model:{value:e.select,callback:function(t){e.select=t},expression:"select"}},"ui-api-table",{command:e.$commands.getUsers,endpoint:"GET_ALL_USERS",property:"users",rowID:"username",columns:{username:{label:e.$gettext("Username"),searchable:!0},creator:{label:e.$gettext("Creator"),searchable:!0},bandwidth:{label:e.$gettext("Bandwidth"),getClass:function(e){return e.bandwidth.status?"--usage:"+e.bandwidth.status:""}},quota:{label:e.$gettext("Disk Usage"),getClass:function(e){return e.bandwidth.status?"--usage:"+e.quota.status:""}},vdomains:e.$gettext("# of domains"),domains:{label:e.$gettext("Domain(s)"),width:"minmax(15rem, auto)",searchable:!0},ip:{label:e.$gettext("IP(s)"),searchable:!0},suspended:{label:e.$gettext("Suspended"),hide:!0,searchable:{type:"select",options:{Yes:e.$gettext("Yes"),No:e.$gettext("No")}}},sent_emails:e.$gettext("Sent E-mails"),remote_server:{label:e.$gettext("Remote Server"),hide:!e.showRemoteServer},date_created:{label:e.$gettext("Date Created"),visible:!1,hide:!e.hasDateCreatedColumn},mysql:{label:e.$gettext("Databases"),visible:!1,hide:!e.hasMysqlColumn}},actions:{message:e.$gettext("Send a Message"),suspend:e.$gettext("Suspend"),unsuspend:e.$gettext("Unsuspend"),del:e.$gettext("Delete")},updateOn:["SUSPEND_USERS","UNSUSPEND_USERS","DELETE_USERS"],rowsMapper:e.mapUserStatus,rowsFilter:e.filterDeletedUsers,verticalLayout:e.$_Client.isPhone},!1))],1),e._v(" "),n("create-message-dialog",{attrs:{users:e.select}}),e._v(" "),n("ui-dialog-delete-items",{attrs:{subject:e.$ngettext("user","users",e.select.length)},on:{"click:confirm":e.deleteUsers}},[e.options.add_leave_dns?n("ui-form-element",{attrs:{vertical:""}},[n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:e.leaveDNS,callback:function(t){e.leaveDNS=t},expression:"leaveDNS"}},[n("translate",[e._v("Leave DNS")]),e._v(" "),n("ui-tooltip",[n("translate",[e._v("Do not remove DNS zones of domains owned by the user.")])],1)],1)],1):e._e()],1),e._v(" "),n("suspend-user-dialog",{on:{suspend:e.suspendUsers}})],1)},r=[];n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return r}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/24.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/24.js new file mode 100644 index 0000000..9a00419 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/24.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{1341:function(e,t,a){"use strict";a.r(t);var n=a(3035),s=a(1853);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var i=a(0),o=a(2663),l=a.n(o),u=Object(i.a)(s.default,n.a,n.b,!1,null,null,null);"function"==typeof l.a&&l()(u),t.default=u.exports},1425:function(e,t,a){"use strict";var n=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.validateIPRangeList=t.validateDomain=t.validatePassword=t.validateSubdomain=t.validateUsername=t.validateDBUser=t.validateDatabase=t.validateDNSName=t.validateMXValue=t.validateDNSValue=t.validateFTP=t.validateEmail=t.validateForwarder=void 0;var s=n(a(30)),r=n(a(36)),i=n(a(1426)),o=s.default.get({url:"/CMD_JSON_VALIDATE",schema:{value:s.default.REQUIRED_STRING},response:{valid:!0,message:""},mapResponse:{valid:i.default.isValid,message:i.default.getMessage}}),l=o.extend({id:"VALIDATE_FORWARDER",params:{type:"forwarder",ignore_system_default:!0}});t.validateForwarder=l;var u=o.extend({id:"VALIDATE_EMAIL",params:{type:"email",check_mailing_list:!0},schema:{check_exists:{type:Boolean,required:!1,default:!0}}});t.validateEmail=u;var c=o.extend({id:"VALIDATE_FTP",params:{type:"ftp"},domain:!0});t.validateFTP=c;var d=o.extend({params:{type:"dns"},domain:!0,schema:{record:s.default.REQUIRED_STRING}}),f=d.extend({id:"VALIDATE_DNS_VALUE",params:{check:"value",name:!0},domain:!0,schema:{value:s.default.REQUIRED_STRING}});t.validateDNSValue=f;var m=f.extend({id:"VALIDATE_MX_VALUE",params:{record:"MX"},before:function(e){return{value:"10",mx_value:e.value}}});t.validateMXValue=m;var p=d.extend({id:"VALIDATE_DNS_NAME",params:{check:"name",value:!0,mx_value:!0},schema:{name:s.default.REQUIRED_STRING,value:null}});t.validateDNSName=p;var v=o.extend({id:"VALIDATE_DATABASE",params:{type:"dbname"}});t.validateDatabase=v;var O=o.extend({id:"VALIDATE_DATABASE_USER",params:{type:"dbusername"}});t.validateDBUser=O;var _=o.extend({id:"VALIDATE_USERNAME",params:{type:"username"}});t.validateUsername=_;var g=o.extend({id:"VALIDATE_SUBDOMAIN",domain:!0,params:{type:"subdomain"}});t.validateSubdomain=g;var h=o.extend({id:"VALIDATE_PASSWORD",params:{type:"password"}});t.validatePassword=h;var I=o.extend({id:"VALIDATE_DOMAIN",params:{type:"domain"},before:function(e){var t=e.value;return{value:r.default.toASCII(t)}}});t.validateDomain=I;var R=o.extend({id:"VALIDATE_IP_RANGE_LIST",params:{type:"ip_range_list"}});t.validateIPRangeList=R},1426:function(e,t,a){"use strict";a.r(t);var n=a(35);t.default={isValid:function(e){return void 0===e.error},getMessage:function(e){return Object(n.toAppHtml)(e.error||"")}}},1444:function(e,t,a){"use strict";a.r(t);var n=a(1445),s=a.n(n);for(var r in n)"default"!==r&&function(e){a.d(t,e,(function(){return n[e]}))}(r);t.default=s.a},1445:function(e,t,a){"use strict";var n=a(10),s=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(a(15)),i=s(a(16)),o=s(a(2)),l=a(14),u=a(1451),c=n(a(6));function d(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function f(e){for(var t=1;t.toggle{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}","",{version:3,sources:["/home/evo/evolution/src/js/components/local/stats/webalizer-table.vue"],names:[],mappings:"AA0OA,sCAEQ,2BAAA,2BAAA,mBAAoB,CAAA",file:"webalizer-table.vue?vue&type=style&index=0&lang=scss&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.webalizer-table .log-actions {\n & > .toggle {\n display: inline-flex;\n }\n}\n"],sourceRoot:""}])},2930:function(t,e,a){"use strict";a.r(e);var n=a(3219),s=a(2241);for(var l in s)"default"!==l&&function(t){a.d(e,t,(function(){return s[t]}))}(l);var i=a(0),o=Object(i.a)(s.default,n.a,n.b,!1,null,null,null);e.default=o.exports},2931:function(t,e,a){"use strict";a.r(e);var n=a(3241),s=a(2243);for(var l in s)"default"!==l&&function(t){a.d(e,t,(function(){return s[t]}))}(l);var i=a(0),o=Object(i.a)(s.default,n.a,n.b,!1,null,null,null);e.default=o.exports},2932:function(t,e){},3106:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("app-page",[a("translate",{attrs:{slot:"page:title","translate-params":{username:t.$state.app.user.name}},slot:"page:title"},[t._v('\n Details for user "%{username}"\n ')]),t._v(" "),a("ui-button",{attrs:{slot:"header:buttons",theme:"primary"},on:{click:function(e){t.$dialog("EDIT_ACCOUNT_CONFIG").open()}},slot:"header:buttons"},[a("translate",[t._v("Edit Account Configuration")])],1),t._v(" "),a("app-page-section",[a("ui-tabs",{attrs:{selected:t.tab,tabs:[{id:"webalizer",label:this.$gettext("Domain Statistics")},{id:"usage",label:this.$gettext("Usage Statistics")},{id:"account",label:this.$gettext("Account Configuration")}]},on:{"update:selected":function(e){t.tab=e}}},[a("div",{attrs:{slot:"tab:webalizer"},slot:"tab:webalizer"},[a("webalizer-table",{attrs:{"show-links":t.addons}})],1),t._v(" "),a("div",{attrs:{slot:"tab:usage"},slot:"tab:usage"},[a("usage-table",{attrs:{items:[{label:t.$gettext("Bandwidth"),value:t.stats.bandwidth,id:"bandwidth",bytes:!0},{label:t.$gettext("Total Disk Usage"),value:t.stats.quota,id:"quota",bytes:!0},{label:t.$gettext("E-mail Disk Usage"),value:t.stats.email_quota,bytes:!0},{label:t.$gettext("Database Disk Usage"),value:t.stats.db_quota,bytes:!0},{label:t.$gettext("Inodes"),value:t.stats.inode.usage},{label:t.$gettext("# of Domains"),value:t.stats.vdomains},{label:t.$gettext("# of Subdomains"),value:t.stats.nsubdomains},{label:t.$gettext("E-mail Accounts"),value:t.stats.nemails},{label:t.$gettext("E-mail Forwarders"),value:t.stats.nemailf},{label:t.$gettext("Mailing Lists"),value:t.stats.nemailml},{label:t.$gettext("Autoresponders"),value:t.stats.nemailr},{label:t.$gettext("Sent E-mails"),value:t.stats.email_deliveries_outgoing,id:"sentEmails"},{label:t.$gettext("Received E-mails"),value:t.stats.email_deliveries_incoming},{label:t.$gettext("# of MySQL DBs"),value:t.stats.mysql},{label:t.$gettext("Domain Pointers"),value:t.stats.domainptr},{label:t.$gettext("FTP Accounts"),value:t.stats.ftp}]}},[a("div",{directives:[{name:"flex",rawName:"v-flex"}],attrs:{slot:"label:bandwidth"},slot:"label:bandwidth"},[a("ui-actions",{attrs:{position:"right"}},[a("ui-link",{attrs:{slot:"toggle"},slot:"toggle"},[a("translate",[t._v("Bandwidth")]),t._v(" "),a("ui-icon",{attrs:{id:"caret-right",size:"small"}})],1),t._v(" "),a("ui-link",{attrs:{name:"user/bandwidth",params:{year:String((new Date).getFullYear()),month:String((new Date).getMonth()+1)}}},[a("translate",[t._v("Details")])],1)],1)],1),t._v(" "),a("div",{directives:[{name:"flex",rawName:"v-flex"}],attrs:{slot:"label:quota"},slot:"label:quota"},[a("ui-actions",{attrs:{position:"right"}},[a("ui-link",{attrs:{slot:"toggle"},slot:"toggle"},[a("translate",[t._v("Disk Usage")]),t._v(" "),a("ui-icon",{attrs:{id:"caret-right",size:"small"}})],1),t._v(" "),a("ui-link",{on:{click:t.updateDiskUsage}},[a("translate",[t._v("Update")])],1),t._v(" "),a("ui-link",{attrs:{name:"user/disk-usage"}},[a("translate",[t._v("Details")])],1)],1)],1),t._v(" "),t.stats.email_deliveries_outgoing_today?a("ui-progress-label",{attrs:{slot:"value:sentEmails",value:Number(t.stats.email_deliveries_outgoing_today),limit:t.stats.email_deliveries_outgoing.limit,"hide-limit":""},slot:"value:sentEmails"},[a("translate",{attrs:{slot:"value","translate-params":{sent:t.stats.email_deliveries_outgoing.usage,today:t.stats.email_deliveries_outgoing_today,limit:t.stats.email_deliveries_outgoing.limit}},slot:"value"},[t._v("\n %{ sent } (Today: %{ today } / %{ limit })\n ")])],1):t._e()],1)],1),t._v(" "),a("div",{attrs:{slot:"tab:account"},slot:"tab:account"},[a("usage-table",{attrs:{items:[{label:t.$gettext("Name"),value:t.stats.name},{label:t.$gettext("E-mail"),value:t.stats.email},{label:t.$gettext("IP"),value:t.stats.ip},{label:t.$gettext("Name Server 1"),value:t.stats.ns1},{label:t.$gettext("Name Server 2"),value:t.stats.ns2},{label:t.$gettext("Shell Access (SSH)"),value:t.stats.ssh},{label:t.$gettext("Secure Socket Layer (SSL)"),value:t.stats.ssl},{label:t.$gettext("CGI-Bin"),value:t.stats.cgi},{label:t.$gettext("PHP"),value:t.stats.php},{label:t.$gettext("SpamAssassin"),value:t.stats.spam},{label:t.$gettext("Catch-All E-mail"),value:t.stats.catchall},{label:t.$gettext("Anonymous FTP"),value:t.stats.aftp},{label:t.$gettext("Cron Jobs"),value:t.stats.cron},{label:t.$gettext("System Info"),value:t.stats.sysinfo},{label:t.$gettext("Login Keys"),value:t.stats.login_keys},{label:t.$gettext("DNS Control"),value:t.stats.dnscontrol},{label:t.$gettext("Suspend at Limit"),value:t.stats.suspend_at_limit}]}}),t._v(" "),Object.keys(t.$api.stats.customItems).length?a("app-page-section",[a("translate",{attrs:{slot:"section:title"},slot:"section:title"},[t._v("\n Custom Items\n ")]),t._v(" "),t._l(t.$api.stats.customItems,(function(e){return a("ui-form-element",{key:e.name},[a("span",{attrs:{slot:"title"},domProps:{textContent:t._s(e.label)},slot:"title"}),t._v(" "),"checkbox"===e.type?a("input-checkbox",{attrs:{slot:"content",disabled:""},slot:"content",model:{value:e.value,callback:function(a){t.$set(e,"value",a)},expression:"customItem.value"}},[t._v("\n "+t._s(e.description)+"\n ")]):a("input-text",{attrs:{slot:"content",disabled:"",value:"select"===e.type?e.options[e.value]:e.value},slot:"content"},[e.description?a("ui-button",{attrs:{slot:"additions:right"},slot:"additions:right"},[t._v("\n "+t._s(e.description)+"\n ")]):t._e()],1)],1)}))],2):t._e()],1)])],1),t._v(" "),a("template",{slot:"bottom:links"},[a("ui-link",{attrs:{bullet:"",name:"user/history"}},[a("translate",[t._v("User History")])],1),t._v(" "),a("ui-link",{attrs:{bullet:"",name:"user/filemanager",query:{path:"/domains/"+t.$domain+"/logs"}}},[a("translate",[t._v("Backed up Web Logs")])],1),t._v(" "),a("ui-link",{attrs:{bullet:""},on:{click:t.verifyLicense}},[a("translate",[t._v("Verify License")])],1)],1),t._v(" "),a("ui-dialog",{attrs:{id:"EDIT_ACCOUNT_CONFIG"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Edit Account Configuration\n ")]),t._v(" "),a("template",{slot:"content"},[a("ui-form-element",{attrs:{group:"accountConfiguration",validators:{required:!0},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Name\n ")]),t._v(" "),a("input-text",{attrs:{slot:"content",type:"text"},slot:"content",model:{value:t.account.name,callback:function(e){t.$set(t.account,"name",e)},expression:"account.name"}})],1),t._v(" "),a("ui-form-element",{attrs:{group:"accountConfiguration",validators:{required:!0,email:!0},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n E-mail\n ")]),t._v(" "),a("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.account.email,callback:function(e){t.$set(t.account,"email",e)},expression:"account.email"}}),t._v(" "),a("translate",{attrs:{slot:"error:email"},slot:"error:email"},[t._v("\n Should be valid email\n ")])],1),t._v(" "),t.skinOptions?a("ui-form-element",{attrs:{vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Skin\n ")]),t._v(" "),a("input-select",{attrs:{slot:"content",options:t.skinOptions},slot:"content",model:{value:t.skin,callback:function(e){t.skin=e},expression:"skin"}})],1):t._e(),t._v(" "),a("ui-form-element",{attrs:{vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n AWstats\n ")]),t._v(" "),a("input-select",{attrs:{slot:"content",options:{0:t.$gettext("Off"),1:t.$gettext("On")}},slot:"content",model:{value:t.account.awstats,callback:function(e){t.$set(t.account,"awstats",e)},expression:"account.awstats"}})],1),t._v(" "),t.$api.stats.limitNotice?a("ui-form-element",{attrs:{vertical:"","feature-i-d":"2242"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Limit Notice\n ")]),t._v(" "),a("input-select",{attrs:{slot:"content",options:{0:t.$gettext("Off"),1:t.$gettext("On"),2:"1"===t.$api.stats.limitNotice.defaultValue?t.$gettext("Default (On)"):t.$gettext("Default (Off)")}},slot:"content",model:{value:t.account.limitNotice,callback:function(e){t.$set(t.account,"limitNotice",e)},expression:"account.limitNotice"}})],1):t._e()],1),t._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"safe","validate-group":"accountConfiguration"},on:{click:t.saveAccountConfig},slot:"buttons"},[a("translate",[t._v("Save")])],1)],2)],2)},s=[];a.d(e,"a",(function(){return n})),a.d(e,"b",(function(){return s}))},3218:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("ui-api-table",t._b({staticClass:"webalizer-table",on:{"action:awstats":function(e){t.$dialog("MAKE_AWSTATS_PUBLIC").open()},"action:unset":function(e){t.$dialog("UNSET_PUBLIC_AWSTATS").open()}},scopedSlots:t._u([{key:"col:domain",fn:function(e){var n=e.domain,s=e.suspended;return[t.showLinks?a("ui-link",{attrs:{name:"user/stats/domain-statistics",params:{domain:n}}},[t._v("\n "+t._s(t._f("p6eUnicode")(n))+"\n ")]):a("span",[t._v(t._s(t._f("p6eUnicode")(n)))]),t._v(" "),s?a("ui-tooltip",{attrs:{theme:"danger",icon:"warning"}},[a("translate",[t._v("Suspended")])],1):t._e()]}},{key:"col:bandwidth",fn:function(e){var n=e.bandwidth;return[t._v("\n "+t._s(t._f("humanReadableSize")(n.usage))+"\n /\n "),"shared"===n.limit?a("translate",[t._v("\n Shared\n ")]):n.limit===1/0?a("translate",[t._v("\n Shared\n ")]):a("translate",[t._v("\n "+t._s(t._f("humanReadableSize")(n.limit))+"\n ")])]}},{key:"col:nsubdomains",fn:function(e){var n=e.subdomains,s=e.domain;return a("div",{},t._l(n,(function(e){return a("ui-actions",{key:e,staticClass:"log-actions",attrs:{position:"right"}},[a("span",{attrs:{slot:"toggle"},slot:"toggle"},[t._v("\n "+t._s(e)+"."+t._s(t._f("p6eUnicode")(s))+"\n ")]),t._v(" "),a("ui-link",{attrs:{name:"user/stats/subdomain-log",params:{subdomain:e+"."+s,type:"usage"}}},[a("translate",[t._v("Usage log")])],1),t._v(" "),a("ui-link",{attrs:{name:"user/stats/subdomain-log",params:{subdomain:e+"."+s,type:"usage"}}},[t._v("\n Error Log\n ")])],1)})),1)}},{key:"col:log_usage",fn:function(e){var n=e.log_usage,s=e.domain;return a("div",{directives:[{name:"flex",rawName:"v-flex",value:{dir:"column"},expression:"{ dir: 'column' }"}]},[0!==n?a("ui-link",{attrs:{bullet:"",name:"user/stats/log",params:{domain:s,type:"usage"}}},[a("translate",[t._v("Usage Log")]),t._v("\n ("),a("span",[t._v(t._s(t._f("humanReadableSize")(n))+" ")]),t._v(")\n ")],1):t._e(),t._v(" "),a("ui-link",{attrs:{bullet:"",name:"user/stats/log",params:{domain:s,type:"error"}}},[a("translate",[t._v("Error Log")])],1)],1)}}]),model:{value:t.select,callback:function(e){t.select=e},expression:"select"}},"ui-api-table",{command:t.$commands.getStats,property:"domains",rowID:"domain",columns:{domain:{label:t.$gettext("Domain"),width:"30%"},bandwidth:t.$gettext("Bandwidth"),quota:{label:t.$gettext("Disk Usage"),filter:"humanReadableSize"},nsubdomains:t.$gettext("Subdomains"),log_usage:{label:t.$gettext("Logs"),filter:"humanReadableSize"}},actions:{awstats:t.$gettext("Make statistics publicly viewable"),unset:t.$gettext("Remove public stats")},verticalLayout:t.$_Client.isPhone},!1)),t._v(" "),a("ui-dialog",{attrs:{id:"MAKE_AWSTATS_PUBLIC"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Make statistics publicly viewable\n ")]),t._v(" "),a("translate",{attrs:{slot:"contentTitle","translate-n":t.select.length,"translate-plural":"Set selected domains to be publicly viewable"},slot:"contentTitle"},[t._v("\n Set selected domain to be publicly viewable.\n ")]),t._v(" "),a("ui-form-element",{attrs:{slot:"content"},slot:"content"},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Directory:\n ")]),t._v(" "),a("input-text",{attrs:{slot:"content",prefix:"/"},slot:"content",model:{value:t.awstatsDir,callback:function(e){t.awstatsDir=e},expression:"awstatsDir"}})],1),t._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"primary"},on:{click:t.makePublic},slot:"buttons"},[a("translate",[t._v("Set")])],1)],1),t._v(" "),a("ui-dialog",{attrs:{id:"UNSET_PUBLIC_AWSTATS"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Unset publicly viewable statistics\n ")]),t._v(" "),a("ui-form-element",{attrs:{slot:"content",vertical:""},slot:"content"},[a("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Directory\n ")]),t._v(" "),a("input-text",{attrs:{slot:"content",prefix:"/"},slot:"content",model:{value:t.awstatsDir,callback:function(e){t.awstatsDir=e},expression:"awstatsDir"}})],1),t._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"danger"},on:{click:t.unsetPublic},slot:"buttons"},[a("translate",[t._v("Un-Set")])],1)],1)],1)},s=[];a.d(e,"a",(function(){return n})),a.d(e,"b",(function(){return s}))},3219:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ui-r-table",t._b({attrs:{isCheckable:!1,isSortable:!1,disablePagination:"",hideBeforeControls:""},scopedSlots:t._u([{key:"col:label",fn:function(e){var a=e.label,n=e.id;return[n?t._t("label:"+n,[t._v("\n "+t._s(a)+"\n ")]):[t._v("\n "+t._s(a)+"\n ")]]}},{key:"col:value",fn:function(e){var n=e.value,s=e.bytes,l=e.id;return[l?t._t("value:"+l,[a("usage-table-value",t._b({},"usage-table-value",{bytes:s,value:n},!1))]):a("usage-table-value",t._b({},"usage-table-value",{bytes:s,value:n},!1))]}}],null,!0)},"ui-r-table",{columns:t.columns,rows:t.rows},!1))},s=[];a.d(e,"a",(function(){return n})),a.d(e,"b",(function(){return s}))},3241:function(t,e,a){"use strict";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return["string","number"].includes(typeof t.value)?a("span",{staticClass:"txt:bold"},[t.bytes?[t._v("\n "+t._s(t._f("humanReadableSize")(Number(t.value)))+"\n ")]:[t._v("\n "+t._s(t.value)+"\n ")]],2):"boolean"==typeof t.value?a("ui-badge",{attrs:{theme:t.value?"safe":"danger"}},[t.value?a("translate",[t._v("Enabled")]):a("translate",[t._v("Disabled")])],1):Array.isArray(t.value)?a("span",{staticClass:"txt:bold",domProps:{textContent:t._s(t.value.join(", "))}}):a("ui-progress-label",{attrs:{value:t.value.usage,limit:t.value.limit}},[a("template",{slot:"value"},[t.bytes?[t._v("\n "+t._s(t._f("humanReadableSize")(t.value.usage))+"\n ")]:[t._v("\n "+t._s(t.value.usage)+"\n ")]],2),t._v(" "),t.value.limit!==1/0?a("template",{slot:"limit"},[t.bytes?[t._v("\n "+t._s(t._f("humanReadableSize")(t.value.limit))+"\n ")]:[t._v("\n "+t._s(t.value.limit)+"\n ")]],2):t._e()],2)},s=[];a.d(e,"a",(function(){return n})),a.d(e,"b",(function(){return s}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/3.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/3.js new file mode 100644 index 0000000..3987f51 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/3.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{1554:function(e,t,a){"use strict";a.r(t);var n=a(3184),i=a(2061);for(var s in i)"default"!==s&&function(e){a.d(t,e,(function(){return i[e]}))}(s);a(2805);var r=a(0),l=Object(r.a)(i.default,n.a,n.b,!1,null,null,null);t.default=l.exports},2061:function(e,t,a){"use strict";a.r(t);var n=a(2062),i=a.n(n);for(var s in n)"default"!==s&&function(e){a.d(t,e,(function(){return n[e]}))}(s);t.default=i.a},2062:function(e,t,a){"use strict";var n=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=n(a(600)),s=a(33),r=n(a(2804)),l=function(e){return(0,i.default)(e,"yyyy-MM-dd",{awareOfUnicodeTokens:!0})},o={mixins:[s.$inputValidation],components:{Datepicker:r.default},model:{prop:"value",event:"change"},validate:"value",props:{value:{type:Date,required:!0,default:function(){return new Date}},min:{type:Date,required:!1},max:{type:Date,required:!1}},computed:{weekStart:function(){return this.$state.evolution.options.dateFormats.weekStart},date:function(){return l(this.value)},minDate:function(){return this.min?l(this.min):void 0},maxDate:function(){return this.max?l(this.max):void 0},disabledDates:function(){var e={};return void 0!==this.min&&(e.to=this.min),void 0!==this.max&&(e.from=this.max),e}},methods:{toDate:function(e){return new Date(e)}}};t.default=o},2063:function(e,t,a){var n=a(2806);"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);(0,a(5).default)("d702ef7e",n,!0,{})},2804:function(e,t,a){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var a=0;a0?this.utils.getDay(t)-1:6:this.utils.getDay(t)},days:function(){for(var e=this.pageDate,t=[],a=this.useUtc?new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),1)):new Date(e.getFullYear(),e.getMonth(),1,e.getHours(),e.getMinutes()),n=this.utils.daysInMonth(this.utils.getFullYear(a),this.utils.getMonth(a)),i=0;i=this.utils.getMonth(e)&&this.utils.getFullYear(this.disabledDates.to)>=this.utils.getFullYear(e)},nextMonth:function(){this.isNextMonthDisabled()||this.changeMonth(1)},isNextMonthDisabled:function(){if(!this.disabledDates||!this.disabledDates.from)return!1;var e=this.pageDate;return this.utils.getMonth(this.disabledDates.from)<=this.utils.getMonth(e)&&this.utils.getFullYear(this.disabledDates.from)<=this.utils.getFullYear(e)},isSelectedDate:function(e){return this.selectedDate&&this.utils.compareDates(this.selectedDate,e)},isDisabledDate:function(e){var t=this,a=!1;return void 0!==this.disabledDates&&(void 0!==this.disabledDates.dates&&this.disabledDates.dates.forEach((function(n){if(t.utils.compareDates(e,n))return a=!0,!0})),void 0!==this.disabledDates.to&&this.disabledDates.to&&ethis.disabledDates.from&&(a=!0),void 0!==this.disabledDates.ranges&&this.disabledDates.ranges.forEach((function(t){if(void 0!==t.from&&t.from&&void 0!==t.to&&t.to&&et.from)return a=!0,!0})),void 0!==this.disabledDates.days&&-1!==this.disabledDates.days.indexOf(this.utils.getDay(e))&&(a=!0),void 0!==this.disabledDates.daysOfMonth&&-1!==this.disabledDates.daysOfMonth.indexOf(this.utils.getDate(e))&&(a=!0),"function"==typeof this.disabledDates.customPredictor&&this.disabledDates.customPredictor(e)&&(a=!0),a)},isHighlightedDate:function(e){var t=this;if((!this.highlighted||!this.highlighted.includeDisabled)&&this.isDisabledDate(e))return!1;var a=!1;return void 0!==this.highlighted&&(void 0!==this.highlighted.dates&&this.highlighted.dates.forEach((function(n){if(t.utils.compareDates(e,n))return a=!0,!0})),this.isDefined(this.highlighted.from)&&this.isDefined(this.highlighted.to)&&(a=e>=this.highlighted.from&&e<=this.highlighted.to),void 0!==this.highlighted.days&&-1!==this.highlighted.days.indexOf(this.utils.getDay(e))&&(a=!0),void 0!==this.highlighted.daysOfMonth&&-1!==this.highlighted.daysOfMonth.indexOf(this.utils.getDate(e))&&(a=!0),"function"==typeof this.highlighted.customPredictor&&this.highlighted.customPredictor(e)&&(a=!0),a)},dayClasses:function(e){return{selected:e.isSelected,disabled:e.isDisabled,highlighted:e.isHighlighted,today:e.isToday,weekend:e.isWeekend,sat:e.isSaturday,sun:e.isSunday,"highlight-start":e.isHighlightStart,"highlight-end":e.isHighlightEnd}},isHighlightStart:function(e){return this.isHighlightedDate(e)&&this.highlighted.from instanceof Date&&this.utils.getFullYear(this.highlighted.from)===this.utils.getFullYear(e)&&this.utils.getMonth(this.highlighted.from)===this.utils.getMonth(e)&&this.utils.getDate(this.highlighted.from)===this.utils.getDate(e)},isHighlightEnd:function(e){return this.isHighlightedDate(e)&&this.highlighted.to instanceof Date&&this.utils.getFullYear(this.highlighted.to)===this.utils.getFullYear(e)&&this.utils.getMonth(this.highlighted.to)===this.utils.getMonth(e)&&this.utils.getDate(this.highlighted.to)===this.utils.getDate(e)},isDefined:function(e){return void 0!==e&&e}}};var D=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showDayView,expression:"showDayView"}],class:[e.calendarClass,"vdp-datepicker__calendar"],style:e.calendarStyle,on:{mousedown:function(e){e.preventDefault()}}},[e._t("beforeCalendarHeader"),e._v(" "),a("header",[a("span",{staticClass:"prev",class:{disabled:e.isLeftNavDisabled},on:{click:function(t){e.isRtl?e.nextMonth():e.previousMonth()}}},[e._v("<")]),e._v(" "),a("span",{staticClass:"day__month_btn",class:e.allowedToShowView("month")?"up":"",on:{click:e.showMonthCalendar}},[e._v(e._s(e.isYmd?e.currYearName:e.currMonthName)+" "+e._s(e.isYmd?e.currMonthName:e.currYearName))]),e._v(" "),a("span",{staticClass:"next",class:{disabled:e.isRightNavDisabled},on:{click:function(t){e.isRtl?e.previousMonth():e.nextMonth()}}},[e._v(">")])]),e._v(" "),a("div",{class:e.isRtl?"flex-rtl":""},[e._l(e.daysOfWeek,(function(t){return a("span",{key:t.timestamp,staticClass:"cell day-header"},[e._v(e._s(t))])})),e._v(" "),e.blankDays>0?e._l(e.blankDays,(function(e){return a("span",{key:e.timestamp,staticClass:"cell day blank"})})):e._e(),e._l(e.days,(function(t){return a("span",{key:t.timestamp,staticClass:"cell day",class:e.dayClasses(t),domProps:{innerHTML:e._s(e.dayCellContent(t))},on:{click:function(a){return e.selectDate(t)}}})}))],2)],2)};D._withStripped=!0;var b=h({render:D,staticRenderFns:[]},void 0,f,void 0,!1,void 0,void 0,void 0);const m={props:{showMonthView:Boolean,selectedDate:Date,pageDate:Date,pageTimestamp:Number,disabledDates:Object,calendarClass:[String,Object,Array],calendarStyle:Object,translation:Object,isRtl:Boolean,allowedToShowView:Function,useUtc:Boolean},data:function(){return{utils:d(this.useUtc)}},computed:{months:function(){for(var e=this.pageDate,t=[],a=this.useUtc?new Date(Date.UTC(e.getUTCFullYear(),0,e.getUTCDate())):new Date(e.getFullYear(),0,e.getDate(),e.getHours(),e.getMinutes()),n=0;n<12;n++)t.push({month:this.utils.getMonthName(n,this.translation.months),timestamp:a.getTime(),isSelected:this.isSelectedMonth(a),isDisabled:this.isDisabledMonth(a)}),this.utils.setMonth(a,this.utils.getMonth(a)+1);return t},pageYearName:function(){var e=this.translation.yearSuffix;return"".concat(this.utils.getFullYear(this.pageDate)).concat(e)},isLeftNavDisabled:function(){return this.isRtl?this.isNextYearDisabled(this.pageTimestamp):this.isPreviousYearDisabled(this.pageTimestamp)},isRightNavDisabled:function(){return this.isRtl?this.isPreviousYearDisabled(this.pageTimestamp):this.isNextYearDisabled(this.pageTimestamp)}},methods:{selectMonth:function(e){if(e.isDisabled)return!1;this.$emit("selectMonth",e)},changeYear:function(e){var t=this.pageDate;this.utils.setFullYear(t,this.utils.getFullYear(t)+e),this.$emit("changedYear",t)},previousYear:function(){this.isPreviousYearDisabled()||this.changeYear(-1)},isPreviousYearDisabled:function(){return!(!this.disabledDates||!this.disabledDates.to)&&this.utils.getFullYear(this.disabledDates.to)>=this.utils.getFullYear(this.pageDate)},nextYear:function(){this.isNextYearDisabled()||this.changeYear(1)},isNextYearDisabled:function(){return!(!this.disabledDates||!this.disabledDates.from)&&this.utils.getFullYear(this.disabledDates.from)<=this.utils.getFullYear(this.pageDate)},showYearCalendar:function(){this.$emit("showYearCalendar")},isSelectedMonth:function(e){return this.selectedDate&&this.utils.getFullYear(this.selectedDate)===this.utils.getFullYear(e)&&this.utils.getMonth(this.selectedDate)===this.utils.getMonth(e)},isDisabledMonth:function(e){var t=!1;return void 0!==this.disabledDates&&(void 0!==this.disabledDates.to&&this.disabledDates.to&&(this.utils.getMonth(e)this.utils.getMonth(this.disabledDates.from)&&this.utils.getFullYear(e)>=this.utils.getFullYear(this.disabledDates.from)||this.utils.getFullYear(e)>this.utils.getFullYear(this.disabledDates.from))&&(t=!0),"function"==typeof this.disabledDates.customPredictor&&this.disabledDates.customPredictor(e)&&(t=!0),t)}}};var v=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showMonthView,expression:"showMonthView"}],class:[e.calendarClass,"vdp-datepicker__calendar"],style:e.calendarStyle,on:{mousedown:function(e){e.preventDefault()}}},[e._t("beforeCalendarHeader"),e._v(" "),a("header",[a("span",{staticClass:"prev",class:{disabled:e.isLeftNavDisabled},on:{click:function(t){e.isRtl?e.nextYear():e.previousYear()}}},[e._v("<")]),e._v(" "),a("span",{staticClass:"month__year_btn",class:e.allowedToShowView("year")?"up":"",on:{click:e.showYearCalendar}},[e._v(e._s(e.pageYearName))]),e._v(" "),a("span",{staticClass:"next",class:{disabled:e.isRightNavDisabled},on:{click:function(t){e.isRtl?e.previousYear():e.nextYear()}}},[e._v(">")])]),e._v(" "),e._l(e.months,(function(t){return a("span",{key:t.timestamp,staticClass:"cell month",class:{selected:t.isSelected,disabled:t.isDisabled},on:{click:function(a){return a.stopPropagation(),e.selectMonth(t)}}},[e._v(e._s(t.month))])}))],2)};v._withStripped=!0;var A=h({render:v,staticRenderFns:[]},void 0,m,void 0,!1,void 0,void 0,void 0);const y={props:{showYearView:Boolean,selectedDate:Date,pageDate:Date,pageTimestamp:Number,disabledDates:Object,highlighted:Object,calendarClass:[String,Object,Array],calendarStyle:Object,translation:Object,isRtl:Boolean,allowedToShowView:Function,useUtc:Boolean},computed:{years:function(){for(var e=this.pageDate,t=[],a=this.useUtc?new Date(Date.UTC(10*Math.floor(e.getUTCFullYear()/10),e.getUTCMonth(),e.getUTCDate())):new Date(10*Math.floor(e.getFullYear()/10),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes()),n=0;n<10;n++)t.push({year:this.utils.getFullYear(a),timestamp:a.getTime(),isSelected:this.isSelectedYear(a),isDisabled:this.isDisabledYear(a)}),this.utils.setFullYear(a,this.utils.getFullYear(a)+1);return t},getPageDecade:function(){var e=10*Math.floor(this.utils.getFullYear(this.pageDate)/10),t=e+9,a=this.translation.yearSuffix;return"".concat(e," - ").concat(t).concat(a)},isLeftNavDisabled:function(){return this.isRtl?this.isNextDecadeDisabled(this.pageTimestamp):this.isPreviousDecadeDisabled(this.pageTimestamp)},isRightNavDisabled:function(){return this.isRtl?this.isPreviousDecadeDisabled(this.pageTimestamp):this.isNextDecadeDisabled(this.pageTimestamp)}},data:function(){return{utils:d(this.useUtc)}},methods:{selectYear:function(e){if(e.isDisabled)return!1;this.$emit("selectYear",e)},changeYear:function(e){var t=this.pageDate;this.utils.setFullYear(t,this.utils.getFullYear(t)+e),this.$emit("changedDecade",t)},previousDecade:function(){if(this.isPreviousDecadeDisabled())return!1;this.changeYear(-10)},isPreviousDecadeDisabled:function(){return!(!this.disabledDates||!this.disabledDates.to)&&this.utils.getFullYear(this.disabledDates.to)>10*Math.floor(this.utils.getFullYear(this.pageDate)/10)-1},nextDecade:function(){if(this.isNextDecadeDisabled())return!1;this.changeYear(10)},isNextDecadeDisabled:function(){return!(!this.disabledDates||!this.disabledDates.from)&&this.utils.getFullYear(this.disabledDates.from)<10*Math.ceil(this.utils.getFullYear(this.pageDate)/10)},isSelectedYear:function(e){return this.selectedDate&&this.utils.getFullYear(this.selectedDate)===this.utils.getFullYear(e)},isDisabledYear:function(e){var t=!1;return!(void 0===this.disabledDates||!this.disabledDates)&&(void 0!==this.disabledDates.to&&this.disabledDates.to&&this.utils.getFullYear(e)this.utils.getFullYear(this.disabledDates.from)&&(t=!0),"function"==typeof this.disabledDates.customPredictor&&this.disabledDates.customPredictor(e)&&(t=!0),t)}}};var _=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showYearView,expression:"showYearView"}],class:[e.calendarClass,"vdp-datepicker__calendar"],style:e.calendarStyle,on:{mousedown:function(e){e.preventDefault()}}},[e._t("beforeCalendarHeader"),e._v(" "),a("header",[a("span",{staticClass:"prev",class:{disabled:e.isLeftNavDisabled},on:{click:function(t){e.isRtl?e.nextDecade():e.previousDecade()}}},[e._v("<")]),e._v(" "),a("span",[e._v(e._s(e.getPageDecade))]),e._v(" "),a("span",{staticClass:"next",class:{disabled:e.isRightNavDisabled},on:{click:function(t){e.isRtl?e.previousDecade():e.nextDecade()}}},[e._v(">")])]),e._v(" "),e._l(e.years,(function(t){return a("span",{key:t.timestamp,staticClass:"cell year",class:{selected:t.isSelected,disabled:t.isDisabled},on:{click:function(a){return a.stopPropagation(),e.selectYear(t)}}},[e._v(e._s(t.year))])}))],2)};_._withStripped=!0;var w={components:{DateInput:g,PickerDay:b,PickerMonth:A,PickerYear:h({render:_,staticRenderFns:[]},void 0,y,void 0,!1,void 0,void 0,void 0)},props:{value:{validator:function(e){return c.validateDateInput(e)}},name:String,refName:String,id:String,format:{type:[String,Function],default:"dd MMM yyyy"},language:{type:Object,default:function(){return l}},openDate:{validator:function(e){return c.validateDateInput(e)}},dayCellContent:Function,fullMonthName:Boolean,disabledDates:Object,highlighted:Object,placeholder:String,inline:Boolean,calendarClass:[String,Object,Array],inputClass:[String,Object,Array],wrapperClass:[String,Object,Array],mondayFirst:Boolean,clearButton:Boolean,clearButtonIcon:String,calendarButton:Boolean,calendarButtonIcon:String,calendarButtonIconContent:String,bootstrapStyling:Boolean,initialView:String,disabled:Boolean,required:Boolean,typeable:Boolean,useUtc:Boolean,minimumView:{type:String,default:"day"},maximumView:{type:String,default:"year"}},data:function(){var e=this.openDate?new Date(this.openDate):new Date,t=d(this.useUtc);return{pageTimestamp:t.setDate(e,1),selectedDate:null,showDayView:!1,showMonthView:!1,showYearView:!1,calendarHeight:0,resetTypedDate:new Date,utils:t}},watch:{value:function(e){this.setValue(e)},openDate:function(){this.setPageDate()},initialView:function(){this.setInitialView()}},computed:{computedInitialView:function(){return this.initialView?this.initialView:this.minimumView},pageDate:function(){return new Date(this.pageTimestamp)},translation:function(){return this.language},calendarStyle:function(){return{position:this.isInline?"static":void 0}},isOpen:function(){return this.showDayView||this.showMonthView||this.showYearView},isInline:function(){return!!this.inline},isRtl:function(){return!0===this.translation.rtl}},methods:{resetDefaultPageDate:function(){null!==this.selectedDate?this.setPageDate(this.selectedDate):this.setPageDate()},showCalendar:function(){return!this.disabled&&!this.isInline&&(this.isOpen?this.close(!0):void this.setInitialView())},setInitialView:function(){var e=this.computedInitialView;if(!this.allowedToShowView(e))throw new Error("initialView '".concat(this.initialView,"' cannot be rendered based on minimum '").concat(this.minimumView,"' and maximum '").concat(this.maximumView,"'"));switch(e){case"year":this.showYearCalendar();break;case"month":this.showMonthCalendar();break;default:this.showDayCalendar()}},allowedToShowView:function(e){var t=["day","month","year"],a=t.indexOf(this.minimumView),n=t.indexOf(this.maximumView),i=t.indexOf(e);return i>=a&&i<=n},showDayCalendar:function(){return!!this.allowedToShowView("day")&&(this.close(),this.showDayView=!0,!0)},showMonthCalendar:function(){return!!this.allowedToShowView("month")&&(this.close(),this.showMonthView=!0,!0)},showYearCalendar:function(){return!!this.allowedToShowView("year")&&(this.close(),this.showYearView=!0,!0)},setDate:function(e){var t=new Date(e);this.selectedDate=t,this.setPageDate(t),this.$emit("selected",t),this.$emit("input",t)},clearDate:function(){this.selectedDate=null,this.setPageDate(),this.$emit("selected",null),this.$emit("input",null),this.$emit("cleared")},selectDate:function(e){this.setDate(e.timestamp),this.isInline||this.close(!0),this.resetTypedDate=new Date},selectDisabledDate:function(e){this.$emit("selectedDisabled",e)},selectMonth:function(e){var t=new Date(e.timestamp);this.allowedToShowView("day")?(this.setPageDate(t),this.$emit("changedMonth",e),this.showDayCalendar()):this.selectDate(e)},selectYear:function(e){var t=new Date(e.timestamp);this.allowedToShowView("month")?(this.setPageDate(t),this.$emit("changedYear",e),this.showMonthCalendar()):this.selectDate(e)},setValue:function(e){if("string"==typeof e||"number"==typeof e){var t=new Date(e);e=isNaN(t.valueOf())?null:t}if(!e)return this.setPageDate(),void(this.selectedDate=null);this.selectedDate=e,this.setPageDate(e)},setPageDate:function(e){e||(e=this.openDate?new Date(this.openDate):new Date),this.pageTimestamp=this.utils.setDate(new Date(e),1)},handleChangedMonthFromDayPicker:function(e){this.setPageDate(e),this.$emit("changedMonth",e)},setTypedDate:function(e){this.setDate(e.getTime())},close:function(e){this.showDayView=this.showMonthView=this.showYearView=!1,this.isInline||(e&&this.$emit("closed"),document.removeEventListener("click",this.clickOutside,!1))},init:function(){this.value&&this.setValue(this.value),this.isInline&&this.setInitialView()}},mounted:function(){this.init()}},C="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());var k=document.head||document.getElementsByTagName("head")[0],B={};var M=function(e){return function(e,t){return function(e,t){var a=C?t.media||"default":e,n=B[a]||(B[a]={ids:new Set,styles:[]});if(!n.ids.has(e)){n.ids.add(e);var i=t.source;if(t.map&&(i+="\n/*# sourceURL="+t.map.sources[0]+" */",i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),n.element||(n.element=document.createElement("style"),n.element.type="text/css",t.media&&n.element.setAttribute("media",t.media),k.appendChild(n.element)),"styleSheet"in n.element)n.styles.push(i),n.element.styleSheet.cssText=n.styles.filter(Boolean).join("\n");else{var s=n.ids.size-1,r=document.createTextNode(i),l=n.element.childNodes;l[s]&&n.element.removeChild(l[s]),l.length?n.element.insertBefore(r,l[s]):n.element.appendChild(r)}}}(e,t)}};const E=w;var x=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"vdp-datepicker",class:[e.wrapperClass,e.isRtl?"rtl":""]},[a("date-input",{attrs:{selectedDate:e.selectedDate,resetTypedDate:e.resetTypedDate,format:e.format,translation:e.translation,inline:e.inline,id:e.id,name:e.name,refName:e.refName,openDate:e.openDate,placeholder:e.placeholder,inputClass:e.inputClass,typeable:e.typeable,clearButton:e.clearButton,clearButtonIcon:e.clearButtonIcon,calendarButton:e.calendarButton,calendarButtonIcon:e.calendarButtonIcon,calendarButtonIconContent:e.calendarButtonIconContent,disabled:e.disabled,required:e.required,bootstrapStyling:e.bootstrapStyling,"use-utc":e.useUtc},on:{showCalendar:e.showCalendar,closeCalendar:e.close,typedDate:e.setTypedDate,clearDate:e.clearDate}},[e._t("afterDateInput",null,{slot:"afterDateInput"})],2),e._v(" "),e.allowedToShowView("day")?a("picker-day",{attrs:{pageDate:e.pageDate,selectedDate:e.selectedDate,showDayView:e.showDayView,fullMonthName:e.fullMonthName,allowedToShowView:e.allowedToShowView,disabledDates:e.disabledDates,highlighted:e.highlighted,calendarClass:e.calendarClass,calendarStyle:e.calendarStyle,translation:e.translation,pageTimestamp:e.pageTimestamp,isRtl:e.isRtl,mondayFirst:e.mondayFirst,dayCellContent:e.dayCellContent,"use-utc":e.useUtc},on:{changedMonth:e.handleChangedMonthFromDayPicker,selectDate:e.selectDate,showMonthCalendar:e.showMonthCalendar,selectedDisabled:e.selectDisabledDate}},[e._t("beforeCalendarHeader",null,{slot:"beforeCalendarHeader"})],2):e._e(),e._v(" "),e.allowedToShowView("month")?a("picker-month",{attrs:{pageDate:e.pageDate,selectedDate:e.selectedDate,showMonthView:e.showMonthView,allowedToShowView:e.allowedToShowView,disabledDates:e.disabledDates,calendarClass:e.calendarClass,calendarStyle:e.calendarStyle,translation:e.translation,isRtl:e.isRtl,"use-utc":e.useUtc},on:{selectMonth:e.selectMonth,showYearCalendar:e.showYearCalendar,changedYear:e.setPageDate}},[e._t("beforeCalendarHeader",null,{slot:"beforeCalendarHeader"})],2):e._e(),e._v(" "),e.allowedToShowView("year")?a("picker-year",{attrs:{pageDate:e.pageDate,selectedDate:e.selectedDate,showYearView:e.showYearView,allowedToShowView:e.allowedToShowView,disabledDates:e.disabledDates,calendarClass:e.calendarClass,calendarStyle:e.calendarStyle,translation:e.translation,isRtl:e.isRtl,"use-utc":e.useUtc},on:{selectYear:e.selectYear,changedDecade:e.setPageDate}},[e._t("beforeCalendarHeader",null,{slot:"beforeCalendarHeader"})],2):e._e()],1)};x._withStripped=!0;var S=h({render:x,staticRenderFns:[]},(function(e){e&&e("data-v-64ca2bb5_0",{source:".rtl {\n direction: rtl;\n}\n.vdp-datepicker {\n position: relative;\n text-align: left;\n}\n.vdp-datepicker * {\n box-sizing: border-box;\n}\n.vdp-datepicker__calendar {\n position: absolute;\n z-index: 100;\n background: #fff;\n width: 300px;\n border: 1px solid #ccc;\n}\n.vdp-datepicker__calendar header {\n display: block;\n line-height: 40px;\n}\n.vdp-datepicker__calendar header span {\n display: inline-block;\n text-align: center;\n width: 71.42857142857143%;\n float: left;\n}\n.vdp-datepicker__calendar header .prev,\n.vdp-datepicker__calendar header .next {\n width: 14.285714285714286%;\n float: left;\n text-indent: -10000px;\n position: relative;\n}\n.vdp-datepicker__calendar header .prev:after,\n.vdp-datepicker__calendar header .next:after {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n border: 6px solid transparent;\n}\n.vdp-datepicker__calendar header .prev:after {\n border-right: 10px solid #000;\n margin-left: -5px;\n}\n.vdp-datepicker__calendar header .prev.disabled:after {\n border-right: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .next:after {\n border-left: 10px solid #000;\n margin-left: 5px;\n}\n.vdp-datepicker__calendar header .next.disabled:after {\n border-left: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled),\n.vdp-datepicker__calendar header .next:not(.disabled),\n.vdp-datepicker__calendar header .up:not(.disabled) {\n cursor: pointer;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\n background: #eee;\n}\n.vdp-datepicker__calendar .disabled {\n color: #ddd;\n cursor: default;\n}\n.vdp-datepicker__calendar .flex-rtl {\n display: flex;\n width: inherit;\n flex-wrap: wrap;\n}\n.vdp-datepicker__calendar .cell {\n display: inline-block;\n padding: 0 5px;\n width: 14.285714285714286%;\n height: 40px;\n line-height: 40px;\n text-align: center;\n vertical-align: middle;\n border: 1px solid transparent;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\n cursor: pointer;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\n border: 1px solid #4bd;\n}\n.vdp-datepicker__calendar .cell.selected {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected:hover {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected.highlighted {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.highlighted {\n background: #cae5ed;\n}\n.vdp-datepicker__calendar .cell.highlighted.disabled {\n color: #a3a3a3;\n}\n.vdp-datepicker__calendar .cell.grey {\n color: #888;\n}\n.vdp-datepicker__calendar .cell.grey:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header {\n font-size: 75%;\n white-space: nowrap;\n cursor: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .month,\n.vdp-datepicker__calendar .year {\n width: 33.333%;\n}\n.vdp-datepicker__clear-button,\n.vdp-datepicker__calendar-button {\n cursor: pointer;\n font-style: normal;\n}\n.vdp-datepicker__clear-button.disabled,\n.vdp-datepicker__calendar-button.disabled {\n color: #999;\n cursor: default;\n}\n",map:{version:3,sources:["Datepicker.vue"],names:[],mappings:"AAAA;EACE,cAAc;AAChB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,YAAY;EACZ,gBAAgB;EAChB,YAAY;EACZ,sBAAsB;AACxB;AACA;EACE,cAAc;EACd,iBAAiB;AACnB;AACA;EACE,qBAAqB;EACrB,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;AACb;AACA;;EAEE,0BAA0B;EAC1B,WAAW;EACX,qBAAqB;EACrB,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,4CAA4C;EAC5C,6BAA6B;AAC/B;AACA;EACE,6BAA6B;EAC7B,iBAAiB;AACnB;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,4BAA4B;EAC5B,gBAAgB;AAClB;AACA;EACE,4BAA4B;AAC9B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,eAAe;AACjB;AACA;EACE,aAAa;EACb,cAAc;EACd,eAAe;AACjB;AACA;EACE,qBAAqB;EACrB,cAAc;EACd,0BAA0B;EAC1B,YAAY;EACZ,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,6BAA6B;AAC/B;AACA;;;EAGE,eAAe;AACjB;AACA;;;EAGE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;AAChB;AACA;EACE,WAAW;AACb;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,mBAAmB;EACnB,eAAe;AACjB;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,cAAc;AAChB;AACA;;EAEE,eAAe;EACf,kBAAkB;AACpB;AACA;;EAEE,WAAW;EACX,eAAe;AACjB",file:"Datepicker.vue",sourcesContent:[".rtl {\n direction: rtl;\n}\n.vdp-datepicker {\n position: relative;\n text-align: left;\n}\n.vdp-datepicker * {\n box-sizing: border-box;\n}\n.vdp-datepicker__calendar {\n position: absolute;\n z-index: 100;\n background: #fff;\n width: 300px;\n border: 1px solid #ccc;\n}\n.vdp-datepicker__calendar header {\n display: block;\n line-height: 40px;\n}\n.vdp-datepicker__calendar header span {\n display: inline-block;\n text-align: center;\n width: 71.42857142857143%;\n float: left;\n}\n.vdp-datepicker__calendar header .prev,\n.vdp-datepicker__calendar header .next {\n width: 14.285714285714286%;\n float: left;\n text-indent: -10000px;\n position: relative;\n}\n.vdp-datepicker__calendar header .prev:after,\n.vdp-datepicker__calendar header .next:after {\n content: '';\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n border: 6px solid transparent;\n}\n.vdp-datepicker__calendar header .prev:after {\n border-right: 10px solid #000;\n margin-left: -5px;\n}\n.vdp-datepicker__calendar header .prev.disabled:after {\n border-right: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .next:after {\n border-left: 10px solid #000;\n margin-left: 5px;\n}\n.vdp-datepicker__calendar header .next.disabled:after {\n border-left: 10px solid #ddd;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled),\n.vdp-datepicker__calendar header .next:not(.disabled),\n.vdp-datepicker__calendar header .up:not(.disabled) {\n cursor: pointer;\n}\n.vdp-datepicker__calendar header .prev:not(.disabled):hover,\n.vdp-datepicker__calendar header .next:not(.disabled):hover,\n.vdp-datepicker__calendar header .up:not(.disabled):hover {\n background: #eee;\n}\n.vdp-datepicker__calendar .disabled {\n color: #ddd;\n cursor: default;\n}\n.vdp-datepicker__calendar .flex-rtl {\n display: flex;\n width: inherit;\n flex-wrap: wrap;\n}\n.vdp-datepicker__calendar .cell {\n display: inline-block;\n padding: 0 5px;\n width: 14.285714285714286%;\n height: 40px;\n line-height: 40px;\n text-align: center;\n vertical-align: middle;\n border: 1px solid transparent;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year {\n cursor: pointer;\n}\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,\n.vdp-datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {\n border: 1px solid #4bd;\n}\n.vdp-datepicker__calendar .cell.selected {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected:hover {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.selected.highlighted {\n background: #4bd;\n}\n.vdp-datepicker__calendar .cell.highlighted {\n background: #cae5ed;\n}\n.vdp-datepicker__calendar .cell.highlighted.disabled {\n color: #a3a3a3;\n}\n.vdp-datepicker__calendar .cell.grey {\n color: #888;\n}\n.vdp-datepicker__calendar .cell.grey:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header {\n font-size: 75%;\n white-space: nowrap;\n cursor: inherit;\n}\n.vdp-datepicker__calendar .cell.day-header:hover {\n background: inherit;\n}\n.vdp-datepicker__calendar .month,\n.vdp-datepicker__calendar .year {\n width: 33.333%;\n}\n.vdp-datepicker__clear-button,\n.vdp-datepicker__calendar-button {\n cursor: pointer;\n font-style: normal;\n}\n.vdp-datepicker__clear-button.disabled,\n.vdp-datepicker__calendar-button.disabled {\n color: #999;\n cursor: default;\n}\n"]},media:void 0})}),E,void 0,!1,void 0,M,void 0);t.default=S},2805:function(e,t,a){"use strict";var n=a(2063);a.n(n).a},2806:function(e,t,a){(e.exports=a(4)(!0)).push([e.i,".inputDate .vdp-datepicker,.inputDate .vdp-datepicker input{width:100%}","",{version:3,sources:["/home/evo/evolution/src/js/pages/user/email/vacations/_components/input-date.vue"],names:[],mappings:"AA+EA,4DAGgB,UAAW,CAAA",file:"input-date.vue?vue&type=style&index=0&lang=scss&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.inputDate {\n .vdp-datepicker {\n width: 100%;\n input { width: 100%; }\n }\n \n}\n"],sourceRoot:""}])},3184:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-input-group",{staticClass:"width:100% inputDate"},[a("datepicker",{attrs:{slot:"input",disabledDates:e.disabledDates,value:e.date,"monday-first":"monday"===e.weekStart},on:{selected:function(t){return e.$emit("change",t)}},slot:"input"}),e._v(" "),e._l(["left","right"],(function(t){return a("template",{slot:"additions:"+t},[e._t("additions:"+t)],2)}))],2)},i=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return i}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/30.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/30.js new file mode 100644 index 0000000..66e265e --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/30.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[30],{1343:function(e,t,n){"use strict";n.r(t);var a=n(3037),s=n(1859);for(var i in s)"default"!==i&&function(e){n.d(t,e,(function(){return s[e]}))}(i);n(2665);var r=n(0),o=n(2667),u=n.n(o),l=Object(r.a)(s.default,a.a,a.b,!1,null,"66a184f2",null);"function"==typeof u.a&&u()(l),t.default=l.exports},1434:function(e,t,n){"use strict";var a=n(10),s=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.getUsersCreatedDate=t.getModifyUserData=t.getUser=t.getUsers=void 0;var i=s(n(2)),r=s(n(30)),o=a(n(1499)),u=a(n(6));function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t\\n").filter(e.notEmpty).join("
")},remote_servers:e.flow((function(e){return e||{}}),e.mapValues((function(t,n){var s=t.ssl,r=t.port,a=e.convert.toAppBoolean(s)?"https":"http";return"".concat(a,"://").concat(n,":").concat(r)})))})))}});t.getUsers=l;var u=o.default.get({id:"ADMINS",url:"/CMD_ADMIN_SHOW",params:{bytes:!0},pagination:!0,after:function(e){return e.flow(e.wrap("admins"),e.moveProp({"admins.reasons":"reasons"}),e.mapProp("admins",e.toTable(e.mapArrayProps({nusers:e.convert.toAppNumber,suspended:e.flow(e.getProp("value"),e.isEqual("no:"),e.not),reason:e.feedWith(1,(function(e){return e.suspended.reason||"none"})),vdomains:e.toLimitedUsage(),bandwidth:e.toLimitedUsage(),quota:e.toLimitedUsage()}))))}});t.getAdmins=u},1708:function(e,t,n){"use strict";n.r(t);var s=n(1709),r=n.n(s);for(var a in s)"default"!==a&&function(e){n.d(t,e,(function(){return s[e]}))}(a);t.default=r.a},1709:function(e,t,n){"use strict";var s=n(1);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(2)),a=n(1539),o=n(1466),i=s(n(1493)),l=s(n(1467));function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,s)}return n}var c={preload:a.getAdmins,commands:{getAdmins:a.getAdmins},components:{CreateMessageDialog:i.default,SuspendUserDialog:l.default},data:function(){return{select:[]}},computed:{reasons:l.default.$exports.reasons},methods:{reloadTable:function(){this.$reset(),this.$reloadApiTable()},deleteAdmins:function(){(0,o.deleteUsers)({select:this.select,location:"CMD_ADMIN_SHOW"}).then(this.reloadTable)},suspendAdmins:function(e){(0,o.suspendUsers)(function(e){for(var t=1;t🔒","").trim()}}))}))}))}});e.getCrons=p;var u=s.default.get({id:"BACKUP_ENCRYPTION_STATUS",url:i,after:function(t){return t.flow(t.project({enabled:"settings.allow_backup_encryption",password:"settings.encryption_password"}),t.mapProp("enabled",t.convert.toAppBoolean))}});e.getEncryptionStatus=u;var c=s.default.select({url:i,params:{duplicate:!0}});e.duplicateCrons=c;var d=s.default.select({url:i,params:{delete:!0}});e.deleteCrons=d;var f=s.default.post({url:i,params:{action:"setting"},schema:{message:s.default.REQUIRED_BOOL,local_ns:s.default.REQUIRED_BOOL,restore_spf:s.default.REQUIRED_BOOL}});e.updateSettings=f;var _=s.default.get({id:"USER_BACKUP_SETTINGS",url:i,after:function(t){return t.flow(t.project({local_ns:"settings.local_ns",message:"settings.message",restore_spf:"settings.restore_spf"}),t.mapValues(t.convert.toAppBoolean))}});e.getSettings=_;var h=s.default.get({id:"USER_BACKUP_SCHEDULE_OPTIONS",url:i,after:function(t){return t.flow(t.project({settings:"settings","settings.append":"append_to_path",where:"where",users:"users",location:"files_location"}),t.mapProps({users:t.flow(t.deleteProp("info"),t.toArray,t.mapArray(t.getProp("user"))),settings:t.flow(t.project({ip:"ftp_ip",password:"ftp_password",path:"ftp_path",port:"ftp_port",secure:"ftp_secure",username:"ftp_username",append:"append"}),t.mapProps({secure:t.convert.toAppBoolean,append:function(t){var e=Object.values(t),n=e.find((function(t){return t.selected})),a=e.reduce((function(t,e){return l({},t,(0,o.default)({},e.value,e.text))}),{});return{value:n.value,options:a}}}))}))}});e.getScheduleOptions=h;var w=s.default.get({id:"USER_BACKUP_RESTORE_OPTIONS",url:i,after:function(t){return t.flow(t.project({settings:"settings",where:"where",location:"files_location",ips:"ip_list",files:"files"}),t.mapProps({files:t.flow(t.deleteProp("info"),t.toArray),settings:t.flow(t.getProps(["ftp_ip","ftp_password","ftp_path","ftp_port","ftp_secure","ftp_username"]),t.mapProps({ftp_secure:t.convert.toAppBoolean})),ips:function(t){var e=Object.values(t),n=e.find((function(t){return t.selected})),a=e.reduce((function(t,e){return l({},t,(0,o.default)({},e.value,e.text))}),{});return{value:n.value,options:a}}}))}});e.getRestoreOptions=w;var v=s.default.post({url:i,params:{action:"create",form_version:"3"},schema:{who:s.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:s.default.OPTIONAL_BOOL,when:s.default.REQUIRED_STRING,minute:s.default.OPTIONAL_STRING,hour:s.default.OPTIONAL_STRING,dayofmonth:s.default.OPTIONAL_STRING,month:s.default.OPTIONAL_STRING,dayofweek:s.default.OPTIONAL_STRING,where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING,append_to_path:s.default.OPTIONAL_STRING,custom_append:s.default.OPTIONAL_STRING,encryption_password:s.default.OPTIONAL_STRING}});e.scheduleBackup=v;var m=s.default.get({url:i,id:"USER_BACKUP_RESTORE_FILES",params:{action:"update_files"},schema:{where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING},after:function(t){return t.flow(t.getProp("files"),t.deleteProp("info"),t.toArray)}});e.getRestoreFiles=m;var O=s.default.post({url:i,params:{action:"restore"},schema:{where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING,ip_choice:s.default.REQUIRED_STRING,ip:s.default.OPTIONAL_STRING,select:{type:Array,required:!0},encryption_password:s.default.OPTIONAL_STRING}});e.restoreBackup=O;var D=s.default.post({url:"/CMD_USER_BACKUP_MODIFY",id:"USER_BACKUP_CRON",schema:{id:s.default.REQUIRED_STRING},notifySuccess:!1,notifyError:!0,after:function(t){return t.flow(t.moveProp({append_to_path:"append","settings.where":"where"}),t.mapProps({settings:t.mapProp("ftp_secure",t.convert.toAppBoolean),who:t.mapProps({skip_suspended:t.convert.toAppBoolean,users:t.flow(t.deleteProp("info"),t.toArray,t.mapArray(t.getProp("user"))),select:t.feedWith(1,t.flow(t.getProp("users"),t.deleteProp("info"),t.filter(t.flow(t.getProp("checkbox"),t.isEqual("checked"))),t.mapValues(t.getProp("user")),t.toArray))}),append:t.flow(t.mapProps({options:t.feedWith(1,t.transformObject((function(t){var e=t.value,n=t.text;return(0,o.default)({},e,n)}))),value:t.feedWith(1,t.flow(t.find(t.getProp("selected")),t.getProp("value")))}),t.getProps(["value","options"])),custom_append:t.feedWith(1,t.getProp("append.custom_append"))}))}});e.getCron=D;var I=s.default.post({url:i,params:{action:"modify",when:"cron",form_version:"3"},schema:{id:s.default.REQUIRED_STRING,who:s.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:s.default.OPTIONAL_BOOL,minute:s.default.REQUIRED_STRING,hour:s.default.REQUIRED_STRING,dayofmonth:s.default.REQUIRED_STRING,month:s.default.REQUIRED_STRING,dayofweek:s.default.REQUIRED_STRING,where:s.default.REQUIRED_STRING,ftp_ip:s.default.OPTIONAL_STRING,ftp_username:s.default.OPTIONAL_STRING,ftp_password:s.default.OPTIONAL_STRING,ftp_path:s.default.OPTIONAL_STRING,ftp_port:s.default.OPTIONAL_STRING,ftp_secure:s.default.OPTIONAL_STRING,append_to_path:s.default.REQUIRED_STRING,custom_append:s.default.OPTIONAL_STRING}});e.updateCron=I},1452:function(t,e,n){"use strict";var a=n(10),o=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.modifyBackup=e.runCrons=e.deleteCrons=e.duplicateCrons=e.restoreBackup=e.scheduleBackup=e.updateSettings=e.killBackup=e.getCronDetails=e.getRestoreFiles=e.getRestoreOptions=e.getScheduleOptions=e.getBackupSettings=e.getCurrentBackup=e.getCurrentBackups=e.getCrons=e.getEncryptionStatus=void 0;var s=o(n(2)),r=o(n(30)),l=n(1432),i=o(n(1476)),p=a(n(1477));function u(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function c(t){for(var e=1;e🔒","").trim()}}))})))}});e.getCrons=_;var h=d("ADMIN_CURRENT_BACKUPS",{after:function(t){return t.flow(t.getProp("current_backups"),t.toTable(t.mapArray(t.flow(t.deleteProp("details"),t.mapProps({progress:function(t){return Number(t.slice(0,-1))}})))))},silent:!0});e.getCurrentBackups=h;var w=d("ADMIN_CURRENT_BACKUP",{params:{action:"monitor"},schema:{pid:r.default.REQUIRED_STRING},after:function(t){return t.flow(t.getProp("backup_info.0"),t.mapProp("start",t.convert.toAppDate))}});e.getCurrentBackup=w;var v=d("ADMIN_BACKUP_SETTINGS",{mapResponse:p.getBackupSettings});e.getBackupSettings=v;var m=d("ADMIN_SCHEDULE_OPTIONS",{after:function(t){return t.flow(t.project({who:"who.who","whoData.users":"data_list","whoData.skip_suspended":"who.skip_suspended",where:"where","whereData.append_to_path":"settings.append_to_path","whereData.ftp_ip":"settings.ftp_ip","whereData.ftp_username":"settings.ftp_username","whereData.ftp_password":"settings.ftp_password","whereData.ftp_path":"settings.ftp_path","whereData.ftp_port":"settings.ftp_port","whereData.ftp_secure":"settings.ftp_secure","whereData.local_path":"settings.local_path",appendOptions:"append_to_path",usertypes:"who.users"}),t.mapProps({whoData:t.mapProps({skip_suspended:t.convert.toAppBoolean}),whereData:t.mapProps({ftp_secure:t.convert.toAppBoolean}),appendOptions:t.transformObject((function(t){var e=t.value,n=t.text;return(0,s.default)({},e,n)})),usertypes:t.flow(t.deleteProp("info"),t.transformObject((function(t){var e=t.user,n=t.type;return(0,s.default)({},e,n.toLowerCase()||"user")})))}))}});e.getScheduleOptions=m;var O=d("ADMIN_RESTORE_OPTIONS",{after:function(t){return t.flow(t.project({where:"where","whereData.ftp_ip":"settings.ftp_ip","whereData.ftp_username":"settings.ftp_username","whereData.ftp_password":"settings.ftp_password","whereData.ftp_path":"settings.ftp_path","whereData.ftp_port":"settings.ftp_port","whereData.ftp_secure":"settings.ftp_secure","whereData.local_path":"settings.local_path",ips:"ip_list","filesData.list":"files","filesData.location":"files_location","filesData.home_override":"create_user_home_override"}),t.mapProps({whereData:t.mapProps({ftp_secure:t.convert.toAppBoolean}),ips:t.toSelect,filesData:t.mapProps({list:t.flow(t.deleteProp("info"),t.toArray,t.mapArray((function(t){var e=t.file,n=t.info,a={file:e};return n.issues&&n.issues.length&&(a.issues=n.issues),"yes"===n.hide_checkbox&&(a.disabled=!0),a}))),home_override:function(e){return!!e&&t.toSelect(e)}})}))}});e.getRestoreOptions=O;var D=r.default.post({id:"ADMIN_RESTORE_FILES",url:"/CMD_ADMIN_BACKUP",params:{action:"update_files",json:!0},schema:{where:r.default.REQUIRED_STRING,ftp_ip:r.default.OPTIONAL_STRING,ftp_username:r.default.OPTIONAL_STRING,ftp_password:r.default.OPTIONAL_STRING,ftp_path:r.default.OPTIONAL_STRING,ftp_port:r.default.OPTIONAL_STRING,ftp_secure:r.default.OPTIONAL_BOOL,local_path:r.default.OPTIONAL_STRING},mapResponse:{location:i.default.location,list:i.default.filesList},notifySuccess:!1});e.getRestoreFiles=D;var I=r.default.get({id:"ADMIN_CRON_DETAILS",url:"/CMD_ADMIN_BACKUP_MODIFY",schema:{id:r.default.REQUIRED_STRING},after:function(t){return t.flow(t.project({who:"who.who","whoData.users":"data_list","whoData.select":"who.users","whoData.skip_suspended":"who.skip_suspended",where:"where","whereData.append_to_path":"append_to_path","whereData.ftp_ip":"settings.ftp_ip","whereData.ftp_username":"settings.ftp_username","whereData.ftp_password":"settings.ftp_password","whereData.ftp_path":"settings.ftp_path","whereData.ftp_port":"settings.ftp_port","whereData.ftp_secure":"settings.ftp_secure","whereData.local_path":"settings.local_path","whereData.custom_append":"append_to_path.custom_append",whenData:"when",what:"what.what","whatData.select":"what.select",appendOptions:"append_to_path",usertypes:"who.users"}),t.mapProps({whoData:t.mapProps({skip_suspended:t.convert.toAppBoolean,select:t.flow(t.toArray,(function(t){return t.filter((function(t){return"checked"===t.checkbox}))}),t.mapArray(t.getProp("user")))}),whereData:t.mapProps({ftp_secure:t.convert.toAppBoolean,append_to_path:t.flow((function(t){return Object.values(t).find((function(t){return t.selected}))}),t.getProp("value"))}),appendOptions:t.transformObject((function(t){var e=t.value,n=t.text;return(0,s.default)({},e,n)})),usertypes:t.flow(t.deleteProp("info"),t.transformObject((function(t){var e=t.user,n=t.type;return(0,s.default)({},e,n.toLowerCase()||"user")})))}))}});e.getCronDetails=I;var b=function(t){return r.default.post(c({url:"/CMD_ADMIN_BACKUP"},t))},g=b({params:{action:"kill",kill:!0},schema:{select:r.default.ROWS}});e.killBackup=g;var P=b({url:"/CMD_ADMIN_BACKUP",params:{action:"setting"},schema:{message:r.default.REQUIRED_BOOL,local_ns:r.default.REQUIRED_BOOL,restore_spf:r.default.REQUIRED_BOOL,confirm_with_domainowners:r.default.REQUIRED_BOOL},before:function(t){return c({},t,{message:t.message||null,local_ns:t.local_ns||null,restore_spf:t.restore_spf||null,confirm_with_domainowners:t.confirm_with_domainowners||null})}});e.updateSettings=P;var N=b({params:{action:"create",form_version:"3"},schema:{who:r.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:r.default.OPTIONAL_BOOL,when:r.default.REQUIRED_STRING,minute:r.default.OPTIONAL_STRING,hour:r.default.OPTIONAL_STRING,dayofmonth:r.default.OPTIONAL_STRING,month:r.default.OPTIONAL_STRING,dayofweek:r.default.OPTIONAL_STRING,where:r.default.REQUIRED_STRING,ftp_ip:r.default.OPTIONAL_STRING,ftp_username:r.default.OPTIONAL_STRING,ftp_password:r.default.OPTIONAL_STRING,ftp_path:r.default.OPTIONAL_STRING,ftp_port:r.default.OPTIONAL_STRING,ftp_secure:r.default.OPTIONAL_STRING,append_to_path:r.default.OPTIONAL_STRING,custom_append:r.default.OPTIONAL_STRING,what:r.default.REQUIRED_STRING,option:{type:Array,required:!1}}});e.scheduleBackup=N;var A=b({params:{action:"restore"},schema:{where:r.default.REQUIRED_STRING,ftp_ip:r.default.OPTIONAL_STRING,ftp_username:r.default.OPTIONAL_STRING,ftp_password:r.default.OPTIONAL_STRING,ftp_path:r.default.OPTIONAL_STRING,ftp_port:r.default.OPTIONAL_STRING,ftp_secure:r.default.OPTIONAL_STRING,local_path:r.default.OPTIONAL_STRING,ip_choice:r.default.REQUIRED_STRING,ip:r.default.OPTIONAL_STRING,select:{type:Array,required:!0}}});e.restoreBackup=A;var T=function(t){return r.default.select({url:"/CMD_ADMIN_BACKUP",params:(0,s.default)({},t,!0)})},R=T("duplicate");e.duplicateCrons=R;var k=T("delete");e.deleteCrons=k;var y=T("run");e.runCrons=y;var S=b({params:{action:"modify",form_version:"3"},schema:{id:r.default.REQUIRED_STRING,who:r.default.REQUIRED_STRING,select:{type:Array,required:!1},skip_suspended:r.default.OPTIONAL_BOOL,minute:r.default.OPTIONAL_STRING,hour:r.default.OPTIONAL_STRING,dayofmonth:r.default.OPTIONAL_STRING,month:r.default.OPTIONAL_STRING,dayofweek:r.default.OPTIONAL_STRING,where:r.default.REQUIRED_STRING,ftp_ip:r.default.OPTIONAL_STRING,ftp_username:r.default.OPTIONAL_STRING,ftp_password:r.default.OPTIONAL_STRING,ftp_path:r.default.OPTIONAL_STRING,ftp_port:r.default.OPTIONAL_STRING,ftp_secure:r.default.OPTIONAL_STRING,append_to_path:r.default.OPTIONAL_STRING,custom_append:r.default.OPTIONAL_STRING,what:r.default.REQUIRED_STRING,option:{type:Array,required:!1}}});e.modifyBackup=S},1476:function(t,e,n){"use strict";var a=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=a(n(24)),s=n(18),r=n(14),l=function(t,e){return s.Maybe.fromNull(t).filter((function(t){return"object"===(0,o.default)(t)})).flatMap((function(t){return s.Maybe.fromNull(t[e])}))},i={location:function(t){return l(t,"files_location").map((function(t){return r.fp.convert.toAppString(t)})).orSome("")},filesList:function(t){return l(t,"files").map((function(t){return delete t.info,Object.values(t).map((function(t){var e=t.file,n=t.info,a={file:e};return n.issues&&n.issues.length&&(a.issues=n.issues),"yes"===n.hide_checkbox&&(a.disabled=!0),a}))})).orSome([])}};e.default=i},1477:function(t,e,n){"use strict";n.r(e),n.d(e,"getEncryptionStatus",(function(){return r})),n.d(e,"getIssues",(function(){return l})),n.d(e,"getFiles",(function(){return i})),n.d(e,"getSkipSuspendedValue",(function(){return p})),n.d(e,"getUsers",(function(){return u})),n.d(e,"getUsertypes",(function(){return c})),n.d(e,"getBackupSettings",(function(){return d}));var a=n(6),o=n(35),s=function(){return(s=Object.assign||function(t){for(var e,n=1,a=arguments.length;n.inputCheck[data-v-b8284ef6]{min-width:200px;padding-bottom:2px}#schedule-admin-backup .checkboxes-list>.select-links[data-v-b8284ef6]{width:100%;padding-top:1rem}#schedule-admin-backup .ui-steps-content>div>.formElement[data-v-b8284ef6]{margin-left:0!important}#schedule-admin-backup .formElement .formElement[data-v-b8284ef6]:last-child{border-bottom-width:0}#schedule-admin-backup .select[data-v-b8284ef6],#schedule-admin-backup input[type=text][data-v-b8284ef6]{width:240px}","",{version:3,sources:["/home/evo/evolution/src/js/pages/admin/backups/schedule.vue"],names:[],mappings:"AAskBA,yDAEQ,oBAAA,oBAAA,aACA,mBAAA,eACA,gBACA,cAAe,CALvB,qEAOY,gBACA,kBAAmB,CAR/B,uEAWY,WACA,gBAAiB,CAZ7B,2EAgBQ,uBAA4B,CAhBpC,6EAmBQ,qBAAwB,CAnBhC,yGAsBQ,WAAY,CAAA",file:"schedule.vue?vue&type=style&index=0&id=b8284ef6&lang=scss&scoped=true&",sourcesContent:['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#schedule-admin-backup {\n .checkboxes-list {\n display: flex;\n flex-wrap: wrap;\n max-width: 600px;\n padding: 1rem 0;\n & > .inputCheck {\n min-width: 200px;\n padding-bottom: 2px;\n }\n & > .select-links {\n width: 100%;\n padding-top: 1rem;\n }\n }\n .ui-steps-content > div > .formElement {\n margin-left: 0rem !important;\n }\n .formElement .formElement:last-child {\n border-bottom-width: 0px;\n }\n input[type="text"], .select {\n width: 240px;\n }\n};\n'],sourceRoot:""}])},2440:function(t,e){},2970:function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("app-page",{attrs:{id:"schedule-admin-backup"}},[n("app-page-section",[n("ui-steps",{attrs:{steps:[{id:"who",label:t.$gettext("Step 1: Who"),desc:t.$gettext("Select users you would like to backup."),completed:t.validWho},{id:"when",label:t.$gettext("Step 2: When"),desc:t.$gettext("Select time period for backup."),completed:t.validWhen},{id:"where",label:t.$gettext("Step 3: Where"),desc:t.$gettext("Select directory for backups."),completed:t.validWhere},{id:"what",label:t.$gettext("Step 4: What"),desc:t.$gettext("Select data you would like to backup."),completed:t.validWhat}],current:t.step},on:{"update:current":function(e){t.step=e}}},[n("ui-button",{attrs:{slot:"buttons",theme:"primary",disabled:!(t.validWho&&t.validWhere&&t.validWhat&&t.validWhen)},on:{click:t.scheduleBackup},slot:"buttons"},[n("translate",[t._v("Schedule")])],1),t._v(" "),"who"===t.step?n("div",{attrs:{slot:"step:who"},slot:"step:who"},[n("ui-form-element",{key:"whoAll",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("All Users")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"all"},slot:"content",model:{value:t.who,callback:function(e){t.who=e},expression:"who"}})],1),t._v(" "),n("ui-form-element",{key:"whoAllExcept",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("All Users Except Selected")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"except"},slot:"content",model:{value:t.who,callback:function(e){t.who=e},expression:"who"}})],1),t._v(" "),n("ui-form-element",{key:"whoSelected",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone,underline:"all"!==t.who}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Selected Users")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"selected"},slot:"content",model:{value:t.who,callback:function(e){t.who=e},expression:"who"}})],1),t._v(" "),"all"!==t.who?[n("ui-form-element",{key:"whoUsers"},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Users")]),t._v(" "),n("input-select-multiple",{staticClass:"width:100%",attrs:{slot:"content",options:t.userGroups},slot:"content",model:{value:t.whoData.select,callback:function(e){t.$set(t.whoData,"select",e)},expression:"whoData.select"}})],1),t._v(" "),n("ui-form-element",{key:"whoSkip",attrs:{underline:!1,reverse:t.$_Client.isPhone,verticalOnPhone:!1}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Skip Suspended")]),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.whoData.skip_suspended,callback:function(e){t.$set(t.whoData,"skip_suspended",e)},expression:"whoData.skip_suspended"}})],1)]:t._e()],2):t._e(),t._v(" "),"when"===t.step?n("div",{attrs:{slot:"step:when"},slot:"step:when"},[n("ui-form-element",{key:"whenNow",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Now")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"now"},slot:"content",model:{value:t.when,callback:function(e){t.when=e},expression:"when"}})],1),t._v(" "),n("ui-form-element",{key:"whenCron",attrs:{underline:"cron"===t.when,verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Cron Schedule")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"cron"},slot:"content",model:{value:t.when,callback:function(e){t.when=e},expression:"when"}})],1),t._v(" "),"cron"===t.when?n("ui-form-element",{key:"cron-settings",attrs:{underline:!1}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Cron Settings")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-form-element",{attrs:{group:"scheduleBackupWhen",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Minute")]),t._v(" "),n("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("\n 0-59\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whenData.minute,callback:function(e){t.$set(t.whenData,"minute",e)},expression:"whenData.minute"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhen",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Hour")]),t._v(" "),n("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("\n 0-23\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whenData.hour,callback:function(e){t.$set(t.whenData,"hour",e)},expression:"whenData.hour"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhen",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Day of Month")]),t._v(" "),n("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("\n 1-31\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whenData.dayofmonth,callback:function(e){t.$set(t.whenData,"dayofmonth",e)},expression:"whenData.dayofmonth"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhen",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Month")]),t._v(" "),n("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("\n 1-12\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whenData.month,callback:function(e){t.$set(t.whenData,"month",e)},expression:"whenData.month"}})],1),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Day of Week")]),t._v(" "),n("translate",{attrs:{slot:"tooltip"},slot:"tooltip"},[t._v("\n 0-7. 0,7 - Sunday\n ")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whenData.dayofweek,callback:function(e){t.$set(t.whenData,"dayofweek",e)},expression:"whenData.dayofweek"}})],1)],1)],1):t._e()],1):t._e(),t._v(" "),"where"===t.step?n("div",{attrs:{slot:"step:where"},slot:"step:where"},[n("ui-form-element",{key:"whereLocal",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Local")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"local"},slot:"content",model:{value:t.where,callback:function(e){t.where=e},expression:"where"}})],1),t._v(" "),n("transition",{attrs:{name:"fade"}},["local"===t.where?n("ui-form-element",{key:"whereLocalPath",attrs:{group:"scheduleBackupWhere",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Local path")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whereData.local_path,callback:function(e){t.$set(t.whereData,"local_path",e)},expression:"whereData.local_path"}})],1):t._e()],1),t._v(" "),n("ui-form-element",{key:"whereFTP",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("FTP")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"ftp"},slot:"content",model:{value:t.where,callback:function(e){t.where=e},expression:"where"}})],1),t._v(" "),"ftp"===t.where?n("ui-form-element",{key:"whereFTPSettings"},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("FTP Settings")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-form-element",{attrs:{group:"scheduleBackupWhere",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("IP")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whereData.ftp_ip,callback:function(e){t.$set(t.whereData,"ftp_ip",e)},expression:"whereData.ftp_ip"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhere",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Username")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whereData.ftp_username,callback:function(e){t.$set(t.whereData,"ftp_username",e)},expression:"whereData.ftp_username"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhere",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Password")]),t._v(" "),n("input-password",{attrs:{slot:"content"},slot:"content",model:{value:t.whereData.ftp_password,callback:function(e){t.$set(t.whereData,"ftp_password",e)},expression:"whereData.ftp_password"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhere",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Remote Path")]),t._v(" "),n("input-text",{attrs:{slot:"content"},slot:"content",model:{value:t.whereData.ftp_path,callback:function(e){t.$set(t.whereData,"ftp_path",e)},expression:"whereData.ftp_path"}})],1),t._v(" "),n("ui-form-element",{attrs:{group:"scheduleBackupWhere",validators:{required:!0}}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Port")]),t._v(" "),n("input-text",{attrs:{slot:"content",number:""},slot:"content",model:{value:t.whereData.ftp_port,callback:function(e){t.$set(t.whereData,"ftp_port",e)},expression:"whereData.ftp_port"}})],1),t._v(" "),n("ui-form-element",[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Secure FTP")]),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.whereData.ftp_secure,callback:function(e){t.$set(t.whereData,"ftp_secure",e)},expression:"whereData.ftp_secure"}})],1)],1)],1):t._e(),t._v(" "),n("ui-form-element",{key:"whereAppend"},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Append")]),t._v(" "),n("div",{directives:[{name:"flex",rawName:"v-flex"}],attrs:{slot:"content"},slot:"content"},[n("input-select",{attrs:{options:t.options.appendOptions},model:{value:t.whereData.append_to_path,callback:function(e){t.$set(t.whereData,"append_to_path",e)},expression:"whereData.append_to_path"}})],1)],1),t._v(" "),"custom"===t.whereData.append_to_path?n("ui-form-element",{key:"whereAppendCustom",attrs:{helpID:"539"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Custom Path")]),t._v(" "),n("input-text",{directives:[{name:"margin",rawName:"v-margin",value:[1,0],expression:"[1, 0]"}],attrs:{slot:"content",prefix:"/"},slot:"content",model:{value:t.whereData.custom_append,callback:function(e){t.$set(t.whereData,"custom_append",e)},expression:"whereData.custom_append"}})],1):t._e(),t._v(" "),t.encryptionEnabled?[n("ui-form-element",{key:"whereEncrypt",attrs:{underline:t.encrypt,verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Backup Encryption")]),t._v(" "),n("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:t.encrypt,callback:function(e){t.encrypt=e},expression:"encrypt"}})],1),t._v(" "),n("transition",{attrs:{name:"fadeBounce"}},[t.encrypt?n("ui-form-element",{key:"wereEncryptPassword",attrs:{group:"scheduleBackupWhere",validators:{required:!0},underline:!1}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("\n Password\n ")]),t._v(" "),n("input-password",{attrs:{slot:"content"},slot:"content",model:{value:t.password,callback:function(e){t.password=e},expression:"password"}})],1):t._e()],1)]:t._e()],2):t._e(),t._v(" "),"what"===t.step?n("div",{attrs:{slot:"step:what"},slot:"step:what"},[n("ui-form-element",{key:"whatAll",attrs:{verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("All Data")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"all"},slot:"content",model:{value:t.what,callback:function(e){t.what=e},expression:"what"}})],1),t._v(" "),n("ui-form-element",{key:"whatSelected",attrs:{underline:!1,verticalOnPhone:!1,reverse:t.$_Client.isPhone}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Selected Data")]),t._v(" "),n("input-check",{attrs:{slot:"content",type:"radio",value:"select"},slot:"content",model:{value:t.what,callback:function(e){t.what=e},expression:"what"}})],1),t._v(" "),"select"===t.what?n("ui-form-element",{key:"whatSelectOptions"},[t.$_Client.isPhone?t._e():n("span",{attrs:{slot:"title"},slot:"title"},[t._v(" ")]),t._v(" "),n("div",{staticClass:"checkboxes-list",attrs:{slot:"content"},slot:"content"},[n("input-checkbox",{attrs:{value:"domain"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Domains Directory")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"subdomain"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Subdomain Lists")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"ftp"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("FTP Accounts")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"ftpsettings"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("FTP Settings")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"database"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Database Settings")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"database_data"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Database Data")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"forwarder"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Forwarders")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"email"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("E-mail Accounts")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"email_data"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("E-mail Data")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"emailsettings"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("E-mail Settings")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"vacation"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Vacation Messages")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"autoresponder"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Autoresponders")])],1),t._v(" "),n("input-checkbox",{attrs:{value:"list"},model:{value:t.whatData.option,callback:function(e){t.$set(t.whatData,"option",e)},expression:"whatData.option"}},[n("translate",[t._v("Mailing Lists")])],1),t._v(" "),n("div",{staticClass:"select-links"},[n("ui-link",{on:{click:t.selectAllDataItems}},[n("translate",[t._v("All")])],1),t._v("\n /\n "),n("ui-link",{on:{click:function(e){t.whatData.option=[]}}},[n("translate",[t._v("None")])],1)],1)],1)]):t._e()],1):t._e()],1)],1)],1)},o=[];n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return o}))},3120:function(t,e,n){"use strict";var a=function(){var t=this.$createElement;return(this._self._c||t)("input-select",this._g(this._b({attrs:{selected:this.selected,options:this.days}},"input-select",this.$attrs,!1),this.$listeners))},o=[];n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return o}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/39.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/39.js new file mode 100644 index 0000000..cf5cbd9 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/39.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[39],{1335:function(t,e,n){"use strict";n.r(e);var a=n(3029),i=n(1831);for(var s in i)"default"!==s&&function(t){n.d(e,t,(function(){return i[t]}))}(s);n(2652);var o=n(0),r=n(2654),l=n.n(r),c=Object(o.a)(i.default,a.a,a.b,!1,null,"d401551a",null);"function"==typeof l.a&&l()(c),e.default=c.exports},1433:function(t,e,n){"use strict";var a=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.getSystemStatus=e.updateActiveStatus=e.getActiveStatus=e.updateEmailSetting=e.getEmailSetting=e.getTicketDefaults=e.replyTicket=e.createTicket=e.markTicketsRead=e.openTicket=e.closeTickets=e.getMessages=e.getTickets=e.sendMessageMultiple=void 0;var i=a(n(2)),s=a(n(30)),o=a(n(598));function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function l(t){for(var e=1;e1||!this.select.length)return!0;var e=(this.$api.tickets.rows.find((function(e){return e.ticket===t.select[0]}))||{}).status;return"closed"!==(void 0===e?"open":e)}},methods:{getPriorityClass:function(t){var e=t.priority_string||"normal";return"priority-".concat(e)},openTicketByID:function(t){var e=this.$api.tickets.rows.find((function(e){return e.ticket===t}));this.openTicket(e)},closeTickets:function(){(0,r.closeTickets)({select:this.select}).then(this.reloadTable)},updateTicketOpen:function(){(0,r.openTicket)(this.select[0]).then(this.reloadTable)},markAsRead:function(){(0,r.markTicketsRead)({select:this.select}).then(this.reloadTable)},loadTicketMessages:function(){return(0,r.getMessages)({number:this.openedTicket.ticket})},openTicket:(f=(0,o.default)(s.default.mark((function t(e){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.openedTicket=e,t.next=3,this.loadTicketMessages();case 3:this.$dialog("VIEW_TICKET_DIALOG").open();case 4:case"end":return t.stop()}}),t,this)}))),function(t){return f.apply(this,arguments)}),sendMessage:(p=(0,o.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:(0,r.createTicket)(this.newTicket);case 1:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)}),loadStatus:(d=(0,o.default)(s.default.mark((function t(){var e;return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,r.getActiveStatus)();case 2:e=t.sent,this.ticketSystemStatus=u({},e);case 4:case"end":return t.stop()}}),t,this)}))),function(){return d.apply(this,arguments)}),updateSettings:function(){(0,r.updateEmailSetting)(this.email),(0,r.updateActiveStatus)(this.ticketSystemStatus)},reloadTable:function(){this.$refs.table.reloadTable({show_open:this.filters.open,show_hold:this.filters.hold,show_closed:this.filters.closed}),this.select=[]},closeTicketDialog:function(){this.$router.push({name:"reseller/tickets",query:this.savedQuery}),this.savedQuery={}}},created:function(){this.email={email:this.$api.emailSetting.email,ON:this.$api.emailSetting.checked},this.ticketSystemStatus=u({},this.$api.activeStatus),this.$route.query.id&&this.openTicketByID(this.$route.query.id)},watch:{show:function(){this.reloadTable()}}};e.default=m},1833:function(t,e,n){"use strict";n.r(e);var a=n(1834),i=n.n(a);for(var s in a)"default"!==s&&function(t){n.d(e,t,(function(){return a[t]}))}(s);e.default=i.a},1834:function(t,e,n){"use strict";var a=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i,s=a(n(15)),o=a(n(16)),r=n(1433),l={filters:{firstLetter:function(t){return t[0].toUpperCase()}},data:function(){return{message:"",status:"open",focused:!1}},props:{subject:{type:String,required:!0},user:{type:String,required:!0},ticket:{type:String,required:!0},messages:{type:Array,required:!0}},methods:{postReply:(i=(0,o.default)(s.default.mark((function t(){return s.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,r.replyTicket)({number:this.ticket,subject:"Re: ".concat(this.subject),user:this.user,message:this.message,status:this.status});case 2:t.sent&&(this.message="",this.$emit("update"));case 4:case"end":return t.stop()}}),t,this)}))),function(){return i.apply(this,arguments)})}};e.default=l},1835:function(t,e,n){var a=n(2651);"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,n(5).default)("070b2a79",a,!0,{})},1836:function(t,e,n){var a=n(2653);"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,n(5).default)("b6b26bfe",a,!0,{})},2649:function(t,e,n){"use strict";n.r(e);var a=n(3152),i=n(1833);for(var s in i)"default"!==s&&function(t){n.d(e,t,(function(){return i[t]}))}(s);n(2650);var o=n(0),r=Object(o.a)(i.default,a.a,a.b,!1,null,null,null);e.default=r.exports},2650:function(t,e,n){"use strict";var a=n(1835);n.n(a).a},2651:function(t,e,n){(t.exports=n(4)(!0)).push([t.i,"#VIEW_TICKET_DIALOG .textarea{position:relative;background:#fff;border:1px solid #e5e5e5;border-radius:4px}#VIEW_TICKET_DIALOG .textarea.focused{-webkit-box-shadow:0 0 1px 1px #13aae2,0 0 1px 2px hsla(0,0%,100%,.5);box-shadow:0 0 1px 1px #13aae2,0 0 1px 2px hsla(0,0%,100%,.5)}#VIEW_TICKET_DIALOG .textarea-row{background:#fff}#VIEW_TICKET_DIALOG .textarea-row>td{border-width:0}#VIEW_TICKET_DIALOG .textarea-input{width:100%;min-height:12rem;resize:none;border-width:0}#VIEW_TICKET_DIALOG .textarea-input:focus{outline:none;border:none;-webkit-box-shadow:unset;box-shadow:unset}#VIEW_TICKET_DIALOG .textarea-submit-button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;width:100%;padding:2px;z-index:2}#VIEW_TICKET_DIALOG .textarea-submit-button .submit-keys-suggestion{color:silver;font-size:12px;font-weight:300;padding-left:4px}#VIEW_TICKET_DIALOG .replyButton{position:absolute;right:1.5rem;bottom:1.5rem;z-index:2}#VIEW_TICKET_DIALOG textarea{resize:none}#VIEW_TICKET_DIALOG .messagesTable>.table-elem{table-layout:fixed}#VIEW_TICKET_DIALOG .col\\:avatar{width:6.4rem;white-space:nowrap}#VIEW_TICKET_DIALOG .col\\:avatar .messageAvatar{color:#fff;font-size:1.6rem;font-weight:700}#VIEW_TICKET_DIALOG .col\\:message .userName{font-weight:600;font-size:1.4rem}#VIEW_TICKET_DIALOG .scrollArea{padding-bottom:1.5rem}","",{version:3,sources:["/home/evo/evolution/src/js/pages/reseller/_dialogs/view-ticket.vue"],names:[],mappings:"AAgKA,8BAEQ,kBACA,gBACA,yBACA,iBAAkB,CAL1B,sCAOY,sEAAA,6DAAqE,CAPjF,kCAUY,eAAiB,CAV7B,qCAWqB,cAAiB,CAXtC,oCAeY,WACA,iBACA,YACA,cAAiB,CAlB7B,0CAoBgB,aACA,YACA,yBAAA,gBAAiB,CAtBjC,4CA0BY,oBAAA,oBAAA,aACA,yBAAA,sBAAA,8BACA,sBAAA,mBAAA,qBACA,WACA,YACA,SAAU,CA/BtB,oEAiCgB,aACA,eACA,gBACA,gBAAiB,CApCjC,iCAyCQ,kBACA,aACA,cACA,SAAU,CA5ClB,6BA+CQ,WAAY,CA/CpB,+CAkDQ,kBAAmB,CAlD3B,iCAqDQ,aACA,kBAAmB,CAtD3B,gDAwDY,WACA,iBACA,eAAgB,CA1D5B,4CA+DY,gBACA,gBAAiB,CAhE7B,gCAoEQ,qBAAsB,CAAA",file:"view-ticket.vue?vue&type=style&index=0&lang=scss&",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#VIEW_TICKET_DIALOG {\n .textarea {\n position: relative;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 4px;\n &.focused {\n box-shadow: 0 0 1px 1px #13aae2, 0 0 1px 2px rgba(255, 255, 255, 0.5);\n }\n &-row {\n background: white;\n & > td { border-width: 0px; }\n\n }\n &-input {\n width: 100%;\n min-height: 12rem;\n resize: none;\n border-width: 0px;\n &:focus {\n outline: none;\n border: none;\n box-shadow: unset;\n }\n }\n &-submit-button {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n width: 100%;\n padding: 2px;\n z-index: 2;\n & .submit-keys-suggestion {\n color: #c0c0c0;\n font-size: 12px;\n font-weight: 300;\n padding-left: 4px;\n }\n }\n }\n .replyButton {\n position: absolute;\n right: 1.5rem;\n bottom: 1.5rem;\n z-index: 2;\n }\n textarea { \n resize: none;\n }\n .messagesTable > .table-elem {\n table-layout: fixed;\n }\n .col\\:avatar {\n width: 6.4rem;\n white-space: nowrap;\n .messageAvatar {\n color: #FFF;\n font-size: 1.6rem;\n font-weight: 700;\n }\n }\n .col\\:message {\n .userName {\n font-weight: 600;\n font-size: 1.4rem;\n }\n }\n .scrollArea {\n padding-bottom: 1.5rem;\n }\n}\n"],sourceRoot:""}])},2652:function(t,e,n){"use strict";var a=n(1836);n.n(a).a},2653:function(t,e,n){(t.exports=n(4)(!0)).push([t.i,'#manage-tickets .filters[data-v-d401551a],#manage-tickets .title[data-v-d401551a]{padding-left:5px!important}#manage-tickets .buttons .button[data-v-d401551a]{margin-right:0!important}#manage-tickets .container[data-v-d401551a]{padding:0}#manage-tickets .icon-button[data-v-d401551a]{background-color:inherit!important}.status-open[data-v-d401551a]:before{content:"";display:inline-block;border-radius:50%;height:12px;width:12px;background-color:#5dc37f;vertical-align:top;margin-top:1px;margin-right:10px}[class^=priority][data-v-d401551a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}[class^=priority][data-v-d401551a]:before{content:"";display:inline-block;border-radius:50%;height:12px;width:12px;vertical-align:top;margin-right:10px}[class^=priority].priority-medium[data-v-d401551a]:before{background-color:#ffd900}[class^=priority].priority-high[data-v-d401551a]:before{background-color:#d5591c}[class^=priority].priority-low[data-v-d401551a]:before{background-color:#5dc37f}.filters .filter[data-v-d401551a]{padding-left:10px;font-weight:600;font-size:11px;color:#34383c}.filters .filter+.filter[data-v-d401551a]{margin-left:16px}.filters .filter.active[data-v-d401551a],.ticket-status-open[data-v-d401551a]{color:#5dc37f}.ticket-status-hold[data-v-d401551a]{color:#34383c}.ticket-status-closed[data-v-d401551a]{color:silver}.ticket[data-v-d401551a]{height:400px;overflow:hidden}.expand-enter-active .ticket[data-v-d401551a],.expand-leave-active .ticket[data-v-d401551a]{-webkit-transition:height 1s;-o-transition:height 1s;transition:height 1s;overflow:hidden}.expand-enter .ticket[data-v-d401551a]{height:0}.expand-enter-to .ticket[data-v-d401551a]{height:400px}.expand-leave-to .ticket[data-v-d401551a]{height:0}.row-transition .col[data-v-d401551a]{height:auto;vertical-align:top}.strong[data-v-d401551a]{font-weight:700}.input-check input[type=email][data-v-d401551a],input[type=text][data-v-d401551a]{position:relative!important;visibility:visible!important;top:unset!important;left:unset!important;width:250px!important;padding:0 10px!important;font-weight:400!important;font-family:Open Sans,sans-serif!important}',"",{version:3,sources:["/home/evo/evolution/src/js/pages/reseller/tickets.vue"],names:[],mappings:"AAyVA,kFAEa,0BAA4B,CAFzC,kDAIkB,wBAA4B,CAJ9C,4CAMiB,SAAY,CAN7B,8CAQQ,kCAAoC,CACvC,qCAID,WACA,qBACA,kBACA,YACA,WACA,yBACA,mBACA,eACA,iBAAkB,CACrB,mCAGG,oBAAA,oBAAA,aACA,yBAAA,sBAAA,kBAAmB,CAoBtB,0CAlBO,WACA,qBACA,kBACA,YACA,WACA,mBACA,iBAAkB,CACrB,0DAEG,wBAAyB,CAC5B,wDAEG,wBAAyB,CAC5B,uDAEG,wBAAyB,CAC5B,kCAMG,kBACA,gBACA,eACA,aAAc,CALtB,0CAQY,gBAAiB,CAR7B,AAaS,8EAMD,aAAc,CACjB,qCAEG,aAAc,CACjB,uCAEG,YAAc,CACjB,yBAID,aACA,eAAgB,CACnB,4FAGG,6BAAA,wBAAA,qBACA,eAAgB,CACnB,uCAGG,QAAW,CACd,0CAGG,YAAa,CAChB,0CAGG,QAAW,CACd,sCAGG,YACA,kBAAmB,CACtB,yBAGG,eAAiB,CACpB,kFAGG,4BACA,6BACA,oBACA,qBACA,sBACA,yBACA,0BACA,0CAA+C,CAAA",file:"tickets.vue?vue&type=style&index=0&id=d401551a&lang=scss&scoped=true&",sourcesContent:['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#manage-tickets {\n .filters { padding-left: 5px !important; }\n .title { padding-left: 5px !important; }\n .buttons {\n .button { margin-right: 0px !important; }\n }\n .container { padding: 0px; }\n .icon-button {\n background-color: inherit !important;\n }\n}\n\n.status-open:before {\n content: "";\n display: inline-block;\n border-radius: 50%;\n height: 12px;\n width: 12px;\n background-color: #5dc37f;\n vertical-align: top;\n margin-top: 1px;\n margin-right: 10px;\n}\n\n[class^=priority] {\n display: flex;\n align-items: center;\n &:before {\n content: "";\n display: inline-block;\n border-radius: 50%;\n height: 12px;\n width: 12px;\n vertical-align: top;\n margin-right: 10px;\n }\n &.priority-medium:before {\n background-color: #ffd900;\n }\n &.priority-high:before {\n background-color: #d5591c;\n }\n &.priority-low:before {\n background-color: #5dc37f;\n }\n\n}\n\n.filters {\n .filter {\n padding-left: 10px;\n font-weight: 600;\n font-size: 11px;\n color: #34383c;\n\n & + .filter {\n margin-left: 16px;\n }\n\n &.active {\n color: #5dc37f;\n }\n }\n}\n\n.ticket-status {\n &-open {\n color: #5dc37f;\n }\n &-hold {\n color: #34383c;\n }\n &-closed {\n color: #c0c0c0;\n }\n}\n\n.ticket {\n height: 400px;\n overflow: hidden;\n}\n\n.expand-enter-active .ticket, .expand-leave-active .ticket {\n transition: height 1s;\n overflow: hidden;\n}\n\n.expand-enter .ticket {\n height: 0px;\n}\n\n.expand-enter-to .ticket {\n height: 400px;\n}\n\n.expand-leave-to .ticket {\n height: 0px;\n}\n\n.row-transition .col {\n height: auto;\n vertical-align: top;\n}\n\n.strong {\n font-weight: bold;\n}\n\n.input-check input[type="email"], input[type="text"] {\n position: relative !important;\n visibility: visible !important;\n top: unset !important;\n left: unset !important;\n width: 250px !important;\n padding: 0 10px !important;\n font-weight: 400 !important;\n font-family: "Open Sans", sans-serif !important;\n}\n'],sourceRoot:""}])},2654:function(t,e){},3029:function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("app-page",{attrs:{id:"manage-tickets"}},[n("app-page-section",[n("ui-api-table",t._b({ref:"table",staticClass:"app-tickets-table",on:{"action:close":t.closeTickets,"action:open":t.updateTicketOpen,"action:markread":t.markAsRead},scopedSlots:t._u([{key:"col:subject",fn:function(e){var a=e.item;return n("span",{class:t.getPriorityClass(a)},[n("ui-link",{class:{strong:a.new},attrs:{name:"reseller/tickets",query:{id:a.ticket}}},[t._v("\n "+t._s(a.subject)+"\n ")])],1)}},{key:"col:status",fn:function(e){var a=e.status;return n("span",{class:"ticket-status-"+a},[t._v("\n "+t._s(t._f("capitalize")(a))+"\n ")])}},{key:"col:last_message",fn:function(e){var a=e.last_message;return n("span",{},[t._v("\n "+t._s(t._f("date")(a,"date"))+"\n ")])}},{key:"col:user",fn:function(e){var a=e.user;return n("ui-link",{attrs:{name:"reseller/users/view",params:{user:a}}},[t._v("\n "+t._s(a)+"\n ")])}}]),model:{value:t.select,callback:function(e){t.select=e},expression:"select"}},"ui-api-table",{command:t.$commands.getTickets,rowID:"ticket",columns:{ticket:this.$gettext("Ticket #"),subject:{label:this.$gettext("Subject"),grow:!0},replies:this.$gettext("Replies"),status:this.$gettext("Status"),last_message:this.$gettext("Last Message"),user:this.$gettext("User")},actions:{close:t.$gettext("Close"),open:{label:t.$gettext("Open"),disabled:t.updateTicketOpenActionDisabled},markread:t.$gettext("Mark as read")},requestData:{show_open:t.filters.open,show_hold:t.filters.hold,show_closed:t.filters.closed},verticalLayout:t.$_Client.isPhone},!1),[t._v(" "),t._v(" "),t._v(" "),t._v(" "),t.$api.tickets.filters?n("input-checkable-select",{attrs:{slot:"buttons:before",options:{open:t.$gettext("Open"),hold:t.$gettext("Hold"),closed:t.$gettext("Closed")}},slot:"buttons:before",model:{value:t.show,callback:function(e){t.show=e},expression:"show"}},[n("translate",{attrs:{slot:"label"},slot:"label"},[t._v("Filter")]),t._v(" "),n("span",{attrs:{slot:"check:all:after"},domProps:{textContent:t._s(t.ticketsCount("all"))},slot:"check:all:after"}),t._v(" "),n("span",{attrs:{slot:"check:open:after"},domProps:{textContent:t._s(t.ticketsCount("open"))},slot:"check:open:after"}),t._v(" "),n("span",{attrs:{slot:"check:hold:after"},domProps:{textContent:t._s(t.ticketsCount("hold"))},slot:"check:hold:after"}),t._v(" "),n("span",{attrs:{slot:"check:closed:after"},domProps:{textContent:t._s(t.ticketsCount("closed"))},slot:"check:closed:after"})],1):t._e()],1)],1),t._v(" "),t.$api.emailSetting.featureEnabled?n("ui-link",{attrs:{slot:"bottom:links",bullet:""},on:{click:function(e){t.$dialog("TICKET_SYSTEM_SETTINGS").open()}},slot:"bottom:links"},[n("translate",[t._v("Ticket System Settings")])],1):t._e(),t._v(" "),n("ui-link",{attrs:{slot:"bottom:links",bullet:"",name:"reseller/create-ticket"},slot:"bottom:links"},[n("translate",[t._v("Send a message")])],1),t._v(" "),n("ui-dialog",{attrs:{id:"TICKET_SYSTEM_SETTINGS"}},[n("translate",{attrs:{slot:"title"},slot:"title"},[t._v("Settings")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-form-element",{attrs:{vertical:""}},[n("input-checkbox",{attrs:{slot:"title"},slot:"title",model:{value:t.ticketSystemStatus.active,callback:function(e){t.$set(t.ticketSystemStatus,"active",e)},expression:"ticketSystemStatus.active"}},[n("translate",[t._v("Ticket System Enabled")])],1),t._v(" "),t.ticketSystemStatus.active?t._e():n("input",{directives:[{name:"model",rawName:"v-model",value:t.ticketSystemStatus.html,expression:"ticketSystemStatus.html"}],attrs:{slot:"content"},domProps:{value:t.ticketSystemStatus.html},on:{input:function(e){e.target.composing||t.$set(t.ticketSystemStatus,"html",e.target.value)}},slot:"content"})],1),t._v(" "),n("ui-form-element",{attrs:{vertical:""}},[n("input-checkbox",{attrs:{slot:"title"},slot:"title",model:{value:t.email.ON,callback:function(e){t.$set(t.email,"ON",e)},expression:"email.ON"}},[n("translate",[t._v("E-mail a copy of all messages")])],1),t._v(" "),t.email.ON?n("input",{directives:[{name:"model",rawName:"v-model",value:t.email.email,expression:"email.email"}],attrs:{slot:"content",type:"text"},domProps:{value:t.email.email},on:{input:function(e){e.target.composing||t.$set(t.email,"email",e.target.value)}},slot:"content"}):t._e()],1)],1),t._v(" "),n("ui-button",{attrs:{slot:"buttons",theme:"primary"},on:{click:t.updateSettings},slot:"buttons"},[n("translate",[t._v("Save")])],1)],1),t._v(" "),t.openedTicket?n("view-ticket-dialog",t._b({attrs:{messages:t.$api.messages},on:{update:t.loadTicketMessages,close:t.closeTicketDialog}},"view-ticket-dialog",t.openedTicket,!1)):t._e()],1)},i=[];n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return i}))},3152:function(t,e,n){"use strict";var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ui-dialog",t._g(t._b({attrs:{id:"VIEW_TICKET_DIALOG",size:"normal",noCloseBtn:""},on:{"dialog:close":function(e){return t.$emit("close")}}},"ui-dialog",t.$attrs,!1),t.$listeners),[n("translate",{attrs:{slot:"title","translate-params":{ticket:t.ticket}},slot:"title"},[t._v("\n View Ticket: #%{ ticket }\n ")]),t._v(" "),n("div",{attrs:{slot:"content"},slot:"content"},[n("ui-form-element",{staticClass:"pos:rel"},[n("div",{staticClass:"textarea",attrs:{slot:"content"},slot:"content"},[n("input-textarea",{staticClass:"textarea-input",attrs:{slot:"content",placeholder:t.$gettext("Type your reply here...")},on:{focus:function(e){t.focused=!0},blur:function(e){t.focused=!1},keyup:function(e){return(e.type.indexOf("key")||13===e.keyCode)&&e.ctrlKey?t.postReply(e):null}},slot:"content",model:{value:t.message,callback:function(e){t.message=e},expression:"message"}}),t._v(" "),n("div",{staticClass:"textarea-submit-button",attrs:{slot:"content"},slot:"content"},[t.$_Client.isDesktop?n("translate",{staticClass:"submit-keys-suggestion"},[t._v("\n Ctrl+Enter to post reply\n ")]):n("span"),t._v(" "),n("ui-input-group",{directives:[{name:"flex-item",rawName:"v-flex-item",value:{grow:!1},expression:"{ grow: false }"}],style:{minWidth:"unset"},attrs:{grow:!1}},[n("ui-button",{attrs:{slot:"additions:left",disabled:""},slot:"additions:left"},[n("translate",[t._v("Status:")])],1),t._v(" "),n("input-select",{attrs:{slot:"input",title:t.$gettext("Status"),options:{open:t.$gettext("Open"),closed:t.$gettext("Closed")}},slot:"input",model:{value:t.status,callback:function(e){t.status=e},expression:"status"}}),t._v(" "),n("ui-button",{style:{whiteSpace:"nowrap"},attrs:{slot:"additions:right",theme:"safe"},on:{click:t.postReply},slot:"additions:right"},[n("translate",[t._v("Post reply")])],1)],1)],1)],1)]),t._v(" "),n("ui-table",{attrs:{items:t.messages,hideHeaders:""}},[n("ui-column",{attrs:{id:"avatar",fit:""},scopedSlots:t._u([{key:"default",fn:function(e){return[n("ui-round-badge",{staticClass:"messageAvatar",attrs:{theme:t.$state.app.user.name===e.from?"safe":"primary",size:48}},[t._v("\n "+t._s(t._f("firstLetter")(e.from))+"\n ")])]}}])}),t._v(" "),n("ui-column",{attrs:{id:"message"},scopedSlots:t._u([{key:"default",fn:function(e){return[n("ui-scrollable",{staticClass:"scrollArea"},[n("ui-grid",{attrs:{column:""}},[n("ui-grid",{attrs:{cross:"center"}},[n("span",{staticClass:"userName"},[t._v("\n "+t._s({admin:t.$gettext("Admin"),reseller:t.$gettext("Reseller"),user:t.$gettext("User")}[e.level])+":\n "+t._s(e.name)+"\n ")]),t._v(" "),n("span",{staticClass:"c:txt:neutral"},[t._v("\n ("+t._s(e.time)+")\n ")])]),t._v(" "),n("p",{staticClass:"message scrollbar:tiny",domProps:{innerHTML:t._s(e.message)}})],1)],1)]}}])})],1)],1)],1)},i=[];n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return i}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/4.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/4.js new file mode 100644 index 0000000..ed559a5 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/4.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{1425:function(t,e,a){"use strict";var n=a(1);Object.defineProperty(e,"__esModule",{value:!0}),e.validateIPRangeList=e.validateDomain=e.validatePassword=e.validateSubdomain=e.validateUsername=e.validateDBUser=e.validateDatabase=e.validateDNSName=e.validateMXValue=e.validateDNSValue=e.validateFTP=e.validateEmail=e.validateForwarder=void 0;var r=n(a(30)),i=n(a(36)),o=n(a(1426)),s=r.default.get({url:"/CMD_JSON_VALIDATE",schema:{value:r.default.REQUIRED_STRING},response:{valid:!0,message:""},mapResponse:{valid:o.default.isValid,message:o.default.getMessage}}),l=s.extend({id:"VALIDATE_FORWARDER",params:{type:"forwarder",ignore_system_default:!0}});e.validateForwarder=l;var u=s.extend({id:"VALIDATE_EMAIL",params:{type:"email",check_mailing_list:!0},schema:{check_exists:{type:Boolean,required:!1,default:!0}}});e.validateEmail=u;var d=s.extend({id:"VALIDATE_FTP",params:{type:"ftp"},domain:!0});e.validateFTP=d;var c=s.extend({params:{type:"dns"},domain:!0,schema:{record:r.default.REQUIRED_STRING}}),p=c.extend({id:"VALIDATE_DNS_VALUE",params:{check:"value",name:!0},domain:!0,schema:{value:r.default.REQUIRED_STRING}});e.validateDNSValue=p;var f=p.extend({id:"VALIDATE_MX_VALUE",params:{record:"MX"},before:function(t){return{value:"10",mx_value:t.value}}});e.validateMXValue=f;var m=c.extend({id:"VALIDATE_DNS_NAME",params:{check:"name",value:!0,mx_value:!0},schema:{name:r.default.REQUIRED_STRING,value:null}});e.validateDNSName=m;var v=s.extend({id:"VALIDATE_DATABASE",params:{type:"dbname"}});e.validateDatabase=v;var h=s.extend({id:"VALIDATE_DATABASE_USER",params:{type:"dbusername"}});e.validateDBUser=h;var _=s.extend({id:"VALIDATE_USERNAME",params:{type:"username"}});e.validateUsername=_;var b=s.extend({id:"VALIDATE_SUBDOMAIN",domain:!0,params:{type:"subdomain"}});e.validateSubdomain=b;var x=s.extend({id:"VALIDATE_PASSWORD",params:{type:"password"}});e.validatePassword=x;var R=s.extend({id:"VALIDATE_DOMAIN",params:{type:"domain"},before:function(t){var e=t.value;return{value:i.default.toASCII(e)}}});e.validateDomain=R;var y=s.extend({id:"VALIDATE_IP_RANGE_LIST",params:{type:"ip_range_list"}});e.validateIPRangeList=y},1426:function(t,e,a){"use strict";a.r(e);var n=a(35);e.default={isValid:function(t){return void 0===t.error},getMessage:function(t){return Object(n.toAppHtml)(t.error||"")}}},1482:function(t,e,a){"use strict";var n=a(10),r=a(1);Object.defineProperty(e,"__esModule",{value:!0}),e.setMxTemplate=e.setLocalMailStatus=e.editRecord=e.addRecord=e.deleteRecords=e.getMXRecords=e.updateAdminTTL=e.updateTTL=e.getAdminRecords=e.getRecords=void 0;var i=r(a(17)),o=r(a(20)),s=r(a(2)),l=r(a(30)),u=a(11),d=a(13),c=n(a(2498));function p(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function f(t){for(var e=1;e1&&void 0!==arguments[1])||arguments[1];return["NS","CNAME"].includes(a)&&(e=this.$p6e.toU(e)),"MX"===a&&(e=e.split(" ").map(this.$p6e.toU).join(" ")),e.length>50&&n?this.strToChunks(e,10):e},getCopyString:function(t,e){e.clipboardData.setData("text/plain",this.getValueString(t,!1)),e.preventDefault()},loadRecords:(v=(0,o.default)(i.default.mark((function t(){return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.$emit("rows:update"),this.checkedRecords=[];case 2:case"end":return t.stop()}}),t,this)}))),function(){return v.apply(this,arguments)}),updateRecord:(m=(0,o.default)(i.default.mark((function t(e){var a;return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,s.editRecord)(c({},Object.assign({},e),{ptr:this.pointer,domain:this.domain}));case 2:a=t.sent,this.$notify({theme:a.success?"safe":"danger",title:a.success?this.$gettext("Domain record was updated successfully"):this.$gettext("Request failed")}),a.success&&this.loadRecords();case 5:case"end":return t.stop()}}),t,this)}))),function(t){return m.apply(this,arguments)}),addRecord:(f=(0,o.default)(i.default.mark((function t(e){return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,s.addRecord)(c({},e,{domain:this.domain,ptr_val:this.pointer}));case 2:t.sent&&this.loadRecords();case 4:case"end":return t.stop()}}),t,this)}))),function(t){return f.apply(this,arguments)}),deleteRecords:(p=(0,o.default)(i.default.mark((function t(){return i.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,s.deleteRecords)({records:this.checkedRecords,ptr:this.pointer,domain:this.domain,affect_pointers:this.hasAffectPointers?this.ap:null});case 2:t.sent&&(this.checkedRecords=[],this.loadRecords());case 4:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)}),editRecord:function(t){this.editableRecord=t,this.$dialog("EDIT_DNS_RECORD_DIALOG").open()}}};e.default=h},1629:function(t,e,a){"use strict";a.r(e);var n=a(1630),r=a.n(n);for(var i in n)"default"!==i&&function(t){a.d(e,t,(function(){return n[t]}))}(i);e.default=r.a},1630:function(t,e,a){"use strict";var n=a(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r,i,o,s,l,u=n(a(15)),d=n(a(16)),c=a(1425),p=a(2284),f={type:Boolean,required:!1,default:!1},m={props:{only:{type:String,default:""},domain:{type:String,required:!0},dns_spf:f,dns_ds:f,dns_tlsa:f,dns_caa:f,full_mx_records:f,pointer:{type:[String,Object],required:!1,default:null},showTTL:{type:Boolean,required:!1,default:!1},disableTTL:{type:Boolean,required:!1,default:!1},affectPointers:{type:Object,required:!1,default:function(){return{show:!1,default:!1}}}},data:function(){return{type:this.only||"A",name:"",value:"",mxValue:"",ttl:"",txtType:"plain",ap:this.affectPointers.default}},api:[{command:c.validateDNSName,bind:"dnsName"},{command:c.validateDNSValue,bind:"dnsValue"},{command:c.validateMXValue,bind:"mxValue"}],commands:{validate:{dnsName:c.validateDNSName,dnsValue:c.validateDNSValue,mxValue:c.validateMXValue}},computed:{requestData:function(){return{type:this.type,name:this.$p6e.toA(this.name),domain:this.domain,value:"TXT"===this.type?this.value:this.$p6e.toA(this.value),mx_value:this.$p6e.toA(this.mxValue),ttl:this.ttl||null,affect_pointers:this.affectPointers?this.ap:null}},allowedRecordTypes:function(){var t=["A","NS","MX","CNAME","PTR","TXT","SRV","AAAA"];return this.dns_spf&&t.push("SPF"),this.dns_ds&&t.push("DS"),this.dns_tlsa&&t.push("TLSA"),this.dns_caa&&t.push("CAA"),t},defaultName:function(){return this.$p6e.toU("".concat(this.pointer||this.domain,"."))},defaultTTL:function(){try{return this.$state.commands.DNS_RECORDS.response.ttl.value||this.$state.commands.DNS_RECORDS.response.ttl.default}catch(t){return"14400"}},mxRecordsPage:function(){return"MX"===this.type},fqdnName:function(){return this.makeFQDN(this.name)},fqdnValue:function(){return!!["CNAME","MX","NS","PTR"].includes(this.type)&&this.makeFQDN("MX"===this.type?this.mxValue:this.value)},txtGeneratorComponent:function(){return"TXT"===this.type&&"plain"!==this.txtType&&p.editors[this.txtType]},spfValid:function(){return this.$store.getters["validation/isValid"]("spf-record")}},watch:{type:function(){this.setVars()},txtType:function(t){"dmarc"===t&&(this.name="_dmarc")}},created:function(){this.setVars()},methods:{makeFQDN:function(t){return!(!t||"."===t[t.length-1])&&"".concat(t,".").concat(this.$p6e.toU(this.domain))},setVars:(l=(0,d.default)(u.default.mark((function t(){return u.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.ap=this.affectPointers.default,this.showTTL&&(this.ttl=this.defaultTTL),t.t0=this.type,t.next="MX"===t.t0?5:"NS"===t.t0?8:"TXT"===t.t0?8:"CNAME"===t.t0?12:15;break;case 5:return this.name=this.defaultName,this.value="10",t.abrupt("break",18);case 8:return this.value="",this.name=this.defaultName,"dmarc"===this.txtType&&(this.name="_dmarc"),t.abrupt("break",18);case 12:return this.name="",this.value=this.defaultName,t.abrupt("break",18);case 15:this.name="",this.value="",this.mxValue="";case 18:this.$store.commit("validation/TOUCH_GROUP_INPUTS","addRecord");case 19:case"end":return t.stop()}}),t,this)}))),function(){return l.apply(this,arguments)}),submit:(s=(0,d.default)(u.default.mark((function t(){return u.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.$emit("submit",Object.assign({},this.requestData)),this.setVars();case 2:case"end":return t.stop()}}),t,this)}))),function(){return s.apply(this,arguments)}),validateDnsRecordName:(o=(0,d.default)(u.default.mark((function t(e){var a,n;return u.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e){t.next=2;break}return t.abrupt("return",!0);case 2:return t.next=4,(0,c.validateDNSName)({record:this.type,domain:this.domain,pointer:this.pointer,name:this.$p6e.toA(e)});case 4:return a=t.sent,n=a.valid,t.abrupt("return",n);case 7:case"end":return t.stop()}}),t,this)}))),function(t){return o.apply(this,arguments)}),validateDnsRecordValue:(i=(0,d.default)(u.default.mark((function t(e){var a,n;return u.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e&&"MX"!==this.type){t.next=2;break}return t.abrupt("return",!0);case 2:return t.next=4,(0,c.validateDNSValue)({record:this.type,domain:this.domain,pointer:this.pointer,value:e});case 4:return a=t.sent,n=a.valid,t.abrupt("return",n);case 7:case"end":return t.stop()}}),t,this)}))),function(t){return i.apply(this,arguments)}),validateMxRecordValue:(r=(0,d.default)(u.default.mark((function t(e){var a,n;return u.default.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e&&"MX"===this.type&&this.full_mx_records){t.next=2;break}return t.abrupt("return",!0);case 2:return t.next=4,(0,c.validateMXValue)({domain:this.domain,pointer:this.pointer,value:e});case 4:return a=t.sent,n=a.valid,t.abrupt("return",n);case 7:case"end":return t.stop()}}),t,this)}))),function(t){return r.apply(this,arguments)})}};e.default=m},1631:function(t,e,a){"use strict";a.r(e);var n=a(1632),r=a.n(n);for(var i in n)"default"!==i&&function(t){a.d(e,t,(function(){return n[t]}))}(i);e.default=r.a},1632:function(t,e,a){"use strict";var n=a(10);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=n(a(2501)),i={model:{prop:"value",event:"change"},props:{value:{type:String,required:!0}},data:function(){return{rua:"",ruf:"",p:"none",sp:"",rf:"afrf",ri:"86400",pct:"100",adkim:"relaxed",aspf:"relaxed"}},computed:{innerValue:function(){return r.generate({p:this.p,sp:this.sp,rua:this.rua,ruf:this.ruf,rf:this.rf,ri:this.ri,pct:this.pct,adkim:this.adkim,aspf:this.aspf})}},watch:{innerValue:function(t){t!==this.value&&this.$emit("change",this.innerValue)},value:{handler:"updateInnerValue",immediate:!0}},methods:{updateInnerValue:function(t){t=t.replace(/^"|"$/g,""),r.notDMARC(t)?this.$emit("change",this.innerValue):t!==this.innerValue&&Object.assign(this,r.parse(t))}}};e.default=i},1633:function(t,e,a){"use strict";a.r(e);var n=a(1634),r=a.n(n);for(var i in n)"default"!==i&&function(t){a.d(e,t,(function(){return n[t]}))}(i);e.default=r.a},1634:function(t,e,a){"use strict";var n=a(1),r=a(10);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=n(a(2)),o=r(a(1525)),s=r(a(6)),l=a(13),u=r(a(3260));function d(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}var c=s.filter(s.test(l.REGEXPS.domain)),p=s.complement(s.pipe(s.prop("value"),s.contains("_"))),f={components:{InputIp:o.default},model:{prop:"value",event:"change"},props:{value:{type:String,required:!0},domain:{type:String,required:!1,default:function(){return(void 0).$domainUnicode}}},data:function(){return{ips:[{version:"v4",netmask:"",value:""}],include:[""],options:["mx","a"],strict:"-all",redirect:"",a:[""]}},computed:{processedIps:function(){var t=s.when(s.propEq("version","v4"),s.evolve({netmask:o.netmask2cidr}));return s.pipe(s.filter(p),s.map(t))(this.ips)},processedDomains:function(){return c(this.a)},processedIncludes:function(){return c(this.include)},spfRecord:function(){return{options:this.options,values:this.values,strict:this.strict,redirect:this.redirect,ips:this.processedIps,include:this.processedIncludes,a:this.processedDomains}},innerValue:function(){return u.generate(this.spfRecord)},lookupLimit:function(){return this.processedDomains.length+this.processedIncludes.length>=10}},watch:{innerValue:function(t){this.$emit("change",t)},value:{handler:"updateInnerValue",immediate:!0}},methods:{isIpValid:p,validDomain:s.test(l.REGEXPS.domain),updateInnerValue:function(t){if(t=t.replace(/^"|"$/g,""),u.notSPF(t))this.$emit("change",this.innerValue);else if(t!==this.innerValue){var e=s.pipe(u.parse,s.evolve({ips:s.map((function(t){return function(t){for(var e=1;e0?t:this.$state.options["tables/ipp"]},page:function(){var t=Number(this.$route.query.page)||!1;return t&&t>0?t:1},sortComparator:function(){var t="DESC"===this.sort.order?a.descend:a.ascend;return a.sortWith("year"===this.sort.key?[t(a.prop("year")),t(a.prop("month"))]:[t(a.prop(this.sort.key))])},sortedHistory:function(){return this.sortComparator(this.history)},rows:function(){return this.sortedHistory.slice((this.page-1)*this.ipp,this.page*this.ipp)}},methods:{getMonthName:function(t){return[this.$gettext("January"),this.$gettext("February"),this.$gettext("March"),this.$gettext("April"),this.$gettext("May"),this.$gettext("June"),this.$gettext("July"),this.$gettext("August"),this.$gettext("September"),this.$gettext("October"),this.$gettext("November"),this.$gettext("December")][parseInt(t,10)-1]}}};e.default=o},1437:function(t,e,r){"use strict";r.r(e);var n=r(1438),a=r.n(n);for(var o in n)"default"!==o&&function(t){r.d(e,t,(function(){return n[t]}))}(o);e.default=a.a},1438:function(t,e,r){"use strict";var n=r(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a=n(r(2)),o=n(r(12)),i=r(1532);function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function u(t){for(var e=1;e0?t:this.$state.options["tables/ipp"]},page:function(){var t=Number(this.$route.query.page)||!1;return t&&t>0?t:1},sortComparator:function(){var t="DESC"===this.sort.order?a.descend:a.ascend;return a.sortWith("year"===this.sort.key?[t(a.prop("year")),t(a.prop("month"))]:[t(a.prop(this.sort.key))])},sortedHistory:function(){return this.sortComparator(this.history)},rows:function(){return this.sortedHistory.slice((this.page-1)*this.ipp,this.page*this.ipp)}},methods:{getMonthName:function(t){return[this.$gettext("January"),this.$gettext("February"),this.$gettext("March"),this.$gettext("April"),this.$gettext("May"),this.$gettext("June"),this.$gettext("July"),this.$gettext("August"),this.$gettext("September"),this.$gettext("October"),this.$gettext("November"),this.$gettext("December")][parseInt(t,10)-1]}}};e.default=o},1437:function(t,e,r){"use strict";r.r(e);var n=r(1438),a=r.n(n);for(var o in n)"default"!==o&&function(t){r.d(e,t,(function(){return n[t]}))}(o);e.default=a.a},1438:function(t,e,r){"use strict";var n=r(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var a=n(r(2)),o=n(r(12)),i=r(1532);function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function u(t){for(var e=1;e0?t:this.$state.options["tables/ipp"]},page:function(){var t=Number(this.$route.query.page)||!1;return t&&t>0?t:1},sortComparator:function(){var t="DESC"===this.sort.order?o.descend:o.ascend;return o.sortWith("year"===this.sort.key?[t(o.prop("year")),t(o.prop("month"))]:[t(o.prop(this.sort.key))])},sortedHistory:function(){return this.sortComparator(this.history)},rows:function(){return this.sortedHistory.slice((this.page-1)*this.ipp,this.page*this.ipp)}},methods:{getMonthName:function(t){return[this.$gettext("January"),this.$gettext("February"),this.$gettext("March"),this.$gettext("April"),this.$gettext("May"),this.$gettext("June"),this.$gettext("July"),this.$gettext("August"),this.$gettext("September"),this.$gettext("October"),this.$gettext("November"),this.$gettext("December")][parseInt(t,10)-1]}}};e.default=a},1437:function(t,e,r){"use strict";r.r(e);var n=r(1438),o=r.n(n);for(var a in n)"default"!==a&&function(t){r.d(e,t,(function(){return n[t]}))}(a);e.default=o.a},1438:function(t,e,r){"use strict";var n=r(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(2)),a=n(r(12)),i=r(1532);function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function u(t){for(var e=1;e0?t:this.$state.options["tables/ipp"]},page:function(){var t=Number(this.$route.query.page)||!1;return t&&t>0?t:1},sortComparator:function(){var t="DESC"===this.sort.order?o.descend:o.ascend;return o.sortWith("year"===this.sort.key?[t(o.prop("year")),t(o.prop("month"))]:[t(o.prop(this.sort.key))])},sortedHistory:function(){return this.sortComparator(this.history)},rows:function(){return this.sortedHistory.slice((this.page-1)*this.ipp,this.page*this.ipp)}},methods:{getMonthName:function(t){return[this.$gettext("January"),this.$gettext("February"),this.$gettext("March"),this.$gettext("April"),this.$gettext("May"),this.$gettext("June"),this.$gettext("July"),this.$gettext("August"),this.$gettext("September"),this.$gettext("October"),this.$gettext("November"),this.$gettext("December")][parseInt(t,10)-1]}}};e.default=a},1437:function(t,e,r){"use strict";r.r(e);var n=r(1438),o=r.n(n);for(var a in n)"default"!==a&&function(t){r.d(e,t,(function(){return n[t]}))}(a);e.default=o.a},1438:function(t,e,r){"use strict";var n=r(1);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var o=n(r(2)),a=n(r(12)),i=r(1532);function s(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function u(t){for(var e=1;eparseInt(l,i)},validateUniqueness:function(e){var t=e.value;return this.validateIP(t)?(0,d.validateIP)({value:t}):{valid:!0}}},created:function(){this.validateUniqueness.id="VALIDATE_IP"}};t.default=c},1526:function(e,t,a){"use strict";var n=a(1);Object.defineProperty(t,"__esModule",{value:!0}),t.validateIP=t.addIp=t.deleteIps=t.clearNamespace=t.removeReseller=t.assignReseller=t.getIps=void 0;var s=n(a(30)),r="/CMD_IP_MANAGER",l=(new(n(a(12)).default)).$gettext,i=s.default.get({url:r,id:"IP_MANAGER",response:{ips:[],info:{}},pagination:!0,after:function(e){return e.flow(e.moveProp({ips:"rows"}),e.deleteProp("num_ips"),e.processTableInfo("rows"),e.mapProps({rows:e.toArray}))}});t.getIps=i;var o=s.default.select({url:r,params:{assign:!0,json:!0},schema:{reseller:s.default.REQUIRED_STRING}});t.assignReseller=o;var u=s.default.select({url:r,params:{json:!0,remove:!0}});t.removeReseller=u;var d=s.default.select({url:r,params:{json:!0,clear:!0}});t.clearNamespace=d;var c=s.default.select({url:"".concat(r,"?json=yes"),params:{json:!0,delete:!0}});t.deleteIps=c;var v=s.default.post({url:r,params:{action:"add",json:!0,add_to_device_aware:!0},schema:{ip:s.default.REQUIRED_STRING,netmask:s.default.REQUIRED_STRING,add_to_device:s.default.REQUIRED_BOOL}});t.addIp=v;var p=s.default.get({url:r,id:"VALIDATE_IP",params:{comparison1:"equals"},schema:{value:s.default.REQUIRED_STRING},before:function(e){return{value1:e.value,value:null}},after:function(){return function(e){return"0"!==e.ips.info.rows?{valid:!1,message:l("You already have this IP on your system.")}:{valid:!0}}}});t.validateIP=p},1648:function(e,t,a){"use strict";a.r(t);var n=a(1649),s=a.n(n);for(var r in n)"default"!==r&&function(e){a.d(t,e,(function(){return n[e]}))}(r);t.default=s.a},1649:function(e,t,a){"use strict";var n=a(1),s=a(10);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(a(1526)),l=n(a(1650)),i=n(a(2514)),o={preload:r.getIps,commands:r,api:[{command:r.getIps,bind:"data"}],components:{AddIpDialog:l.default,AssignIpDialog:i.default},data:function(){return{select:[]}},computed:{rows:function(){return this.$api.data.rows},selectedRows:function(){var e=this;return this.rows.filter((function(t){return e.select.includes(t.ip)}))},enableAssign:function(){return 1===this.selectedRows.length&&!this.selectedRows[0].reseller},enableRemove:function(){return this.selectedRows.every((function(e){return e.reseller}))},enableDelete:function(){return this.selectedRows.every((function(e){return!e.reseller&&"free"===e.status}))}},methods:{reloadTable:function(){this.$reloadApiTable(),this.select=[]},assignIp:function(e){r.assignReseller({select:this.select,reseller:e}).then(this.reloadTable)},removeIpReseller:function(){r.removeReseller({select:this.select}).then(this.reloadTable)},clearIpNamespace:function(){r.clearNamespace({select:this.select}).then(this.reloadTable)},deleteIps:function(){r.deleteIps({select:this.select}).then(this.reloadTable)},addIp:function(e){r.addIp(e).then(this.reloadTable)}}};t.default=o},1650:function(e,t,a){"use strict";a.r(t);var n=a(2271),s=a(1486);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var l=a(0),i=Object(l.a)(s.default,n.a,n.b,!1,null,null,null);t.default=i.exports},1651:function(e,t,a){"use strict";a.r(t);var n=a(1652),s=a.n(n);for(var r in n)"default"!==r&&function(e){a.d(t,e,(function(){return n[e]}))}(r);t.default=s.a},1652:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n={api:[{command:a(1526).getIps,bind:{"response.creators":"creators"}}],props:{ipCount:{type:Number,required:!0}},data:function(){return{reseller:""}},methods:{submit:function(){this.$emit("assign",this.reseller)}}};t.default=n},2271:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",{attrs:{id:"ADD_IP_DIALOG",theme:"primary"}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Add IP Address")]),e._v(" "),a("template",{slot:"content"},[a("ui-form-element",{attrs:{group:"addIp",validators:{required:!0,validateIP:e.validateIP,validateRange:e.validateRange,api:e.validateUniqueness},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("IP Address")]),e._v(" "),a("input-ip",{attrs:{slot:"content",version:e.version,netmask:e.netmask,disableVersionSelect:!e.haveIPv6,allowRange:""},on:{"update:version":function(t){e.version=t},"update:netmask":function(t){e.netmask=t}},slot:"content",model:{value:e.ip,callback:function(t){e.ip=t},expression:"ip"}}),e._v(" "),a("translate",{attrs:{slot:"error:validateIP"},slot:"error:validateIP"},[e._v("Should be valid IP Address")]),e._v(" "),a("translate",{attrs:{slot:"error:validateRange"},slot:"error:validateRange"},[e._v("Range end should be larger than start")])],1),e._v(" "),a("ui-form-element",{attrs:{group:"addIp",validators:{required:!0,regex:e.regexps.ip},vertical:""}},[a("translate",{attrs:{slot:"title"},slot:"title"},[e._v("Netmask")]),e._v(" "),"v4"===e.version?a("input-ip",{attrs:{slot:"content",disableVersionSelect:""},slot:"content",model:{value:e.netmask,callback:function(t){e.netmask=t},expression:"netmask"}}):a("translate",{attrs:{slot:"content"},slot:"content"},[e._v("\n For IPv6 IPs, use a /mask, eg: /64\n ")]),e._v(" "),a("translate",{attrs:{slot:"error:regex"},slot:"error:regex"},[e._v("Should be valid netmask")])],1),e._v(" "),a("ui-form-element",{attrs:{vertical:""}},[a("input-checkbox",{attrs:{slot:"content"},slot:"content",model:{value:e.addToDevice,callback:function(t){e.addToDevice=t},expression:"addToDevice"}},[a("translate",[e._v("Add to device")])],1)],1)],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",theme:"primary",validateGroup:"addIp"},on:{click:e.submit},slot:"buttons"},[a("translate",[e._v("Add IP")])],1)],2)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},2514:function(e,t,a){"use strict";a.r(t);var n=a(3129),s=a(1651);for(var r in s)"default"!==r&&function(e){a.d(t,e,(function(){return s[e]}))}(r);var l=a(0),i=Object(l.a)(s.default,n.a,n.b,!1,null,null,null);t.default=i.exports},2515:function(e,t){},2987:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("app-page",[a("template",{slot:"header:buttons"},[a("ui-button",{attrs:{theme:"primary"},on:{click:function(t){e.$dialog("ADD_IP_DIALOG").open()}}},[a("translate",[e._v("Add IP")])],1)],1),e._v(" "),a("app-page-section",[a("ui-api-table",e._b({attrs:{"equal-width-layout":""},on:{"action:assign":function(t){e.$dialog("ASSIGN_IP_DIALOG").open()},"action:remove":e.removeIpReseller,"action:clear":e.clearIpNamespace,"action:del":function(t){e.$dialog("DELETE_ITEMS_DIALOG").open()}},scopedSlots:e._u([{key:"col:ip",fn:function(t){var n=t.ip;return a("ui-link",{attrs:{name:"admin/ip-manager/details",params:{ip:n}}},[e._v("\n "+e._s(n)+"\n ")])}}]),model:{value:e.select,callback:function(t){e.select=t},expression:"select"}},"ui-api-table",{command:e.$commands.getIps,endpoint:"GET_IPS",rowID:"ip",columns:{ip:e.$gettext("IP"),status:e.$gettext("Status"),reseller:e.$gettext("Reseller"),users:e.$gettext("Users"),nameserver:{label:e.$gettext("Name Server"),filter:"p6eUnicode"},netmask:e.$gettext("Netmask")},actions:{assign:{label:e.$gettext("Assign"),disabled:!e.enableAssign},remove:{label:e.$gettext("Remove from reseller"),disabled:!e.enableRemove},clear:e.$gettext("Clear NS"),del:{label:e.$gettext("Delete"),disabled:!e.enableDelete}},verticalLayout:e.$_Client.isPhone},!1))],1),e._v(" "),a("assign-ip-dialog",{attrs:{"ip-count":e.select.length},on:{assign:e.assignIp}}),e._v(" "),a("add-ip-dialog",{on:{submit:e.addIp}}),e._v(" "),a("ui-dialog-delete-items",{attrs:{subject:e.$ngettext("IP Address","IP Addresses",e.select.length)},on:{"click:confirm":e.deleteIps}})],2)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))},3129:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ui-dialog",{attrs:{id:"ASSIGN_IP_DIALOG",theme:"safe"}},[a("translate",{attrs:{slot:"title","translate-n":e.ipCount,"translate-plural":"Assign IPs"},slot:"title"},[e._v("\n Assign IP\n ")]),e._v(" "),a("ui-form-element",{attrs:{slot:"content",group:"assignIp",validators:{required:!0}},slot:"content"},[a("translate",{attrs:{slot:"title","translate-n":e.ipCount,"translate-plural":"Assign IPs to:"},slot:"title"},[e._v("\n Assign IP to:\n ")]),e._v(" "),a("input-select",{attrs:{slot:"content",options:e.$api.creators},slot:"content",model:{value:e.reseller,callback:function(t){e.reseller=t},expression:"reseller"}})],1),e._v(" "),a("ui-button",{attrs:{slot:"buttons",validateGroup:"assignIp",theme:"safe"},on:{click:e.submit},slot:"buttons"},[a("translate",[e._v("Assign")])],1)],1)},s=[];a.d(t,"a",(function(){return n})),a.d(t,"b",(function(){return s}))}}]); \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/assets/pages/5.js b/directadmin-1.62.4/data/skins/evolution/assets/pages/5.js new file mode 100644 index 0000000..40b8633 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/assets/pages/5.js @@ -0,0 +1,8 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{1529:function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0}),e.uploadLogo=e.resetLogo=e.clearColors=e.saveColors=e.getCustomizations=e.getColors=e.uploadSkin=e.deleteSkins=e.applyGlobal=e.applySkin=e.getSkins=void 0;var o=r(n(20)),i=r(n(2)),a=r(n(30));function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e=s?t?"":void 0:(i=l.charCodeAt(c))<55296||i>56319||c+1===s||(a=l.charCodeAt(c+1))<56320||a>57343?t?l.charAt(c):i:t?l.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},"0390":function(t,e,n){"use strict";var r=n("02f4")(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},"07e3":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"0bfb":function(t,e,n){"use strict";var r=n("cb7c");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0fc9":function(t,e,n){var r=n("3a38"),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},1654:function(t,e,n){"use strict";var r=n("71c1")(!0);n("30f1")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},1691:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},"1af6":function(t,e,n){var r=n("63b6");r(r.S,"Array",{isArray:n("9003")})},"1bc3":function(t,e,n){var r=n("f772");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"1ec9":function(t,e,n){var r=n("f772"),o=n("e53d").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"20fd":function(t,e,n){"use strict";var r=n("d9f6"),o=n("aebd");t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}},"214f":function(t,e,n){"use strict";n("b0c5");var r=n("2aba"),o=n("32e9"),i=n("79e5"),a=n("be13"),l=n("2b4c"),c=n("520a"),s=l("species"),u=!i((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")})),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var d=l(t),p=!i((function(){var e={};return e[d]=function(){return 7},7!=""[t](e)})),h=p?!i((function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[s]=function(){return n}),n[d](""),!e})):void 0;if(!p||!h||"replace"===t&&!u||"split"===t&&!f){var v=/./[d],g=n(a,d,""[t],(function(t,e,n,r,o){return e.exec===c?p&&!o?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}})),m=g[0],b=g[1];r(String.prototype,t,m),o(RegExp.prototype,d,2==e?function(t,e){return b.call(t,this,e)}:function(t){return b.call(t,this)})}}},"230e":function(t,e,n){var r=n("d3f4"),o=n("7726").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"23c6":function(t,e,n){var r=n("2d95"),o=n("2b4c")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},"241e":function(t,e,n){var r=n("25eb");t.exports=function(t){return Object(r(t))}},"25eb":function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},"294c":function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},"2aba":function(t,e,n){var r=n("7726"),o=n("32e9"),i=n("69a8"),a=n("ca5a")("src"),l=n("fa5b"),c=(""+l).split("toString");n("8378").inspectSource=function(t){return l.call(t)},(t.exports=function(t,e,n,l){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:c.join(String(e)))),t===r?t[e]=n:l?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[a]||l.call(this)}))},"2b4c":function(t,e,n){var r=n("5537")("wks"),o=n("ca5a"),i=n("7726").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},"2d00":function(t,e){t.exports=!1},"2d95":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"2fdb":function(t,e,n){"use strict";var r=n("5ca1"),o=n("d2c8");r(r.P+r.F*n("5147")("includes"),"String",{includes:function(t){return!!~o(this,t,"includes").indexOf(t,arguments.length>1?arguments[1]:void 0)}})},"30f1":function(t,e,n){"use strict";var r=n("b8e3"),o=n("63b6"),i=n("9138"),a=n("35e8"),l=n("481b"),c=n("8f60"),s=n("45f2"),u=n("53e2"),f=n("5168")("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};t.exports=function(t,e,n,h,v,g,m){c(n,e,h);var b,y,w,_=function(t){if(!d&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},x=e+" Iterator",S="values"==v,E=!1,O=t.prototype,D=O[f]||O["@@iterator"]||v&&O[v],C=D||_(v),T=v?S?_("entries"):C:void 0,I="Array"==e&&O.entries||D;if(I&&(w=u(I.call(new t)))!==Object.prototype&&w.next&&(s(w,x,!0),r||"function"==typeof w[f]||a(w,f,p)),S&&D&&"values"!==D.name&&(E=!0,C=function(){return D.call(this)}),r&&!m||!d&&!E&&O[f]||a(O,f,C),l[e]=C,l[x]=p,v)if(b={values:S?C:_("values"),keys:g?C:_("keys"),entries:T},m)for(y in b)y in O||i(O,y,b[y]);else o(o.P+o.F*(d||E),e,b);return b}},"32a6":function(t,e,n){var r=n("241e"),o=n("c3a1");n("ce7e")("keys",(function(){return function(t){return o(r(t))}}))},"32e9":function(t,e,n){var r=n("86cc"),o=n("4630");t.exports=n("9e1e")?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},"32fc":function(t,e,n){var r=n("e53d").document;t.exports=r&&r.documentElement},"335c":function(t,e,n){var r=n("6b4c");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},"355d":function(t,e){e.f={}.propertyIsEnumerable},"35e8":function(t,e,n){var r=n("d9f6"),o=n("aebd");t.exports=n("8e60")?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},"36c3":function(t,e,n){var r=n("335c"),o=n("25eb");t.exports=function(t){return r(o(t))}},3702:function(t,e,n){var r=n("481b"),o=n("5168")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},"3a38":function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},"40c3":function(t,e,n){var r=n("6b4c"),o=n("5168")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},4588:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},"45f2":function(t,e,n){var r=n("d9f6").f,o=n("07e3"),i=n("5168")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"469f":function(t,e,n){n("6c1c"),n("1654"),t.exports=n("7d7b")},"481b":function(t,e){t.exports={}},"4aa6":function(t,e,n){t.exports=n("dc62")},"4bf8":function(t,e,n){var r=n("be13");t.exports=function(t){return Object(r(t))}},"4ee1":function(t,e,n){var r=n("5168")("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},t(i)}catch(t){}return n}},"50ed":function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},5147:function(t,e,n){var r=n("2b4c")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,!"/./"[t](e)}catch(t){}}return!0}},5168:function(t,e,n){var r=n("dbdb")("wks"),o=n("62a0"),i=n("e53d").Symbol,a="function"==typeof i;(t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=r},5176:function(t,e,n){t.exports=n("51b6")},"51b6":function(t,e,n){n("a3c3"),t.exports=n("584a").Object.assign},"520a":function(t,e,n){"use strict";var r,o,i=n("0bfb"),a=RegExp.prototype.exec,l=String.prototype.replace,c=a,s=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),u=void 0!==/()??/.exec("")[1];(s||u)&&(c=function(t){var e,n,r,o,c=this;return u&&(n=new RegExp("^"+c.source+"$(?!\\s)",i.call(c))),s&&(e=c.lastIndex),r=a.call(c,t),s&&r&&(c.lastIndex=c.global?r.index+r[0].length:e),u&&r&&r.length>1&&l.call(r[0],n,(function(){for(o=1;o1?arguments[1]:void 0,g=void 0!==v,m=0,b=u(d);if(g&&(v=r(v,h>2?arguments[2]:void 0,2)),null==b||p==Array&&l(b))for(n=new p(e=c(d.length));e>m;m++)s(n,m,g?v(d[m],m):d[m]);else for(f=b.call(d),n=new p;!(o=f.next()).done;m++)s(n,m,g?a(f,v,[o.value,m],!0):o.value);return n.length=m,n}})},"54a1":function(t,e,n){n("6c1c"),n("1654"),t.exports=n("95d5")},5537:function(t,e,n){var r=n("8378"),o=n("7726"),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},5559:function(t,e,n){var r=n("dbdb")("keys"),o=n("62a0");t.exports=function(t){return r[t]||(r[t]=o(t))}},"584a":function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},"5b4e":function(t,e,n){var r=n("36c3"),o=n("b447"),i=n("0fc9");t.exports=function(t){return function(e,n,a){var l,c=r(e),s=o(c.length),u=i(a,s);if(t&&n!=n){for(;s>u;)if((l=c[u++])!=l)return!0}else for(;s>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}}},"5ca1":function(t,e,n){var r=n("7726"),o=n("8378"),i=n("32e9"),a=n("2aba"),l=n("9b43"),c=function(t,e,n){var s,u,f,d,p=t&c.F,h=t&c.G,v=t&c.S,g=t&c.P,m=t&c.B,b=h?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,y=h?o:o[e]||(o[e]={}),w=y.prototype||(y.prototype={});for(s in h&&(n=e),n)f=((u=!p&&b&&void 0!==b[s])?b:n)[s],d=m&&u?l(f,r):g&&"function"==typeof f?l(Function.call,f):f,b&&a(b,s,f,t&c.U),y[s]!=f&&i(y,s,d),g&&w[s]!=f&&(w[s]=f)};r.core=o,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},"5d73":function(t,e,n){t.exports=n("469f")},"5f1b":function(t,e,n){"use strict";var r=n("23c6"),o=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,e)}},"626a":function(t,e,n){var r=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},"62a0":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},"63b6":function(t,e,n){var r=n("e53d"),o=n("584a"),i=n("d864"),a=n("35e8"),l=n("07e3"),c=function(t,e,n){var s,u,f,d=t&c.F,p=t&c.G,h=t&c.S,v=t&c.P,g=t&c.B,m=t&c.W,b=p?o:o[e]||(o[e]={}),y=b.prototype,w=p?r:h?r[e]:(r[e]||{}).prototype;for(s in p&&(n=e),n)(u=!d&&w&&void 0!==w[s])&&l(b,s)||(f=u?w[s]:n[s],b[s]=p&&"function"!=typeof w[s]?n[s]:g&&u?i(f,r):m&&w[s]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?i(Function.call,f):f,v&&((b.virtual||(b.virtual={}))[s]=f,t&c.R&&y&&!y[s]&&a(y,s,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},6762:function(t,e,n){"use strict";var r=n("5ca1"),o=n("c366")(!0);r(r.P,"Array",{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},6821:function(t,e,n){var r=n("626a"),o=n("be13");t.exports=function(t){return r(o(t))}},"69a8":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"6a99":function(t,e,n){var r=n("d3f4");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"6b4c":function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"6c1c":function(t,e,n){n("c367");for(var r=n("e53d"),o=n("35e8"),i=n("481b"),a=n("5168")("toStringTag"),l="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c=s?t?"":void 0:(i=l.charCodeAt(c))<55296||i>56319||c+1===s||(a=l.charCodeAt(c+1))<56320||a>57343?t?l.charAt(c):i:t?l.slice(c,c+2):a-56320+(i-55296<<10)+65536}}},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"774e":function(t,e,n){t.exports=n("d2d5")},"77f1":function(t,e,n){var r=n("4588"),o=Math.max,i=Math.min;t.exports=function(t,e){return(t=r(t))<0?o(t+e,0):i(t,e)}},"794b":function(t,e,n){t.exports=!n("8e60")&&!n("294c")((function(){return 7!=Object.defineProperty(n("1ec9")("div"),"a",{get:function(){return 7}}).a}))},"79aa":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},"7cd6":function(t,e,n){var r=n("40c3"),o=n("5168")("iterator"),i=n("481b");t.exports=n("584a").getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[r(t)]}},"7d7b":function(t,e,n){var r=n("e4ae"),o=n("7cd6");t.exports=n("584a").getIterator=function(t){var e=o(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return r(e.call(t))}},"7e90":function(t,e,n){var r=n("d9f6"),o=n("e4ae"),i=n("c3a1");t.exports=n("8e60")?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),l=a.length,c=0;l>c;)r.f(t,n=a[c++],e[n]);return t}},8378:function(t,e){var n=t.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},8436:function(t,e){t.exports=function(){}},"86cc":function(t,e,n){var r=n("cb7c"),o=n("c69a"),i=n("6a99"),a=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"8aae":function(t,e,n){n("32a6"),t.exports=n("584a").Object.keys},"8e60":function(t,e,n){t.exports=!n("294c")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},"8f60":function(t,e,n){"use strict";var r=n("a159"),o=n("aebd"),i=n("45f2"),a={};n("35e8")(a,n("5168")("iterator"),(function(){return this})),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},9003:function(t,e,n){var r=n("6b4c");t.exports=Array.isArray||function(t){return"Array"==r(t)}},9138:function(t,e,n){t.exports=n("35e8")},9306:function(t,e,n){"use strict";var r=n("c3a1"),o=n("9aa9"),i=n("355d"),a=n("241e"),l=n("335c"),c=Object.assign;t.exports=!c||n("294c")((function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach((function(t){e[t]=t})),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r}))?function(t,e){for(var n=a(t),c=arguments.length,s=1,u=o.f,f=i.f;c>s;)for(var d,p=l(arguments[s++]),h=u?r(p).concat(u(p)):r(p),v=h.length,g=0;v>g;)f.call(p,d=h[g++])&&(n[d]=p[d]);return n}:c},9427:function(t,e,n){var r=n("63b6");r(r.S,"Object",{create:n("a159")})},"95d5":function(t,e,n){var r=n("40c3"),o=n("5168")("iterator"),i=n("481b");t.exports=n("584a").isIterable=function(t){var e=Object(t);return void 0!==e[o]||"@@iterator"in e||i.hasOwnProperty(r(e))}},"9aa9":function(t,e){e.f=Object.getOwnPropertySymbols},"9b43":function(t,e,n){var r=n("d8e8");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var r=n("2b4c")("unscopables"),o=Array.prototype;null==o[r]&&n("32e9")(o,r,{}),t.exports=function(t){o[r][t]=!0}},"9def":function(t,e,n){var r=n("4588"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},a159:function(t,e,n){var r=n("e4ae"),o=n("7e90"),i=n("1691"),a=n("5559")("IE_PROTO"),l=function(){},c=function(){var t,e=n("1ec9")("iframe"),r=i.length;for(e.style.display="none",n("32fc").appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" + + +
+ + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/login_images/background.jpg b/directadmin-1.62.4/data/skins/evolution/login_images/background.jpg new file mode 100644 index 0000000..e9ae27e Binary files /dev/null and b/directadmin-1.62.4/data/skins/evolution/login_images/background.jpg differ diff --git a/directadmin-1.62.4/data/skins/evolution/login_images/favicon.png b/directadmin-1.62.4/data/skins/evolution/login_images/favicon.png new file mode 100644 index 0000000..d6d3d1f Binary files /dev/null and b/directadmin-1.62.4/data/skins/evolution/login_images/favicon.png differ diff --git a/directadmin-1.62.4/data/skins/evolution/lost_password.html b/directadmin-1.62.4/data/skins/evolution/lost_password.html new file mode 100644 index 0000000..65e5b5c --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/lost_password.html @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/plugins.html b/directadmin-1.62.4/data/skins/evolution/plugins.html new file mode 100644 index 0000000..1846bc8 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/plugins.html @@ -0,0 +1,33 @@ + + + + + + + |*if SHOW_INFO_IN_TITLE="0"| + |HOSTNAME| + |*else| + |HOSTNAME| | |DEAMONNAME| |VERSION| + |*endif| + + + + |HTM_HEAD| + + +
+ + + +
+ + + + + diff --git a/directadmin-1.62.4/data/skins/evolution/routes.conf b/directadmin-1.62.4/data/skins/evolution/routes.conf new file mode 100644 index 0000000..356f1e2 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/routes.conf @@ -0,0 +1,180 @@ +/404=Error 404: File Not Found +/admin/backups=Admin Backups +/admin/backups/* +/admin/backups/*/modify=Modify Backup Schedule +/admin/backups/*/modify/* +/admin/restore-backup=Restore Backup +/admin/restore-backup/* +/admin/schedule-backup=Schedule Backup +/admin/schedule-backup/* +/admin/brute-force-monitor=Brute Force Monitor +/admin/brute-force-monitor/blocklist=Brute Force Monitor: Block List +/admin/brute-force-monitor/failed-ips=Brute Force Monitor: IP List +/admin/brute-force-monitor/skiplist=Brute Force Monitor: Skip List +/admin/brute-force-monitor/failed-usernames=Brute Force Monitor: User List +/admin/cron-jobs=All User Cron Jobs +/admin/custom-httpd=Custom HTTPD Configurations +/admin/custom-httpd/*/*/customize=Customize configuration +/admin/custom-httpd/*/*/customize/* +/admin/custom-httpd/diff/* +/admin/custom-httpd/*/php-fpm/*=PHP-FPM Configuration +/admin/custom-httpd/*/php-fpm/*/* +/admin/custom-httpd/*/* +/admin/dns=DNS Administration +/admin/dns/create-zone=Create Zone +/admin/dns/*/edit +/admin/file-editor=File Editor +/admin/history=Admin History +/admin/ip-manager=IP Manager +/admin/ip-manager/*=IP Details +/admin/ip-manager/*/* +/admin/license=Licensing / Updates +/admin/log-viewer=Log Viewer +/admin/mail-queue=Mail Queue Administration +/admin/mail-queue/* +/admin/multi-server=Multi Server Setup +/admin/php-safe-mode=PHP Settings +/admin/plugin-manager=Plugin Manager +/admin/process-monitor=Process Monitor +/admin/reseller-packages=Manage Reseller Packages +/admin/reseller-packages/create=Create Package +/admin/reseller-packages/* +/admin/services=Show Services +/admin/settings=Admin Settings +/admin/settings/* +/admin/ssl=SSL Management +/admin/stats=Server Statistics +/admin/system-backup=System Backup +/admin/system-backup/* +/admin/users=Users +/admin/users/admins=Admins +/admin/users/admins/create=Create Admin +/admin/users/move=Move Users Between Resellers +/admin/users/resellers=Resellers +/admin/users/resellers/create=Create Reseller +/admin/users/resellers/*/modify +/admin/users/resellers/*/view=View Reseller +/admin/users/resellers/*/view/* +/kitchen-sink=Kitchen sink +/kitchen-sink/* +/logout=Logout +/phpmyadmin=phpMyAdmin +/dev/playground=DEV Playground +/reseller/backups=Manage User Backups +/reseller/backups/*/modify=Modify Backup +/reseller/backups/*/modify/* +/reseller/backups/restore=Restore Backup +/reseller/backups/restore/* +/reseller/backups/schedule=Schedule Backup +/reseller/backups/schedule/* +/reseller/tickets/create=Create Ticket +/reseller/customize-skin=Customize Evolution Skin +/reseller/customize-skin/* +/reseller/edit-user-message=Edit User Message +/reseller/history=Reseller History +/reseller/ip-config=IP Management +/reseller/message-users=Message All Users +/reseller/nameservers=Name Servers +/reseller/passwords=Change Passwords +/reseller/skins=Skins +/reseller/stats=Reseller Stats +/reseller/stats/* +/reseller/tickets=Manage Tickets +/reseller/user-packages=Manage User Packages +/reseller/create-user-package=Create New Package +/reseller/user-packages/* +/reseller/users=Show Users +/reseller/users/*/bandwidth/*=Bandwidth Breakdown +/reseller/users/*/bandwidth/*/* +/reseller/create-user=Create User +/reseller/users/*/history +/reseller/users/*/modify +/reseller/users/*/view=View User +/reseller/users/*/view/* +/user/backup=Site Backup +/user/backup/restore=Restore Backup +/user/bandwidth/*/* +/user/create-ticket=Create Ticket +/user/cronjobs=Cron Jobs +/user/cronjobs/create=Create Cron Job +/=Dashboard +/user/database=MySQL Management +/user/database/create=Create Database +/user/database/* +/user/disk-usage=Disk Usage +/user/disk-usage/* +/user/dns=DNS Management +/user/dns/mx-records=Modify MX Records +/user/dns/security=DNS Security +/user/dns/security/* +/user/domain-pointers=Domain Pointers +/user/domains=Domain management +/user/domains/add-domain=Create Domain +/user/domains/* +/user/domains/*/ips +/user/email/accounts=E-mail Accounts +/user/email/accounts/* +/user/email/create-account=Create Mail Account +/user/email/autoresponders=Autoresponders +/user/email/autoresponders/create=Create Autoresponder +/user/email/autoresponders/* +/user/email/catch-all=Set Catch All E-mail +/user/email/filters=E-mail Filters +/user/email/forwarders=Forwarders +/user/email/lists=Mailing Lists +/user/email/lists/*/modify +/user/email/lists/*/view=View Mailing List +/user/email/lists/*/view/* +/user/email/spamassassin=SpamAssassin Setup +/user/email/usage=E-mail Usage +/user/email/usage/* +/user/email/usage/blockcracking=BlockCracker Blocked Paths +/user/email/usage/php-scripts=PHP Scripts +/user/email/vacations=Vacation Messages +/user/email/vacations/create=Create Vacation Message +/user/email/vacations/*/modify +/user/error-pages=Edit Apache Error Pages +/user/filemanager=File Manager +/user/filemanager/edit=Edit File +/user/filemanager/view=View File +/user/ftp-accounts=FTP accounts +/user/ftp-accounts/create=Create FTP Account +/user/ftp-accounts/* +/user/ftp-settings=Anonymous FTP Settings +/user/handlers=Apache Handlers +/user/handlers/system=System Apache Handlers +/user/history=User History +/user/hotlinks=Hotlink Protection +/user/login-history=Login History +/user/login-keys=Login Keys +/user/login-keys/create=Create Login Key +/user/login-keys/*/log +/user/login-keys/* +/user/messages=My messages +/user/mimetypes=Mime Types +/user/mimetypes/system=System Mime Types +/user/password=Change your Password +/user/perl-modules=Perl Modules +/*/plugins/* +/user/protected-directories=Protected Directories +/user/protected-directories/view=View Protected Directory +/user/redirects=Site Redirects +/user/security-questions=Security Questions +/user/ssh-keys=SSH Keys +/user/ssh-keys/* +/user/ssh-keys/edit/* +/user/ssl=SSL Certificates +/user/ssl/* +/user/ssl/ca-certificate=Certificate Authority SSL Certificate +/user/stats=User Statistics +/user/stats/* +/user/stats/*/statistics=View Statistic Reports +/user/stats/*/statistics/* +/user/stats/log/*/* +/user/stats/subdomain/*/*/ +/user/subdomains=Sub-Domains Setup +/user/subdomains/*/log/* +/user/subdomains/*/stats=View Sub-Domain Stats +/user/subdomains/*/stats/* +/user/system-info=System Info +/user/two-step-auth=Two-Step Authentication diff --git a/directadmin-1.62.4/data/skins/evolution/skin.conf b/directadmin-1.62.4/data/skins/evolution/skin.conf new file mode 100644 index 0000000..3911cea --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/skin.conf @@ -0,0 +1,21 @@ +ALL_DOMAINS_SELECT=value +TABLES=div +widgets=1 +admin_widgets=WGT_ADMIN_STATS:WGT_ALL_USERS:WGT_SHOW_SERVICES:WGT_IP_MANAGER:WGT_SYSTEM_INFO:WGT_MAIL_QUEUE:WGT_LICENSE +admin_widgets_default=WGT_ADMIN_STATS:WGT_ALL_USERS:WGT_SHOW_SERVICES:WGT_IP_MANAGER +reseller_widgets=WGT_RESELLER_STATS:WGT_LIST_USERS:WGT_SKINS:WGT_SYSTEM_INFO:WGT_IP_CONFIG +reseller_widgets_default=WGT_RESELLER_STATS:WGT_LIST_USERS:WGT_SKINS +user_widgets=WGT_USER_STATS:WGT_ADDITIONAL_DOMAINS:WGT_SYSTEM_INFO:WGT_DB:WGT_EMAIL_POP +user_widgets_default=WGT_USER_STATS:WGT_ADDITIONAL_DOMAINS +ajax_error_class=error +filemanager_no_data=1 +filemanager_icons=pdf:zip:gz:tar:php:txt:jpg:png:gif:html +logo_token=IMG_LOGO +logo2_token=IMG_LOGO2 +404_override=app.html +config_json=1 +jsonformat=current +skin_domain_redirect=0 +state-change-require=POST +version=3333 +plugins_in_iframe=yes diff --git a/directadmin-1.62.4/data/skins/evolution/templates/security-question-auth.json b/directadmin-1.62.4/data/skins/evolution/templates/security-question-auth.json new file mode 100644 index 0000000..4a30d50 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/templates/security-question-auth.json @@ -0,0 +1,5 @@ +{ + "error": "not logged in", + "authType": "security-question-auth", +} +|QUESTION| \ No newline at end of file diff --git a/directadmin-1.62.4/data/skins/evolution/templates/two-step-auth.json b/directadmin-1.62.4/data/skins/evolution/templates/two-step-auth.json new file mode 100644 index 0000000..ce64988 --- /dev/null +++ b/directadmin-1.62.4/data/skins/evolution/templates/two-step-auth.json @@ -0,0 +1,4 @@ +{ + "error": true, + "type": "two-step" +} \ No newline at end of file diff --git a/directadmin-1.62.4/data/task.queue b/directadmin-1.62.4/data/task.queue new file mode 100644 index 0000000..c753f16 --- /dev/null +++ b/directadmin-1.62.4/data/task.queue @@ -0,0 +1,2 @@ +action=named&value=reload +action=rewrite&value=httpd diff --git a/directadmin-1.62.4/data/templates/README b/directadmin-1.62.4/data/templates/README new file mode 100644 index 0000000..a2e12be --- /dev/null +++ b/directadmin-1.62.4/data/templates/README @@ -0,0 +1,28 @@ +If you wish to customize these files, first copy them +into the custom directory and use them from there. + +If you try to use them from this direcotry, the next time +DirectAdmin updates, your changes will be overwritten. +Your changes will only be safe if they are in the custom +directory. + +DirectAdmin will first check the custom directory for +a template. If it can't find it, it will use the ones +in this directory. + +Most templates can be used in the custom dir. +Please search the Versions System at: +https://www.directadmin.com/versions.php +for info on how to use a specific template. + +If you want to rewrite all httpd.conf files with the new templates, run: +echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue + + +**IMPORTANT NOTE** +Regarding the template system, and all config files: +You must have a newline at the end of the files. +Failure to do so will result in unexpected behavior. +Go to the end, and press enter. +In DA a line is defined by a trailing newline character. + diff --git a/directadmin-1.62.4/data/templates/adult.list b/directadmin-1.62.4/data/templates/adult.list new file mode 100644 index 0000000..c78d6c4 --- /dev/null +++ b/directadmin-1.62.4/data/templates/adult.list @@ -0,0 +1,14 @@ + fuck + shit + ass +asshole + bitch + cunt + whore + sex + sexy + sexiest + slut + slutty + viagra + cialis diff --git a/directadmin-1.62.4/data/templates/apache.logrotate b/directadmin-1.62.4/data/templates/apache.logrotate new file mode 100644 index 0000000..c082064 --- /dev/null +++ b/directadmin-1.62.4/data/templates/apache.logrotate @@ -0,0 +1,8 @@ +/var/log/httpd/access_log /var/log/httpd/agent_log /var/log/httpd/error_log /var/log/httpd/referer_log /var/log/httpd/suexec_log /var/log/suphp.log { + missingok + sharedscripts + postrotate + /bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true + endscript +} + diff --git a/directadmin-1.62.4/data/templates/block_cracking_notice.txt b/directadmin-1.62.4/data/templates/block_cracking_notice.txt new file mode 100644 index 0000000..ec5cd9f --- /dev/null +++ b/directadmin-1.62.4/data/templates/block_cracking_notice.txt @@ -0,0 +1,19 @@ +|?SUBJECT=Warning: `COUNT` non-existant E-Mails have just been sent by `EMAIL`| +The address |EMAIL| has just finished sending |COUNT| non-existant emails within a |PERIOD| period, and has been blocked. +There could be a spammer, the account could be compromised, or just sending more emails than usual. + +|*if EMAIL=USERNAME|To unblock this account, the password must be changed by the Reseller or Admin. +Changing the password by the |DEAMONNAME| User will not work, as the password is likely compromised. + +|*else|To unblock this account, the password must be changed by a |DEAMONNAME| User. +Changing the password through the E-Mail self-serve options will not work, as the password is likely compromised. + +|*endif||*if AUTO_UNBLOCK="1"|The account will also automatically be unblocked in |AUTO_UNBLOCK_HOURS| Hours. +We still highly encourage that the password for |EMAIL| be changed. + +|*endif|The last IP to send an email was |HOST|. + +This warning was triggered by the BlockCracking monitoring tool in exim. +The E-Mail account is managed under the |USERNAME| User account. + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/block_cracking_notice_denied_path.txt b/directadmin-1.62.4/data/templates/block_cracking_notice_denied_path.txt new file mode 100644 index 0000000..a83c7b5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/block_cracking_notice_denied_path.txt @@ -0,0 +1,26 @@ +|?SUBJECT=Warning: E-Mail sent from a script below `SCRIPT_PATH` which is in the list of denied paths| +Some script below the path |SCRIPT_PATH| has just sent an E-Mail, but this is in the list of denied paths. +There could be a spammer, or the script could be compromised, as this path should not be sending any E-Mails. + +|*if PATH_UNDER_USER_HOME="1"|To unblock this path, go to: +User Level -> E-Mail Accounts -> E-Mail Usage + +or manually remove the path from the file: +|BLOCKED_SCRIPT_PATHS||*else|The path is outside of the User's home directory. +The only way to unblock the path is to remove it from the file: +|BLOCKED_SCRIPT_PATHS||*endif| + +|*if PHP_GUESS="highest"||DEAMONNAME| has determined that the following PHP script has sent |HIGHEST_PHP_SCRIPT| E-Mails: +|BIGGEST_PHP_SCRIPT| +but the path doesn't match, so we're not sure if this is the offending script. + +|*endif||*if PHP_GUESS="matched"||DEAMONNAME| has matched the following PHP script:line below the suspect path, with the number of deliveries: +|POSSIBLE_PHP_SCRIPTS| +|*endif||*if AUTO_UNBLOCK="1"|The script will also automatically be unblocked in |AUTO_UNBLOCK_HOURS| Hours. +We still highly encourage that all scripts in |SCRIPT_PATH| be examined. + +|*endif|This warning was triggered by the BlockCracking monitoring tool in exim. +|*if UNKNOWN_APACHE_SCRIPT="1"|The mail was generated as the 'apache' account and |DEAMONNAME| was not able to determine the sender based on the path. +Check your exim logs and see this guide: http://help.directadmin.com/item.php?id=455|*else|The script path is managed under the |USERNAME| User account.|*endif| + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/block_cracking_notice_script.txt b/directadmin-1.62.4/data/templates/block_cracking_notice_script.txt new file mode 100644 index 0000000..a8ab9dc --- /dev/null +++ b/directadmin-1.62.4/data/templates/block_cracking_notice_script.txt @@ -0,0 +1,26 @@ +|?SUBJECT=Warning: `COUNT` non-existant E-Mails have just been sent by a script under `SCRIPT_PATH`| +Some script below the path |SCRIPT_PATH| has just finished sending |COUNT| non-existant emails within a |PERIOD| period, and any script in this path is now blocked. +There could be a spammer, the script could be compromised, or just sending more emails than usual. + +|*if PATH_UNDER_USER_HOME="1"|To unblock this path, go to: +User Level -> E-Mail Accounts -> E-Mail Usage + +or manually remove the path from the file: +|BLOCKED_SCRIPT_PATHS||*else|The path is outside of the User's home directory. +The only way to unblock the path is to remove it from the file: +|BLOCKED_SCRIPT_PATHS||*endif| + +|*if PHP_GUESS="highest"||DEAMONNAME| has determined that the following PHP script has sent |HIGHEST_PHP_SCRIPT| E-Mails: +|BIGGEST_PHP_SCRIPT| +but the path doesn't match, so we're not sure if this is the offending script. + +|*endif||*if PHP_GUESS="matched"||DEAMONNAME| has matched the following PHP script:line below the suspect path, with the number of deliveries: +|POSSIBLE_PHP_SCRIPTS| +|*endif||*if AUTO_UNBLOCK="1"|The script will also automatically be unblocked in |AUTO_UNBLOCK_HOURS| Hours. +We still highly encourage that all scripts in |SCRIPT_PATH| be examined. + +|*endif|This warning was triggered by the BlockCracking monitoring tool in exim. +|*if UNKNOWN_APACHE_SCRIPT="1"|The mail was generated as the 'apache' account and |DEAMONNAME| was not able to determine the sender based on the path. +Check your exim logs and see this guide: http://help.directadmin.com/item.php?id=455|*else|The script path is managed under the |USERNAME| User account.|*endif| + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/brute_filter.list b/directadmin-1.62.4/data/templates/brute_filter.list new file mode 100644 index 0000000..3cba230 --- /dev/null +++ b/directadmin-1.62.4/data/templates/brute_filter.list @@ -0,0 +1,28 @@ +dovecot1=attempts_after=(auth failed,%20&attempts_until=%20attempts%20in%20&binary=dovecot&ip_after=rip=&ip_until=,&text=(auth failed&user_after=user%3D<&user_until=>,%20 +dovecot2=attempts_after=(auth failed,%20&attempts_until=%20attempts)&binary=dovecot&ip_after=rip=&ip_until=,&text=(auth failed&user_after=user%3D<&user_until=>,%20 +exim1=ip_after=]) [&ip_until=]&text=535 Incorrect authentication data&user_after=(set_id%3D&user_until=) +exim2=ip_after=[&ip_until=]&text=535 Incorrect authentication data&user_after=(set_id%3D&user_until=) +exim3=ip_after=]) [&ip_until=]&text=535 Incorrect authentication data&user_after=(set_id%3D&user_until=) +exim4=ip_after=[&ip_until=]&text=535 Incorrect authentication data&user_after=(set_id%3D&user_until=) +proftpd1=binary=proftpd&ip_after=[&ip_until=]&text=no such user found from&user_after=USER &user_until=:%20 +proftpd2=binary=proftpd&ip_after=[&ip_until=]&text=(Login failed):%20Incorrect password&user_after=USER &user_until=%20 +proftpd3=attempts_after=attempts%20(&attempts_until=)%20exceeded&binary=proftpd&ip_after=[&ip_until=]&text=Maximum login attempts +pure-ftpd1=binary=pure-ftpd&text=[WARNING] Authentication failed for user&ip_after=(?@&ip_until=)&user_after=user%20[&user_until=] +sshd1=binary=sshd&ip_after=from%20&ip_until=%20&text=authentication error for illegal user&user_after=user%20&user_until=%20 +sshd2=binary=sshd&ip_after=from%20&ip_until=%20&text=authentication error for&user_after=for%20&user_until=%20 +sshd3=binary=sshd&ip_after=from%20&ip_until=%20&text=Failed keyboard-interactive/pam for&user_after=for%20&user_until=%20 +sshd4=binary=sshd&ip_after=from%20&ip_until=%20&text=Failed password for invalid user&user_after=user%20&user_until=%20 +sshd5=binary=sshd&ip_after=from%20&ip_until=%20&text=Failed password for&user_after=for%20&user_until=%20 +roundcube1=ip_after= from &ip_until=(X-Real-IP:&text=IMAP Error: Login failed for&user_after=IMAP Error: Login failed for &user_until=%20from%20 +roundcube2=ip_after= from &ip_until=(X-Forwarded-For:&text=IMAP Error: Login failed for&user_after=IMAP Error: Login failed for &user_until=%20from%20 +roundcube3=ip_after= from &ip_until=. AUTHENTICATE PLAIN&text=IMAP Error: Login failed for&user_after=IMAP Error: Login failed for &user_until=%20from%20 +squirrelmail1=ip_after=) from &ip_until=: Unknown user or&text=: Unknown user or password incorrect.&user_after=[LOGIN_ERROR] &user_until=%20( +phpmyadmin1=ip_after=ip='&ip_until='&text=status='mysql-denied'&user_after=user='&user_until=' +phpmyadmin2=ip_after=ip='&ip_until='&text=status='not authenticated'&user_after=user='&user_until=' +phpmyadmin3=ip_after=%20from%20'&ip_until='&text=phpmyadmin:%20user%20denied:%20&user_after=user%20denied:%20'&user_until='%20(mysql-denied) +phpmyadmin4=ip_after=%20from%20&ip_until=NULL&text=phpmyadmin:%20user%20denied:%20&user_after=user%20denied:%20&user_until=%20(mysql-denied) +wordpress1=ip_after=&ip_until= -&text=] "POST /&text2=/wp-login.php&text3=" 200%20 +wordpress2=ip_after=&ip_until= -&text=] "POST /&text2=/xmlrpc.php&text3=" 200%20&count_multiplier=8 +wordpress3=ip_after=&ip_until= -&text=] "POST /&text2=/wp-login.php&text3=" 302%20&count_multiplier=4 +wordpress4=ip_after=&ip_until= -&text=] "POST /&text2=/xmlrpc.php&text3=" 302%20 +mysql1=text=[Warning] Access denied for user '&ip_after=@'&ip_until='&user_after=user '&user_until=' diff --git a/directadmin-1.62.4/data/templates/conf.sysbk b/directadmin-1.62.4/data/templates/conf.sysbk new file mode 100644 index 0000000..3bc45a5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/conf.sysbk @@ -0,0 +1,139 @@ +# SySBK 1.0 [sysbk@r-fx.net] +# +# NOTE: This file should be edited with word/line wrapping off, +# if your using pico please start it with the -w switch. +# (e.g: pico -w filename) +# +# [ Main Config ] +# +OS="`uname`"; +if [ -e /etc/debian_version ]; then + OS="debian"; +fi + + +INSPATH="/usr/local/sysbk" # Installation path of SySBK +MODPATH="$INSPATH/mod" # Module path for sysbk backup modules +CNF_INT="$INSPATH/internals/conf.internals" # Path to internals config + # +MOUNT_POINT="|MOUNT_POINT|" # Mount point backups are stored on + # +BACKUP_PATH="|BACKUP_PATH|" # Backup path relative to mount point [e.g: /home/backups] + # If this directory does not exist it will be created + # +MIN_DISK="|MIN_DISK|" # Min. amount of availible disk space required to perform backups + # +MAX_LOAD="3" # Max load level that the system must be below to perform backups + # No fractional values (e.g: 2.5) + # +if [ "$OS" = "FreeBSD" ]; then + ARC_PRI="/usr/bin/tar -cpzf" +else + ARC_PRI="/bin/tar -cpzf" # Primary compression utility (typicaly tar) - include arguments!! +fi +ARC_PRI_EXT=".tar.gz" # File extention for the primary compression utility +ARC_SEC="" # Secondary compression utility (typicaly bzip2) - include arguments!! + # If no value set, will only archive with Primary compression utility + # +ARC_SEC_EXT="" # File extention for the secondary compression utility + # +PRI="16" # Priority to run backups as. 21 = lowest priority, -19 = highest + # [NOTE: setting below value of 0 can damage the system.] + # +DU="/usr/bin/du" # Path to 'du' binary +if [ "$OS" = "FreeBSD" ]; then + MD5="/sbin/md5 -r" + GUNZIP="/usr/bin/gunzip" + NICE="/usr/bin/nice" +else + MD5="/usr/bin/md5sum" # Path to md5sum binary + GUNZIP="/bin/gunzip" # Path to 'gunzip' binary + NICE="/bin/nice" # Path to 'nice' binary + + if [ -e /etc/debian_version ]; then + NICE="/usr/bin/nice" + fi + +fi + + +# [ Transfer Module Config ] +# +USE_RTRANS="|USE_RTRANS|" # Enable remote transfer of backup data [1=on,0=off] +RTRANS_METHOD="|RTRANS_METHOD|" # Transport method for remote transfer [valid methods: ftp, scp] + # +DEL_AFTERTRANS="|DEL_AFTERTRANS|" # Delete the local date specific backup path after remote transfer + # of backup. (e.g: /home/backup/12-24-02) [1=on,0=off] + # +FBF_RTRANS="|FBF_RTRANS|" # File by file backup (incramental). Archives backups one at a time, + # transfers remote, then deletes local. + # +NCFTP_PUT="/usr/bin/ncftpput" # Path to 'ncftpput' binary + FTP_HOST="|FTP_HOST|" # The host/ip of desired ftp site + FTP_USER="|FTP_USER|" # Username for ftp transfer of backups [remote user] + FTP_PASS="|FTP_PASS|" # Password for above user... + FTP_RPATH="|FTP_RPATH|" # Remote path to store data, relative to remote user permissions +SCP="/usr/bin/scp" # Path to 'scp' binary + SCP_HOST="|FTP_HOST|" # The host/ip of desired scp site + SCP_USER="|FTP_USER|" # Username for scp transfer of backups [remote user] + SCP_RPATH="|FTP_RPATH|" # Remote path to store data, relative to remote user permissions + PRVID_FILE="/root/.ssh/id_dsa" # Private key file for public/private key identification + # (e.g: /root/.ssh/id_dsa) + +# [ Backup Module Config ] +# +# HTTP +# +HTTP_BK="|HTTP_BK|" # Enable/Disable apache backup operations [1=on,0=off] +HTTP_PATH="/etc/httpd" # Path to apache base directory [no trailing slash] + +# DNS +# +BIND_BK="|BIND_BK|" # Enable/Disable bind backup operations [1=on,0=off] +if [ "$OS" = "FreeBSD" ]; then + BIND_PATH="/etc/namedb" + BIND_CNF="/etc/namedb/named.conf" +else + if [ "$OS" = "debian" ]; then + BIND_PATH="/etc/bind" + BIND_CNF="/etc/bind/named.conf" + else + BIND_PATH="/var/named" # Path to your bind zone files [no trailing slash] + BIND_CNF="/etc/named.conf" # Location of named.conf + fi +fi + +# MySQL +# +MYSQL_BK="|MYSQL_BK|" # Enable/Disable mysql backup operations [1=on,0=off] +if [ "$OS" = "FreeBSD" ]; then + MYSQL_PATH="/home/mysql" + MYSQL_INIT="/usr/local/etc/rc.d/mysqld" + MYSQL_PID="$MYSQL_PATH/`hostname -s`.pid" + MYSQL_DUMP="/usr/local/mysql/bin/mysqldump" + MYSQL_MYICHK="/usr/local/mysql/bin/myisamchk" +else + if [ "$OS" = "debian" ]; then + MYSQL_PATH="/home/mysql" + MYSQL_INIT="/etc/init.d/mysqld" + MYSQL_PID="$MYSQL_PATH/`hostname -s`.pid" + MYSQL_DUMP="/usr/local/mysql/bin/mysqldump" + MYSQL_MYICHK="/usr/local/mysql/bin/myisamchk" + else + MYSQL_PATH="/var/lib/mysql" # Installed location of mysql [no trailing slash] + MYSQL_INIT="/etc/init.d/mysqld" # Locationof MySQL INIT script + MYSQL_PID="$MYSQL_PATH/`hostname`.pid" # Location of MySQL PID file + MYSQL_DUMP="/usr/bin/mysqldump" # Path to the 'mysqldump' binary + MYSQL_MYICHK="/usr/bin/myisamchk" # Path to the 'myisamchk' binary + fi +fi +MYSQL_ROOTUN="`cat /usr/local/directadmin/conf/mysql.conf | grep user | cut -d= -f2`" # MySQL Root login +MYSQL_ROOTPW="`cat /usr/local/directadmin/conf/mysql.conf | grep passwd | cut -d= -f2`" # MySQL Root password + +# Custom +# +CUSTOM_BK="|CUSTOM_BK|" # Enable/Disable custom backup operations [1=on,0=off] +CUSTOM_FILES="$MODPATH/custom.files" # Fule list for custom backup operations +CUSTOM_DIRS="$MODPATH/custom.dirs" # Directory list for custom backup operations + +ADD_USERS_TO_LIST="|ADD_USERS_TO_LIST|" diff --git a/directadmin-1.62.4/data/templates/config.inc.php b/directadmin-1.62.4/data/templates/config.inc.php new file mode 100644 index 0000000..33f6746 --- /dev/null +++ b/directadmin-1.62.4/data/templates/config.inc.php @@ -0,0 +1,770 @@ += 4.3.0) +$cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings + // (this user must have read-only +$cfg['Servers'][$i]['controlpass'] = ''; // access to the "mysql/user" + // and "mysql/db" tables). + // The controluser is also + // used for all relational + // features (pmadb) +$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)? +$cfg['Servers'][$i]['user'] = 'root'; // MySQL user +$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed + // with 'config' auth_type) +$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only + // this db is displayed in left frame + // It may also be an array of db-names, where sorting order is relevant. +$cfg['Servers'][$i]['verbose'] = ''; // Verbose name for this host - leave blank to show the hostname + +$cfg['Servers'][$i]['pmadb'] = ''; // Database used for Relation, Bookmark and PDF Features + // (see scripts/create_tables.sql) + // - leave blank for no support + // DEFAULT: 'phpmyadmin' +$cfg['Servers'][$i]['bookmarktable'] = ''; // Bookmark table + // - leave blank for no bookmark support + // DEFAULT: 'pma_bookmark' +$cfg['Servers'][$i]['relation'] = ''; // table to describe the relation between links (see doc) + // - leave blank for no relation-links support + // DEFAULT: 'pma_relation' +$cfg['Servers'][$i]['table_info'] = ''; // table to describe the display fields + // - leave blank for no display fields support + // DEFAULT: 'pma_table_info' +$cfg['Servers'][$i]['table_coords'] = ''; // table to describe the tables position for the PDF schema + // - leave blank for no PDF schema support + // DEFAULT: 'pma_table_coords' +$cfg['Servers'][$i]['pdf_pages'] = ''; // table to describe pages of relationpdf + // - leave blank if you don't want to use this + // DEFAULT: 'pma_pdf_pages' +$cfg['Servers'][$i]['column_info'] = ''; // table to store column information + // - leave blank for no column comments/mime types + // DEFAULT: 'pma_column_info' +$cfg['Servers'][$i]['history'] = ''; // table to store SQL history + // - leave blank for no SQL query history + // DEFAULT: 'pma_history' +$cfg['Servers'][$i]['verbose_check'] = TRUE; // set to FALSE if you know that your pma_* tables + // are up to date. This prevents compatibility + // checks and thereby increases performance. +$cfg['Servers'][$i]['AllowDeny']['order'] // Host authentication order, leave blank to not use + = ''; +$cfg['Servers'][$i]['AllowDeny']['rules'] // Host authentication rules, leave blank for defaults + = array(); + + +// If you have more than one server configured, you can set $cfg['ServerDefault'] +// to any one of them to autoconnect to that server when phpMyAdmin is started, +// or set it to 0 to be given a list of servers without logging in +// If you have only one server configured, $cfg['ServerDefault'] *MUST* be +// set to that server. +$cfg['ServerDefault'] = 1; // Default server (0 = no default server) +$cfg['Server'] = ''; +unset($cfg['Servers'][0]); + + +/** + * Other core phpMyAdmin settings + */ +$cfg['OBGzip'] = 'auto'; // use GZIP output buffering if possible (TRUE|FALSE|'auto') +$cfg['PersistentConnections'] = FALSE; // use persistent connections to MySQL database +$cfg['ExecTimeLimit'] = 300; // maximum execution time in seconds (0 for no limit) +$cfg['SkipLockedTables'] = FALSE; // mark used tables, make possible to show + // locked tables (since MySQL 3.23.30) +$cfg['ShowSQL'] = TRUE; // show SQL queries as run +$cfg['AllowUserDropDatabase'] = FALSE; // show a 'Drop database' link to normal users +$cfg['Confirm'] = TRUE; // confirm 'DROP TABLE' & 'DROP DATABASE' +$cfg['LoginCookieRecall'] = TRUE; // recall previous login in cookie auth. mode or not +$cfg['LoginCookieValidity'] = 1800; // validity of cookie login (in seconds) +$cfg['UseDbSearch'] = TRUE; // whether to enable the "database search" feature + // or not +$cfg['IgnoreMultiSubmitErrors'] = FALSE; // if set to true, PMA continues computing multiple-statement queries + // even if one of the queries failed +$cfg['VerboseMultiSubmit'] = TRUE; // if set to true, PMA will show the affected rows of EACH statement on + // multiple-statement queries. See the read_dump.php file for hardcoded + // defaults on how many queries a statement may contain! +$cfg['AllowArbitraryServer'] = FALSE; // allow login to any user entered server in cookie based auth + +// Left frame setup +$cfg['LeftFrameLight'] = TRUE; // use a select-based menu and display only the + // current tables in the left frame. +$cfg['LeftFrameTableSeparator']= '__'; // Which string will be used to generate table prefixes + // to split/nest tables into multiple categories +$cfg['LeftFrameTableLevel'] = '1'; // How many sublevels should be displayed when splitting + // up tables by the above Separator +$cfg['ShowTooltip'] = TRUE; // display table comment as tooltip in left frame +$cfg['ShowTooltipAliasDB'] = FALSE; // if ShowToolTip is enabled, this defines that table/db comments +$cfg['ShowTooltipAliasTB'] = FALSE; // are shown (in the left menu and db_details_structure) instead of + // table/db names. Setting ShowTooltipAliasTB to 'nested' will only + // use the Aliases for nested descriptors, not the table itself. + +$cfg['LeftDisplayLogo'] = TRUE; // display logo at top of left frame +$cfg['LeftDisplayServers'] = FALSE; // display server choice at top of left frame +$cfg['DisplayServersList'] = FALSE; // server choice as links + +// In the main frame, at startup... +$cfg['ShowStats'] = TRUE; // allow to display statistics and space usage in + // the pages about database details and table + // properties +$cfg['ShowMysqlInfo'] = FALSE; // whether to display the "MySQL runtime +$cfg['ShowMysqlVars'] = FALSE; // information", "MySQL system variables", "PHP +$cfg['ShowPhpInfo'] = FALSE; // information" and "change password" links for +$cfg['ShowChgPassword'] = FALSE; // simple users or not +$cfg['SuggestDBName'] = TRUE; // suggest a new DB name if possible (false = keep empty) + +// In browse mode... +$cfg['ShowBlob'] = FALSE; // display blob field contents +$cfg['NavigationBarIconic'] = TRUE; // do not display text inside navigation bar buttons +$cfg['ShowAll'] = FALSE; // allows to display all the rows +$cfg['MaxRows'] = 30; // maximum number of rows to display +$cfg['Order'] = 'ASC'; // default for 'ORDER BY' clause (valid + // values are 'ASC', 'DESC' or 'SMART' -ie + // descending order for fields of type + // TIME, DATE, DATETIME & TIMESTAMP, + // ascending order else-) + +// In edit mode... +$cfg['ProtectBinary'] = 'blob'; // disallow editing of binary fields + // valid values are: + // FALSE allow editing + // 'blob' allow editing except for BLOB fields + // 'all' disallow editing +$cfg['ShowFunctionFields'] = TRUE; // Display the function fields in edit/insert mode +$cfg['CharEditing'] = 'input'; + // Which editor should be used for CHAR/VARCHAR fields: + // input - allows limiting of input length + // textarea - allows newlines in fields +$cfg['InsertRows'] = 2; // How many rows can be inserted at one time + +// For the export features... +$cfg['ZipDump'] = TRUE; // Allow the use of zip/gzip/bzip +$cfg['GZipDump'] = TRUE; // compression for +$cfg['BZipDump'] = TRUE; // dump files +$cfg['CompressOnFly'] = TRUE; // Will compress gzip/bzip2 exports on + // fly without need for much memory. + // If you encounter problems with + // created gzip/bzip2 files disable + // this feature. + +// Tabs display settings +$cfg['LightTabs'] = FALSE; // use graphically less intense menu tabs +$cfg['PropertiesIconic'] = TRUE; // Use icons instead of text for the table display of a database (TRUE|FALSE|'both') +$cfg['PropertiesNumColumns'] = 1; // How many columns should be used for table display of a database? + // (a value larger than 1 results in some information being hidden) + +$cfg['DefaultTabServer'] = 'main.php'; + // Possible values: + // 'main.php' = the welcome page + // (recommended for multiuser setups) + // 'server_databases.php' = list of databases + // 'server_status.php' = runtime information + // 'server_variables.php' = MySQL server variables + // 'server_privileges.php' = user management + // 'server_processlist.php' = process list +$cfg['DefaultTabDatabase'] = 'db_details_structure.php'; + // Possible values: + // 'db_details_structure.php' = tables list + // 'db_details.php' = sql form + // 'db_search.php' = search query +$cfg['DefaultTabTable'] = 'tbl_properties_structure.php'; + // Possible values: + // 'tbl_properties_structure.php' = fields list + // 'tbl_properties.php' = sql form + // 'tbl_select.php = select page + // 'tbl_change.php = insert row page + +/** + * Export defaults + */ + +$cfg['Export']['format'] = 'sql'; // sql/latex/excel/csv/xml/xls +$cfg['Export']['compression'] = 'none'; // none/zip/gzip/bzip2 + +$cfg['Export']['asfile'] = FALSE; +$cfg['Export']['onserver'] = FALSE; +$cfg['Export']['onserver_overwrite'] = FALSE; +$cfg['Export']['remember_file_template'] = TRUE; + +$cfg['Export']['xls_columns'] = FALSE; +$cfg['Export']['xls_null'] = 'NULL'; + +$cfg['Export']['csv_columns'] = FALSE; +$cfg['Export']['csv_null'] = 'NULL'; +$cfg['Export']['csv_separator'] = ';'; +$cfg['Export']['csv_enclosed'] = '"'; +$cfg['Export']['csv_escaped'] = '\\'; +$cfg['Export']['csv_terminated'] = 'AUTO'; +$cfg['Export']['excel_columns'] = FALSE; +$cfg['Export']['excel_null'] = 'NULL'; +$cfg['Export']['excel_edition'] = 'win'; // win/mac + +$cfg['Export']['latex_structure'] = TRUE; +$cfg['Export']['latex_data'] = TRUE; +$cfg['Export']['latex_columns'] = TRUE; +$cfg['Export']['latex_relation'] = TRUE; +$cfg['Export']['latex_comments'] = TRUE; +$cfg['Export']['latex_mime'] = TRUE; +$cfg['Export']['latex_null'] = '\textit{NULL}'; +$cfg['Export']['latex_caption'] = TRUE; +$cfg['Export']['latex_data_label'] = 'tab:__TABLE__-data'; +$cfg['Export']['latex_structure_label'] = 'tab:__TABLE__-structure'; + +$cfg['Export']['sql_structure'] = TRUE; +$cfg['Export']['sql_data'] = TRUE; +$cfg['Export']['sql_disable_fk'] = FALSE; +$cfg['Export']['sql_use_transaction'] = FALSE; +$cfg['Export']['sql_drop_database'] = FALSE; +$cfg['Export']['sql_drop_table'] = FALSE; +$cfg['Export']['sql_if_not_exists'] = FALSE; +$cfg['Export']['sql_auto_increment'] = TRUE; +$cfg['Export']['sql_backquotes'] = TRUE; +$cfg['Export']['sql_dates'] = FALSE; +$cfg['Export']['sql_relation'] = FALSE; +$cfg['Export']['sql_columns'] = FALSE; +$cfg['Export']['sql_delayed'] = FALSE; +$cfg['Export']['sql_ignore'] = FALSE; +$cfg['Export']['sql_hex_for_binary'] = TRUE; +$cfg['Export']['sql_type'] = 'insert'; // insert/update/replace +$cfg['Export']['sql_extended'] = FALSE; +$cfg['Export']['sql_comments'] = FALSE; +$cfg['Export']['sql_mime'] = FALSE; +$cfg['Export']['sql_header_comment'] = ''; // \n is replaced by new line + +/** + * Link to the official MySQL documentation. + * Be sure to include no trailing slash on the path. + * See http://dev.mysql.com/doc/ for more information + * about MySQL manuals and their types. + */ +$cfg['MySQLManualBase'] = 'http://dev.mysql.com/doc/mysql/en'; + +/** + * Type of MySQL documentation: + * old - old style used in phpMyAdmin 2.3.0 and sooner + * searchable - "Searchable, with user comments" + * chapters - "HTML, one page per chapter" + * big - "HTML, all on one page" + * none - do not show documentation links + */ +$cfg['MySQLManualType'] = 'searchable'; + + +/** + * PDF options + */ +$cfg['PDFPageSizes'] = array('A3', 'A4', 'A5', 'letter', 'legal'); +$cfg['PDFDefaultPageSize'] = 'A4'; + + +/** + * Language and charset conversion settings + */ +// Default language to use, if not browser-defined or user-defined +$cfg['DefaultLang'] = 'en-iso-8859-1'; + +// Force: always use this language - must be defined in +// libraries/select_lang.lib.php +// $cfg['Lang'] = 'en-iso-8859-1'; + +// Default charset to use for recoding of MySQL queries, does not take +// any effect when charsets recoding is switched off by +// $cfg['AllowAnywhereRecoding'] or in language file +// (see $cfg['AvailableCharsets'] to possible choices, you can add your own) +$cfg['DefaultCharset'] = 'iso-8859-1'; + +// Allow charset recoding of MySQL queries, must be also enabled in language +// file to make harder using other language files than unicode. +// Default value is FALSE to avoid problems on servers without the iconv +// extension and where dl() is not supported +$cfg['AllowAnywhereRecoding'] = FALSE; + +// You can select here which functions will be used for charset conversion. +// Possible values are: +// auto - automatically use available one (first is tested iconv, then +// recode) +// iconv - use iconv or libiconv functions +// recode - use recode_string function +$cfg['RecodingEngine'] = 'auto'; + +// Specify some parameters for iconv used in charset conversion. See iconv +// documentation for details: +// http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html +$cfg['IconvExtraParams'] = ''; + +// Available charsets for MySQL conversion. currently contains all which could +// be found in lang/* files and few more. +// Charsets will be shown in same order as here listed, so if you frequently +// use some of these move them to the top. +$cfg['AvailableCharsets'] = array( + 'iso-8859-1', + 'iso-8859-2', + 'iso-8859-3', + 'iso-8859-4', + 'iso-8859-5', + 'iso-8859-6', + 'iso-8859-7', + 'iso-8859-8', + 'iso-8859-9', + 'iso-8859-10', + 'iso-8859-11', + 'iso-8859-12', + 'iso-8859-13', + 'iso-8859-14', + 'iso-8859-15', + 'windows-1250', + 'windows-1251', + 'windows-1252', + 'windows-1256', + 'windows-1257', + 'koi8-r', + 'big5', + 'gb2312', + 'utf-8', + 'utf-7', + 'x-user-defined', + 'euc-jp', + 'ks_c_5601-1987', + 'tis-620', + 'SHIFT_JIS' +); + +/** + * Customization & design + * + * The graphical settings are now located in themes/themename/layout.inc.php + */ + +$cfg['LeftPointerEnable'] = TRUE; // enable the left panel pointer + // (used when LeftFrameLight is FALSE) + // see also LeftPointerColor + // in layout.inc.php + +$cfg['BrowsePointerEnable'] = TRUE; // enable the browse pointer + // see also BrowsePointerColor + // in layout.inc.php + +$cfg['BrowseMarkerEnable'] = TRUE; // enable the browse marker + // see also BrowseMarkerColor + // in layout.inc.php + +$cfg['TextareaCols'] = 40; // textarea size (columns) in edit mode + // (this value will be emphasized (*2) for sql + // query textareas and (*1.25) for query window) +$cfg['TextareaRows'] = 7; // textarea size (rows) in edit mode +$cfg['LongtextDoubleTextarea'] = TRUE; // double size of textarea size for longtext fields +$cfg['TextareaAutoSelect'] = TRUE; // autoselect when clicking in the textarea of the querybox +$cfg['CharTextareaCols'] = 40; // textarea size (columns) for CHAR/VARCHAR +$cfg['CharTextareaRows'] = 2; // textarea size (rows) for CHAR/VARCHAR +$cfg['CtrlArrowsMoving'] = TRUE; // Enable Ctrl+Arrows moving between fields when editing? +$cfg['LimitChars'] = 50; // Max field data length in browse mode for all non-numeric fields +$cfg['ModifyDeleteAtLeft'] = TRUE; // show edit/delete links on left side of browse + // (or at the top with vertical browse) +$cfg['ModifyDeleteAtRight'] = FALSE; // show edit/delete links on right side of browse + // (or at the bottom with vertical browse) +$cfg['DefaultDisplay'] = 'horizontal'; // default display direction + // (horizontal|vertical|horizontalflipped) +$cfg['DefaultPropDisplay'] = 'horizontal'; // default display direction for altering/ + // creating columns (tbl_properties) + // (horizontal|vertical) + +$cfg['HeaderFlipType'] = 'css'; // table-header rotation via faking or css? (css|fake) + // NOTE: CSS only works in IE browsers! +$cfg['ShowBrowseComments'] = TRUE; // shows stored relation-comments in 'browse' mode. +$cfg['ShowPropertyComments']= TRUE; // shows stored relation-comments in 'table property' mode. +$cfg['RepeatCells'] = 100; // repeat header names every X cells? (0 = deactivate) + +$cfg['QueryFrame'] = TRUE; // displays a link or icon in the left frame to open the querybox, and activates the querybox when clicking on [Edit] on the results page. +$cfg['QueryFrameJS'] = TRUE; // whether to use JavaScript functions for opening a new window for SQL commands. + // if set to 'false', the target of the querybox is always the right frame. +$cfg['QueryWindowWidth'] = 550; // Width of Query window +$cfg['QueryWindowHeight'] = 310; // Height of Query window +$cfg['QueryHistoryDB'] = FALSE; // Set to TRUE if you want DB-based query history. + // If FALSE, this utilizes JS-routines to display + // query history (lost by window close) +$cfg['QueryWindowDefTab'] = 'sql'; // which tab to display in the querywindow on startup + // (sql|files|history|full) +$cfg['QueryHistoryMax'] = 25; // When using DB-based query history, how many entries + // should be kept? +$cfg['BrowseMIME'] = TRUE; // Use MIME-Types (stored in column comments table) for +$cfg['MaxExactCount'] = 20000; // When approximate count < this, PMA will get exact count for + // table rows. +$cfg['WYSIWYG-PDF'] = TRUE; // Utilize DHTML/JS capabilities to allow WYSIWYG editing of + // the PDF page editor. Requires an IE6/Mozilla based browser. + +$cfg['NaturalOrder'] = TRUE; // Sort table and database in natural order + + +//----------------------------------------------------------------------------- +// custom-setup by mkkeck: 2004-05-04 +// some specials for new icons and scrollings +// FIXME: +// 2004-05-08 rabus: We need to rearrange these variables. + +$cfg['ShowHttpHostTitle'] = TRUE; // show HttpHost in browsers window title (true|false)? +$cfg['SetHttpHostTitle'] = ''; // if ShowHttpHostTitle=true, please set your host (server) + // or an other string, wich should be shown in browsers window title. + // If not set (or empty), the PMA will get your real Host-Adress. + +$cfg['ErrorIconic'] = TRUE; // show some icons for warnings, errors and informations (true|false)? +$cfg['MainPageIconic'] = TRUE; // show icons in list on main page, on right panel top menu (server db table) and on menu tabs (true|false)? +$cfg['ReplaceHelpImg'] = TRUE; // show help button instead of strDocumentation (true|false)? + +// theme manager +$cfg['ThemePath'] = './themes'; // using themes manager please set up here the path to 'themes' + // else leave empty +$cfg['ThemeManager'] = TRUE; // if you want to use selectable themes and if ThemesPath not empty + // set it to true, else set it to false (default is false); +$cfg['ThemeDefault'] = 'original'; // set up default theme, if ThemePath not empty + // you can set up here an valid path to themes or 'original' for + // the original pma-theme + +//----------------------------------------------------------------------------- + + +/** + * Default queries + * %d will be replaced by the database name. + * %t will be replaced by the table name. + * %f will be replaced by a list of field names. + * (%t and %f only applies to DefaultQueryTable) + */ +$cfg['DefaultQueryTable'] = 'SELECT * FROM %t WHERE 1'; +$cfg['DefaultQueryDatabase'] = ''; + +/** + * SQL Query box settings + * These are the links display in all of the SQL Query boxes + */ +$cfg['SQLQuery']['Edit'] = TRUE; // Edit link to change a query +$cfg['SQLQuery']['Explain'] = TRUE; // EXPLAIN on SELECT queries +$cfg['SQLQuery']['ShowAsPHP'] = TRUE; // Wrap a query in PHP +$cfg['SQLQuery']['Validate'] = FALSE; // Validate a query (see $cfg['SQLValidator'] as well) +$cfg['SQLQuery']['Refresh'] = TRUE; // Refresh the results page + + +/** + * Webserver upload/save/import directories + */ +$cfg['UploadDir'] = ''; // Directory for uploaded files that can be executed by + // phpMyAdmin. For example './upload'. Leave empty for + // no upload directory support +$cfg['SaveDir'] = ''; // Directory where phpMyAdmin can save exported data on + // server. For example './save'. Leave empty for no save + // directory support. +$cfg['docSQLDir'] = ''; // Directory for docSQL imports, phpMyAdmin can import + // docSQL files from that directory. For example + // './docSQL'. Leave empty for no docSQL import support. +$cfg['TempDir'] = ''; // Directory where phpMyAdmin can save temporary files. + // This is needed for MS Excel export, see documentation + // how to enable that. + + +/** + * Misc. settings + */ +$cfg['GD2Available'] = 'auto'; // Is GD >= 2 available? Set to yes/no/auto. 'auto' + // does autodetection, which is a bit expensive for + // php < 4.3.0, but it is the only safe vay how to + // determine GD version. +/** + * SQL Parser Settings + */ +$cfg['SQP']['fmtType'] = 'html'; // Pretty-printing style to use on queries (html, text, none) +$cfg['SQP']['fmtInd'] = '1'; // Amount to indent each level (floats ok) +$cfg['SQP']['fmtIndUnit'] = 'em'; // Units for indenting each level (CSS Types - {em,px,pt}) +// The graphical settings are now located in themes/themename/layout.inc.php + +/** + * If you wish to use the SQL Validator service, you should be + * aware of the following: + * All SQL statements are stored anonymously for statistical purposes. + * Mimer SQL Validator, Copyright 2002 Upright Database Technology. + * All rights reserved. + */ +$cfg['SQLValidator']['use'] = FALSE; // Make the SQL Validator available +$cfg['SQLValidator']['username'] = ''; // If you have a custom username, specify it here (defaults to anonymous) +$cfg['SQLValidator']['password'] = ''; // Password for username + +/** + * Developers ONLY! + * To use the following, please install the DBG extension from http://dd.cron.ru/dbg/ + */ +$cfg['DBG']['enable'] = FALSE; // Make the DBG stuff available +$cfg['DBG']['profile']['enable'] = FALSE; // Produce profiling results of PHP +$cfg['DBG']['profile']['threshold'] = 0.5; // Threshold of long running code to display + // Anything below the threshold is not displayed + + +/** + * MySQL settings + */ +// Column types; +// varchar, tinyint, text and date are listed first, based on estimated popularity +$cfg['ColumnTypes'] = array( + 'VARCHAR', + 'TINYINT', + 'TEXT', + 'DATE', + 'SMALLINT', + 'MEDIUMINT', + 'INT', + 'BIGINT', + 'FLOAT', + 'DOUBLE', + 'DECIMAL', + 'DATETIME', + 'TIMESTAMP', + 'TIME', + 'YEAR', + 'CHAR', + 'TINYBLOB', + 'TINYTEXT', + 'BLOB', + 'MEDIUMBLOB', + 'MEDIUMTEXT', + 'LONGBLOB', + 'LONGTEXT', + 'ENUM', + 'SET' +); + +// Attributes +$cfg['AttributeTypes'] = array( + '', + 'BINARY', + 'UNSIGNED', + 'UNSIGNED ZEROFILL' +); + +// Available functions +if ($cfg['ShowFunctionFields']) { + $cfg['Functions'] = array( + 'ASCII', + 'CHAR', + 'SOUNDEX', + 'LCASE', + 'UCASE', + 'NOW', + 'PASSWORD', + 'MD5', + 'SHA1', + 'ENCRYPT', + 'RAND', + 'LAST_INSERT_ID', + 'COUNT', + 'AVG', + 'SUM', + 'CURDATE', + 'CURTIME', + 'FROM_DAYS', + 'FROM_UNIXTIME', + 'PERIOD_ADD', + 'PERIOD_DIFF', + 'TO_DAYS', + 'UNIX_TIMESTAMP', + 'USER', + 'WEEKDAY', + 'CONCAT' + ); + + // Which column types will be mapped to which Group? + $cfg['RestrictColumnTypes'] = array( + 'VARCHAR' => 'FUNC_CHAR', + 'TINYINT' => 'FUNC_NUMBER', + 'TEXT' => 'FUNC_CHAR', + 'DATE' => 'FUNC_DATE', + 'SMALLINT' => 'FUNC_NUMBER', + 'MEDIUMINT' => 'FUNC_NUMBER', + 'INT' => 'FUNC_NUMBER', + 'BIGINT' => 'FUNC_NUMBER', + 'FLOAT' => 'FUNC_NUMBER', + 'DOUBLE' => 'FUNC_NUMBER', + 'DECIMAL' => 'FUNC_NUMBER', + 'DATETIME' => 'FUNC_DATE', + 'TIMESTAMP' => 'FUNC_DATE', + 'TIME' => 'FUNC_DATE', + 'YEAR' => 'FUNC_DATE', + 'CHAR' => 'FUNC_CHAR', + 'TINYBLOB' => 'FUNC_CHAR', + 'TINYTEXT' => 'FUNC_CHAR', + 'BLOB' => 'FUNC_CHAR', + 'MEDIUMBLOB' => 'FUNC_CHAR', + 'MEDIUMTEXT' => 'FUNC_CHAR', + 'LONGBLOB' => 'FUNC_CHAR', + 'LONGTEXT' => 'FUNC_CHAR', + 'ENUM' => '', + 'SET' => '' + ); + + // Map above defined groups to any function + $cfg['RestrictFunctions'] = array( + 'FUNC_CHAR' => array( + 'ASCII', + 'CHAR', + 'SOUNDEX', + 'LCASE', + 'UCASE', + 'PASSWORD', + 'MD5', + 'SHA1', + 'ENCRYPT', + 'LAST_INSERT_ID', + 'USER', + 'CONCAT' + ), + + 'FUNC_DATE' => array( + 'NOW', + 'CURDATE', + 'CURTIME', + 'FROM_DAYS', + 'FROM_UNIXTIME', + 'PERIOD_ADD', + 'PERIOD_DIFF', + 'TO_DAYS', + 'UNIX_TIMESTAMP', + 'WEEKDAY' + ), + + 'FUNC_NUMBER' => array( + 'ASCII', + 'CHAR', + 'MD5', + 'SHA1', + 'ENCRYPT', + 'RAND', + 'LAST_INSERT_ID', + 'COUNT', + 'AVG', + 'SUM' + ) + ); + + // Default functions for above defined groups + $cfg['DefaultFunctions'] = array( + 'FUNC_CHAR' => '', + 'FUNC_DATE' => '', + 'FUNC_NUMBER' => '', + 'first_timestamp' => 'NOW' + ); + + +} // end if + +// Search operators +$cfg['NumOperators'] = array( + '=', + '>', + '>=', + '<', + '<=', + '!=', + 'LIKE', + 'NOT LIKE' +); + +$cfg['TextOperators'] = array( + 'LIKE', + 'LIKE %...%', + 'NOT LIKE', + '=', + '!=', + 'REGEXP', + 'NOT REGEXP' +); + +$cfg['EnumOperators'] = array( + '=', + '!=' +); + +$cfg['NullOperators'] = array( + 'IS NULL', + 'IS NOT NULL' +); + +$cfg['UnaryOperators'] = array( + 'IS NULL' => 1, + 'IS NOT NULL' => 1 +); + +/** + * Unset magic_quotes_runtime - do not change! + */ +set_magic_quotes_runtime(0); + +/** + * File Revision - do not change either! + */ +$cfg['FileRevision'] = '$Revision: 2.41 $'; +?> diff --git a/directadmin-1.62.4/data/templates/config.inc.php.backup b/directadmin-1.62.4/data/templates/config.inc.php.backup new file mode 100644 index 0000000..b782f25 --- /dev/null +++ b/directadmin-1.62.4/data/templates/config.inc.php.backup @@ -0,0 +1,826 @@ += 4.3.0) +$cfg['Servers'][$i]['controluser'] = ''; // MySQL control user settings + // (this user must have read-only +$cfg['Servers'][$i]['controlpass'] = ''; // access to the "mysql/user" + // and "mysql/db" tables). + // The controluser is also + // used for all relational + // features (pmadb) +$cfg['Servers'][$i]['auth_type'] = 'http'; // Authentication method (config, http or cookie based)? +$cfg['Servers'][$i]['user'] = 'root'; // MySQL user +$cfg['Servers'][$i]['password'] = ''; // MySQL password (only needed + // with 'config' auth_type) +$cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only + // this db is displayed in left frame + // It may also be an array of db-names, where sorting order is relevant. +$cfg['Servers'][$i]['verbose'] = ''; // Verbose name for this host - leave blank to show the hostname + +$cfg['Servers'][$i]['pmadb'] = ''; // Database used for Relation, Bookmark and PDF Features + // (see scripts/create_tables.sql) + // - leave blank for no support + // DEFAULT: 'phpmyadmin' +$cfg['Servers'][$i]['bookmarktable'] = ''; // Bookmark table + // - leave blank for no bookmark support + // DEFAULT: 'pma_bookmark' +$cfg['Servers'][$i]['relation'] = ''; // table to describe the relation between links (see doc) + // - leave blank for no relation-links support + // DEFAULT: 'pma_relation' +$cfg['Servers'][$i]['table_info'] = ''; // table to describe the display fields + // - leave blank for no display fields support + // DEFAULT: 'pma_table_info' +$cfg['Servers'][$i]['table_coords'] = ''; // table to describe the tables position for the PDF schema + // - leave blank for no PDF schema support + // DEFAULT: 'pma_table_coords' +$cfg['Servers'][$i]['pdf_pages'] = ''; // table to describe pages of relationpdf + // - leave blank if you don't want to use this + // DEFAULT: 'pma_pdf_pages' +$cfg['Servers'][$i]['column_info'] = ''; // table to store column information + // - leave blank for no column comments/mime types + // DEFAULT: 'pma_column_info' +$cfg['Servers'][$i]['history'] = ''; // table to store SQL history + // - leave blank for no SQL query history + // DEFAULT: 'pma_history' +$cfg['Servers'][$i]['verbose_check'] = TRUE; // set to FALSE if you know that your pma_* tables + // are up to date. This prevents compatibility + // checks and thereby increases performance. +$cfg['Servers'][$i]['AllowDeny']['order'] // Host authentication order, leave blank to not use + = ''; +$cfg['Servers'][$i]['AllowDeny']['rules'] // Host authentication rules, leave blank for defaults + = array(); + + +$i++; +$cfg['Servers'][$i]['host'] = ''; +$cfg['Servers'][$i]['port'] = ''; +$cfg['Servers'][$i]['socket'] = ''; +$cfg['Servers'][$i]['connect_type'] = 'tcp'; +$cfg['Servers'][$i]['extension'] = 'mysql'; +$cfg['Servers'][$i]['compress'] = FALSE; +$cfg['Servers'][$i]['controluser'] = ''; +$cfg['Servers'][$i]['controlpass'] = ''; +$cfg['Servers'][$i]['auth_type'] = 'config'; +$cfg['Servers'][$i]['user'] = 'root'; +$cfg['Servers'][$i]['password'] = ''; +$cfg['Servers'][$i]['only_db'] = ''; +$cfg['Servers'][$i]['verbose'] = ''; +$cfg['Servers'][$i]['pmadb'] = ''; // 'phpmyadmin' - see scripts/create_tables.sql +$cfg['Servers'][$i]['bookmarktable'] = ''; // 'pma_bookmark' +$cfg['Servers'][$i]['relation'] = ''; // 'pma_relation' +$cfg['Servers'][$i]['table_info'] = ''; // 'pma_table_info' +$cfg['Servers'][$i]['table_coords'] = ''; // 'pma_table_coords' +$cfg['Servers'][$i]['pdf_pages'] = ''; // 'pma_pdf_pages' +$cfg['Servers'][$i]['column_info'] = ''; // 'pma_column_info' +$cfg['Servers'][$i]['history'] = ''; // 'pma_history' +$cfg['Servers'][$i]['verbose_check'] = TRUE; +$cfg['Servers'][$i]['AllowDeny']['order'] + = ''; +$cfg['Servers'][$i]['AllowDeny']['rules'] + = array(); + +$i++; +$cfg['Servers'][$i]['host'] = ''; +$cfg['Servers'][$i]['port'] = ''; +$cfg['Servers'][$i]['socket'] = ''; +$cfg['Servers'][$i]['connect_type'] = 'tcp'; +$cfg['Servers'][$i]['extension'] = 'mysql'; +$cfg['Servers'][$i]['compress'] = FALSE; +$cfg['Servers'][$i]['controluser'] = ''; +$cfg['Servers'][$i]['controlpass'] = ''; +$cfg['Servers'][$i]['auth_type'] = 'config'; +$cfg['Servers'][$i]['user'] = 'root'; +$cfg['Servers'][$i]['password'] = ''; +$cfg['Servers'][$i]['only_db'] = ''; +$cfg['Servers'][$i]['verbose'] = ''; +$cfg['Servers'][$i]['pmadb'] = ''; // 'phpmyadmin' - see scripts/create_tables.sql +$cfg['Servers'][$i]['bookmarktable'] = ''; // 'pma_bookmark' +$cfg['Servers'][$i]['relation'] = ''; // 'pma_relation' +$cfg['Servers'][$i]['table_info'] = ''; // 'pma_table_info' +$cfg['Servers'][$i]['table_coords'] = ''; // 'pma_table_coords' +$cfg['Servers'][$i]['pdf_pages'] = ''; // 'pma_pdf_pages' +$cfg['Servers'][$i]['column_info'] = ''; // 'pma_column_info' +$cfg['Servers'][$i]['history'] = ''; // 'pma_history' +$cfg['Servers'][$i]['verbose_check'] = TRUE; +$cfg['Servers'][$i]['AllowDeny']['order'] + = ''; +$cfg['Servers'][$i]['AllowDeny']['rules'] + = array(); + +// If you have more than one server configured, you can set $cfg['ServerDefault'] +// to any one of them to autoconnect to that server when phpMyAdmin is started, +// or set it to 0 to be given a list of servers without logging in +// If you have only one server configured, $cfg['ServerDefault'] *MUST* be +// set to that server. +$cfg['ServerDefault'] = 1; // Default server (0 = no default server) +$cfg['Server'] = ''; +unset($cfg['Servers'][0]); + + +/** + * Other core phpMyAdmin settings + */ +$cfg['OBGzip'] = 'auto'; // use GZIP output buffering if possible (TRUE|FALSE|'auto') +$cfg['PersistentConnections'] = FALSE; // use persistent connections to MySQL database +$cfg['ExecTimeLimit'] = 300; // maximum execution time in seconds (0 for no limit) +$cfg['SkipLockedTables'] = FALSE; // mark used tables, make possible to show + // locked tables (since MySQL 3.23.30) +$cfg['ShowSQL'] = TRUE; // show SQL queries as run +$cfg['AllowUserDropDatabase'] = FALSE; // show a 'Drop database' link to normal users +$cfg['Confirm'] = TRUE; // confirm 'DROP TABLE' & 'DROP DATABASE' +$cfg['LoginCookieRecall'] = TRUE; // recall previous login in cookie auth. mode or not +$cfg['LoginCookieValidity'] = 1800; // validity of cookie login (in seconds) +$cfg['UseDbSearch'] = TRUE; // whether to enable the "database search" feature + // or not +$cfg['IgnoreMultiSubmitErrors'] = FALSE; // if set to true, PMA continues computing multiple-statement queries + // even if one of the queries failed +$cfg['VerboseMultiSubmit'] = TRUE; // if set to true, PMA will show the affected rows of EACH statement on + // multiple-statement queries. See the read_dump.php file for hardcoded + // defaults on how many queries a statement may contain! +$cfg['AllowArbitraryServer'] = FALSE; // allow login to any user entered server in cookie based auth + +// Left frame setup +$cfg['LeftFrameLight'] = TRUE; // use a select-based menu and display only the + // current tables in the left frame. +$cfg['LeftFrameTableSeparator']= '__'; // Which string will be used to generate table prefixes + // to split/nest tables into multiple categories +$cfg['LeftFrameTableLevel'] = '1'; // How many sublevels should be displayed when splitting + // up tables by the above Separator +$cfg['ShowTooltip'] = TRUE; // display table comment as tooltip in left frame +$cfg['ShowTooltipAliasDB'] = FALSE; // if ShowToolTip is enabled, this defines that table/db comments +$cfg['ShowTooltipAliasTB'] = FALSE; // are shown (in the left menu and db_details_structure) instead of + // table/db names. Setting ShowTooltipAliasTB to 'nested' will only + // use the Aliases for nested descriptors, not the table itself. + +$cfg['LeftDisplayLogo'] = TRUE; // display logo at top of left frame +$cfg['LeftDisplayServers'] = FALSE; // display server choice at top of left frame +$cfg['DisplayServersList'] = FALSE; // server choice as links + +// In the main frame, at startup... +$cfg['ShowStats'] = TRUE; // allow to display statistics and space usage in + // the pages about database details and table + // properties +$cfg['ShowMysqlInfo'] = FALSE; // whether to display the "MySQL runtime +$cfg['ShowMysqlVars'] = FALSE; // information", "MySQL system variables", "PHP +$cfg['ShowPhpInfo'] = FALSE; // information" and "change password" links for +$cfg['ShowChgPassword'] = FALSE; // simple users or not +$cfg['SuggestDBName'] = TRUE; // suggest a new DB name if possible (false = keep empty) + +// In browse mode... +$cfg['ShowBlob'] = FALSE; // display blob field contents +$cfg['NavigationBarIconic'] = TRUE; // do not display text inside navigation bar buttons +$cfg['ShowAll'] = FALSE; // allows to display all the rows +$cfg['MaxRows'] = 30; // maximum number of rows to display +$cfg['Order'] = 'ASC'; // default for 'ORDER BY' clause (valid + // values are 'ASC', 'DESC' or 'SMART' -ie + // descending order for fields of type + // TIME, DATE, DATETIME & TIMESTAMP, + // ascending order else-) + +// In edit mode... +$cfg['ProtectBinary'] = 'blob'; // disallow editing of binary fields + // valid values are: + // FALSE allow editing + // 'blob' allow editing except for BLOB fields + // 'all' disallow editing +$cfg['ShowFunctionFields'] = TRUE; // Display the function fields in edit/insert mode +$cfg['CharEditing'] = 'input'; + // Which editor should be used for CHAR/VARCHAR fields: + // input - allows limiting of input length + // textarea - allows newlines in fields +$cfg['InsertRows'] = 2; // How many rows can be inserted at one time + +// For the export features... +$cfg['ZipDump'] = TRUE; // Allow the use of zip/gzip/bzip +$cfg['GZipDump'] = TRUE; // compression for +$cfg['BZipDump'] = TRUE; // dump files +$cfg['CompressOnFly'] = TRUE; // Will compress gzip/bzip2 exports on + // fly without need for much memory. + // If you encounter problems with + // created gzip/bzip2 files disable + // this feature. + +// Tabs display settings +$cfg['LightTabs'] = FALSE; // use graphically less intense menu tabs +$cfg['PropertiesIconic'] = TRUE; // Use icons instead of text for the table display of a database (TRUE|FALSE|'both') +$cfg['PropertiesNumColumns'] = 1; // How many columns should be used for table display of a database? + // (a value larger than 1 results in some information being hidden) + +$cfg['DefaultTabServer'] = 'main.php'; + // Possible values: + // 'main.php' = the welcome page + // (recommended for multiuser setups) + // 'server_databases.php' = list of databases + // 'server_status.php' = runtime information + // 'server_variables.php' = MySQL server variables + // 'server_privileges.php' = user management + // 'server_processlist.php' = process list +$cfg['DefaultTabDatabase'] = 'db_details_structure.php'; + // Possible values: + // 'db_details_structure.php' = tables list + // 'db_details.php' = sql form + // 'db_search.php' = search query +$cfg['DefaultTabTable'] = 'tbl_properties_structure.php'; + // Possible values: + // 'tbl_properties_structure.php' = fields list + // 'tbl_properties.php' = sql form + // 'tbl_select.php = select page + // 'tbl_change.php = insert row page + +/** + * Export defaults + */ + +$cfg['Export']['format'] = 'sql'; // sql/latex/excel/csv/xml/xls +$cfg['Export']['compression'] = 'none'; // none/zip/gzip/bzip2 + +$cfg['Export']['asfile'] = FALSE; +$cfg['Export']['onserver'] = FALSE; +$cfg['Export']['onserver_overwrite'] = FALSE; +$cfg['Export']['remember_file_template'] = TRUE; + +$cfg['Export']['xls_columns'] = FALSE; +$cfg['Export']['xls_null'] = 'NULL'; + +$cfg['Export']['csv_columns'] = FALSE; +$cfg['Export']['csv_null'] = 'NULL'; +$cfg['Export']['csv_separator'] = ';'; +$cfg['Export']['csv_enclosed'] = '"'; +$cfg['Export']['csv_escaped'] = '\\'; +$cfg['Export']['csv_terminated'] = 'AUTO'; +$cfg['Export']['excel_columns'] = FALSE; +$cfg['Export']['excel_null'] = 'NULL'; +$cfg['Export']['excel_edition'] = 'win'; // win/mac + +$cfg['Export']['latex_structure'] = TRUE; +$cfg['Export']['latex_data'] = TRUE; +$cfg['Export']['latex_columns'] = TRUE; +$cfg['Export']['latex_relation'] = TRUE; +$cfg['Export']['latex_comments'] = TRUE; +$cfg['Export']['latex_mime'] = TRUE; +$cfg['Export']['latex_null'] = '\textit{NULL}'; +$cfg['Export']['latex_caption'] = TRUE; +$cfg['Export']['latex_data_label'] = 'tab:__TABLE__-data'; +$cfg['Export']['latex_structure_label'] = 'tab:__TABLE__-structure'; + +$cfg['Export']['sql_structure'] = TRUE; +$cfg['Export']['sql_data'] = TRUE; +$cfg['Export']['sql_disable_fk'] = FALSE; +$cfg['Export']['sql_use_transaction'] = FALSE; +$cfg['Export']['sql_drop_database'] = FALSE; +$cfg['Export']['sql_drop_table'] = FALSE; +$cfg['Export']['sql_if_not_exists'] = FALSE; +$cfg['Export']['sql_auto_increment'] = TRUE; +$cfg['Export']['sql_backquotes'] = TRUE; +$cfg['Export']['sql_dates'] = FALSE; +$cfg['Export']['sql_relation'] = FALSE; +$cfg['Export']['sql_columns'] = FALSE; +$cfg['Export']['sql_delayed'] = FALSE; +$cfg['Export']['sql_ignore'] = FALSE; +$cfg['Export']['sql_hex_for_binary'] = TRUE; +$cfg['Export']['sql_type'] = 'insert'; // insert/update/replace +$cfg['Export']['sql_extended'] = FALSE; +$cfg['Export']['sql_comments'] = FALSE; +$cfg['Export']['sql_mime'] = FALSE; +$cfg['Export']['sql_header_comment'] = ''; // \n is replaced by new line + +/** + * Link to the official MySQL documentation. + * Be sure to include no trailing slash on the path. + * See http://dev.mysql.com/doc/ for more information + * about MySQL manuals and their types. + */ +$cfg['MySQLManualBase'] = 'http://dev.mysql.com/doc/mysql/en'; + +/** + * Type of MySQL documentation: + * old - old style used in phpMyAdmin 2.3.0 and sooner + * searchable - "Searchable, with user comments" + * chapters - "HTML, one page per chapter" + * big - "HTML, all on one page" + * none - do not show documentation links + */ +$cfg['MySQLManualType'] = 'searchable'; + + +/** + * PDF options + */ +$cfg['PDFPageSizes'] = array('A3', 'A4', 'A5', 'letter', 'legal'); +$cfg['PDFDefaultPageSize'] = 'A4'; + + +/** + * Language and charset conversion settings + */ +// Default language to use, if not browser-defined or user-defined +$cfg['DefaultLang'] = 'en-iso-8859-1'; + +// Force: always use this language - must be defined in +// libraries/select_lang.lib.php +// $cfg['Lang'] = 'en-iso-8859-1'; + +// Default charset to use for recoding of MySQL queries, does not take +// any effect when charsets recoding is switched off by +// $cfg['AllowAnywhereRecoding'] or in language file +// (see $cfg['AvailableCharsets'] to possible choices, you can add your own) +$cfg['DefaultCharset'] = 'iso-8859-1'; + +// Allow charset recoding of MySQL queries, must be also enabled in language +// file to make harder using other language files than unicode. +// Default value is FALSE to avoid problems on servers without the iconv +// extension and where dl() is not supported +$cfg['AllowAnywhereRecoding'] = FALSE; + +// You can select here which functions will be used for charset conversion. +// Possible values are: +// auto - automatically use available one (first is tested iconv, then +// recode) +// iconv - use iconv or libiconv functions +// recode - use recode_string function +$cfg['RecodingEngine'] = 'auto'; + +// Specify some parameters for iconv used in charset conversion. See iconv +// documentation for details: +// http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html +$cfg['IconvExtraParams'] = ''; + +// Available charsets for MySQL conversion. currently contains all which could +// be found in lang/* files and few more. +// Charsets will be shown in same order as here listed, so if you frequently +// use some of these move them to the top. +$cfg['AvailableCharsets'] = array( + 'iso-8859-1', + 'iso-8859-2', + 'iso-8859-3', + 'iso-8859-4', + 'iso-8859-5', + 'iso-8859-6', + 'iso-8859-7', + 'iso-8859-8', + 'iso-8859-9', + 'iso-8859-10', + 'iso-8859-11', + 'iso-8859-12', + 'iso-8859-13', + 'iso-8859-14', + 'iso-8859-15', + 'windows-1250', + 'windows-1251', + 'windows-1252', + 'windows-1256', + 'windows-1257', + 'koi8-r', + 'big5', + 'gb2312', + 'utf-8', + 'utf-7', + 'x-user-defined', + 'euc-jp', + 'ks_c_5601-1987', + 'tis-620', + 'SHIFT_JIS' +); + +/** + * Customization & design + * + * The graphical settings are now located in themes/themename/layout.inc.php + */ + +$cfg['LeftPointerEnable'] = TRUE; // enable the left panel pointer + // (used when LeftFrameLight is FALSE) + // see also LeftPointerColor + // in layout.inc.php + +$cfg['BrowsePointerEnable'] = TRUE; // enable the browse pointer + // see also BrowsePointerColor + // in layout.inc.php + +$cfg['BrowseMarkerEnable'] = TRUE; // enable the browse marker + // see also BrowseMarkerColor + // in layout.inc.php + +$cfg['TextareaCols'] = 40; // textarea size (columns) in edit mode + // (this value will be emphasized (*2) for sql + // query textareas and (*1.25) for query window) +$cfg['TextareaRows'] = 7; // textarea size (rows) in edit mode +$cfg['LongtextDoubleTextarea'] = TRUE; // double size of textarea size for longtext fields +$cfg['TextareaAutoSelect'] = TRUE; // autoselect when clicking in the textarea of the querybox +$cfg['CharTextareaCols'] = 40; // textarea size (columns) for CHAR/VARCHAR +$cfg['CharTextareaRows'] = 2; // textarea size (rows) for CHAR/VARCHAR +$cfg['CtrlArrowsMoving'] = TRUE; // Enable Ctrl+Arrows moving between fields when editing? +$cfg['LimitChars'] = 50; // Max field data length in browse mode for all non-numeric fields +$cfg['ModifyDeleteAtLeft'] = TRUE; // show edit/delete links on left side of browse + // (or at the top with vertical browse) +$cfg['ModifyDeleteAtRight'] = FALSE; // show edit/delete links on right side of browse + // (or at the bottom with vertical browse) +$cfg['DefaultDisplay'] = 'horizontal'; // default display direction + // (horizontal|vertical|horizontalflipped) +$cfg['DefaultPropDisplay'] = 'horizontal'; // default display direction for altering/ + // creating columns (tbl_properties) + // (horizontal|vertical) + +$cfg['HeaderFlipType'] = 'css'; // table-header rotation via faking or css? (css|fake) + // NOTE: CSS only works in IE browsers! +$cfg['ShowBrowseComments'] = TRUE; // shows stored relation-comments in 'browse' mode. +$cfg['ShowPropertyComments']= TRUE; // shows stored relation-comments in 'table property' mode. +$cfg['RepeatCells'] = 100; // repeat header names every X cells? (0 = deactivate) + +$cfg['QueryFrame'] = TRUE; // displays a link or icon in the left frame to open the querybox, and activates the querybox when clicking on [Edit] on the results page. +$cfg['QueryFrameJS'] = TRUE; // whether to use JavaScript functions for opening a new window for SQL commands. + // if set to 'false', the target of the querybox is always the right frame. +$cfg['QueryWindowWidth'] = 550; // Width of Query window +$cfg['QueryWindowHeight'] = 310; // Height of Query window +$cfg['QueryHistoryDB'] = FALSE; // Set to TRUE if you want DB-based query history. + // If FALSE, this utilizes JS-routines to display + // query history (lost by window close) +$cfg['QueryWindowDefTab'] = 'sql'; // which tab to display in the querywindow on startup + // (sql|files|history|full) +$cfg['QueryHistoryMax'] = 25; // When using DB-based query history, how many entries + // should be kept? +$cfg['BrowseMIME'] = TRUE; // Use MIME-Types (stored in column comments table) for +$cfg['MaxExactCount'] = 20000; // When approximate count < this, PMA will get exact count for + // table rows. +$cfg['WYSIWYG-PDF'] = TRUE; // Utilize DHTML/JS capabilities to allow WYSIWYG editing of + // the PDF page editor. Requires an IE6/Mozilla based browser. + +$cfg['NaturalOrder'] = TRUE; // Sort table and database in natural order + + +//----------------------------------------------------------------------------- +// custom-setup by mkkeck: 2004-05-04 +// some specials for new icons and scrollings +// FIXME: +// 2004-05-08 rabus: We need to rearrange these variables. + +$cfg['ShowHttpHostTitle'] = TRUE; // show HttpHost in browsers window title (true|false)? +$cfg['SetHttpHostTitle'] = ''; // if ShowHttpHostTitle=true, please set your host (server) + // or an other string, wich should be shown in browsers window title. + // If not set (or empty), the PMA will get your real Host-Adress. + +$cfg['ErrorIconic'] = TRUE; // show some icons for warnings, errors and informations (true|false)? +$cfg['MainPageIconic'] = TRUE; // show icons in list on main page, on right panel top menu (server db table) and on menu tabs (true|false)? +$cfg['ReplaceHelpImg'] = TRUE; // show help button instead of strDocumentation (true|false)? + +// theme manager +$cfg['ThemePath'] = './themes'; // using themes manager please set up here the path to 'themes' + // else leave empty +$cfg['ThemeManager'] = TRUE; // if you want to use selectable themes and if ThemesPath not empty + // set it to true, else set it to false (default is false); +$cfg['ThemeDefault'] = 'original'; // set up default theme, if ThemePath not empty + // you can set up here an valid path to themes or 'original' for + // the original pma-theme + +//----------------------------------------------------------------------------- + + +/** + * Default queries + * %d will be replaced by the database name. + * %t will be replaced by the table name. + * %f will be replaced by a list of field names. + * (%t and %f only applies to DefaultQueryTable) + */ +$cfg['DefaultQueryTable'] = 'SELECT * FROM %t WHERE 1'; +$cfg['DefaultQueryDatabase'] = ''; + +/** + * SQL Query box settings + * These are the links display in all of the SQL Query boxes + */ +$cfg['SQLQuery']['Edit'] = TRUE; // Edit link to change a query +$cfg['SQLQuery']['Explain'] = TRUE; // EXPLAIN on SELECT queries +$cfg['SQLQuery']['ShowAsPHP'] = TRUE; // Wrap a query in PHP +$cfg['SQLQuery']['Validate'] = FALSE; // Validate a query (see $cfg['SQLValidator'] as well) +$cfg['SQLQuery']['Refresh'] = TRUE; // Refresh the results page + + +/** + * Webserver upload/save/import directories + */ +$cfg['UploadDir'] = ''; // Directory for uploaded files that can be executed by + // phpMyAdmin. For example './upload'. Leave empty for + // no upload directory support +$cfg['SaveDir'] = ''; // Directory where phpMyAdmin can save exported data on + // server. For example './save'. Leave empty for no save + // directory support. +$cfg['docSQLDir'] = ''; // Directory for docSQL imports, phpMyAdmin can import + // docSQL files from that directory. For example + // './docSQL'. Leave empty for no docSQL import support. +$cfg['TempDir'] = ''; // Directory where phpMyAdmin can save temporary files. + // This is needed for MS Excel export, see documentation + // how to enable that. + + +/** + * Misc. settings + */ +$cfg['GD2Available'] = 'auto'; // Is GD >= 2 available? Set to yes/no/auto. 'auto' + // does autodetection, which is a bit expensive for + // php < 4.3.0, but it is the only safe vay how to + // determine GD version. +/** + * SQL Parser Settings + */ +$cfg['SQP']['fmtType'] = 'html'; // Pretty-printing style to use on queries (html, text, none) +$cfg['SQP']['fmtInd'] = '1'; // Amount to indent each level (floats ok) +$cfg['SQP']['fmtIndUnit'] = 'em'; // Units for indenting each level (CSS Types - {em,px,pt}) +// The graphical settings are now located in themes/themename/layout.inc.php + +/** + * If you wish to use the SQL Validator service, you should be + * aware of the following: + * All SQL statements are stored anonymously for statistical purposes. + * Mimer SQL Validator, Copyright 2002 Upright Database Technology. + * All rights reserved. + */ +$cfg['SQLValidator']['use'] = FALSE; // Make the SQL Validator available +$cfg['SQLValidator']['username'] = ''; // If you have a custom username, specify it here (defaults to anonymous) +$cfg['SQLValidator']['password'] = ''; // Password for username + +/** + * Developers ONLY! + * To use the following, please install the DBG extension from http://dd.cron.ru/dbg/ + */ +$cfg['DBG']['enable'] = FALSE; // Make the DBG stuff available +$cfg['DBG']['profile']['enable'] = FALSE; // Produce profiling results of PHP +$cfg['DBG']['profile']['threshold'] = 0.5; // Threshold of long running code to display + // Anything below the threshold is not displayed + + +/** + * MySQL settings + */ +// Column types; +// varchar, tinyint, text and date are listed first, based on estimated popularity +$cfg['ColumnTypes'] = array( + 'VARCHAR', + 'TINYINT', + 'TEXT', + 'DATE', + 'SMALLINT', + 'MEDIUMINT', + 'INT', + 'BIGINT', + 'FLOAT', + 'DOUBLE', + 'DECIMAL', + 'DATETIME', + 'TIMESTAMP', + 'TIME', + 'YEAR', + 'CHAR', + 'TINYBLOB', + 'TINYTEXT', + 'BLOB', + 'MEDIUMBLOB', + 'MEDIUMTEXT', + 'LONGBLOB', + 'LONGTEXT', + 'ENUM', + 'SET' +); + +// Attributes +$cfg['AttributeTypes'] = array( + '', + 'BINARY', + 'UNSIGNED', + 'UNSIGNED ZEROFILL' +); + +// Available functions +if ($cfg['ShowFunctionFields']) { + $cfg['Functions'] = array( + 'ASCII', + 'CHAR', + 'SOUNDEX', + 'LCASE', + 'UCASE', + 'NOW', + 'PASSWORD', + 'MD5', + 'SHA1', + 'ENCRYPT', + 'RAND', + 'LAST_INSERT_ID', + 'COUNT', + 'AVG', + 'SUM', + 'CURDATE', + 'CURTIME', + 'FROM_DAYS', + 'FROM_UNIXTIME', + 'PERIOD_ADD', + 'PERIOD_DIFF', + 'TO_DAYS', + 'UNIX_TIMESTAMP', + 'USER', + 'WEEKDAY', + 'CONCAT' + ); + + // Which column types will be mapped to which Group? + $cfg['RestrictColumnTypes'] = array( + 'VARCHAR' => 'FUNC_CHAR', + 'TINYINT' => 'FUNC_NUMBER', + 'TEXT' => 'FUNC_CHAR', + 'DATE' => 'FUNC_DATE', + 'SMALLINT' => 'FUNC_NUMBER', + 'MEDIUMINT' => 'FUNC_NUMBER', + 'INT' => 'FUNC_NUMBER', + 'BIGINT' => 'FUNC_NUMBER', + 'FLOAT' => 'FUNC_NUMBER', + 'DOUBLE' => 'FUNC_NUMBER', + 'DECIMAL' => 'FUNC_NUMBER', + 'DATETIME' => 'FUNC_DATE', + 'TIMESTAMP' => 'FUNC_DATE', + 'TIME' => 'FUNC_DATE', + 'YEAR' => 'FUNC_DATE', + 'CHAR' => 'FUNC_CHAR', + 'TINYBLOB' => 'FUNC_CHAR', + 'TINYTEXT' => 'FUNC_CHAR', + 'BLOB' => 'FUNC_CHAR', + 'MEDIUMBLOB' => 'FUNC_CHAR', + 'MEDIUMTEXT' => 'FUNC_CHAR', + 'LONGBLOB' => 'FUNC_CHAR', + 'LONGTEXT' => 'FUNC_CHAR', + 'ENUM' => '', + 'SET' => '' + ); + + // Map above defined groups to any function + $cfg['RestrictFunctions'] = array( + 'FUNC_CHAR' => array( + 'ASCII', + 'CHAR', + 'SOUNDEX', + 'LCASE', + 'UCASE', + 'PASSWORD', + 'MD5', + 'SHA1', + 'ENCRYPT', + 'LAST_INSERT_ID', + 'USER', + 'CONCAT' + ), + + 'FUNC_DATE' => array( + 'NOW', + 'CURDATE', + 'CURTIME', + 'FROM_DAYS', + 'FROM_UNIXTIME', + 'PERIOD_ADD', + 'PERIOD_DIFF', + 'TO_DAYS', + 'UNIX_TIMESTAMP', + 'WEEKDAY' + ), + + 'FUNC_NUMBER' => array( + 'ASCII', + 'CHAR', + 'MD5', + 'SHA1', + 'ENCRYPT', + 'RAND', + 'LAST_INSERT_ID', + 'COUNT', + 'AVG', + 'SUM' + ) + ); + + // Default functions for above defined groups + $cfg['DefaultFunctions'] = array( + 'FUNC_CHAR' => '', + 'FUNC_DATE' => '', + 'FUNC_NUMBER' => '', + 'first_timestamp' => 'NOW' + ); + + +} // end if + +// Search operators +$cfg['NumOperators'] = array( + '=', + '>', + '>=', + '<', + '<=', + '!=', + 'LIKE', + 'NOT LIKE' +); + +$cfg['TextOperators'] = array( + 'LIKE', + 'LIKE %...%', + 'NOT LIKE', + '=', + '!=', + 'REGEXP', + 'NOT REGEXP' +); + +$cfg['EnumOperators'] = array( + '=', + '!=' +); + +$cfg['NullOperators'] = array( + 'IS NULL', + 'IS NOT NULL' +); + +$cfg['UnaryOperators'] = array( + 'IS NULL' => 1, + 'IS NOT NULL' => 1 +); + +/** + * Unset magic_quotes_runtime - do not change! + */ +set_magic_quotes_runtime(0); + +/** + * File Revision - do not change either! + */ +$cfg['FileRevision'] = '$Revision: 2.41 $'; +?> diff --git a/directadmin-1.62.4/data/templates/da-popb4smtp b/directadmin-1.62.4/data/templates/da-popb4smtp new file mode 100644 index 0000000..bdf3be2 --- /dev/null +++ b/directadmin-1.62.4/data/templates/da-popb4smtp @@ -0,0 +1,77 @@ +#!/bin/sh + +# da-popb4smtp daemon Start/Stop/Status/Restart + +# chkconfig: 2345 80 30 +# description: Keeps track of who has authenticated \ +# through vm-pop3d by looking at the /var/log/maillog \ +# file and parsing it to find successfull connections. +# processname: da-popb4smtp +# pidfile: /var/run/da-popb4smtp.pid + +### BEGIN INIT INFO +# Provides: da-popb4smtp +# Required-Start: $local_fs $network +# Required-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: da-popb4smtp +# Description: da-popb4smtp daemon to scan maillog for authentication and usage +### END INIT INFO + +# Source function library +. /etc/rc.d/init.d/functions + +PROGBIN="/usr/local/directadmin/da-popb4smtp" +PROGLOCK=/var/lock/subsys/da-popb4smtp +PROGNAME=da-popb4smtp + +#check the command line for actions + +start() { + echo -n "Starting DA-PopB4Smtp: " + daemon $PROGBIN + echo + touch $PROGLOCK +} + +stop() { + echo -n "Stopping DA-PopB4Smtp: " + if [ -e /var/run/da-popb4smtp.pid ]; then + kill -9 `cat /var/run/da-popb4smtp.pid` + else + killproc $PROGNAME + fi + + echo + rm -f $PROGLOCK +} + +reload() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $PROGNAME + ;; + restart) + stop + start + ;; + reload) + reload + ;; + *) + echo "Usage: $1 {start|stop|status|reload|restart}" + exit 1 +esac + +exit 0 diff --git a/directadmin-1.62.4/data/templates/default/400.shtml b/directadmin-1.62.4/data/templates/default/400.shtml new file mode 100644 index 0000000..e72a137 --- /dev/null +++ b/directadmin-1.62.4/data/templates/default/400.shtml @@ -0,0 +1,301 @@ + + +400 Bad Request + +

Bad Request

+There was an error in your request. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/templates/default/401.shtml b/directadmin-1.62.4/data/templates/default/401.shtml new file mode 100644 index 0000000..ef995a6 --- /dev/null +++ b/directadmin-1.62.4/data/templates/default/401.shtml @@ -0,0 +1,89 @@ + + +401 Authorization Required + +

Authorization Required

+This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/templates/default/403.shtml b/directadmin-1.62.4/data/templates/default/403.shtml new file mode 100644 index 0000000..71f9b2f --- /dev/null +++ b/directadmin-1.62.4/data/templates/default/403.shtml @@ -0,0 +1,257 @@ + + +403 Forbidden + +

Forbidden

+You don't have permission to access on this server. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/templates/default/404.shtml b/directadmin-1.62.4/data/templates/default/404.shtml new file mode 100644 index 0000000..46fb4a0 --- /dev/null +++ b/directadmin-1.62.4/data/templates/default/404.shtml @@ -0,0 +1,261 @@ + + +404 Not Found + +

Not Found

+The requested URL was not found on this server. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/templates/default/500.shtml b/directadmin-1.62.4/data/templates/default/500.shtml new file mode 100644 index 0000000..9289ca9 --- /dev/null +++ b/directadmin-1.62.4/data/templates/default/500.shtml @@ -0,0 +1,216 @@ + + +500 Internal Server Error + +

Internal Server Error

+The server encountered an internal error or misconfiguration and was unable to complete your request +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/directadmin-1.62.4/data/templates/default/index.html b/directadmin-1.62.4/data/templates/default/index.html new file mode 100644 index 0000000..36de30c --- /dev/null +++ b/directadmin-1.62.4/data/templates/default/index.html @@ -0,0 +1,29 @@ + + + + |DOMAIN| + + + + + +
+



+ + + + + +
Welcome to the home of |DOMAIN|
To change this page, upload your website into the public_html directory
Date Created: |DATECREATED|
+

+ +
+ + + diff --git a/directadmin-1.62.4/data/templates/default/logo.png b/directadmin-1.62.4/data/templates/default/logo.png new file mode 100644 index 0000000..ca28c0e Binary files /dev/null and b/directadmin-1.62.4/data/templates/default/logo.png differ diff --git a/directadmin-1.62.4/data/templates/directadmin.conf b/directadmin-1.62.4/data/templates/directadmin.conf new file mode 100644 index 0000000..76e67da --- /dev/null +++ b/directadmin-1.62.4/data/templates/directadmin.conf @@ -0,0 +1,88 @@ +#panel config file +port=2222 +numservers=10 +timeout=300 +session_minutes=60 +maxfilesize=1073741824 +servername=|SERVER_NAME| +ns1=|NS1| +ns2=|NS2| + +#many directories use ./ local path because of chroot. +serverpath=/usr/local/directadmin +admindir=./data/admin +logdir=/var/log/directadmin +logger=/usr/local/directadmin/logger +loghostname=0 +docsroot=./data/skins/evolution +demodocsroot=./data/skins/evolution +skinsdir=./data/skins +userdata=./data/users +ticketsdir=/usr/local/directadmin/data/tickets +license=/usr/local/directadmin/conf/license.key +templates=/usr/local/directadmin/data/templates + +taskqueue=/usr/local/directadmin/data/task.queue + +apachelogdir=/var/log/httpd/domains +apacheconf=/etc/httpd/conf/httpd.conf +apacheips=/etc/httpd/conf/ips.conf +apachemimetypes=/etc/mime.types +apachecert=/etc/httpd/conf/ssl.crt/server.crt +apachekey=/etc/httpd/conf/ssl.key/server.key +apache_public_html=0 + +owsadm=/usr/local/frontpage/version5.0/bin/owsadm.exe + +sshdconfig=/etc/ssh/sshd_config + +ftpconfig=/etc/proftpd.conf +ftpvhosts=/etc/proftpd.vhosts.conf +ftppasswd=/etc/proftpd.passwd + +namedconfig=/etc/named.conf +nameddir=/var/named + +addip=/usr/local/directadmin/scripts/addip +removeip=/usr/local/directadmin/scripts/removeip + +emailvirtual=/etc/virtual +emailspoolvirtual=/var/spool/virtual + +user_helper=www.site-helper.com +reseller_helper=reseller.site-helper.com +admin_helper=admin.site-helper.com + +mysqlconf=/usr/local/directadmin/conf/mysql.conf + +ssl=0 +cacert=/usr/local/directadmin/conf/cacert.pem +cakey=/usr/local/directadmin/conf/cakey.pem + +tmpdir=../../../home/tmp +max_username_length=10 +login_history=10 + +log_rotate_size=5 +unified_ftp_password_file=1 +secure_access_group=access +check_subdomain_owner=1 +hide_brute_force_notifications=1 +brute_force_log_scanner=0 +letsencrypt=1 +enable_ssl_sni=1 +add_userdb_quota=1 +webmail_link=roundcube +default_private_html_link=1 +mail_sni=1 +dns_ttl=1 +php_fpm_max_children_default=10 + +zip=1 +mysql_detect_correct_methods=1 +dkim=2 +pointers_own_virtualhost=1 +system_user_to_virtual_passwd=1 +ethernet_dev=eth0 +quota_partition=/ +use_xfs_quota=0 diff --git a/directadmin-1.62.4/data/templates/dns_a.conf b/directadmin-1.62.4/data/templates/dns_a.conf new file mode 100644 index 0000000..dea3f94 --- /dev/null +++ b/directadmin-1.62.4/data/templates/dns_a.conf @@ -0,0 +1,8 @@ +|*if IS_IPV6!="yes"| +|DOMAIN|.=|IP| +mail=|IP| +pop=|IP| +www=|IP| +ftp=|IP| +smtp=|IP| +|*endif| diff --git a/directadmin-1.62.4/data/templates/dns_aaaa.conf b/directadmin-1.62.4/data/templates/dns_aaaa.conf new file mode 100644 index 0000000..d1762da --- /dev/null +++ b/directadmin-1.62.4/data/templates/dns_aaaa.conf @@ -0,0 +1,8 @@ +|*if IS_IPV6="yes"| +|DOMAIN|.=|IP| +mail=|IP| +pop=|IP| +www=|IP| +ftp=|IP| +smtp=|IP| +|*endif| diff --git a/directadmin-1.62.4/data/templates/dns_caa.conf b/directadmin-1.62.4/data/templates/dns_caa.conf new file mode 100644 index 0000000..e69de29 diff --git a/directadmin-1.62.4/data/templates/dns_cname.conf b/directadmin-1.62.4/data/templates/dns_cname.conf new file mode 100644 index 0000000..e69de29 diff --git a/directadmin-1.62.4/data/templates/dns_mx.conf b/directadmin-1.62.4/data/templates/dns_mx.conf new file mode 100644 index 0000000..1fddc4e --- /dev/null +++ b/directadmin-1.62.4/data/templates/dns_mx.conf @@ -0,0 +1 @@ +mail=10 diff --git a/directadmin-1.62.4/data/templates/dns_ns.conf b/directadmin-1.62.4/data/templates/dns_ns.conf new file mode 100644 index 0000000..2200ca8 --- /dev/null +++ b/directadmin-1.62.4/data/templates/dns_ns.conf @@ -0,0 +1,2 @@ +|NS1|=|DOMAIN|. +|NS2|=|DOMAIN|. diff --git a/directadmin-1.62.4/data/templates/dns_spf.conf b/directadmin-1.62.4/data/templates/dns_spf.conf new file mode 100644 index 0000000..8581578 --- /dev/null +++ b/directadmin-1.62.4/data/templates/dns_spf.conf @@ -0,0 +1 @@ +|DOMAIN|.="v=spf1 a mx ip4:|SERVER_IP||EXTRA_SPF| ~all" diff --git a/directadmin-1.62.4/data/templates/dns_srv.conf b/directadmin-1.62.4/data/templates/dns_srv.conf new file mode 100644 index 0000000..e69de29 diff --git a/directadmin-1.62.4/data/templates/dns_tlsa.conf b/directadmin-1.62.4/data/templates/dns_tlsa.conf new file mode 100644 index 0000000..e69de29 diff --git a/directadmin-1.62.4/data/templates/dns_txt.conf b/directadmin-1.62.4/data/templates/dns_txt.conf new file mode 100644 index 0000000..8581578 --- /dev/null +++ b/directadmin-1.62.4/data/templates/dns_txt.conf @@ -0,0 +1 @@ +|DOMAIN|.="v=spf1 a mx ip4:|SERVER_IP||EXTRA_SPF| ~all" diff --git a/directadmin-1.62.4/data/templates/dovecot_sni.conf b/directadmin-1.62.4/data/templates/dovecot_sni.conf new file mode 100644 index 0000000..6631b94 --- /dev/null +++ b/directadmin-1.62.4/data/templates/dovecot_sni.conf @@ -0,0 +1,4 @@ +local_name "|HOST|" { + ssl_cert = <|CERT_COMBINED| + ssl_key = <|KEY| +} diff --git a/directadmin-1.62.4/data/templates/edit_files.txt b/directadmin-1.62.4/data/templates/edit_files.txt new file mode 100644 index 0000000..0e1fae9 --- /dev/null +++ b/directadmin-1.62.4/data/templates/edit_files.txt @@ -0,0 +1,46 @@ +/usr/local/directadmin/data/admin/ip_blacklist=user=root&group=root&permission=644 +/usr/local/directadmin/data/admin/ip_whitelist=user=root&group=root&permission=644 +/etc/ssh/sshd_config=user=root&group=root&permission=644&secure=yes +/etc/httpd/conf/httpd.conf=user=root&group=root&permission=644 +/etc/httpd/conf/extra/httpd-includes.conf=user=root&group=root&permission=644&hide_if_not_exist=yes +/usr/local/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php53/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php54/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php55/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php56/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php57/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php70/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php71/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php72/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php73/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/php74/lib/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/usr/local/etc/php5/cgi/php.ini=user=root&group=root&permission=644&hide_if_not_exist=yes&secure=yes +/etc/exim.conf=user=root&group=root&permission=644 +/etc/system_filter.exim=user=root&group=root&permission=644 +/etc/dovecot/dovecot.conf=user=root&group=root&permission=644 +/etc/aliases=user=root&group=root&permission=644 +/etc/virtual/domainips=user=mail&group=mail&permission=640 +/etc/virtual/helo_data=user=mail&group=mail&permission=640 +/etc/virtual/snidomains=user=mail&group=mail&permission=640 +/etc/proftpd.conf=user=root&group=root&permission=644&secure=yes +/etc/pure-ftpd.conf=user=root&group=root&permission=644&secure=yes +/etc/hosts.allow=user=root&group=root&permission=644 +/etc/hosts.deny=user=root&group=root&permission=644 +/etc/proftpd.vhosts.conf=user=root&group=root&permission=644 +/usr/local/directadmin/conf/directadmin.conf=user=diradmin&group=diradmin&permission=600&secure=yes +/usr/local/directadmin/data/templates/edit_files.txt=user=root&group=root&permission=644&secure=yes +/usr/local/directadmin/data/templates/per_email_limit_email_message.txt=user=root&group=root&permission=644&secure=yes +/usr/local/directadmin/data/templates/custom/per_email_limit_email_message.txt=user=root&group=root&permission=644&secure=yes&hide_if_not_exist=yes +/etc/exim.key=user=mail&group=mail&permission=644 +/etc/exim.cert=user=mail&group=mail&permission=644 +/var/spool/exim/blocked_authenticated_users=user=mail&group=mail&permission=600&hide_if_not_exist=yes +/var/spool/exim/blocked_script_paths=user=mail&group=mail&permission=600&hide_if_not_exist=yes +/etc/httpd/conf/ssl.crt/server.crt=user=root&group=root&permission=600 +/etc/httpd/conf/ssl.key/server.key=user=root&group=root&permission=600 +/etc/httpd/conf/ssl.crt/server.crt=user=root&group=root&permission=600 +/usr/local/directadmin/conf/cacert.pem=user=diradmin&group=diradmin&permission=400 +/usr/local/directadmin/conf/cakey.pem=user=diradmin&group=diradmin&permission=400 +/usr/local/directadmin/conf/carootcert.pem=user=diradmin&group=diradmin&permission=400 +/etc/named.conf=user=root&group=root&permission=644&hide_if_not_exist=yes +/etc/bind/named.conf=user=root&group=root&permission=644&hide_if_not_exist=yes +/etc/namedb/named.conf=user=root&group=root&permission=644&hide_if_not_exist=yes diff --git a/directadmin-1.62.4/data/templates/email_limit_message.txt b/directadmin-1.62.4/data/templates/email_limit_message.txt new file mode 100644 index 0000000..7537cda --- /dev/null +++ b/directadmin-1.62.4/data/templates/email_limit_message.txt @@ -0,0 +1,23 @@ +|?SUBJECT=Warning: `COUNT` emails have just been sent by `USERNAME`| +The |USERNAME| account has just finished sending |COUNT| emails. +There could be a spammer, the account could be compromised, or just sending more emails than usual. + +After some processing of the |BYTES_FILE| file, it was found that the highest sender was |TOP_SENDER|, at |TOP_SENDER_COUNT| emails. +|*if TOP_AUTH_PERCENT>"20"| +The top authenticated user was |TOP_AUTH|, at |TOP_AUTH_COUNT| emails. +This accounts for |TOP_AUTH_PERCENT|% of the emails. The higher the value, the more likely this is the source of the emails. +An authenticated username is the user and password value used at smtp time to authenticate with exim for delivery.|*endif| +|*if TOP_HOST_PERCENT>"20"| +The top sending host was |TOP_HOST|, at |TOP_HOST_COUNT| emails (|TOP_HOST_PERCENT|%).|*endif| +|*if TOP_PATH_PERCENT>"20"| +The most common path that the messages were sent from is |TOP_PATH|, at |TOP_PATH_COUNT| emails (|TOP_PATH_PERCENT|%). +The path value may only be of use if it's pointing to that of a User's home directory. +If the path is a system path, it likely means the email was sent through smtp rather than using a script.|*endif| +|*if TOP_PHP_SCRIPT_PERCENT>"20"| +The top sending script was |TOP_PHP_SCRIPT|, at |TOP_PHP_SCRIPT_COUNT| emails, (|TOP_PHP_SCRIPT_PERCENT|%).|*endif| +|*if TOP_PHP_SCRIPT_PERCENT>DISABLE_PHP_SCRIPT_AT_LIMIT_THRESHOLD|Because the bulk of the emails have been sent by the script, please check it to confirm it has not been compromised.|*endif| +|*if SCRIPT_CHMOD_RESULT!=""||SCRIPT_CHMOD_RESULT||*endif| + +This warning was generated because the |LIMIT| email threshold was hit. + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/email_pass_change/index.html b/directadmin-1.62.4/data/templates/email_pass_change/index.html new file mode 100644 index 0000000..047a13c --- /dev/null +++ b/directadmin-1.62.4/data/templates/email_pass_change/index.html @@ -0,0 +1,35 @@ + + + + Change Email Password + + + + + + +
+


+ Change E-Mail Password +

+ + + + + + + + + +
Enter the required information below
Email Address:
Old Password:
New Password:
Re-Type Password:
+

+ +
+ + + diff --git a/directadmin-1.62.4/data/templates/exim.conf b/directadmin-1.62.4/data/templates/exim.conf new file mode 100644 index 0000000..0336f6c --- /dev/null +++ b/directadmin-1.62.4/data/templates/exim.conf @@ -0,0 +1,924 @@ +###################################################################### +# Runtime configuration file for Exim # +######### IMPORTANT ########## IMPORTANT ########## IMPORTANT ######## +# WARNING! Be sure to back up your previous exim.conf file before # +# attempting to use this exim.conf file. # +# # +# Do may not use this exim.conf Exim configuration file unless you # +# make the required modifications to your Exim configuration # +# following the instructions found below, in the section marked # +# "MODIFICATION INSTRUCTIONS". # +# # +# This is version "RSS-1.0da" of the exim.conf file as distributed # +# by nobaloney.net. # +# # +# The "RSS" stands for "Really Stop Spam", as the author believes # +# this distribution of the exim.conf file will Really Stop Spam. # +# Note that "Really Stop Spam" is both a trademark and a service # +# mark of nobaloney.net. # +# # +# The "da" stands for DirectAdmin as this distribution of the # +# exim.conf file is specific to the DirectAdmin control panel # +# installation. More information about DirectAdmin may be found at # +# http://www.directadmin.com. # +# # +# This Exim configuration file has been modified from the original # +# as distributed with Exim 4. The modifications have been made by: # +# # +# Jeff Lasman # +# nobaloney.net # +# P. O. Box 52672 # +# Riverside, CA 92517 # +# info@nobaloney.net # +# (909) 324-9706 # +# # +# Note that neither nobaloney.net nor Jeff Lasman have any # +# affiliation with DirectAdmin. # +# # +###################################################################### +# # +# The most recent version of this distribution may always be # +# downloaded from the website at # +# # +# http://www.nobaloney.net/exim/exim.conf.spamblocked # +# # +###################################################################### +# # +# Portions of this file are taken from the exim.conf file as # +# distributed with Exim 4, which includes the following copyright # +# notice: # +# # +# Copyright © 2002 University of Cambridge, Cambridge, UK # +# # +# Portions of this file are taken from the exim.conf file as # +# distributed with DirectAdmin (http://www.directadmin.com/), # +# # +# © 2003 JBMC Software, St Albert, AB, Canada # +# # +# Portions of this file are written by Jeff Lasman, of # +# nobaloney.net and are copyright as follows: # +# # +# Copyright © 2004 nobaloney.net, Riverside, Calif., USA # +# # +# The entire Exim 4 distribution, including this file, is # +# distributed under the GNU GENERAL PUBLIC LICENSE, Version 2, # +# June 1991. If you do not have a copy of the GNU GENERAL # +# PUBLIC LICENSE you may download it, in it's entirety, from # +# the website at # +# # +# http://www.nobaloney.net/exim/gnu-gpl-v2.txt # +# # +###################################################################### +# # +# This file is divided into several parts, all but the first of # +# which are# headed by a line starting with the word "begin". Only # +# those parts that are required need to be present. Blank lines, and # +# lines starting with # are ignored. # +# # +######### IMPORTANT ########## IMPORTANT ########## IMPORTANT ######## +# # +# Whenever you change Exim's configuration file, you *must* remember # +# to HUP the Exim daemon, because it will not pick up the new # +# configuration until you do. However, any other Exim processes that # +# are started, for example, a process started by an MUA in order to # +# send a message, will see the new configuration as soon as it is in # +# place. # +# # +# You do not need to HUP the daemon for changes in auxiliary files # +# that are referenced from this file. They are read every time they # +# are used. # +# # +# It is usually a good idea to test a new configuration for # +# syntactic correctness before installing it (for example, by # +# running the command "exim -C /config/file.new -bV"). # +# # +### MODIFICATION INSTRUCTIONS ########## MODIFICATION INSTRUCTIONS ### +# # +# YOU MUST MAKE THE FOLLOWING CHANGES TO DIRECTADMIN: # +# 1) Add a file /etc/virtual/blacklist_domains # +# This file should contain the domain names of so-called legal # +# spammers and other spam sources that do not always get caught # +# by blocklists, but that, nevertheless, you do not want to be # +# able to send spam to your domains on your server for which # +# you've enabled spamblocking. # +# # +# 2) Add a file /etc/virtual/whitelist_from # +# This file should contain the fully-qualified hostnames or IP#s # +# of servers that you DO want to be able to get email from even # +# if they're otherwise caught by blocklists. Your own domain # +# need not be listed here to enable you to get unblock requests, # +# whitelisting of email to your "errors" address will be handled # +# separately, below. # +# # +# 3) Add a file /etc/virtual/use_rbl_domains # +# This is a list of domains on your server that want spamblocking # +# to be used for them so they won't get spam. Spam will not be # +# blocked for any domains on your server unless they're listed # +# in this file. Note that the domain names in this file should # +# follow the same format as the domain names in the # +# /etc/virtual/domains file. You may just copy the domains file # +# to this file if you wish to use spamblocking for all your # +# domains but we recommend giving your domain users a choice. # +# # +# Note that the above files should have the same ownership and # +# permissions as /etc/virtual/domains. Normally this should be: # +# owner = mail, group = mail, chmod 644. # +# # +# YOU MUST MAKE THE FOLLOWING MODIFICATIONS TO YOUR WEBISTE: # +# # +# Note that if anyone is blocked while trying to send you a # +# legitimate (non-spam) email, the "non-delivery" message they'll # +# get will include a reference to a webpage where they'll need to # +# vist to get their email addressed unblocked. You should create # +# such a webpage before you implement this file. The webpage may # +# include either a form for them to send you the information you # +# need to unblock them, or instructions for them to email you so you # +# can unblock them. # +# # +# You'll need the full name of their server to unblock them, by # +# putting the server name into the /etc/virtual/whitelist_from # +# file. There are two ways you can get this information: # +# # +# 1) You can create a form that will ask them for the address # +# they're trying to reach, the address they're sending the email # +# from, and the canonical name of their email server. Since they # +# may not know the name of their email server, this must be # +# optional, and if they leave it blank you'll have to find their # +# attempt to send email in your exim /var/log/exim/rejectlog file # +# and get the name of the server from there. # +# # +# 2) You can ask them to send you an email from the same address # +# that they were blocked from, but to (for example) # +# "errors@example.com" (but changing it to an address you want to # +# use, at one of your domains). When they send you the email you # +# should be able to find the name of their server in the headers # +# of the incoming email. # +# # +# Either way, you'll need to put the canonical name of their # +# nameserver into your /etc/virtual/whitelist_from file. # +# # +# You won't use the name they're sending email to for any purpose, # +# except possibly to verify the attempt in your # +# /var/log/exim/rejectlog file. It's really just a "red-herring" so # +# no one will just send you their email address and server name so # +# they can then spam your users. # +# # +# YOU MUST MAKE THE FOLLOWING MODIFICATIONS TO THIS FILE: # +# # +# Wherever you find the domain name "example.com" you must make # +# changes to customize this file for your server. If you leave # +# the sample "example.com" domain in this file then you will most # +# likely get false positives hits as spam and you will not notify # +# the senders how to be unblocked. # +# # +# YOU MUST change "example.com" to the domain name you'll be using # +# for an explanation website for anyone who gets blocked who # +# shouldn't be blocked (see notes above). # +# # +# Additionally, wherever "example.com" is used in an error message # +# being sent because an email is blocked, you should make sure that # +# the domain name includes any optional page you want senders to be # +# sent to in order to get themselves unblocked. # +# # +######## OPTIONAL MODIFICATIONS ###### OPTIONAL MODIFICATIONS ######## +# # +# Optional modifications are marked below as: # +# # OPTIONAL MODIFICATIONS # +# # +# Check below for any optional modifications you wish to make to # +# this exim.conf file before installing it. # +# # +# Any settings below should not be commented out, uncommented, or # +# changed, unless they're marked with the OPTIONAL MODIFICATIONS # +# line unless you're sure what you are doing or you may break your # +# exim server configuration. # +# Should you break your exim configuration you should reinstall your # +# exim.conf file from scratch, either from a backup of the file you # +# used previously, or from one newly downloaded from our site (see # +# above) or from DirectAdmin. # +# # +###################################################################### + +# Specify your host's canonical name here. This should normally be the fully +# qualified "official" name of your host. If this option is not set, the +# uname() function is called to obtain the name. In many cases this does +# the right thing and you need not set anything explicitly. + +# primary_hostname = + +# Specify the domain you want to be added to all unqualified addresses +# here. An unqualified address is one that does not contain an "@" character +# followed by a domain. For example, "caesar@rome.ex" is a fully qualified +# address, but the string "caesar" (i.e. just a login name) is an unqualified +# email address. Unqualified addresses are accepted only from local callers by +# default. See the receiver_unqualified_{hosts,nets} options if you want +# to permit unqualified addresses from remote sources. If this option is +# not set, the primary_hostname value is used for qualification. + +# qualify_domain = + +# If you want unqualified recipient addresses to be qualified with a different +# domain to unqualified sender addresses, specify the recipient domain here. +# If this option is not set, the qualify_domain value is used. + +# qualify_recipient = + +# the next line is required to start the smtp auth script included +# in DirectAdmin + +perl_startup = do '/etc/exim.pl' + +# the next line is required to start the system_filter included in +# DirectAdmin to refuse potentiallly harmful payloads in +# email messages + +system_filter = /etc/system_filter.exim + + +# SET SOME MEANINGFUL LIMITS +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to modify them +# for your environment + +message_size_limit = 20M +smtp_receive_timeout = 5m +smtp_accept_max = 100 +message_body_visible = 3000 + +# ALLOW UNDERSCORE IN EMAIL DOMAIN NAME +# domains shouldn't use the underscore character "_" but some +# may. Because John Postel, one of the architects of the Internet, +# said "Be liberal in what you accept and conservative in what you +# transmit, we choose to allow underscore in email domain names so we +# can receive email form domains which use the underscore character +# in their domain name. +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to modify them +# for your environment + +helo_allow_chars = _ + +# CHANGE LOGGING BEHAVIOR +# We weren't happy with the default Exim logging behavior through +# syslog; it didn't give us enough information. So we turned off +# syslog behavior and changed the logging behavior to give us what we +# felt was more helpful information. You may choose to delete or modify +# this section. +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to modify them +# for your environment + +# define what to log: +# define the => log lines +# +delivery_size +# +sender_on_delivery +# +# define the <= log lines: +# +received_recipients +# +received_sender +# +smtp_confirmation +# +subject +# +# define other non '<= =>' log lines: +# +smtp_incomplete_transaction +################################### +# define what to not log: +# define other non "<= =>' log lines: +# -dnslist_defer +# -host_lookup_failed +# -queue_run +# -rejected_header +# -retry_defer +# -skip_delivery +################################### + +log_selector = \ + +delivery_size \ + +sender_on_delivery \ + +received_recipients \ + +received_sender \ + +smtp_confirmation \ + +subject \ + +smtp_incomplete_transaction \ + -dnslist_defer \ + -host_lookup_failed \ + -queue_run \ + -rejected_header \ + -retry_defer \ + -skip_delivery + +syslog_duplication = false + +# These options specify the Access Control Lists (ACLs) that +# are used for incoming SMTP messages - after the RCPT and DATA +# commands, respectively. + +acl_smtp_rcpt = check_recipient +acl_smtp_data = check_message + +# define local lists + +domainlist blacklist_domains = lsearch;/etc/virtual/blacklist_domains +domainlist whitelist_from = lsearch;/etc/virtual/whitelist_from +domainlist local_domains = lsearch;/etc/virtual/domains +domainlist relay_domains = lsearch;/etc/virtual/domains : localhost +domainlist use_rbl_domains = lsearch;/etc/virtual/use_rbl_domains +hostlist relay_hosts = net-lsearch;/etc/virtual/pophosts : 127.0.0.1 +hostlist auth_relay_hosts = * + +# If you want to accept mail addressed to your host's literal IP address, for +# example, mail addressed to "user@[111.111.111.111]", then uncomment the +# following line, or supply the literal domain(s) as part of "local_domains" +# above. You also need to comment "forbid_domain_literals" below. This is not +# recommended for today's Internet. + +# DO NOT ALLOW HOST LITERALS +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to uncomment the line +# below and change the allow_domain_literals line below to true +# to allow domain literals in your environment + +# local_domains_include_host_literals + +# The following line prevents Exim from recognizing addresses of the form +# "user@[111.111.111.111]" that is, with a "domain literal" (an IP address) +# instead of a named domain. The RFCs still require this form, but it makes +# little sense to permit mail to be sent to specific hosts by their IP address +# in the modern Internet, and this ancient format has been used by those +# seeking to abuse hosts by using them for unwanted relaying. If you really +# do want to support domain literals, remove the following line, and see +# also the "domain_literal" router below. + +allow_domain_literals = false + +# No local deliveries will ever be run under the uids of these users (a colon- +# separated list). An attempt to do so gets changed so that it runs under the +# uid of "nobody" instead. This is a paranoic safety catch. Note the default +# setting means you cannot deliver mail addressed to root as if it were a +# normal user. This isn't usually a problem, as most sites have an alias for +# root that redirects such mail to a human administrator. + +never_users = root + +# DO HOST LOOKUP +# OPTIONAL MODIFICATIONS: +# The setting below causes Exim to do a reverse DNS lookup on all incoming +# IP calls, in order to get the true host name. If you feel this is too +# expensive, you can specify the networks for which a lookup is done, or +# remove the setting entirely. + +host_lookup = * + +# DISALLOW IDENT CALLBACKS +# OPTIONAL MODIFICATIONS: +# Exim may be set to make RFC 1413 (ident) callbacks for all incoming SMTP +# calls. You can limit the hosts to which these calls are made, and/or change +# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls +# are disabled. RFC 1413 calls are cheap and can provide useful information +# for tracing problem messages, but some hosts and firewalls have problems +# with them. This can result in a timeout instead of an immediate refused +# connection, leading to delays on starting up an SMTP session. By default +# we disable callbacks for incoming SMTP calls. You may change +# rfc1413_query_timeout to 30s or some other positive number of seconds to +# enable callbacks for incoming SMTP calls. + +rfc1413_hosts = * +rfc1413_query_timeout = 0s + +# BOUNCE MESSAGES +# OPTIONAL MODIFICATIONS: +# When Exim can neither deliver a message nor return it to sender, it +# "freezes" the delivery error message (aka "bounce message"). There are also +# other circumstances in which messages get frozen. They will stay on the +# queue forever unless one or both of the following options is set. + +# This option unfreezes unfreezes bounce messages after two days, tries +# once more to deliver them, and ignores any delivery failures. + +ignore_bounce_errors_after = 2d + +# This option cancels (removes) frozen messages that are older than five days. + +timeout_frozen_after = 5d + +# TRUSTED USERS +# OPTIONAL MODIFICATIONS: +# if you must add additional trusted users, do so here; continue the +# colon-delimited list + +trusted_users = mail:majordomo:apache + + + + +# SSL/TLS cert and key +tls_certificate = /etc/exim.cert +tls_privatekey = /etc/exim.key + +tls_advertise_hosts = * +#auth_over_tls_hosts = * + +###################################################################### +# ACLs # +###################################################################### + +begin acl + +# ACL that is used after the RCPT command +check_recipient: + +# we accept if the source is local SMTP (i.e. not over TCP/IP). +# We do this by testing for an empty sending host field. + accept hosts = : + +# Deny for local domains if local parts begin with a dot or +# contain @ % ! / | + deny domains = +local_domains + local_parts = ^[.] : ^.*[@%!/|] + +# allow local users to send outgoing messages using slashes +# and vertical bars in their local parts but blocks outgoing +# local parts that begin with a dot, slash, or vertical bar +# but allows them within the local part. The sequence \..\ +# is barred. The usage of @ % and ! is barred as before. The +# motiviation is to prevent your users (or their virii) from +# mounting certain kinds of attacks on reverse sites. + + deny domains = !+local_domains + local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ + +# accept email from anyone in the whitelist_from list + accept domains = +whitelist_from + +# accept mail to postmaster in any local domain, regardless of source + accept local_parts = postmaster + domains = +local_domains + +# accept mail to abuse in any local domain, regardless of source + accept local_parts = abuse + domains = +local_domains + +# accept mail to hostmaster in any local domain, regardless of source + accept local_parts = hostmaster + domains =+local_domains + +# OPTIONAL MODIFICATIONS: +# If the page you're using to notify senders of blocked email of how +# to get their address unblocked will use a web form to send you email so +# you'll know to unblock those senders, then you may leave these lines +# commented out. However, if you'll be telling your senders of blocked +# email to send an email to errors@yourdomain.com, then you should +# replace "errors" with the left side of the email address you'll be +# using, and "example.com" with the right side of the email address and +# then uncomment the second two lines, leaving the first one commented. +# Doing this will mean anyone can send email to this specific address, +# even if they're at a blocked domain, and even if your domain is using +# blocklists. + +# accept mail to errors@example.com, regardless of source +# accept local_parts = errors +# domains = example.com + +# deny so-called "legal" spammers" +# but do bypass all checking for whitelisted host names + deny message = You may think you're legal but you're still an unwanted spammer + # only for domains that do want to be tested against RBLs + domains = +use_rbl_domains + sender_domains = +blacklist_domains + +# Deny unless sender address can be verified: +# This statement requires the sender address to be verified before any +# subsequent ACL statement can be used. If verification fails, the incoming +# recipient address is refused. Verification consists of trying to route the +# address, to see if a bounce message could be delivered to it. In the case of +# remote addresses, basic verification checks only the domain. + +require verify = sender + +# Deny stuff from insecure hosts & spammers. No exceptions for known users. +# but do bypass all checking for whitelisted host names + deny message = to unblock $sender_host_name see http://www.example.com/ + # only for domains that do want to be tested against RBLs + domains = +use_rbl_domains + # only smtp.dnsbl.sorbs.net = 127.0.0.5 + dnslists = sbl.spamhaus.org : \ + relays.ordb.org : \ + dnsbl.sorbs.net=127.0.0.5 + +# Next deny stuff from more "fuzzy" blacklists +# but do bypass all checking for whitelisted host names + deny message = to unblock $sender_host_name see http://www.example.com/ + hosts = !+relay_hosts + domains =+use_rbl_domains + !authenticated = * + # dnslists not including spam.dnsbl.sorbs.net + dnslists = bl.spamcop.net : \ + dnsbl.njabl.org : \ + cbl.abuseat.org : \ + dnsbl.sorbs.net!=127.0.0.6 + + deny message = to unblock $sender_host_name see http://www.example.com/ + domains =+use_rbl_domains + # rhsbl list is name based + dnslists = rhsbl.sorbs.net/$sender_address_domain + +# accept if address is in a local domain as long as recipient can be verified + accept domains = +local_domains + endpass + verify = recipient + +# accept if address is in a domain for which we relay as long as recipient +# can be verified + accept domains = +relay_domains + endpass + verify=recipient + +# accept if message comes for a host for which we are an outgoing relay +# recipient verification is omitted because many MUA clients don't cope +# well with SMTP error responses. If you are actually relaying from MTAs +# then you should probably add recipient verify here + + accept hosts = +relay_hosts + accept hosts = +auth_relay_hosts + endpass + message = authentication required + authenticated = * + deny message = relay not permitted + +# default at end of acl causes a "deny", but line below will give +# an explicit error message: + deny message = relay not permitted + +# ACL that is used after the DATA command +check_message: + accept + +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### + +# There are no authenticator specifications in this default configuration file. + +begin authenticators + +plain: + driver = plaintext + public_name = PLAIN + server_condition = "${perl{smtpauth}}" + server_set_id = $2 + +login: + driver = plaintext + public_name = LOGIN + server_prompts = "Username:: : Password::" + server_condition = "${perl{smtpauth}}" + server_set_id = $1 + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### + +# There are no rewriting specifications in this default configuration file. + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how remote addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A remote address is passed to each in turn until it is accepted. # +###################################################################### + +begin routers + +# Remote addresses are those with a domain that does not match any item +# in the "local_domains" setting above. + +# This router routes to remote hosts over SMTP using a DNS lookup. Any domain +# that resolves to an IP address on the loopback interface (127.0.0.0/8) is +# treated as if it had no DNS entry. + +lookuphost: + driver = dnslookup + domains = ! +local_domains + ignore_target_hosts = 127.0.0.0/8 + condition = "${perl{check_limits}}" + transport = remote_smtp + no_more + +# This router routes to remote hosts over SMTP by explicit IP address, +# when an email address is given in "domain literal" form, for example, +# . The RFCs require this facility. However, it is +# little-known these days, and has been exploited by evil people seeking +# to abuse SMTP relays. Consequently it is commented out in the default +# configuration. If you uncomment this router, you also need to comment out +# "forbid_domain_literals" above, so that Exim can recognize the syntax of +# domain literal addresses. + +# domain_literal: +# driver = ipliteral +# transport = remote_smtp + +###################################################################### +# DIRECTORS CONFIGURATION # +# Specifies how local addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A local address is passed to each in turn until it is accepted. # +###################################################################### + +# Local addresses are those with a domain that matches some item in the +# "local_domains" setting above, or those which are passed back from the +# routers because of a "self=local" setting (not used in this configuration). + +# Spam Assassin +#spamcheck_director: +# driver = accept +# condition = "${if and { {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}} {!eq {$received_protocol}{local}} } {1}{0}}" +# retry_use_local_part +# transport = spamcheck +# no_verify + +majordomo_aliases: + driver = redirect + allow_defer + allow_fail + data = ${if exists{/etc/virtual/${domain}/majordomo/list.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/list.aliases}}}} + domains = lsearch;/etc/virtual/domainowners + file_transport = address_file + group = daemon + pipe_transport = majordomo_pipe + retry_use_local_part + no_rewrite + user = majordomo + +majordomo_private: + driver = redirect + allow_defer + allow_fail + #condition = "${if eq {$received_protocol} {local} {true} {false} }" + condition = "${if or { {eq {$received_protocol} {local}} \ + {eq {$received_protocol} {spam-scanned}} } {true} {false} }" + data = ${if exists{/etc/virtual/${domain}/majordomo/private.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/private.aliases}}}} + domains = lsearch;/etc/virtual/domainowners + file_transport = address_file + group = daemon + pipe_transport = majordomo_pipe + retry_use_local_part + user = majordomo + +domain_filter: + driver = redirect + allow_filter + no_check_local_user + condition = "${if exists{/etc/virtual/${domain}/filter}{yes}{no}}" + user = "mail" + file = /etc/virtual/${domain}/filter + file_transport = address_file + pipe_transport = virtual_address_pipe + retry_use_local_part + no_verify + +uservacation: + driver = accept + condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/vacation.conf}{yes}{no}} + require_files = /etc/virtual/${domain}/reply/${local_part}.msg + transport = uservacation + unseen + +userautoreply: + driver = accept + condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/autoresponder.conf}{yes}{no}} + require_files = /etc/virtual/${domain}/reply/${local_part}.msg + transport = userautoreply + unseen + +virtual_aliases_nostar: + driver = redirect + allow_defer + allow_fail + data = ${if exists{/etc/virtual/${domain}/aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/aliases}}}} + file_transport = address_file + group = mail + pipe_transport = virtual_address_pipe + retry_use_local_part + unseen + #include_domain = true + +virtual_user: + driver = accept + condition = ${if eq {}{${if exists{/etc/virtual/${domain}/passwd}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/passwd}}}}}{no}{yes}} + domains = lsearch;/etc/virtual/domainowners + group = mail + retry_use_local_part + transport = virtual_localdelivery + +virtual_aliases: + driver = redirect + allow_defer + allow_fail + data = ${if exists{/etc/virtual/$domain/aliases}{${lookup{$local_part}lsearch*{/etc/virtual/$domain/aliases}}}} + file_transport = address_file + group = mail + pipe_transport = virtual_address_pipe + retry_use_local_part + #include_domain = true + +# This director handles forwarding using traditional .forward files. +# If you want it also to allow mail filtering when a forward file +# starts with the string "# Exim filter", uncomment the "filter" option. +# The check_ancestor option means that if the forward file generates an +# address that is an ancestor of the current one, the current one gets +# passed on instead. This covers the case where A is aliased to B and B +# has a .forward file pointing to A. The three transports specified at the +# end are those that are used when forwarding generates a direct delivery +# to a file, or to a pipe, or sets up an auto-reply, respectively. + +userforward: + driver = redirect + allow_filter + check_ancestor + check_local_user + no_expn + file = $home/.forward + file_transport = address_file + pipe_transport = address_pipe + reply_transport = address_reply + no_verify + +system_aliases: + driver = redirect + allow_defer + allow_fail + data = ${lookup{$local_part}lsearch{/etc/aliases}} + file_transport = address_file + pipe_transport = address_pipe + retry_use_local_part + # user = exim + +localuser: + driver = accept + check_local_user + condition = "${if eq {$domain} {$primary_hostname} {yes} {no}}" + transport = local_delivery + +# This director matches local user mailboxes. + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +# ORDER DOES NOT MATTER # +# Only one appropriate transport is called for each delivery. # +###################################################################### + +# A transport is used only when referenced from a director or a router that +# successfully handles an address. + + +# Spam Assassin +begin transports + +spamcheck: + driver = pipe + batch_max = 100 + command = /usr/sbin/exim -oMr spam-scanned -bS + current_directory = "/tmp" + group = mail + home_directory = "/tmp" + log_output + message_prefix = + message_suffix = + return_fail_output + no_return_path_add + transport_filter = /usr/bin/spamc -u ${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}} + use_bsmtp + user = mail + # must use a privileged user to set $received_protocol on the way back in! + + +#majordomo +majordomo_pipe: + driver = pipe + group = daemon + return_fail_output + user = majordomo + +# This transport is used for local delivery to user mailboxes in traditional +# BSD mailbox format. By default it will be run under the uid and gid of the +# local user, and requires the sticky bit to be set on the /var/mail directory. +# Some systems use the alternative approach of running mail deliveries under a +# particular group instead of using the sticky bit. The commented options below +# show how this can be done. + +local_delivery: + driver = appendfile + delivery_date_add + envelope_to_add + file = /var/mail/$local_part + group = mail + mode = 0660 + return_path_add + user = ${local_part} + +## for delivering virtual domains to their own mail spool + +virtual_localdelivery: + driver = appendfile + create_directory + delivery_date_add + directory_mode = 700 + envelope_to_add + file = /var/spool/virtual/${domain}/${local_part} + group = mail + mode = 660 + return_path_add + user = "${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}" + quota = ${if exists{/etc/virtual/${domain}/quota}{${lookup{$local_part}lsearch*{/etc/virtual/${domain}/quota}{$value}{0}}}{0}} + +## vacation transport +uservacation: + driver = autoreply + file = /etc/virtual/${domain}/reply/${local_part}.msg + from = "${local_part}@${domain}" + log = /etc/virtual/${domain}/reply/${local_part}.log + no_return_message + subject = "${if def:h_Subject: {Autoreply: $h_Subject:} {I am on vacation}}" + text = "\ + ------ ------\n\n\ + This message was automatically generated by email software\n\ + The delivery of your message has not been affected.\n\n\ + ------ ------\n\n" + to = "${sender_address}" + user = mail + #once = /etc/virtual/${domain}/reply/${local_part}.once + +userautoreply: + driver = autoreply + bcc = ${lookup{${local_part}} lsearch {/etc/virtual/${domain}/autoresponder.conf}{$value}} + file = /etc/virtual/${domain}/reply/${local_part}.msg + from = "${local_part}@${domain}" + log = /etc/virtual/${domain}/reply/${local_part}.log + no_return_message + subject = "${if def:h_Subject: {Autoreply: $h_Subject:} {Autoreply Message}}" + to = "${sender_address}" + user = mail + #once = /etc/virtual/${domain}/reply/${local_part}.once + +# This transport is used for delivering messages over SMTP connections. + +remote_smtp: + driver = smtp + +# This transport is used for handling pipe deliveries generated by alias +# or .forward files. If the pipe generates any standard output, it is returned +# to the sender of the message as a delivery error. Set return_fail_output +# instead of return_output if you want this to happen only when the pipe fails +# to complete normally. You can set different transports for aliases and +# forwards if you want to - see the references to address_pipe in the directors +# section below. + +address_pipe: + driver = pipe + return_output + +virtual_address_pipe: + driver = pipe + group = nobody + return_output + user = "${lookup{$domain}lsearch* {/etc/virtual/domainowners}{$value}}" + +# This transport is used for handling deliveries directly to files that are +# generated by aliasing or forwarding. + +address_file: + driver = appendfile + delivery_date_add + envelope_to_add + return_path_add + +# This transport is used for handling autoreplies generated by the filtering +# option of the forwardfile director. + +address_reply: + driver = autoreply + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### + +# This single retry rule applies to all domains and all errors. It specifies +# retries every 15 minutes for 2 hours, then increasing retry intervals, +# starting at 1 hour and increasing each time by a factor of 1.5, up to 16 +# hours, then retries every 8 hours until 4 days have passed since the first +# failed delivery. + +# Domain Error Retries +# ------ ----- ------- + + +begin retry + +* * F,2h,15m; G,16h,1h,1.5; F,4d,8h + + +# End of Exim 4 configuration diff --git a/directadmin-1.62.4/data/templates/exim.pl b/directadmin-1.62.4/data/templates/exim.pl new file mode 100644 index 0000000..e2fc4b1 --- /dev/null +++ b/directadmin-1.62.4/data/templates/exim.pl @@ -0,0 +1,576 @@ +#!/usr/bin/perl + +#VERSION=14 + +sub get_domain_owner +{ + my ($domain) = @_; + my $username=""; + open(DOMAINOWNERS,"/etc/virtual/domainowners"); + while () + { + $_ =~ s/\n//; + my ($dmn,$usr) = split(/: /, $_); + if ($dmn eq $domain) + { + close(DOMAINOWNERS); + return $usr; + } + } + close(DOMAINOWNERS); + + return -1; +} + +# hit_limit_user +# checks to see if a username has hit the send limit. +# returns: +# -1 for "there is no limit" +# 0 for "still under the limit" +# 1 for "at the limit" +# 2 for "over the limit" + +sub hit_limit_user +{ + my($username) = @_; + + my $count = 0; + my $email_limit = 0; + + if (open (LIMIT, "/etc/virtual/limit_$username")) + { + $email_limit = int(); + close(LIMIT); + } + else + { + open (LIMIT, "/etc/virtual/limit"); + $email_limit = int(); + close(LIMIT); + } + + if ($email_limit > 0) + { + #check this users limit + $count = (stat("/etc/virtual/usage/$username"))[7]; + + #this is their last email. + if ($count == $email_limit) + { + return 1; + } + + if ($count > $email_limit) + { + return 2; + } + + return 0; + } + + return -1; +} + +# hit_limit_email +# same idea as hit_limit_user, except we check the limits (if any) for per-email accounts. + +sub hit_limit_email +{ + my($user,$domain) = @_; + + my $user_email_limit = 0; + if (open (LIMIT, "/etc/virtual/$domain/limit/$user")) + { + $user_email_limit = int(); + close(LIMIT); + } + else + { + if (open (LIMIT, "/etc/virtual/user_limit")) + { + $user_email_limit = int(); + close(LIMIT); + } + } + + if ($user_email_limit > 0) + { + my $count = 0; + $count = (stat("/etc/virtual/$domain/usage/$user"))[7]; + if ($count == $user_email_limit) + { + return 1; + } + if ($count > $user_email_limit) + { + return 2; + } + return 0; + } + + return -1; +} + +#smtpauth +#called by exim to verify if an smtp user is allowed to +#send email through the server +#possible success: +# user is in /etc/virtual/domain.com/passwd and password matches +# user is in /etc/passwd and password matches in /etc/shadow + +sub smtpauth +{ + $username = Exim::expand_string('$1'); + $password = Exim::expand_string('$2'); + $extra = Exim::expand_string('$3'); + $domain = ""; + $unixuser = 1; + + #check for netscape that offsets the login/pass by one + if ($username eq "" && length($extra) > 0) + { + $username = $password; + $password = $extra; + } + + if ($username =~ /\@/) + { + $unixuser = 0; + ($username,$domain) = split(/\@/, $username); + if ($domain eq "") { return "no"; } + } + + if ($unixuser == 1) + { + #the username passed doesn't have a domain, so its a system account + $homepath = (getpwnam($username))[7]; + if ($homepath eq "") { return 0; } + open(PASSFILE, "< $homepath/.shadow") || return "no"; + $crypted_pass = ; + close PASSFILE; + + if ($crypted_pass eq crypt($password, $crypted_pass)) + { + my $limit_check = hit_limit_user($username); + if ($limit_check > 1) + { + die("The email send limit for $username has been reached\n"); + } + + return "yes"; + } + else { return "no"; } + } + else + { + #the username contain a domain, which is now in $domain. + #this is a pure virtual pop account. + + open(PASSFILE, "< /etc/virtual/$domain/passwd") || return "no"; + while () + { + ($test_user,$test_pass) = split(/:/,$_); + $test_pass =~ s/\n//g; #snip out the newline at the end + if ($test_user eq $username) + { + if ($test_pass eq crypt($password, $test_pass)) + { + close PASSFILE; + + my $domain_owner = get_domain_owner($domain); + if ($domain_owner != -1) + { + my $limit_check = hit_limit_user($domain_owner); + if ($limit_check > 1) + { + die("The email send limit for $domain_owner has been reached\n"); + } + + $limit_check = hit_limit_email($username, $domain); + if ($limit_check > 1) + { + die("The email send limit for $username\@${domain} has been reached\n"); + } + } + + return "yes"; + } + } + } + close PASSFILE; + return "no"; + } + + return "no"; +} + +sub find_uid_apache +{ + my ($work_path) = @_; + my @pw; + + # $pwd will probably look like '/home/username/domains/domain.com/public_html' + # it may or may not use /home though. others are /usr/home, but it's ultimately + # specified in the /etc/passwd file. We *could* parse through it, but for efficiency + # reasons, we'll only check /home and /usr/home .. if they change it, they can + # manually adjust if needed. + + @dirs = split(/\//, $work_path); + foreach $dir (@dirs) + { + # check the dir name for a valid user + # get the home dir for that user + # compare it with the first part of the work_path + + if ( (@pw = getpwnam($dir)) ) + { + if ($work_path =~/^$pw[7]/) + { + return $pw[2]; + } + } + } + return -1; +} + +sub find_uid_auth_id +{ + # this will be passwed either + # 'username' or 'user@domain.com' + + my ($auth_id) = @_; + my $unixuser = 1; + my $domain = ""; + my $user = ""; + my $username = $auth_id; + my @pw; + + if ($auth_id =~ /\@/) + { + $unixuser = 0; + ($user,$domain) = split(/\@/, $auth_id); + if ($domain eq "") { return "-1"; } + } + + if (!$unixuser) + { + # we need to take $domain and get the user from /etc/virtual/domainowners + # once we find it, set $username + my $u = get_domain_owner($domain);; + if ($u != -1) + { + $username = $u; + } + } + + #log_str("username found from $auth_id: $username:\n"); + + if ( (@pw = getpwnam($username)) ) + { + return $pw[2]; + } + + return -1; +} + +sub find_uid_sender +{ + my $sender_address = Exim::expand_string('$sender_address'); + + my ($user,$domain) = split(/\@/, $sender_address); + + my $primary_hostname = Exim::expand_string('$primary_hostname'); + if ( $domain eq $primary_hostname ) + { + @pw = getpwnam($user); + return $pw[2]; + } + + my $username = get_domain_owner($domain); + + if ( (@pw = getpwnam($username)) ) + { + return $pw[2]; + } + + return -1; +} + +sub find_uid +{ + my $uid = Exim::expand_string('$originator_uid'); + my $username = getpwuid($uid); + my $auth_id = Exim::expand_string('$authenticated_id'); + my $work_path = $ENV{'PWD'}; + + if ($username eq "apache" || $username eq "nobody" || $username eq "webapps") + { + $uid = find_uid_apache($work_path); + if ($uid != -1) { return $uid; } + } + + $uid = find_uid_auth_id($auth_id); + if ($uid != -1) { return $uid; } + + # we don't want to rely on this, but it's all thats left. + return find_uid_sender; +} + +sub uid_exempt +{ + my ($uid) = @_; + if ($uid == 0) { return 1; } + + my $name = getpwuid($uid); + if ($name eq "root") { return 1; } + if ($name eq "diradmin") { return 1; } + + return 0; +} + + +#check_limits +#used to enforce limits for the number of emails sent +#by a user. It also logs the bandwidth of the data +#for received mail. + +sub check_limits +{ + #find the curent user + $uid = find_uid(); + + #log_str("Found uid: $uid\n"); + + if (uid_exempt($uid)) { return "yes"; } + + my $name=""; + + #check this users limit + $name = getpwuid($uid); + + if (!defined($name)) + { + #possibly the sender-verify + $name = "unknown"; + #return "yes"; + } + + my $count = 0; + my $email_limit = 0; + if (open (LIMIT, "/etc/virtual/limit_$name")) + { + $email_limit = int(); + close(LIMIT); + } + else + { + open (LIMIT, "/etc/virtual/limit"); + $email_limit = int(); + close(LIMIT); + } + + my $sender_address = Exim::expand_string('$sender_address'); + my $authenticated_id = Exim::expand_string('$authenticated_id'); + my $sender_host_address = Exim::expand_string('$sender_host_address'); + my $mid = Exim::expand_string('$message_id'); + my $message_size = Exim::expand_string('$message_size'); + my $local_part = Exim::expand_string('$local_part'); + my $domain = Exim::expand_string('$domain'); + my $timestamp = time(); + my $is_retry = 0; + + if ($email_limit > 0) + { + #check this users limit + $count = (stat("/etc/virtual/usage/$name"))[7]; + + if ($count > $email_limit) + { + die("You ($name) have reached your daily email limit of $email_limit emails\n"); + } + + if ($mid ne "") + { + if (! -d "/etc/virtual/usage/${name}_ids") + { + mkdir("/etc/virtual/usage/${name}_ids", 0770); + } + + my $mid_char = substr($mid, 0, 1); + + if (! -d "/etc/virtual/usage/${name}_ids/$mid_char") + { + mkdir("/etc/virtual/usage/${name}_ids/$mid_char", 0770); + } + + my $id_file = "/etc/virtual/usage/${name}_ids/$mid_char/$mid"; + + if (-f $id_file) + { + $is_retry = 1; + } + else + { + open(IDF, ">>$id_file"); + print IDF "log_time=$timestamp\n"; + close(IDF); + chmod (0660, $id_file); + } + } + + #this is their last email. + if (($count == $email_limit) && ($is_retry != 1)) + { + #taddle on the dataskq + #note that the sender_address here is only the person who sent the last email + #it doesnt meant that they have sent all the spam + #this action=limit will trigger a check on usage/user.bytes, and DA will try and figure it out. + open(TQ, ">>/etc/virtual/mail_task.queue"); + print TQ "action=limit&username=$name&count=$count&limit=$email_limit&email=$sender_address&authenticated_id=$authenticated_id&sender_host_address=$sender_host_address&log_time=$timestamp\n"; + close(TQ); + chmod (0660, "/etc/virtual/mail_task.queue"); + } + + if ($is_retry != 1) + { + open(USAGE, ">>/etc/virtual/usage/$name"); + print USAGE "1"; + close(USAGE); + chmod (0660, "/etc/virtual/usage/$name"); + } + } + + if ( ($authenticated_id ne "") && ($is_retry != 1) ) + { + my $user=""; + my $domain=""; + ($user, $domain) = (split(/@/, $authenticated_id)); + + if ($domain ne "") + { + my $user_email_limit = 0; + if (open (LIMIT, "/etc/virtual/$domain/limit/$user")) + { + $user_email_limit = int(); + close(LIMIT); + } + else + { + if (open (LIMIT, "/etc/virtual/user_limit")) + { + $user_email_limit = int(); + close(LIMIT); + } + } + + if ($user_email_limit > 0) + { + $count = 0; + $count = (stat("/etc/virtual/$domain/usage/$user"))[7]; + + if ($count == $user_email_limit) + { + open(TQ, ">>/etc/virtual/mail_task.queue"); + print TQ "action=userlimit&username=$name&count=$count&limit=$user_email_limit&email=$sender_address&authenticated_id=$authenticated_id&sender_host_address=$sender_host_address&log_time=$timestamp\n"; + close(TQ); + chmod (0660, "/etc/virtual/mail_task.queue"); + } + + if ($count > $user_email_limit) + { + die("Your E-Mail ($authenticated_id) has reached it's daily email limit of $user_email_limit emails\n"); + } + + if (! -d "/etc/virtual/$domain/usage") + { + mkdir("/etc/virtual/$domain/usage", 0770); + } + + if (-d "/etc/virtual/$domain/usage") + { + open(USAGE, ">>/etc/virtual/$domain/usage/$user"); + print USAGE "1"; + close(USAGE); + chmod (0660, "/etc/virtual/$domain/usage/$user"); + } + } + } + } + + log_bandwidth($uid,"type=email&email=$sender_address&method=outgoing&id=$mid&authenticated_id=$authenticated_id&sender_host_address=$sender_host_address&log_time=$timestamp&message_size=$message_size&local_part=$local_part&domain=$domain"); + + return "yes" +} + +sub log_email +{ + my($lp,$dmn) = @_; + + #log_str("logging $lp\@$dmn\n"); + my $user = get_domain_owner($dmn); + if ($user == -1) { return "no"; } + + my $mid = Exim::expand_string('$message_id'); + + if ( (@pw = getpwnam($user)) ) + { + log_bandwidth($pw[2],"type=email&email=$lp\@$dmn&method=incoming&id=$mid"); + } + + return "yes"; +} + +sub save_virtual_user +{ + my $dmn = Exim::expand_string('$domain'); + my $lp = Exim::expand_string('$local_part'); + my $usr = ""; + my $pss = ""; + my $entry = ""; + + open (PASSWD, "/etc/virtual/$dmn/passwd") || return "no"; + + while ($entry = ) { + ($usr,$pss) = split(/:/,$entry); + if ($usr eq $lp) { + close(PASSWD); + log_email($lp, $dmn); + return "yes"; + } + } + close (PASSWD); + + return "no"; +} + +sub log_bandwidth +{ + my ($uid,$data) = @_; + my $name = getpwuid($uid); + + if (uid_exempt($uid)) { return; } + + if ($name eq "") { $name = "unknown"; } + + my $bytes = Exim::expand_string('$message_size'); + + if ($bytes == -1) { return; } + + my $work_path = $ENV{'PWD'}; + + open (BYTES, ">>/etc/virtual/usage/$name.bytes"); + print BYTES "$bytes=$data&path=$work_path\n"; + close(BYTES); + chmod (0660, "/etc/virtual/usage/$name.bytes"); +} + +sub log_str +{ + my ($str) = @_; + + open (LOG, ">> /tmp/test.txt"); + + print LOG $str; + + close(LOG); +} diff --git a/directadmin-1.62.4/data/templates/exim3.conf b/directadmin-1.62.4/data/templates/exim3.conf new file mode 100644 index 0000000..64ec098 --- /dev/null +++ b/directadmin-1.62.4/data/templates/exim3.conf @@ -0,0 +1,607 @@ +# An Exim configuration for 3.33 that supports virtual email users +# with separate aliases and passwd files and mail spool locations +# for each domain. +# 21/Sep/2001 reed -- please let me know how this can be improved + +###################################################################### +# Runtime configuration file for Exim # +###################################################################### + + +# This is a default configuration file which will operate correctly in +# uncomplicated installations. Please see the manual for a complete list +# of all the runtime configuration options that can be included in a +# configuration file. There are many more than are mentioned here. The +# manual is in the file doc/spec.txt in the Exim distribution as a plain +# ASCII file. Other formats (PostScript, Texinfo, HTML, PDF) are available +# from the Exim ftp sites. The manual is also online via the Exim web sites. + + +# This file is divided into several parts, all but the last of which are +# terminated by a line containing the word "end". The parts must appear +# in the correct order, and all must be present (even if some of them are +# in fact empty). Blank lines, and lines starting with # are ignored. + + +############ IMPORTANT ########## IMPORTANT ########### IMPORTANT ############ +# # +# Whenever you change Exim's configuration file, you *must* remember to HUP # +# the Exim daemon, because it will not pick up the new configuration until # +# until you do this. It is usually a good idea to test a new configuration # +# for syntactic correctness (e.g. using "exim -C /config/file -bV") first. # +# # +############ IMPORTANT ########## IMPORTANT ########### IMPORTANT ############ + + + +###################################################################### +# MAIN CONFIGURATION SETTINGS # +###################################################################### + +# Specify your host's canonical name here. This should normally be the fully +# qualified "official" name of your host. If this option is not set, the +# uname() function is called to obtain the name. + +# primary_hostname = + + +# Specify the domain you want to be added to all unqualified addresses +# here. An unqualified address is one that does not contain an "@" character +# followed by a domain. For example, "caesar@rome.ex" is a fully qualified +# address, but the string "caesar" (i.e. just a login name) is an unqualified +# email address. Unqualified addresses are accepted only from local callers by +# default. See the receiver_unqualified_{hosts,nets} options if you want +# to permit unqualified addresses from remote sources. If this option is +# not set, the primary_hostname value is used for qualification. + +# qualify_domain = + + +# If you want unqualified recipient addresses to be qualified with a different +# domain to unqualified sender addresses, specify the recipient domain here. +# If this option is not set, the qualify_domain value is used. + +# qualify_recipient = + +perl_startup = do '/etc/exim.pl' +message_filter = /etc/system_filter.exim + +# Specify your local domains as a colon-separated list here. If this option +# is not set (i.e. not mentioned in the configuration file), the +# qualify_recipient value is used as the only local domain. If you do not want +# to do any local deliveries, uncomment the following line, but do not supply +# any data for it. This sets local_domains to an empty string, which is not +# the same as not mentioning it at all. An empty string specifies that there +# are no local domains; not setting it at all causes the default value (the +# setting of qualify_recipient) to be used. + +local_domains = lsearch;/etc/virtual/domains + +# If you want to accept mail addressed to your host's literal IP address, for +# example, mail addressed to "user@[111.111.111.111]", then uncomment the +# following line, or supply the literal domain(s) as part of "local_domains" +# above. You also need to comment "forbid_domain_literals" below. This is not +# recommended for today's Internet. + +# local_domains_include_host_literals + + +# The following line prevents Exim from recognizing addresses of the form +# "user@[111.111.111.111]" that is, with a "domain literal" (an IP address) +# instead of a named domain. The RFCs still require this form, but it makes +# little sense to permit mail to be sent to specific hosts by their IP address +# in the modern Internet, and this ancient format has been used by those +# seeking to abuse hosts by using them for unwanted relaying. If you really +# do want to support domain literals, remove the following line, and see +# also the "domain_literal" router below. + +forbid_domain_literals + + +# No local deliveries will ever be run under the uids of these users (a colon- +# separated list). An attempt to do so gets changed so that it runs under the +# uid of "nobody" instead. This is a paranoic safety catch. Note the default +# setting means you cannot deliver mail addressed to root as if it were a +# normal user. This isn't usually a problem, as most sites have an alias for +# root that redirects such mail to a human administrator. + +never_users = root + + +# The use of your host as a mail relay by any host, including the local host +# calling its own SMTP port, is locked out by default. If you want to permit +# relaying from the local host, you should set +# +host_auth_accept_relay = * +#auth_hosts = * +# +# If you want to permit relaying through your host from certain hosts or IP +# networks, you need to set the option appropriately, for example +# +host_accept_relay = net-lsearch;/etc/virtual/pophosts : 127.0.0.1 +# +# If you are an MX backup or gateway of some kind for some domains, you must +# set relay_domains to match those domains. This will allow any host to +# relay through your host to those domains. +# + +relay_domains = lsearch;/etc/virtual/domains : localhost + +# +# See the section of the manual entitled "Control of relaying" for more +# information. + + +# The setting below causes Exim to do a reverse DNS lookup on all incoming +# IP calls, in order to get the true host name. If you feel this is too +# expensive, you can specify the networks for which a lookup is done, or +# remove the setting entirely. + +# host_lookup = * + + +# By default, Exim expects all envelope addresses to be fully qualified, that +# is, they must contain both a local part and a domain. If you want to accept +# unqualified addresses (just a local part) from certain hosts, you can specify +# these hosts by setting one or both of +# +# receiver_unqualified_hosts = +# sender_unqualified_hosts = +# +# to control sender and receiver addresses, respectively. When this is done, +# unqualified addresses are qualified using the settings of qualify_domain +# and/or qualify_recipient (see above). + + +# By default, Exim does not make any checks, other than syntactic ones, on +# incoming addresses during the SMTP dialogue. This reduces delays in SMTP +# transactions, but it does mean that you might accept messages with unknown +# recipients, and/or bad senders. + +# Uncomment this line if you want incoming recipient addresses to be verified +# during the SMTP dialogue. Unknown recipients are then rejected at this stage, +# and the generation of a failure message is the job of the sending host. + +# receiver_verify + +# Uncomment this line if you want incoming sender addresses (return-paths) to +# be verified during the SMTP dialogue. Verification can normally only check +# that the domain exists. + +# sender_verify + + +# Exim contains support for the Realtime Blackhole List (RBL) that is being +# maintained as part of the DNS. See http://mail-abuse.org/rbl/ for background. +# Uncommenting the first line below will make Exim reject mail from any +# host whose IP address is blacklisted in the RBL at blackholes.mail-abuse.org. +# Some others have followed the RBL lead and have produced other lists: DUL is +# a list of dial-up addresses, and there are also a number of other lists +# of various kinds at orbs.org. + +# rbl_domains = blackholes.mail-abuse.org +# rbl_domains = blackholes.mail-abuse.org:dialups.mail-abuse.org + + +# If you want Exim to support the "percent hack" for all your local domains, +# uncomment the following line. This is the feature by which mail addressed +# to x%y@z (where z is one of your local domains) is locally rerouted to +# x@y and sent on. Otherwise x%y is treated as an ordinary local part. + +# percent_hack_domains = * + + +# When Exim can neither deliver a message nor return it to sender, it "freezes" +# the delivery error message (aka "bounce message"). There are also other +# circumstances in which messages get frozen. They will stay on the queue for +# ever unless one of the following options is set. + +# This option unfreezes unfreezes bounce messages after two days, tries +# once more to deliver them, and ignores any delivery failures. + +ignore_errmsg_errors_after = 2d + +# This option cancels (removes) frozen messages that are older than a week. + +timeout_frozen_after = 7d +rfc1413_query_timeout = 0s + +trusted_users = mail:majordomo:apache + +end + + + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +# ORDER DOES NOT MATTER # +# Only one appropriate transport is called for each delivery. # +###################################################################### + +# A transport is used only when referenced from a director or a router that +# successfully handles an address. + + +# Spam Assassin +spamcheck: + driver = pipe + command = /usr/sbin/exim -oMr spam-scanned -bS + transport_filter = /usr/bin/spamc + bsmtp = all + home_directory = "/tmp" + current_directory = "/tmp" + # must use a privileged user to set $received_protocol on the way back in! + user = mail + group = mail + return_path_add = false + log_output = true + return_fail_output = true + prefix = + suffix = + + +#majordomo +majordomo_pipe: + driver = pipe + group = daemon + return_fail_output + user = majordomo + +# This transport is used for local delivery to user mailboxes in traditional +# BSD mailbox format. By default it will be run under the uid and gid of the +# local user, and requires the sticky bit to be set on the /var/mail directory. +# Some systems use the alternative approach of running mail deliveries under a +# particular group instead of using the sticky bit. The commented options below +# show how this can be done. + +local_delivery: + driver = appendfile + file = /var/mail/$local_part + delivery_date_add + envelope_to_add + return_path_add + user = ${local_part} + group = mail + mode = 0660 + +## for delivering virtual domains to their own mail spool + +virtual_localdelivery: + driver = appendfile + create_directory = true + directory_mode = 700 + file = /var/spool/virtual/${domain}/${local_part} + delivery_date_add + envelope_to_add + return_path_add + user = "${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}" + group = mail + mode = 660 + +## vacation transport +uservacation: + driver = autoreply + user = mail + #once = /etc/virtual/${domain}/reply/${local_part}.once + file = /etc/virtual/${domain}/reply/${local_part}.msg + log = /etc/virtual/${domain}/reply/${local_part}.log + return_message = false + text = "\ + ------ ------\n\n\ + This message was automatically generated by email software\n\ + The delivery of your message has not been affected.\n\n\ + ------ ------\n\n" + to = "${sender_address}" + from = "${local_part}@${domain}" + subject = "${if def:h_Subject: {Autoreply: $h_Subject:} {I am on vacation}}" + +userautoreply: + driver = autoreply + bcc = ${lookup{${local_part}} lsearch {/etc/virtual/${domain}/autoresponder.conf}{$value}} + user = mail + #once = /etc/virtual/${domain}/reply/${local_part}.once + file = /etc/virtual/${domain}/reply/${local_part}.msg + log = /etc/virtual/${domain}/reply/${local_part}.log + return_message = false + from = "${local_part}@${domain}" + to = "${sender_address}" + subject = "${if def:h_Subject: {Autoreply: $h_Subject:} {Autoreply Message}}" + +# This transport is used for delivering messages over SMTP connections. + +remote_smtp: + driver = smtp + +# This transport is used for handling pipe deliveries generated by alias +# or .forward files. If the pipe generates any standard output, it is returned +# to the sender of the message as a delivery error. Set return_fail_output +# instead of return_output if you want this to happen only when the pipe fails +# to complete normally. You can set different transports for aliases and +# forwards if you want to - see the references to address_pipe in the directors +# section below. + +address_pipe: + driver = pipe + return_output + +virtual_address_pipe: + driver = pipe + return_output + user = "${lookup{$domain}lsearch* {/etc/virtual/domainowners}{$value}}" + group = nobody + +# This transport is used for handling deliveries directly to files that are +# generated by aliasing or forwarding. + +address_file: + driver = appendfile + delivery_date_add + envelope_to_add + return_path_add + +# This transport is used for handling autoreplies generated by the filtering +# option of the forwardfile director. + +address_reply: + driver = autoreply + +end + + + +###################################################################### +# DIRECTORS CONFIGURATION # +# Specifies how local addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A local address is passed to each in turn until it is accepted. # +###################################################################### + +# Local addresses are those with a domain that matches some item in the +# "local_domains" setting above, or those which are passed back from the +# routers because of a "self=local" setting (not used in this configuration). + +#Spam Assassin +#spamcheck_director: +# condition = "${if eq {$received_protocol}{spam-scanned} {0}{1}}" +# driver = smartuser +# transport = spamcheck + +majordomo_aliases: + driver = aliasfile + optional = true + file = /etc/virtual/${domain}/majordomo/list.aliases + domains = lsearch;/etc/virtual/domainowners + file_transport = address_file + pipe_transport = majordomo_pipe + search_type = lsearch + no_rewrite + user = majordomo + group = daemon + +majordomo_private: + driver = aliasfile + optional = true + condition = "${if eq {$received_protocol} {local} \ + {true} {false} }" + file = /etc/virtual/${domain}/majordomo/private.aliases + domains = lsearch;/etc/virtual/domainowners + file_transport = address_file + pipe_transport = majordomo_pipe + search_type = lsearch + user = majordomo + group = daemon + +domain_filter: + driver = forwardfile + file = /etc/virtual/${domain}/filter + no_check_local_user + no_verify + filter + file_transport = address_file + pipe_transport = virtual_address_pipe + +uservacation: + driver = aliasfile + file = /etc/virtual/${domain}/vacation.conf + search_type = lsearch + transport = uservacation + optional = true + require_files = /etc/virtual/${domain}/reply/${local_part}.msg + # do not reply to errors or lists + senders = "! ^.*-request@.*:\ + ! ^owner-.*@.*:\ + ! ^postmaster@.*:\ + ! ^listmaster@.*:\ + ! ^mailer-daemon@.*" + # do not reply to errors and bounces or lists + condition = "${if or {{match {$h_precedence:} {(?i)junk|bulk|list}} \ + {eq {$sender_address} {}}} {no} {yes}}" + # carry on checking regardless of the outcome of this director... + unseen + no_expn + no_verify + user = mail + +userautoreply: + driver = aliasfile + file = /etc/virtual/${domain}/autoresponder.conf + search_type = lsearch + transport = userautoreply + optional = true + require_files = /etc/virtual/${domain}/reply/${local_part}.msg + # do not reply to errors or lists + senders = "! ^.*-request@.*:\ + ! ^owner-.*@.*:\ + ! ^postmaster@.*:\ + ! ^listmaster@.*:\ + ! ^mailer-daemon@.*" + # do not reply to errors and bounces or lists + condition = "${if or {{match {$h_precedence:} {(?i)junk|bulk|list}} \ + {eq {$sender_address} {}}} {no} {yes}}" + #need no verify for the require_files so that it doesn't give up root or something + #no_expn + no_verify + unseen + user = mail + +virtual_aliases_nostar: + driver = aliasfile + file = /etc/virtual/${domain}/aliases + search_type = lsearch + #include_domain = true + optional = true + group = mail + file_transport = address_file + pipe_transport = virtual_address_pipe + unseen + +virtual_user: + driver = aliasfile + transport = virtual_localdelivery + file = /etc/virtual/${domain}/passwd + domains = lsearch;/etc/virtual/domainowners + optional = true + search_type = lsearch + group = mail + +virtual_aliases: + driver = aliasfile + file = /etc/virtual/$domain/aliases + search_type = lsearch* + #include_domain = true + optional = true + group = mail + file_transport = address_file + pipe_transport = virtual_address_pipe + +# This director handles forwarding using traditional .forward files. +# If you want it also to allow mail filtering when a forward file +# starts with the string "# Exim filter", uncomment the "filter" option. +# The check_ancestor option means that if the forward file generates an +# address that is an ancestor of the current one, the current one gets +# passed on instead. This covers the case where A is aliased to B and B +# has a .forward file pointing to A. The three transports specified at the +# end are those that are used when forwarding generates a direct delivery +# to a file, or to a pipe, or sets up an auto-reply, respectively. + +userforward: + driver = forwardfile + file = .forward + no_verify + no_expn + check_ancestor + filter + file_transport = address_file + pipe_transport = address_pipe + reply_transport = address_reply + +system_aliases: + driver = aliasfile + file = /etc/aliases + search_type = lsearch + # user = exim + file_transport = address_file + pipe_transport = address_pipe + + +# This director matches local user mailboxes. + +localuser: + driver = localuser + transport = local_delivery + + +end + + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how remote addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A remote address is passed to each in turn until it is accepted. # +###################################################################### + +# Remote addresses are those with a domain that does not match any item +# in the "local_domains" setting above. + + +# This router routes to remote hosts over SMTP using a DNS lookup. Any domain +# that resolves to an IP address on the loopback interface (127.0.0.0/8) is +# treated as if it had no DNS entry. + +lookuphost: + driver = lookuphost + transport = remote_smtp + ignore_target_hosts = 127.0.0.0/8 + + +# This router routes to remote hosts over SMTP by explicit IP address, +# when an email address is given in "domain literal" form, for example, +# . The RFCs require this facility. However, it is +# little-known these days, and has been exploited by evil people seeking +# to abuse SMTP relays. Consequently it is commented out in the default +# configuration. If you uncomment this router, you also need to comment out +# "forbid_domain_literals" above, so that Exim can recognize the syntax of +# domain literal addresses. + +# domain_literal: +# driver = ipliteral +# transport = remote_smtp + + +end + + + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### + +# This single retry rule applies to all domains and all errors. It specifies +# retries every 15 minutes for 2 hours, then increasing retry intervals, +# starting at 1 hour and increasing each time by a factor of 1.5, up to 16 +# hours, then retries every 8 hours until 4 days have passed since the first +# failed delivery. + +# Domain Error Retries +# ------ ----- ------- + +* * F,2h,15m; G,16h,1h,1.5; F,4d,8h + +end + + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### + +# There are no rewriting specifications in this default configuration file. + +end + + + +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### + +# There are no authenticator specifications in this default configuration file. + +plain: + driver = plaintext + public_name = PLAIN + server_condition = "${perl{smtpauth}}" + server_set_id = $2 + +login: + driver = plaintext + public_name = LOGIN + server_prompts = "Username:: : Password::" + server_condition = "${perl{smtpauth}}" + server_set_id = $1 + +# End of Exim configuration file diff --git a/directadmin-1.62.4/data/templates/exim4.conf b/directadmin-1.62.4/data/templates/exim4.conf new file mode 100644 index 0000000..0336f6c --- /dev/null +++ b/directadmin-1.62.4/data/templates/exim4.conf @@ -0,0 +1,924 @@ +###################################################################### +# Runtime configuration file for Exim # +######### IMPORTANT ########## IMPORTANT ########## IMPORTANT ######## +# WARNING! Be sure to back up your previous exim.conf file before # +# attempting to use this exim.conf file. # +# # +# Do may not use this exim.conf Exim configuration file unless you # +# make the required modifications to your Exim configuration # +# following the instructions found below, in the section marked # +# "MODIFICATION INSTRUCTIONS". # +# # +# This is version "RSS-1.0da" of the exim.conf file as distributed # +# by nobaloney.net. # +# # +# The "RSS" stands for "Really Stop Spam", as the author believes # +# this distribution of the exim.conf file will Really Stop Spam. # +# Note that "Really Stop Spam" is both a trademark and a service # +# mark of nobaloney.net. # +# # +# The "da" stands for DirectAdmin as this distribution of the # +# exim.conf file is specific to the DirectAdmin control panel # +# installation. More information about DirectAdmin may be found at # +# http://www.directadmin.com. # +# # +# This Exim configuration file has been modified from the original # +# as distributed with Exim 4. The modifications have been made by: # +# # +# Jeff Lasman # +# nobaloney.net # +# P. O. Box 52672 # +# Riverside, CA 92517 # +# info@nobaloney.net # +# (909) 324-9706 # +# # +# Note that neither nobaloney.net nor Jeff Lasman have any # +# affiliation with DirectAdmin. # +# # +###################################################################### +# # +# The most recent version of this distribution may always be # +# downloaded from the website at # +# # +# http://www.nobaloney.net/exim/exim.conf.spamblocked # +# # +###################################################################### +# # +# Portions of this file are taken from the exim.conf file as # +# distributed with Exim 4, which includes the following copyright # +# notice: # +# # +# Copyright © 2002 University of Cambridge, Cambridge, UK # +# # +# Portions of this file are taken from the exim.conf file as # +# distributed with DirectAdmin (http://www.directadmin.com/), # +# # +# © 2003 JBMC Software, St Albert, AB, Canada # +# # +# Portions of this file are written by Jeff Lasman, of # +# nobaloney.net and are copyright as follows: # +# # +# Copyright © 2004 nobaloney.net, Riverside, Calif., USA # +# # +# The entire Exim 4 distribution, including this file, is # +# distributed under the GNU GENERAL PUBLIC LICENSE, Version 2, # +# June 1991. If you do not have a copy of the GNU GENERAL # +# PUBLIC LICENSE you may download it, in it's entirety, from # +# the website at # +# # +# http://www.nobaloney.net/exim/gnu-gpl-v2.txt # +# # +###################################################################### +# # +# This file is divided into several parts, all but the first of # +# which are# headed by a line starting with the word "begin". Only # +# those parts that are required need to be present. Blank lines, and # +# lines starting with # are ignored. # +# # +######### IMPORTANT ########## IMPORTANT ########## IMPORTANT ######## +# # +# Whenever you change Exim's configuration file, you *must* remember # +# to HUP the Exim daemon, because it will not pick up the new # +# configuration until you do. However, any other Exim processes that # +# are started, for example, a process started by an MUA in order to # +# send a message, will see the new configuration as soon as it is in # +# place. # +# # +# You do not need to HUP the daemon for changes in auxiliary files # +# that are referenced from this file. They are read every time they # +# are used. # +# # +# It is usually a good idea to test a new configuration for # +# syntactic correctness before installing it (for example, by # +# running the command "exim -C /config/file.new -bV"). # +# # +### MODIFICATION INSTRUCTIONS ########## MODIFICATION INSTRUCTIONS ### +# # +# YOU MUST MAKE THE FOLLOWING CHANGES TO DIRECTADMIN: # +# 1) Add a file /etc/virtual/blacklist_domains # +# This file should contain the domain names of so-called legal # +# spammers and other spam sources that do not always get caught # +# by blocklists, but that, nevertheless, you do not want to be # +# able to send spam to your domains on your server for which # +# you've enabled spamblocking. # +# # +# 2) Add a file /etc/virtual/whitelist_from # +# This file should contain the fully-qualified hostnames or IP#s # +# of servers that you DO want to be able to get email from even # +# if they're otherwise caught by blocklists. Your own domain # +# need not be listed here to enable you to get unblock requests, # +# whitelisting of email to your "errors" address will be handled # +# separately, below. # +# # +# 3) Add a file /etc/virtual/use_rbl_domains # +# This is a list of domains on your server that want spamblocking # +# to be used for them so they won't get spam. Spam will not be # +# blocked for any domains on your server unless they're listed # +# in this file. Note that the domain names in this file should # +# follow the same format as the domain names in the # +# /etc/virtual/domains file. You may just copy the domains file # +# to this file if you wish to use spamblocking for all your # +# domains but we recommend giving your domain users a choice. # +# # +# Note that the above files should have the same ownership and # +# permissions as /etc/virtual/domains. Normally this should be: # +# owner = mail, group = mail, chmod 644. # +# # +# YOU MUST MAKE THE FOLLOWING MODIFICATIONS TO YOUR WEBISTE: # +# # +# Note that if anyone is blocked while trying to send you a # +# legitimate (non-spam) email, the "non-delivery" message they'll # +# get will include a reference to a webpage where they'll need to # +# vist to get their email addressed unblocked. You should create # +# such a webpage before you implement this file. The webpage may # +# include either a form for them to send you the information you # +# need to unblock them, or instructions for them to email you so you # +# can unblock them. # +# # +# You'll need the full name of their server to unblock them, by # +# putting the server name into the /etc/virtual/whitelist_from # +# file. There are two ways you can get this information: # +# # +# 1) You can create a form that will ask them for the address # +# they're trying to reach, the address they're sending the email # +# from, and the canonical name of their email server. Since they # +# may not know the name of their email server, this must be # +# optional, and if they leave it blank you'll have to find their # +# attempt to send email in your exim /var/log/exim/rejectlog file # +# and get the name of the server from there. # +# # +# 2) You can ask them to send you an email from the same address # +# that they were blocked from, but to (for example) # +# "errors@example.com" (but changing it to an address you want to # +# use, at one of your domains). When they send you the email you # +# should be able to find the name of their server in the headers # +# of the incoming email. # +# # +# Either way, you'll need to put the canonical name of their # +# nameserver into your /etc/virtual/whitelist_from file. # +# # +# You won't use the name they're sending email to for any purpose, # +# except possibly to verify the attempt in your # +# /var/log/exim/rejectlog file. It's really just a "red-herring" so # +# no one will just send you their email address and server name so # +# they can then spam your users. # +# # +# YOU MUST MAKE THE FOLLOWING MODIFICATIONS TO THIS FILE: # +# # +# Wherever you find the domain name "example.com" you must make # +# changes to customize this file for your server. If you leave # +# the sample "example.com" domain in this file then you will most # +# likely get false positives hits as spam and you will not notify # +# the senders how to be unblocked. # +# # +# YOU MUST change "example.com" to the domain name you'll be using # +# for an explanation website for anyone who gets blocked who # +# shouldn't be blocked (see notes above). # +# # +# Additionally, wherever "example.com" is used in an error message # +# being sent because an email is blocked, you should make sure that # +# the domain name includes any optional page you want senders to be # +# sent to in order to get themselves unblocked. # +# # +######## OPTIONAL MODIFICATIONS ###### OPTIONAL MODIFICATIONS ######## +# # +# Optional modifications are marked below as: # +# # OPTIONAL MODIFICATIONS # +# # +# Check below for any optional modifications you wish to make to # +# this exim.conf file before installing it. # +# # +# Any settings below should not be commented out, uncommented, or # +# changed, unless they're marked with the OPTIONAL MODIFICATIONS # +# line unless you're sure what you are doing or you may break your # +# exim server configuration. # +# Should you break your exim configuration you should reinstall your # +# exim.conf file from scratch, either from a backup of the file you # +# used previously, or from one newly downloaded from our site (see # +# above) or from DirectAdmin. # +# # +###################################################################### + +# Specify your host's canonical name here. This should normally be the fully +# qualified "official" name of your host. If this option is not set, the +# uname() function is called to obtain the name. In many cases this does +# the right thing and you need not set anything explicitly. + +# primary_hostname = + +# Specify the domain you want to be added to all unqualified addresses +# here. An unqualified address is one that does not contain an "@" character +# followed by a domain. For example, "caesar@rome.ex" is a fully qualified +# address, but the string "caesar" (i.e. just a login name) is an unqualified +# email address. Unqualified addresses are accepted only from local callers by +# default. See the receiver_unqualified_{hosts,nets} options if you want +# to permit unqualified addresses from remote sources. If this option is +# not set, the primary_hostname value is used for qualification. + +# qualify_domain = + +# If you want unqualified recipient addresses to be qualified with a different +# domain to unqualified sender addresses, specify the recipient domain here. +# If this option is not set, the qualify_domain value is used. + +# qualify_recipient = + +# the next line is required to start the smtp auth script included +# in DirectAdmin + +perl_startup = do '/etc/exim.pl' + +# the next line is required to start the system_filter included in +# DirectAdmin to refuse potentiallly harmful payloads in +# email messages + +system_filter = /etc/system_filter.exim + + +# SET SOME MEANINGFUL LIMITS +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to modify them +# for your environment + +message_size_limit = 20M +smtp_receive_timeout = 5m +smtp_accept_max = 100 +message_body_visible = 3000 + +# ALLOW UNDERSCORE IN EMAIL DOMAIN NAME +# domains shouldn't use the underscore character "_" but some +# may. Because John Postel, one of the architects of the Internet, +# said "Be liberal in what you accept and conservative in what you +# transmit, we choose to allow underscore in email domain names so we +# can receive email form domains which use the underscore character +# in their domain name. +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to modify them +# for your environment + +helo_allow_chars = _ + +# CHANGE LOGGING BEHAVIOR +# We weren't happy with the default Exim logging behavior through +# syslog; it didn't give us enough information. So we turned off +# syslog behavior and changed the logging behavior to give us what we +# felt was more helpful information. You may choose to delete or modify +# this section. +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to modify them +# for your environment + +# define what to log: +# define the => log lines +# +delivery_size +# +sender_on_delivery +# +# define the <= log lines: +# +received_recipients +# +received_sender +# +smtp_confirmation +# +subject +# +# define other non '<= =>' log lines: +# +smtp_incomplete_transaction +################################### +# define what to not log: +# define other non "<= =>' log lines: +# -dnslist_defer +# -host_lookup_failed +# -queue_run +# -rejected_header +# -retry_defer +# -skip_delivery +################################### + +log_selector = \ + +delivery_size \ + +sender_on_delivery \ + +received_recipients \ + +received_sender \ + +smtp_confirmation \ + +subject \ + +smtp_incomplete_transaction \ + -dnslist_defer \ + -host_lookup_failed \ + -queue_run \ + -rejected_header \ + -retry_defer \ + -skip_delivery + +syslog_duplication = false + +# These options specify the Access Control Lists (ACLs) that +# are used for incoming SMTP messages - after the RCPT and DATA +# commands, respectively. + +acl_smtp_rcpt = check_recipient +acl_smtp_data = check_message + +# define local lists + +domainlist blacklist_domains = lsearch;/etc/virtual/blacklist_domains +domainlist whitelist_from = lsearch;/etc/virtual/whitelist_from +domainlist local_domains = lsearch;/etc/virtual/domains +domainlist relay_domains = lsearch;/etc/virtual/domains : localhost +domainlist use_rbl_domains = lsearch;/etc/virtual/use_rbl_domains +hostlist relay_hosts = net-lsearch;/etc/virtual/pophosts : 127.0.0.1 +hostlist auth_relay_hosts = * + +# If you want to accept mail addressed to your host's literal IP address, for +# example, mail addressed to "user@[111.111.111.111]", then uncomment the +# following line, or supply the literal domain(s) as part of "local_domains" +# above. You also need to comment "forbid_domain_literals" below. This is not +# recommended for today's Internet. + +# DO NOT ALLOW HOST LITERALS +# OPTIONAL MODIFICATIONS: +# These defaults work for us; you may wish to uncomment the line +# below and change the allow_domain_literals line below to true +# to allow domain literals in your environment + +# local_domains_include_host_literals + +# The following line prevents Exim from recognizing addresses of the form +# "user@[111.111.111.111]" that is, with a "domain literal" (an IP address) +# instead of a named domain. The RFCs still require this form, but it makes +# little sense to permit mail to be sent to specific hosts by their IP address +# in the modern Internet, and this ancient format has been used by those +# seeking to abuse hosts by using them for unwanted relaying. If you really +# do want to support domain literals, remove the following line, and see +# also the "domain_literal" router below. + +allow_domain_literals = false + +# No local deliveries will ever be run under the uids of these users (a colon- +# separated list). An attempt to do so gets changed so that it runs under the +# uid of "nobody" instead. This is a paranoic safety catch. Note the default +# setting means you cannot deliver mail addressed to root as if it were a +# normal user. This isn't usually a problem, as most sites have an alias for +# root that redirects such mail to a human administrator. + +never_users = root + +# DO HOST LOOKUP +# OPTIONAL MODIFICATIONS: +# The setting below causes Exim to do a reverse DNS lookup on all incoming +# IP calls, in order to get the true host name. If you feel this is too +# expensive, you can specify the networks for which a lookup is done, or +# remove the setting entirely. + +host_lookup = * + +# DISALLOW IDENT CALLBACKS +# OPTIONAL MODIFICATIONS: +# Exim may be set to make RFC 1413 (ident) callbacks for all incoming SMTP +# calls. You can limit the hosts to which these calls are made, and/or change +# the timeout that is used. If you set the timeout to zero, all RFC 1413 calls +# are disabled. RFC 1413 calls are cheap and can provide useful information +# for tracing problem messages, but some hosts and firewalls have problems +# with them. This can result in a timeout instead of an immediate refused +# connection, leading to delays on starting up an SMTP session. By default +# we disable callbacks for incoming SMTP calls. You may change +# rfc1413_query_timeout to 30s or some other positive number of seconds to +# enable callbacks for incoming SMTP calls. + +rfc1413_hosts = * +rfc1413_query_timeout = 0s + +# BOUNCE MESSAGES +# OPTIONAL MODIFICATIONS: +# When Exim can neither deliver a message nor return it to sender, it +# "freezes" the delivery error message (aka "bounce message"). There are also +# other circumstances in which messages get frozen. They will stay on the +# queue forever unless one or both of the following options is set. + +# This option unfreezes unfreezes bounce messages after two days, tries +# once more to deliver them, and ignores any delivery failures. + +ignore_bounce_errors_after = 2d + +# This option cancels (removes) frozen messages that are older than five days. + +timeout_frozen_after = 5d + +# TRUSTED USERS +# OPTIONAL MODIFICATIONS: +# if you must add additional trusted users, do so here; continue the +# colon-delimited list + +trusted_users = mail:majordomo:apache + + + + +# SSL/TLS cert and key +tls_certificate = /etc/exim.cert +tls_privatekey = /etc/exim.key + +tls_advertise_hosts = * +#auth_over_tls_hosts = * + +###################################################################### +# ACLs # +###################################################################### + +begin acl + +# ACL that is used after the RCPT command +check_recipient: + +# we accept if the source is local SMTP (i.e. not over TCP/IP). +# We do this by testing for an empty sending host field. + accept hosts = : + +# Deny for local domains if local parts begin with a dot or +# contain @ % ! / | + deny domains = +local_domains + local_parts = ^[.] : ^.*[@%!/|] + +# allow local users to send outgoing messages using slashes +# and vertical bars in their local parts but blocks outgoing +# local parts that begin with a dot, slash, or vertical bar +# but allows them within the local part. The sequence \..\ +# is barred. The usage of @ % and ! is barred as before. The +# motiviation is to prevent your users (or their virii) from +# mounting certain kinds of attacks on reverse sites. + + deny domains = !+local_domains + local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ + +# accept email from anyone in the whitelist_from list + accept domains = +whitelist_from + +# accept mail to postmaster in any local domain, regardless of source + accept local_parts = postmaster + domains = +local_domains + +# accept mail to abuse in any local domain, regardless of source + accept local_parts = abuse + domains = +local_domains + +# accept mail to hostmaster in any local domain, regardless of source + accept local_parts = hostmaster + domains =+local_domains + +# OPTIONAL MODIFICATIONS: +# If the page you're using to notify senders of blocked email of how +# to get their address unblocked will use a web form to send you email so +# you'll know to unblock those senders, then you may leave these lines +# commented out. However, if you'll be telling your senders of blocked +# email to send an email to errors@yourdomain.com, then you should +# replace "errors" with the left side of the email address you'll be +# using, and "example.com" with the right side of the email address and +# then uncomment the second two lines, leaving the first one commented. +# Doing this will mean anyone can send email to this specific address, +# even if they're at a blocked domain, and even if your domain is using +# blocklists. + +# accept mail to errors@example.com, regardless of source +# accept local_parts = errors +# domains = example.com + +# deny so-called "legal" spammers" +# but do bypass all checking for whitelisted host names + deny message = You may think you're legal but you're still an unwanted spammer + # only for domains that do want to be tested against RBLs + domains = +use_rbl_domains + sender_domains = +blacklist_domains + +# Deny unless sender address can be verified: +# This statement requires the sender address to be verified before any +# subsequent ACL statement can be used. If verification fails, the incoming +# recipient address is refused. Verification consists of trying to route the +# address, to see if a bounce message could be delivered to it. In the case of +# remote addresses, basic verification checks only the domain. + +require verify = sender + +# Deny stuff from insecure hosts & spammers. No exceptions for known users. +# but do bypass all checking for whitelisted host names + deny message = to unblock $sender_host_name see http://www.example.com/ + # only for domains that do want to be tested against RBLs + domains = +use_rbl_domains + # only smtp.dnsbl.sorbs.net = 127.0.0.5 + dnslists = sbl.spamhaus.org : \ + relays.ordb.org : \ + dnsbl.sorbs.net=127.0.0.5 + +# Next deny stuff from more "fuzzy" blacklists +# but do bypass all checking for whitelisted host names + deny message = to unblock $sender_host_name see http://www.example.com/ + hosts = !+relay_hosts + domains =+use_rbl_domains + !authenticated = * + # dnslists not including spam.dnsbl.sorbs.net + dnslists = bl.spamcop.net : \ + dnsbl.njabl.org : \ + cbl.abuseat.org : \ + dnsbl.sorbs.net!=127.0.0.6 + + deny message = to unblock $sender_host_name see http://www.example.com/ + domains =+use_rbl_domains + # rhsbl list is name based + dnslists = rhsbl.sorbs.net/$sender_address_domain + +# accept if address is in a local domain as long as recipient can be verified + accept domains = +local_domains + endpass + verify = recipient + +# accept if address is in a domain for which we relay as long as recipient +# can be verified + accept domains = +relay_domains + endpass + verify=recipient + +# accept if message comes for a host for which we are an outgoing relay +# recipient verification is omitted because many MUA clients don't cope +# well with SMTP error responses. If you are actually relaying from MTAs +# then you should probably add recipient verify here + + accept hosts = +relay_hosts + accept hosts = +auth_relay_hosts + endpass + message = authentication required + authenticated = * + deny message = relay not permitted + +# default at end of acl causes a "deny", but line below will give +# an explicit error message: + deny message = relay not permitted + +# ACL that is used after the DATA command +check_message: + accept + +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### + +# There are no authenticator specifications in this default configuration file. + +begin authenticators + +plain: + driver = plaintext + public_name = PLAIN + server_condition = "${perl{smtpauth}}" + server_set_id = $2 + +login: + driver = plaintext + public_name = LOGIN + server_prompts = "Username:: : Password::" + server_condition = "${perl{smtpauth}}" + server_set_id = $1 + + +###################################################################### +# REWRITE CONFIGURATION # +###################################################################### + +# There are no rewriting specifications in this default configuration file. + +###################################################################### +# ROUTERS CONFIGURATION # +# Specifies how remote addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A remote address is passed to each in turn until it is accepted. # +###################################################################### + +begin routers + +# Remote addresses are those with a domain that does not match any item +# in the "local_domains" setting above. + +# This router routes to remote hosts over SMTP using a DNS lookup. Any domain +# that resolves to an IP address on the loopback interface (127.0.0.0/8) is +# treated as if it had no DNS entry. + +lookuphost: + driver = dnslookup + domains = ! +local_domains + ignore_target_hosts = 127.0.0.0/8 + condition = "${perl{check_limits}}" + transport = remote_smtp + no_more + +# This router routes to remote hosts over SMTP by explicit IP address, +# when an email address is given in "domain literal" form, for example, +# . The RFCs require this facility. However, it is +# little-known these days, and has been exploited by evil people seeking +# to abuse SMTP relays. Consequently it is commented out in the default +# configuration. If you uncomment this router, you also need to comment out +# "forbid_domain_literals" above, so that Exim can recognize the syntax of +# domain literal addresses. + +# domain_literal: +# driver = ipliteral +# transport = remote_smtp + +###################################################################### +# DIRECTORS CONFIGURATION # +# Specifies how local addresses are handled # +###################################################################### +# ORDER DOES MATTER # +# A local address is passed to each in turn until it is accepted. # +###################################################################### + +# Local addresses are those with a domain that matches some item in the +# "local_domains" setting above, or those which are passed back from the +# routers because of a "self=local" setting (not used in this configuration). + +# Spam Assassin +#spamcheck_director: +# driver = accept +# condition = "${if and { {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}} {!eq {$received_protocol}{local}} } {1}{0}}" +# retry_use_local_part +# transport = spamcheck +# no_verify + +majordomo_aliases: + driver = redirect + allow_defer + allow_fail + data = ${if exists{/etc/virtual/${domain}/majordomo/list.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/list.aliases}}}} + domains = lsearch;/etc/virtual/domainowners + file_transport = address_file + group = daemon + pipe_transport = majordomo_pipe + retry_use_local_part + no_rewrite + user = majordomo + +majordomo_private: + driver = redirect + allow_defer + allow_fail + #condition = "${if eq {$received_protocol} {local} {true} {false} }" + condition = "${if or { {eq {$received_protocol} {local}} \ + {eq {$received_protocol} {spam-scanned}} } {true} {false} }" + data = ${if exists{/etc/virtual/${domain}/majordomo/private.aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/majordomo/private.aliases}}}} + domains = lsearch;/etc/virtual/domainowners + file_transport = address_file + group = daemon + pipe_transport = majordomo_pipe + retry_use_local_part + user = majordomo + +domain_filter: + driver = redirect + allow_filter + no_check_local_user + condition = "${if exists{/etc/virtual/${domain}/filter}{yes}{no}}" + user = "mail" + file = /etc/virtual/${domain}/filter + file_transport = address_file + pipe_transport = virtual_address_pipe + retry_use_local_part + no_verify + +uservacation: + driver = accept + condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/vacation.conf}{yes}{no}} + require_files = /etc/virtual/${domain}/reply/${local_part}.msg + transport = uservacation + unseen + +userautoreply: + driver = accept + condition = ${lookup{$local_part} lsearch {/etc/virtual/${domain}/autoresponder.conf}{yes}{no}} + require_files = /etc/virtual/${domain}/reply/${local_part}.msg + transport = userautoreply + unseen + +virtual_aliases_nostar: + driver = redirect + allow_defer + allow_fail + data = ${if exists{/etc/virtual/${domain}/aliases}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/aliases}}}} + file_transport = address_file + group = mail + pipe_transport = virtual_address_pipe + retry_use_local_part + unseen + #include_domain = true + +virtual_user: + driver = accept + condition = ${if eq {}{${if exists{/etc/virtual/${domain}/passwd}{${lookup{$local_part}lsearch{/etc/virtual/${domain}/passwd}}}}}{no}{yes}} + domains = lsearch;/etc/virtual/domainowners + group = mail + retry_use_local_part + transport = virtual_localdelivery + +virtual_aliases: + driver = redirect + allow_defer + allow_fail + data = ${if exists{/etc/virtual/$domain/aliases}{${lookup{$local_part}lsearch*{/etc/virtual/$domain/aliases}}}} + file_transport = address_file + group = mail + pipe_transport = virtual_address_pipe + retry_use_local_part + #include_domain = true + +# This director handles forwarding using traditional .forward files. +# If you want it also to allow mail filtering when a forward file +# starts with the string "# Exim filter", uncomment the "filter" option. +# The check_ancestor option means that if the forward file generates an +# address that is an ancestor of the current one, the current one gets +# passed on instead. This covers the case where A is aliased to B and B +# has a .forward file pointing to A. The three transports specified at the +# end are those that are used when forwarding generates a direct delivery +# to a file, or to a pipe, or sets up an auto-reply, respectively. + +userforward: + driver = redirect + allow_filter + check_ancestor + check_local_user + no_expn + file = $home/.forward + file_transport = address_file + pipe_transport = address_pipe + reply_transport = address_reply + no_verify + +system_aliases: + driver = redirect + allow_defer + allow_fail + data = ${lookup{$local_part}lsearch{/etc/aliases}} + file_transport = address_file + pipe_transport = address_pipe + retry_use_local_part + # user = exim + +localuser: + driver = accept + check_local_user + condition = "${if eq {$domain} {$primary_hostname} {yes} {no}}" + transport = local_delivery + +# This director matches local user mailboxes. + +###################################################################### +# TRANSPORTS CONFIGURATION # +###################################################################### +# ORDER DOES NOT MATTER # +# Only one appropriate transport is called for each delivery. # +###################################################################### + +# A transport is used only when referenced from a director or a router that +# successfully handles an address. + + +# Spam Assassin +begin transports + +spamcheck: + driver = pipe + batch_max = 100 + command = /usr/sbin/exim -oMr spam-scanned -bS + current_directory = "/tmp" + group = mail + home_directory = "/tmp" + log_output + message_prefix = + message_suffix = + return_fail_output + no_return_path_add + transport_filter = /usr/bin/spamc -u ${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}} + use_bsmtp + user = mail + # must use a privileged user to set $received_protocol on the way back in! + + +#majordomo +majordomo_pipe: + driver = pipe + group = daemon + return_fail_output + user = majordomo + +# This transport is used for local delivery to user mailboxes in traditional +# BSD mailbox format. By default it will be run under the uid and gid of the +# local user, and requires the sticky bit to be set on the /var/mail directory. +# Some systems use the alternative approach of running mail deliveries under a +# particular group instead of using the sticky bit. The commented options below +# show how this can be done. + +local_delivery: + driver = appendfile + delivery_date_add + envelope_to_add + file = /var/mail/$local_part + group = mail + mode = 0660 + return_path_add + user = ${local_part} + +## for delivering virtual domains to their own mail spool + +virtual_localdelivery: + driver = appendfile + create_directory + delivery_date_add + directory_mode = 700 + envelope_to_add + file = /var/spool/virtual/${domain}/${local_part} + group = mail + mode = 660 + return_path_add + user = "${lookup{$domain}lsearch*{/etc/virtual/domainowners}{$value}}" + quota = ${if exists{/etc/virtual/${domain}/quota}{${lookup{$local_part}lsearch*{/etc/virtual/${domain}/quota}{$value}{0}}}{0}} + +## vacation transport +uservacation: + driver = autoreply + file = /etc/virtual/${domain}/reply/${local_part}.msg + from = "${local_part}@${domain}" + log = /etc/virtual/${domain}/reply/${local_part}.log + no_return_message + subject = "${if def:h_Subject: {Autoreply: $h_Subject:} {I am on vacation}}" + text = "\ + ------ ------\n\n\ + This message was automatically generated by email software\n\ + The delivery of your message has not been affected.\n\n\ + ------ ------\n\n" + to = "${sender_address}" + user = mail + #once = /etc/virtual/${domain}/reply/${local_part}.once + +userautoreply: + driver = autoreply + bcc = ${lookup{${local_part}} lsearch {/etc/virtual/${domain}/autoresponder.conf}{$value}} + file = /etc/virtual/${domain}/reply/${local_part}.msg + from = "${local_part}@${domain}" + log = /etc/virtual/${domain}/reply/${local_part}.log + no_return_message + subject = "${if def:h_Subject: {Autoreply: $h_Subject:} {Autoreply Message}}" + to = "${sender_address}" + user = mail + #once = /etc/virtual/${domain}/reply/${local_part}.once + +# This transport is used for delivering messages over SMTP connections. + +remote_smtp: + driver = smtp + +# This transport is used for handling pipe deliveries generated by alias +# or .forward files. If the pipe generates any standard output, it is returned +# to the sender of the message as a delivery error. Set return_fail_output +# instead of return_output if you want this to happen only when the pipe fails +# to complete normally. You can set different transports for aliases and +# forwards if you want to - see the references to address_pipe in the directors +# section below. + +address_pipe: + driver = pipe + return_output + +virtual_address_pipe: + driver = pipe + group = nobody + return_output + user = "${lookup{$domain}lsearch* {/etc/virtual/domainowners}{$value}}" + +# This transport is used for handling deliveries directly to files that are +# generated by aliasing or forwarding. + +address_file: + driver = appendfile + delivery_date_add + envelope_to_add + return_path_add + +# This transport is used for handling autoreplies generated by the filtering +# option of the forwardfile director. + +address_reply: + driver = autoreply + +###################################################################### +# RETRY CONFIGURATION # +###################################################################### + +# This single retry rule applies to all domains and all errors. It specifies +# retries every 15 minutes for 2 hours, then increasing retry intervals, +# starting at 1 hour and increasing each time by a factor of 1.5, up to 16 +# hours, then retries every 8 hours until 4 days have passed since the first +# failed delivery. + +# Domain Error Retries +# ------ ----- ------- + + +begin retry + +* * F,2h,15m; G,16h,1h,1.5; F,4d,8h + + +# End of Exim 4 configuration diff --git a/directadmin-1.62.4/data/templates/filter_base b/directadmin-1.62.4/data/templates/filter_base new file mode 100644 index 0000000..8f2b8cc --- /dev/null +++ b/directadmin-1.62.4/data/templates/filter_base @@ -0,0 +1,26 @@ +# Exim Filter + +# created by |NAME|, version |VERSION| +# Do not modify this file as any changes will be +# overwritten when the user makes a change. +# (data is only written to this file, not read) + +|FROM_WHITELIST| + +|*if BLOCKLEVEL| +if + $h_X-Spam-Level: contains "|BLOCKLEVEL|" +then + seen finish +endif +|*endif| + +|SPAMFILTERS| + +if error_message then finish endif + +|WORDFILTERS| + +|ADULTFILTERS| + +#end filter diff --git a/directadmin-1.62.4/data/templates/filter_delete b/directadmin-1.62.4/data/templates/filter_delete new file mode 100644 index 0000000..c72e210 --- /dev/null +++ b/directadmin-1.62.4/data/templates/filter_delete @@ -0,0 +1,6 @@ +if + $h_X-Spam-Status: contains "Yes," +then + seen finish +endif + diff --git a/directadmin-1.62.4/data/templates/filter_filterspamfolder b/directadmin-1.62.4/data/templates/filter_filterspamfolder new file mode 100644 index 0000000..183a743 --- /dev/null +++ b/directadmin-1.62.4/data/templates/filter_filterspamfolder @@ -0,0 +1,19 @@ + if + $local_part is "|USERNAME|" + then +|*if DOVECOT="yes"| + save |HOME|/Maildir/.|INBOX_SPAM|/new/ 660 + else + if "${if exists{|MAIL_PARTITION_HOME|/imap/${domain}/${local_part}}{yes}{no}}" is "yes" + then + save |MAIL_PARTITION_HOME|/imap/$domain/$local_part/Maildir/.|INBOX_SPAM|/new/ 660 + else + save |HOME|/Maildir/.|INBOX_SPAM|/new/ 660 + endif +|*else| + save |HOME|/.spamassassin/spam 660 + else + save |HOME|/.spamassassin/user_spam/$local_part@$domain 660 +|*endif| + endif + finish diff --git a/directadmin-1.62.4/data/templates/filter_spamfolder b/directadmin-1.62.4/data/templates/filter_spamfolder new file mode 100644 index 0000000..219b629 --- /dev/null +++ b/directadmin-1.62.4/data/templates/filter_spamfolder @@ -0,0 +1,10 @@ +if + $h_X-Spam-Status: contains "Yes," +then +|*if DOVECOT="yes"| + save |HOME|/Maildir/.|INBOX_SPAM|/new/ 660 +|*else| + save |HOME|/.spamassassin/spam 660 +|*endif| + finish +endif diff --git a/directadmin-1.62.4/data/templates/filter_userspamfolder b/directadmin-1.62.4/data/templates/filter_userspamfolder new file mode 100644 index 0000000..e050cea --- /dev/null +++ b/directadmin-1.62.4/data/templates/filter_userspamfolder @@ -0,0 +1,23 @@ +if + $h_X-Spam-Status: contains "Yes," +then + if + $local_part is "|USERNAME|" + then +|*if DOVECOT="yes"| + save |HOME|/Maildir/.|INBOX_SPAM|/new/ 660 + else + if "${if exists{|MAIL_PARTITION_HOME|/imap/${domain}/${local_part}}{yes}{no}}" is "yes" + then + save |MAIL_PARTITION_HOME|/imap/$domain/$local_part/Maildir/.|INBOX_SPAM|/new/ 660 + else + save |HOME|/Maildir/.|INBOX_SPAM|/new/ 660 + endif +|*else| + save |HOME|/.spamassassin/spam 660 + else + save |HOME|/.spamassassin/user_spam/$local_part@$domain 660 +|*endif| + endif + finish +endif diff --git a/directadmin-1.62.4/data/templates/forbidden_domains.list b/directadmin-1.62.4/data/templates/forbidden_domains.list new file mode 100644 index 0000000..b02a4a0 --- /dev/null +++ b/directadmin-1.62.4/data/templates/forbidden_domains.list @@ -0,0 +1,221 @@ +# ---------- Free e-mail services ------------- + +dongo.com +mail.com +juno.com +lycos.com +hotmail.com +mail.yahoo.com +gmail.com +yousendit.com +mail2web.com +netaddress.com +postmaster.co.uk +walla.com +thatweb.com +fastmail.fm +mailinator.com +30gigs.com +aolmail.com +aussiemail.com.au +boardermail.com +canada.com +canoemail.com +wildmail.com +cashette.com +dbzmail.com +emailaccount.com +fastermail.com +hushmail.com +hush.com +icqmail.com +kittymail.com +linuxmail.org +mail2world.com +marchmail.com +myway.com +operamail.com +orcon.net.nz +rediffmail.com +sandiego.com +safe-mail.net +surfy.net +uymail.com +wapicode.com +yahoo.ca +yahoo.com +e2umail.com +mail.ru + +# ---------- Popular domains ------------- + +apple.com +about.com +adfly.com +adobe.com +alipay.com +ask.com +avg.com +directadmin.com +jbmc-software.com +site-helper.com +cpanel.net +msn.com +google.com +google.ca +google.co.uk +google.com.au +google.com.br +google.be +google.co.id +google.co.il +google.co.in +google.co.jp +google.com.hk +google.de +google.es +google.fr +google.nl +google.ru +google.pl +google.com.mx +google.com.tr +google.it +googleusercontent.com +youtube.com +myspace.com +baidu.com +outlook.com +live.com +orkut.com +qq.com +yahoo.co.jp +wikipedia.org +microsoft.com +ebay.com +blogger.com +babylon.com +co.uk +bbc.co.uk +bing.com +blogspot.com +blogspot.in +megaupload.com +sohu.com +hi5.com +rapidshare.com +yahoo.com.cn +amazon.com +amazon.co.jp +amazon.co.uk +amazon.de +facebook.com +taobao.com +fotolog.net +passport.net +friendster.com +bbc.co.ul +imdb.com +wretch.cc +go.com +craigslist.org +yandex.ru +flickr.com +tom.com +163.com +360.cn +360buy.com +cloudlinux.com +imunify360.com +onet.pl +onet.eu +ebay.co.uk +cnn.com +aol.com +photobucket.com +allegro.pl +discuss.com.hk +globo.com +go2.pl +livejournal.com +naver.com +uwants.com +geocities.com +adultfriendfinder.com +imageavenue.com +digg.com +vnet.cn +alibaba.com +soso.com +rediff.com +seznam.cz +walla.co.il +pchome.com.tw +livedoor.com +skyblog.com +starware.com +mop.com +download.com +wordpress.com +wp.pl +wp.eu +deviantart.com +sendspace.com +dailymotion.com +sogou.com +digitalpoint.com +dell.com +nba.com +icq.com +hp.com +aussimail.com.au +bluebottle.com +interia.pl +interia.eu +poczta.fm +inteligo.pl +inteligo.com.pl +mbank.com.pl +mbank.pl +uol.com.br +ig.com.br +yahoo.com.br +terra.com.br +globo.com +o2.pl +oi.com.br +conduit.com +ebay.de +espn.go.com +fc2.com +hao123.com +huffingtonpost.com +ifeng.com +imgur.com +instagram.com +linkedin.com +livejasmin.com +mywebsearch.com +netflix.com +odnoklassniki.ru +paypal.com +pinterest.com +pornhub.com +prokonto.pl +rakuten.co.jp +redtube.com +shaw.ca +sina.com.cn +stackoverflow.com +telus.net +thepiratebay.sx +tlen.pl +tmall.com +tumblr.com +twitter.com +vk.com +weibo.com +xhamster.com +xvideos.com +youku.com +zedo.com diff --git a/directadmin-1.62.4/data/templates/ftp_pass_change/index.html b/directadmin-1.62.4/data/templates/ftp_pass_change/index.html new file mode 100644 index 0000000..14a6825 --- /dev/null +++ b/directadmin-1.62.4/data/templates/ftp_pass_change/index.html @@ -0,0 +1,36 @@ + + + + Change Ftp Account Password + + + + + + +
+


+ Change Ftp Account Password +

+ + + + + + + + + + +
Enter the required information below
Must be in the format user@domain.com
System accounts not allowed
Ftp Account:
Old Password:
New Password:
Re-Type Password:
+

+ +
+ + + diff --git a/directadmin-1.62.4/data/templates/hotlink.apache.conf b/directadmin-1.62.4/data/templates/hotlink.apache.conf new file mode 100644 index 0000000..59bb85e --- /dev/null +++ b/directadmin-1.62.4/data/templates/hotlink.apache.conf @@ -0,0 +1,8 @@ + + RewriteEngine on +|*if allow_blank_referer="yes"| + RewriteCond %{HTTP_REFERER} !^$ +|*endif| +|ALLOWED_HOTLINK_DOMAINS| + RewriteRule .(|FILES|)$ |HOTLINK_ACTION| + \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/hotlink.nginx.conf b/directadmin-1.62.4/data/templates/hotlink.nginx.conf new file mode 100644 index 0000000..3b74af8 --- /dev/null +++ b/directadmin-1.62.4/data/templates/hotlink.nginx.conf @@ -0,0 +1,15 @@ +|*if allow_blank_referer!="yes"| +|?ALLOWED_LIST=`ALLOWED_HOTLINK_DOMAINS`| +|*else| +|?ALLOWED_LIST= none`ALLOWED_HOTLINK_DOMAINS`| +|*endif| + location ~ \.(|FILES|)$ { + valid_referers|ALLOWED_LIST|; + if ($invalid_referer) { +|*if redirect="forbidden"| + return 403; +|*else| + rewrite (.*)\.(|FILES|)$ |redirect|; +|*endif| + } + } diff --git a/directadmin-1.62.4/data/templates/hotlink.openlitespeed.conf b/directadmin-1.62.4/data/templates/hotlink.openlitespeed.conf new file mode 100644 index 0000000..485d354 --- /dev/null +++ b/directadmin-1.62.4/data/templates/hotlink.openlitespeed.conf @@ -0,0 +1,5 @@ +|*if allow_blank_referer!="yes"| + RewriteCond %{HTTP_REFERER} !^$ +|*endif| +|ALLOWED_HOTLINK_DOMAINS| + RewriteRule .(|FILES|)$ |HOTLINK_ACTION| diff --git a/directadmin-1.62.4/data/templates/httpd b/directadmin-1.62.4/data/templates/httpd new file mode 100644 index 0000000..41f349c --- /dev/null +++ b/directadmin-1.62.4/data/templates/httpd @@ -0,0 +1,108 @@ +#!/bin/bash +# +# Startup script for the Apache Web Server +# +# chkconfig: - 85 15 +# description: Apache is a World Wide Web server. It is used to serve \ +# HTML files and CGI. +# processname: httpd +# pidfile: /var/run/httpd.pid +# config: /etc/httpd/conf/access.conf +# config: /etc/httpd/conf/httpd.conf +# config: /etc/httpd/conf/srm.conf + +# Source function library. +. /etc/rc.d/init.d/functions + +# This will prevent initlog from swallowing up a pass-phrase prompt if +# mod_ssl needs a pass-phrase from the user. +INITLOG_ARGS="" + +# Path to the apachectl script, server binary, and short-form for messages. +apachectl=/usr/sbin/apachectl +httpd=/usr/sbin/httpd +prog=httpd +RETVAL=0 + +# Find the installed modules and convert their names into arguments httpd +# can use. +moduleargs() { + moduledir=/usr/lib/apache + moduleargs=` + /usr/bin/find ${moduledir} -type f -perm -0100 -name "*.so" | env -i tr '[:lower:]' '[:upper:]' | awk '{\ + gsub(/.*\//,"");\ + gsub(/^MOD_/,"");\ + gsub(/^LIB/,"");\ + gsub(/\.SO$/,"");\ + print "-DHAVE_" $0}'` + echo ${moduleargs} +} + +# The semantics of these two functions differ from the way apachectl does +# things -- attempting to start while running is a failure, and shutdown +# when not running is also a failure. So we just do it the way init scripts +# are expected to behave here. +start() { + ulimit -n 8192 + ulimit -n 16384 + ulimit -n 32768 + echo -n $"Starting $prog: " + LANG=en_US LC_ALL=en_US daemon $httpd `moduleargs` $OPTIONS + RETVAL=$? + echo + [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd + return $RETVAL +} +stop() { + echo -n $"Stopping $prog: " + killproc $httpd + RETVAL=$? + echo + [ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid +} +reload() { + echo -n $"Reloading $prog: " + killproc $httpd -HUP + RETVAL=$? + echo +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $httpd + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -f /var/run/httpd.pid ] ; then + stop + start + fi + ;; + reload) + reload + ;; + graceful) + stop + start + ;; + help|configtest) + $apachectl $@ + RETVAL=$? + ;; + *) + echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}" + exit 1 +esac + +exit $RETVAL diff --git a/directadmin-1.62.4/data/templates/httpd.conf b/directadmin-1.62.4/data/templates/httpd.conf new file mode 100644 index 0000000..29b3fab --- /dev/null +++ b/directadmin-1.62.4/data/templates/httpd.conf @@ -0,0 +1,712 @@ +ServerType standalone +ServerRoot "/etc/httpd" +LockFile /var/run/httpd.lock +PidFile /var/run/httpd.pid +ScoreBoardFile logs/apache_runtime_status +ResourceConfig /dev/null +AccessConfig /dev/null + +Timeout 300 +KeepAlive On +MaxKeepAliveRequests 500 +KeepAliveTimeout 5 +MinSpareServers 5 +MaxSpareServers 20 +StartServers 8 +MaxClients 450 +MaxRequestsPerChild 1000 + + + + + +#LoadModule mmap_static_module modules/mod_mmap_static.so +LoadModule vhost_alias_module modules/mod_vhost_alias.so + +LoadModule bandwidth_module modules/mod_bandwidth.so + + +LoadModule throttle_module modules/mod_throttle.so + +LoadModule env_module modules/mod_env.so +LoadModule config_log_module modules/mod_log_config.so +LoadModule agent_log_module modules/mod_log_agent.so +LoadModule referer_log_module modules/mod_log_referer.so +#LoadModule mime_magic_module modules/mod_mime_magic.so +LoadModule mime_module modules/mod_mime.so +LoadModule negotiation_module modules/mod_negotiation.so +LoadModule status_module modules/mod_status.so +LoadModule info_module modules/mod_info.so +LoadModule includes_module modules/mod_include.so +LoadModule autoindex_module modules/mod_autoindex.so +LoadModule dir_module modules/mod_dir.so +LoadModule cgi_module modules/mod_cgi.so +LoadModule asis_module modules/mod_asis.so +LoadModule imap_module modules/mod_imap.so +LoadModule action_module modules/mod_actions.so +#LoadModule speling_module modules/mod_speling.so +LoadModule userdir_module modules/mod_userdir.so +LoadModule alias_module modules/mod_alias.so +LoadModule rewrite_module modules/mod_rewrite.so +LoadModule access_module modules/mod_access.so +LoadModule auth_module modules/mod_auth.so +LoadModule anon_auth_module modules/mod_auth_anon.so +#LoadModule db_auth_module modules/mod_auth_db.so +#LoadModule auth_any_module modules/mod_auth_any.so +#LoadModule dbm_auth_module modules/mod_auth_dbm.so +#LoadModule auth_ldap_module modules/mod_auth_ldap.so +#LoadModule mysql_auth_module modules/mod_auth_mysql.so +#LoadModule auth_pgsql_module modules/mod_auth_pgsql.so +#LoadModule digest_module modules/mod_digest.so +#LoadModule proxy_module modules/libproxy.so +#LoadModule cern_meta_module modules/mod_cern_meta.so +LoadModule expires_module modules/mod_expires.so +LoadModule headers_module modules/mod_headers.so +#LoadModule usertrack_module modules/mod_usertrack.so +#LoadModule example_module modules/mod_example.so +#LoadModule unique_id_module modules/mod_unique_id.so +LoadModule setenvif_module modules/mod_setenvif.so + +LoadModule perl_module modules/libperl.so + + +LoadModule php_module modules/mod_php.so + + +LoadModule php3_module modules/libphp3.so + +# +#LoadModule php4_module modules/libphp4.so +# +LoadModule php4_module /usr/lib/apache/libphp4.so + +LoadModule dav_module modules/libdav.so + + +LoadModule roaming_module modules/mod_roaming.so + +### +LoadModule ssl_module modules/libssl.so +### + +LoadModule put_module modules/mod_put.so + + +LoadModule python_module modules/mod_python.so + + + + + +ClearModuleList +#AddModule mod_mmap_static.c +AddModule mod_vhost_alias.c + +AddModule mod_bandwidth.c + + +AddModule mod_throttle.c + +AddModule mod_env.c +AddModule mod_log_config.c +AddModule mod_log_agent.c +AddModule mod_log_referer.c +#AddModule mod_mime_magic.c +AddModule mod_mime.c +AddModule mod_negotiation.c +AddModule mod_status.c +AddModule mod_info.c +AddModule mod_include.c +AddModule mod_autoindex.c +AddModule mod_dir.c +AddModule mod_cgi.c +AddModule mod_asis.c +AddModule mod_imap.c +AddModule mod_actions.c +#AddModule mod_speling.c +AddModule mod_userdir.c +AddModule mod_alias.c +AddModule mod_rewrite.c +AddModule mod_access.c +AddModule mod_auth.c +AddModule mod_auth_anon.c +#AddModule mod_auth_db.c +#AddModule mod_auth_any.c +#AddModule mod_auth_dbm.c +#AddModule auth_ldap.c +#AddModule mod_auth_mysql.c +#AddModule mod_auth_pgsql.c +#AddModule mod_digest.c +#AddModule mod_proxy.c +#AddModule mod_cern_meta.c +AddModule mod_expires.c +AddModule mod_headers.c +#AddModule mod_usertrack.c +#AddModule mod_example.c +#AddModule mod_unique_id.c +AddModule mod_so.c +AddModule mod_setenvif.c +AddModule mod_frontpage.c + +AddModule mod_perl.c + + +AddModule mod_php.c + + +AddModule mod_php3.c + +### +AddModule mod_php4.c +### + +AddModule mod_dav.c + + +AddModule mod_roaming.c + +### +AddModule mod_ssl.c +### + +AddModule mod_put.c + + +AddModule mod_python.c + + + + + suPHP_Engine on + suPHP_ConfigPath /usr/local/etc/php5/cgi/ + suPHP_AddHandler x-httpd-php + suPHP_AddHandler x-httpd-php5 + + + + +Port 80 + +Listen 80 +Listen 443 + +User apache +Group apache + +ServerAdmin root@localhost +DocumentRoot "/var/www/html" + + + Options FollowSymLinks + AllowOverride All + + + + + Options Indexes FollowSymLinks MultiViews + AllowOverride All + Order allow,deny + Allow from all + + + suPHP_Engine On + suPHP_UserGroup webapps webapps + + + +AddHandler cgi-script .cgi .pl + + #UserDir public_html + UserDir disabled + + + + AllowOverride All + Options -MultiViews -Indexes FollowSymlinks IncludesNoExec +Includes + + Order allow,deny + Allow from all + + + Order deny,allow + Deny from all + + + + + DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.phtml index.cgi + + +AccessFileName .htaccess + + Order allow,deny + Deny from all + Satisfy All + + +UseCanonicalName Off + + + TypesConfig /etc/mime.types + + +DefaultType text/plain + + +# MIMEMagicFile /usr/share/magic.mime + MIMEMagicFile conf/magic + + +HostnameLookups Off + +ErrorLog logs/error_log + +LogLevel warn + +LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %b" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +LogFormat "%b" bytes + +CustomLog logs/access_log combined + +ServerSignature On + +###### +# Uncomment this next bit if you need to +# see the apache status of all incoming +# connections +# + +#ExtendedStatus On +# +#SetHandler server-status +# + +# +####### + + + + Alias /icons/ "/var/www/icons/" + + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + + Alias /server-images/ "/var/www/html/images/" + + Options Indexes MultiViews + AllowOverride None + Order allow,deny + Allow from all + + + #ScriptAlias /cgi-sbin/ "/var/www/cgi-bin/" + + AllowOverride None + Options None + Order allow,deny + Allow from all + + + + + + + + IndexOptions FancyIndexing NameWidth=* + + AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip + + AddIconByType (TXT,/icons/text.gif) text/* + AddIconByType (IMG,/icons/image2.gif) image/* + AddIconByType (SND,/icons/sound2.gif) audio/* + AddIconByType (VID,/icons/movie.gif) video/* + + AddIcon /icons/binary.gif .bin .exe + AddIcon /icons/binhex.gif .hqx + AddIcon /icons/tar.gif .tar + AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv + AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip + AddIcon /icons/a.gif .ps .ai .eps + AddIcon /icons/layout.gif .html .shtml .htm .pdf + AddIcon /icons/text.gif .txt + AddIcon /icons/c.gif .c + AddIcon /icons/p.gif .pl .py + AddIcon /icons/f.gif .for + AddIcon /icons/dvi.gif .dvi + AddIcon /icons/uuencoded.gif .uu + AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl + AddIcon /icons/tex.gif .tex + AddIcon /icons/bomb.gif core + + AddIcon /icons/back.gif .. + AddIcon /icons/hand.right.gif README + AddIcon /icons/folder.gif ^^DIRECTORY^^ + AddIcon /icons/blank.gif ^^BLANKICON^^ + + DefaultIcon /icons/unknown.gif + + #AddDescription "GZIP compressed document" .gz + #AddDescription "tar archive" .tar + #AddDescription "GZIP compressed tar archive" .tgz + + ReadmeName README + HeaderName HEADER + + IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t + + + + + + AddEncoding x-compress Z + AddEncoding x-gzip gz tgz + + AddLanguage da .dk + AddLanguage nl .nl + AddLanguage en .en + AddLanguage et .ee + AddLanguage fr .fr + AddLanguage de .de + AddLanguage el .el + AddLanguage he .he + AddCharset ISO-8859-8 .iso8859-8 + AddLanguage it .it + AddLanguage ja .ja + AddCharset ISO-2022-JP .jis + AddLanguage kr .kr + AddCharset ISO-2022-KR .iso-kr + AddLanguage nn .nn + AddLanguage no .no + AddLanguage pl .po + AddCharset ISO-8859-2 .iso-pl + AddLanguage pt .pt + AddLanguage pt-br .pt-br + AddLanguage ltz .lu + AddLanguage ca .ca + AddLanguage es .es + AddLanguage sv .se + AddLanguage cz .cz + AddLanguage ru .ru + AddLanguage zh-tw .tw + AddLanguage tw .tw + AddCharset Big5 .Big5 .big5 + AddCharset WINDOWS-1251 .cp-1251 + AddCharset CP866 .cp866 + AddCharset ISO-8859-5 .iso-ru + AddCharset KOI8-R .koi8-r + AddCharset UCS-2 .ucs2 + AddCharset UCS-4 .ucs4 + AddCharset UTF-8 .utf8 + + + LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw + + + AddType application/x-tar .tgz + + + + AddHandler application/x-httpd-php .inc .php .php4 .php3 .phtml + AddHandler application/x-httpd-php-source .phps + + + + + AddHandler application/x-httpd-php3 .php3 + AddHandler application/x-httpd-php3-source .phps + + + + + AddHandler application/x-httpd-php .phtml + + + + AddHandler cgi-script .cgi .pl + + AddType text/html .shtml + AddHandler server-parsed .shtml + + #AddHandler send-as-is asis + + AddHandler imap-file map + + #AddHandler type-map var + + + + + + BrowserMatch "Mozilla/2" nokeepalive + BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 + BrowserMatch "RealPlayer 4\.0" force-response-1.0 + BrowserMatch "Java/1\.0" force-response-1.0 + BrowserMatch "JDK/1\.0" force-response-1.0 + + + +Alias /doc/ /usr/share/doc/ + + order deny,allow + deny from all + allow from localhost .localdomain + Options Indexes FollowSymLinks + + +### +AddType application/x-x509-ca-cert .crt +AddType application/x-pkcs7-crl .crl +### + + +# Pass Phrase Dialog: +# Configure the pass phrase gathering process. +# The filtering dialog program (`builtin' is a internal +# terminal dialog) has to provide the pass phrase on stdout. +SSLPassPhraseDialog builtin + +# Inter-Process Session Cache: +# Configure the SSL Session Cache: First the mechanism +# to use and second the expiring timeout (in seconds). +SSLSessionCache none +#SSLSessionCache shmht:logs/ssl_scache(512000) +#SSLSessionCache shmcb:logs/ssl_scache(512000) +#SSLSessionCache dbm:logs/ssl_scache +SSLSessionCacheTimeout 300 + +# Semaphore: +# Configure the path to the mutual exclusion semaphore the +# SSL engine uses internally for inter-process synchronization. +SSLMutex file:logs/ssl_mutex + +# Pseudo Random Number Generator (PRNG): +# Configure one or more sources to seed the PRNG of the +# SSL library. The seed data should be of good random quality. +# WARNING! On some platforms /dev/random blocks if not enough entropy +# is available. This means you then cannot use the /dev/random device +# because it would lead to very long connection times (as long as +# it requires to make more entropy available). But usually those +# platforms additionally provide a /dev/urandom device which doesn't +# block. So, if available, use this one instead. Read the mod_ssl User +# Manual for more details. +SSLRandomSeed startup builtin +SSLRandomSeed connect builtin +#SSLRandomSeed startup file:/dev/random 512 +#SSLRandomSeed startup file:/dev/urandom 512 +#SSLRandomSeed connect file:/dev/random 512 +#SSLRandomSeed connect file:/dev/urandom 512 + +# Logging: +# The home of the dedicated SSL protocol logfile. Errors are +# additionally duplicated in the general error log file. Put +# this somewhere where it cannot be used for symlink attacks on +# a real server (i.e. somewhere where only root can write). +# Log levels are (ascending order: higher ones include lower ones): +# none, error, warn, info, trace, debug. +SSLLog logs/ssl_engine_log +SSLLogLevel error + + + +### + +## +## SSL Virtual Host Context +## + + + +ErrorLog logs/error_log +TransferLog logs/access_log + +# SSL Engine Switch: +# Enable/Disable SSL for this virtual host. +SSLEngine on + +# SSL Cipher Suite: +# List the ciphers that the client is permitted to negotiate. +# See the mod_ssl documentation for a complete list. +#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL +SSLCipherSuite ALL:-ADH:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP + +# Server Certificate: +# Point SSLCertificateFile at a PEM encoded certificate. If +# the certificate is encrypted, then you will be prompted for a +# pass phrase. Note that a kill -HUP will prompt again. A test +# certificate can be generated with `make certificate' under +# built time. Keep in mind that if you've both a RSA and a DSA +# certificate you can configure both in parallel (to also allow +# the use of DSA ciphers, etc.) +SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt +#SSLCertificateFile /etc/httpd/conf/ssl.crt/server-dsa.crt + +# Server Private Key: +# If the key is not combined with the certificate, use this +# directive to point at the key file. Keep in mind that if +# you've both a RSA and a DSA private key you can configure +# both in parallel (to also allow the use of DSA ciphers, etc.) +SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key +#SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server-dsa.key + +# Server Certificate Chain: +# Point SSLCertificateChainFile at a file containing the +# concatenation of PEM encoded CA certificates which form the +# certificate chain for the server certificate. Alternatively +# the referenced file can be the same as SSLCertificateFile +# when the CA certificates are directly appended to the server +# certificate for convinience. +#SSLCertificateChainFile /etc/httpd/conf/ssl.crt/ca.crt + +# Certificate Authority (CA): +# Set the CA certificate verification path where to find CA +# certificates for client authentication or alternatively one +# huge file containing all of them (file must be PEM encoded) +# Note: Inside SSLCACertificatePath you need hash symlinks +# to point to the certificate files. Use the provided +# Makefile to update the hash symlinks after changes. +#SSLCACertificatePath /etc/httpd/conf/ssl.crt +#SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca-bundle.crt + +# Certificate Revocation Lists (CRL): +# Set the CA revocation path where to find CA CRLs for client +# authentication or alternatively one huge file containing all +# of them (file must be PEM encoded) +# Note: Inside SSLCARevocationPath you need hash symlinks +# to point to the certificate files. Use the provided +# Makefile to update the hash symlinks after changes. +#SSLCARevocationPath /etc/httpd/conf/ssl.crl +#SSLCARevocationFile /etc/httpd/conf/ssl.crl/ca-bundle.crl + +# Client Authentication (Type): +# Client certificate verification type and depth. Types are +# none, optional, require and optional_no_ca. Depth is a +# number which specifies how deeply to verify the certificate +# issuer chain before deciding the certificate is not valid. +#SSLVerifyClient require +#SSLVerifyDepth 10 + +# Access Control: +# With SSLRequire you can do per-directory access control based +# on arbitrary complex boolean expressions containing server +# variable checks and other lookup directives. The syntax is a +# mixture between C and Perl. See the mod_ssl documentation +# for more details. +# +#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ +# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ +# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ +# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ +# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ +# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ +# + +# SSL Engine Options: +# Set various options for the SSL engine. +# o FakeBasicAuth: +# Translate the client X.509 into a Basic Authorisation. This means that +# the standard Auth/DBMAuth methods can be used for access control. The +# user name is the `one line' version of the client's X.509 certificate. +# Note that no password is obtained from the user. Every entry in the user +# file needs this password: `xxj31ZMTZzkVA'. +# o ExportCertData: +# This exports two additional environment variables: SSL_CLIENT_CERT and +# SSL_SERVER_CERT. These contain the PEM-encoded certificates of the +# server (always existing) and the client (only existing when client +# authentication is used). This can be used to import the certificates +# into CGI scripts. +# o StdEnvVars: +# This exports the standard SSL/TLS related `SSL_*' environment variables. +# Per default this exportation is switched off for performance reasons, +# because the extraction step is an expensive operation and is usually +# useless for serving static content. So one usually enables the +# exportation for CGI and SSI requests only. +# o CompatEnvVars: +# This exports obsolete environment variables for backward compatibility +# to Apache-SSL 1.x, mod_ssl 2.0.x, Sioux 1.0 and Stronghold 2.x. Use this +# to provide compatibility to existing CGI scripts. +# o StrictRequire: +# This denies access when "SSLRequireSSL" or "SSLRequire" applied even +# under a "Satisfy any" situation, i.e. when it applies access is denied +# and no other module can change it. +# o OptRenegotiate: +# This enables optimized SSL connection renegotiation handling when SSL +# directives are used in per-directory context. +#SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire + + SSLOptions +StdEnvVars + + + SSLOptions +StdEnvVars + + +SetEnvIf User-Agent ".*MSIE.*" \ + nokeepalive ssl-unclean-shutdown \ + downgrade-1.0 force-response-1.0 + +# Per-Server Logging: +# The home of a custom SSL log file. Use this when you want a +# compact non-error SSL logfile on a virtual host basis. +CustomLog logs/ssl_request_log \ + "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" + + + +### + + + +#Start DirectAdmin Settings +Alias /config /var/www/html/redirect.php +Alias /phpMyAdmin /var/www/html/phpMyAdmin/ +Alias /phpmyadmin /var/www/html/phpMyAdmin/ +Alias /webmail /var/www/html/webmail/ +Alias /squirrelmail /var/www/html/squirrelmail/ +Alias /roundcube /var/www/html/roundcube/ + +ErrorDocument 400 /400.shtml +ErrorDocument 401 /401.shtml +ErrorDocument 403 /403.shtml +ErrorDocument 404 /404.shtml +ErrorDocument 500 /500.shtml + +#All NameVirtualHost lines are in this file +#Don't remove this line or apache will generate errors. +Include /etc/httpd/conf/ips.conf + +LogFormat "%b \"%r\"" homedir +#The default site for the server. + + ServerAdmin webmaster@|SERVER_NAME| + ScriptAliasMatch ^/~([^/]+)/+cgi-bin/+(.*) /home/$1/public_html/cgi-bin/$2 + AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2 + DocumentRoot /var/www/html + ServerName localhost + ScriptAlias /cgi-bin/ /var/www/cgi-bin/ + + CustomLog /var/log/httpd/homedir.log homedir + + + + ServerName localhost + ServerAdmin webmaster@|SERVER_NAME| + ScriptAliasMatch ^/~([^/]+)/cgi-bin(/.*)* /home/$1/public_html/cgi-bin/$2 + AliasMatch ^/~([^/]+)(/.*)* /home/$1/public_html$2 + DocumentRoot /var/www/html + ScriptAlias /cgi-bin/ /var/www/cgi-bin/ + + SSLEngine on + SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt + SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key + + CustomLog /var/log/httpd/homedir.log homedir + + + diff --git a/directadmin-1.62.4/data/templates/imap b/directadmin-1.62.4/data/templates/imap new file mode 100644 index 0000000..ccc3b02 --- /dev/null +++ b/directadmin-1.62.4/data/templates/imap @@ -0,0 +1,13 @@ +# default: on +# description: imapd +service imap +{ + disable = no + socket_type = stream + wait = no + user = root + server = /usr/sbin/imapd + #log_on_success += DURATION USERID + #log_on_failure += USERID + nice = 10 +} diff --git a/directadmin-1.62.4/data/templates/imaps b/directadmin-1.62.4/data/templates/imaps new file mode 100644 index 0000000..d45a712 --- /dev/null +++ b/directadmin-1.62.4/data/templates/imaps @@ -0,0 +1,14 @@ +# default: on +# description: imaps / port 993 +service imaps +{ + disable = no + socket_type = stream + wait = no + user = root + server = /usr/sbin/stunnel + server_args = -T -p /etc/stunnel/stunnel.pem -l /usr/sbin/imapd + #log_on_success += DURATION USERID + #log_on_failure += USERID + nice = 10 +} diff --git a/directadmin-1.62.4/data/templates/ips_virtual_host.conf b/directadmin-1.62.4/data/templates/ips_virtual_host.conf new file mode 100644 index 0000000..9c3f4a5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/ips_virtual_host.conf @@ -0,0 +1,41 @@ +|?CACERT_LINE=| +|*if CACERT!=""| +|?CACERT_LINE=SSLCACertificateFile `CACERT`| +|*endif| +|?APACHE_USERDIR=UserDir public_html| +|*if HAVE_USERDIR_ACCESS="0"| +|?APACHE_USERDIR=| +|*endif| + + + ServerName shared.domain + |APACHE_USERDIR| + DocumentRoot |DOCROOT| +|*if APACHE_VER="2.0"| + SuexecUserGroup |USER| |GROUP| +|*else| + User |USER| + Group |GROUP| +|*endif| + CustomLog /var/log/httpd/homedir.log homedir + CustomLog /var/log/httpd/access_log combined + + + + SSLEngine on + SSLCertificateFile |CERT| + SSLCertificateKeyFile |KEY| + |CACERT_LINE| + + ServerName shared.domain + |APACHE_USERDIR| + DocumentRoot |DOCROOT| +|*if APACHE_VER="2.0"| + SuexecUserGroup |USER| |GROUP| +|*else| + User |USER| + Group |GROUP| +|*endif| + CustomLog /var/log/httpd/homedir.log homedir + CustomLog /var/log/httpd/access_log combined + diff --git a/directadmin-1.62.4/data/templates/list.config b/directadmin-1.62.4/data/templates/list.config new file mode 100644 index 0000000..98226ab --- /dev/null +++ b/directadmin-1.62.4/data/templates/list.config @@ -0,0 +1,63 @@ +admin_passwd = |admin_passwd| +administrivia = |administrivia| +advertise << END + +END +announcements = yes +approve_passwd = |approve_passwd| +archive_dir = +comments << END + +END +date_info = yes +date_intro = yes +debug = no +description = |description| +digest_archive = +digest_issue = |digest_issue| +digest_maxdays = |digest_maxdays| +digest_maxlines = |digest_maxlines| +digest_name = |NAME| +digest_rm_footer = +digest_rm_fronter = +digest_volume = |digest_volume| +digest_work_dir = +get_access = |get_access| +index_access = |index_access| +info_access = |info_access| +intro_access = |intro_access| +maxlength = |maxlength| +message_footer << END +|message_footer| +END +message_fronter << END +|message_fronter| +END +message_headers << END +|message_headers| +END +moderate = |moderate| +moderator = |moderator| +mungedomain = |mungedomain| +noadvertise << END + +END +precedence = |precedence| +purge_received = |purge_received| +reply_to = |reply_to| +resend_host = +restrict_post = |restrict_post| +sender = owner-|NAME| +strip = |strip| +subject_prefix = |subject_prefix| +subscribe_policy = |subscribe_policy| +taboo_body << END +|taboo_body| +END +taboo_headers << END +|taboo_headers| +END +unsubscribe_policy = |unsubscribe_policy| +welcome = |welcome| +which_access = |which_access| +who_access = |who_access| diff --git a/directadmin-1.62.4/data/templates/load_check_message.txt b/directadmin-1.62.4/data/templates/load_check_message.txt new file mode 100644 index 0000000..abb0928 --- /dev/null +++ b/directadmin-1.62.4/data/templates/load_check_message.txt @@ -0,0 +1,13 @@ +|?SUBJECT=Warning: The system load average is `LOAD`| +This is an automated message notifying you that the |MINUTE| minute load average on your system is |LOAD|. +This has exceeded the |LIMIT| threshold. + +One Minute - |ONE| +Five Minutes - |FIVE| +Fifteen Minutes - |FIFTEEN| + +|TOP| +|CONN_INFO| +|EXTRA_INFO| + +|MSG_FOOTER| diff --git a/directadmin-1.62.4/data/templates/logs.list b/directadmin-1.62.4/data/templates/logs.list new file mode 100644 index 0000000..c25a3b5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/logs.list @@ -0,0 +1,31 @@ +/var/log/httpd/error_log=Apache Error Log +/var/log/httpd/access_log=Apache Access Log +/var/log/httpd/suexec_log=Apache Suexec Log +/var/log/httpd/homedir.log=Apache ~/user and IP Log +/var/log/suphp.log=suPHP Log +/var/log/nginx/error_log=Nginx Error Log +/var/log/nginx/access_log=Nginx Access Log +/var/log/exim/mainlog=Exim Mainlog +/var/log/exim/rejectlog=Exim Rejectlog +/var/log/exim/paniclog=Exim Paniclog +/var/log/messages=System Messages +/var/log/syslog=System Messages +/var/log/maillog=System Mail Log +/var/log/mail.log=System Mail Log +/var/log/mail.info=System Mail Information +/var/log/mail.err=System Mail Errors +/var/log/mail.warn=System Mail Warnings +/var/log/auth.log=System Authentication Log +/var/log/secure=System Security Log +/var/log/dmesg=Kernel Log +/var/log/cron=Cron Log +/var/log/directadmin/error.log=DirectAdmin Error Log +/var/log/directadmin/errortaskq.log=DirectAdmin Task Queue Log +/var/log/directadmin/security.log=DirectAdmin Security Log +/var/log/directadmin/system.log=DirectAdmin System Log +/var/log/directadmin/login.log=DirectAdmin Login Log +/var/log/proftpd/access.log=Proftpd Access Log +/var/log/proftpd/auth.log=Proftpd Auth Log +/var/log/pureftpd.log=PureFTP Log +/var/www/html/roundcube/logs/errors=RoundCube Errors +/var/www/html/roundcube/logs/sendmail=RoundCube Sends diff --git a/directadmin-1.62.4/data/templates/lost_password.html b/directadmin-1.62.4/data/templates/lost_password.html new file mode 100644 index 0000000..bc448d0 --- /dev/null +++ b/directadmin-1.62.4/data/templates/lost_password.html @@ -0,0 +1,39 @@ +|*if code!=""| +|?TITLE=DirectAdmin - Lost Password Confirmation| +|?DESC=Lost Password Code Confirmation| +|?INSTR=Enter your username and your confirmation code
to have a new password emailed to you| + +|*else| +|?TITLE=DirectAdmin - Lost Password| +|?DESC=Lost Password| +|?INSTR=Enter your Username and a confirmation link
will be sent to your email account.| +|*endif| + + + +|TITLE| + + + +




+

|DESC|

+ + + + + + +|*if code!=""| + + + +|*else| + +|*endif| + + + +
Please enter your Username
|INSTR|
Username:
Confirmation Code:
+
+ diff --git a/directadmin-1.62.4/data/templates/lost_password_email.txt b/directadmin-1.62.4/data/templates/lost_password_email.txt new file mode 100644 index 0000000..3fe31e5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/lost_password_email.txt @@ -0,0 +1,24 @@ +|*if action="code"| +|?SUBJECT=Your password has been reset| +This is an automated email generated by |http|://|host|:|port|. + +Your new password has been reset to: + +|passwd| + +Do not reply to this email. +|*else| +|?SUBJECT=Lost password reset request| +This is an automated email generated by |http|://|host|:|port| requesting a new password be email to you. + +To initiate the password reset, click the following link and follow the instructions: + +|http|://|host|:|port|/CMD_LOST_PASSWORD?code=|code|&username=|username| + + +If you did not initate this password change, please click the following to report it to an administrator: + +|http|://|host|:|port|/CMD_LOST_PASSWORD?action=report&code=|code| + +Do not reply to this email. +|*endif| diff --git a/directadmin-1.62.4/data/templates/mail_settings.html b/directadmin-1.62.4/data/templates/mail_settings.html new file mode 100644 index 0000000..ef9445b --- /dev/null +++ b/directadmin-1.62.4/data/templates/mail_settings.html @@ -0,0 +1,8 @@ +|LANG_ACCOUNT_READY|:

+ + + + + + +
|LANG_USERNAME|:|USER|@|DOMAIN|
|LANG_PASSWORD|:|EMAIL_PASS|
|LANG_POP_IMAP|:mail.|DOMAIN|
|LANG_SMTP|:mail.|DOMAIN| |LANG_PORT| 587
diff --git a/directadmin-1.62.4/data/templates/main.php b/directadmin-1.62.4/data/templates/main.php new file mode 100644 index 0000000..f078df3 --- /dev/null +++ b/directadmin-1.62.4/data/templates/main.php @@ -0,0 +1,631 @@ + + + +

+ + 0) { + // robbat2: Use the verbose name of the server instead of the hostname + // if a value is set + if(!empty($cfg['Server']['verbose'])) { + $server_info = $cfg['Server']['verbose']; + } else { + $server_info = $cfg['Server']['host']; + } + $server_info .= (empty($cfg['Server']['port']) ? '' : ':' . $cfg['Server']['port']); + // loic1: skip this because it's not a so good idea to display sockets + // used to everybody + // if (!empty($cfg['Server']['socket']) && PMA_PHP_INT_VERSION >= 30010) { + // $server_info .= ':' . $cfg['Server']['socket']; + // } + $local_query = 'SELECT VERSION() as version, USER() as user'; + $res = PMA_mysql_query($local_query) or PMA_mysqlDie('', $local_query, FALSE, ''); + $mysql_cur_user_and_host = PMA_mysql_result($res, 0, 'user'); + $mysql_cur_user = substr($mysql_cur_user_and_host, 0, strrpos($mysql_cur_user_and_host, '@')); + + $full_string = str_replace('%pma_s1%', PMA_mysql_result($res, 0, 'version'), $strMySQLServerProcess); + $full_string = str_replace('%pma_s2%', $server_info, $full_string); + $full_string = str_replace('%pma_s3%', $mysql_cur_user_and_host, $full_string); + + echo '

' . $full_string . '


' . "\n"; +} // end if + + +/** + * Reload mysql (flush privileges) + */ +if (($server > 0) && isset($mode) && ($mode == 'reload')) { + $result = PMA_mysql_query('FLUSH PRIVILEGES'); // Debug: or PMA_mysqlDie('', 'FLUSH PRIVILEGES', FALSE, 'main.php?' . PMA_generate_common_url()); + echo '

'; + if ($result != 0) { + echo $strMySQLReloaded; + } else { + echo $strReloadFailed; + } + echo '

' . "\n\n"; +} + + +/** + * Displays the MySQL servers choice form + */ +if ($server == 0 || count($cfg['Servers']) > 1) { + ?> + + + + + + + + +
+
+ + + + +
+
+
+ + + + + + + 0) { + // Get user's global privileges ($dbh and $userlink are links to MySQL + // defined in the "common.lib.php" library) + $is_create_priv = FALSE; + $is_process_priv = TRUE; + $is_reload_priv = FALSE; + +// We were checking privileges with 'USE mysql' but users with the global +// priv CREATE TEMPORARY TABLES or LOCK TABLES can do a 'USE mysql' +// (even if they cannot see the tables) + $is_superuser = @PMA_mysql_query('SELECT COUNT(*) FROM mysql.user', $userlink); + if ($dbh) { + $local_query = 'SELECT Create_priv, Process_priv, Reload_priv FROM mysql.user WHERE User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\''; + $rs_usr = PMA_mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE); + if ($rs_usr) { + while ($result_usr = PMA_mysql_fetch_array($rs_usr)) { + if (!$is_create_priv) { + $is_create_priv = ($result_usr['Create_priv'] == 'Y'); + } + /* 02-12-09 rabus: Every user has access to the process list - + at least to its own :-) + if (!$is_process_priv) { + $is_process_priv = ($result_usr['Process_priv'] == 'Y'); + } + */ + if (!$is_reload_priv) { + $is_reload_priv = ($result_usr['Reload_priv'] == 'Y'); + } + } // end while + mysql_free_result($rs_usr); + } // end if + } // end if + + // If the user has Create priv on a inexistant db, show him in the dialog + // the first inexistant db name that we find, in most cases it's probably + // the one he just dropped :) + if (!$is_create_priv) { + $local_query = 'SELECT DISTINCT Db FROM mysql.db WHERE Create_priv = \'Y\' AND User = \'' . PMA_sqlAddslashes($mysql_cur_user) . '\''; + $rs_usr = PMA_mysql_query($local_query, $dbh); // Debug: or PMA_mysqlDie('', $local_query, FALSE); + if ($rs_usr) { + $re0 = '(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards + $re1 = '(^|[^\])(\\\)+'; // escaped wildcards + while ($row = PMA_mysql_fetch_array($rs_usr)) { + if (ereg($re0 . '(%|_)', $row['Db']) + || (!PMA_mysql_select_db(ereg_replace($re1 . '(%|_)', '\\1\\3', $row['Db']), $userlink) && @mysql_errno() != 1044)) { + $db_to_create = ereg_replace($re0 . '%', '\\1...', ereg_replace($re0 . '_', '\\1?', $row['Db'])); + $db_to_create = ereg_replace($re1 . '(%|_)', '\\1\\3', $db_to_create); + $is_create_priv = TRUE; + break; + } // end if + } // end while + mysql_free_result($rs_usr); + } // end if + else if (PMA_MYSQL_INT_VERSION >= 32304) { + // Finally, let's try to get the user's privileges by using SHOW + // GRANTS... + // Maybe we'll find a little CREATE priv there :) + $local_query = 'SHOW GRANTS FOR ' . $mysql_cur_user_and_host; + $rs_usr = PMA_mysql_query($local_query, $dbh); + if (!$rs_usr) { + // OK, now we'd have to guess the user's hostname, but we + // only try out the 'username'@'%' case. + $local_query = 'SHOW GRANTS FOR ' . $mysql_cur_user; + $rs_usr = PMA_mysql_query($local_query, $dbh); + } + if ($rs_usr) { + $re0 = '(^|(\\\\\\\\)+|[^\])'; // non-escaped wildcards + $re1 = '(^|[^\])(\\\)+'; // escaped wildcards + while ($row = PMA_mysql_fetch_row($rs_usr)) { + $show_grants_dbname = substr($row[0], strpos($row[0], ' ON ') + 4,(strpos($row[0], '.', strpos($row[0], ' ON ')) - strpos($row[0], ' ON ') - 4)); + $show_grants_str = substr($row[0],6,(strpos($row[0],' ON ')-6)); + if (($show_grants_str == 'ALL') || ($show_grants_str == 'ALL PRIVILEGES') || ($show_grants_str == 'CREATE') || strpos($show_grants_str, 'CREATE')) { + if ($show_grants_dbname == '*') { + $is_create_priv = TRUE; + $db_to_create = ''; + break; + } // end if + else if (ereg($re0 . '%|_', $show_grants_dbname) || !PMA_mysql_select_db($show_grants_dbname, $userlink) && @mysql_errno() != 1044) { + $db_to_create = ereg_replace($re0 . '%', '\\1...', ereg_replace($re0 . '_', '\\1?', $show_grants_dbname)); + $db_to_create = ereg_replace($re1 . '(%|_)', '\\1\\3', $db_to_create); + $is_create_priv = TRUE; + break; + } // end elseif + } // end if + } // end while + unset($show_grants_dbname); + unset($show_grants_str); + mysql_free_result($rs_usr); + } // end if + } // end elseif + } // end if + else { + $db_to_create = ''; + } // end else + + if (!$cfg['SuggestDBName']) { + $db_to_create = ''; + } + + $common_url_query = PMA_generate_common_url(); + + if ($is_superuser) { + $cfg['ShowMysqlInfo'] = TRUE; + $cfg['ShowMysqlVars'] = TRUE; + $cfg['ShowChgPassword'] = TRUE; + } + if ($cfg['Server']['auth_type'] == 'config') { + $cfg['ShowChgPassword'] = FALSE; + } + + + //DIRECTADMIN CHANGE + $is_create_priv = FALSE; + + // loic1: Displays the MySQL column only if at least one feature has to be + // displayed + if ($is_superuser || $is_create_priv || $is_process_priv || $is_reload_priv + || $cfg['ShowMysqlInfo'] || $cfg['ShowMysqlVars'] || $cfg['ShowChgPassword'] + || $cfg['Server']['auth_type'] != 'config') { + ?> + + + + + 0) +echo "\n"; + + +/** + * Displays the phpMyAdmin related links + */ +?> + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (*)' + : ''; + echo "\n"; + ?> + + + + + +
  MySQL
item +
+
+ + + + +
+
item +
+ ' . $strNoPrivileges .''; ?>
+
item + + + +
item + +   + +
item + +   + +
item + +   + +
item + +   +
item + + +
item + + +
item + +   +
+
     + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  phpMyAdmin
item +
+ + + Language (*): + + +
+
item +
+ + + : + + +
+
item + +
item + +
item +
+       [ChangeLog] +    [CVS] +    [Lists] +
+
+ + +' . $strPmaUriError . '

' . "\n"; +} + +/** + * Warning if using the default MySQL privileged account + */ +if ($server != 0 + && $cfg['Server']['user'] == 'root' + && $cfg['Server']['password'] == '') { + echo '

' . $strInsecureMySQL . '

' . "\n"; +} + +/** + * Warning for PHP 4.2.3 + */ + +if (PMA_PHP_INT_VERSION == 40203 && @extension_loaded('mbstring')) { + echo '

' . $strPHP40203 . '

' . "\n"; +} + +/** + * Displays the footer + */ +echo "\n"; +require('./footer.inc.php'); +?> diff --git a/directadmin-1.62.4/data/templates/majordomo.cf b/directadmin-1.62.4/data/templates/majordomo.cf new file mode 100644 index 0000000..4236c09 --- /dev/null +++ b/directadmin-1.62.4/data/templates/majordomo.cf @@ -0,0 +1,312 @@ +# +# A sample configuration file for majordomo. You must read through this and +# edit it accordingly! +# + + +# $whereami -- What machine am I running on? +# +$whereami = "|DOMAIN|"; + +# $whoami -- Who do users send requests to me as? +# +$whoami = "majordomo\@$whereami"; + +# $whoami_owner -- Who is the owner of the above, in case of problems? +# +$whoami_owner = "majordomo-owner\@$whereami"; + +# $homedir -- Where can I find my extra .pl files, like majordomo.pl? +# the environment variable HOME is set by the wrapper +# +$homedir = "/etc/virtual/majordomo"; + +# $listdir -- Where are the mailing lists? +# +$listdir = "/etc/virtual/${whereami}/majordomo/lists"; + +# $digest_work_dir -- the parent directory for digest's queue area +# Each list must have a subdirectory under this directory in order for +# digest to work. E.G. The bblisa list would use: +# /usr/local/mail/digest/bblisa +# as its directory. +# +$digest_work_dir = "/etc/virtual/${whereami}/majordomo/digests"; + +# $log -- Where do I write my log? +# +$log = "/etc/virtual/${whereami}/majordomo/majordomo.log"; +#$log = "/etc/virtual/majordomo/Log"; + +# $sendmail_command -- Pathname to the sendmail program +# usually /usr/lib/sendmail, but some newer BSD systems +# seem to prefer /usr/sbin/sendmail +# +$sendmail_command = "/usr/sbin/sendmail"; + +# $mailer -- What program and args do I use to send mail to the list? +# $bounce_mailer -- What is used to send mail anywhere else? +# The variables $to, $from, $subject, and $sender can be interpolated into +# this command line. Note, however, that the $to, $from, and $subject +# variables may be provided by the person sending mail, and much mischief +# can be had by playing with this variable. It is perfectly safe to use +# $sender, but the others are insecure. +# +# Sendmail option -oi: Do not take a . on a line by itself as the message +# terminator. +# Sendmail option -oee: Force sendmail to exit with a zero exit status if +# if it's not going to give useful information. +# +$mailer = "$sendmail_command -oi -oee -f\$sender"; +$bounce_mailer = "$sendmail_command -oi -oee -f\$sender -t"; + +# You can special case the mailer used to deliver outbound mail as follows: +# +# To use TLB and use no outgoing alias: +# if ($main'program_name eq 'mj_resend' && $opt_l eq 'test-list') { +# $mailer = "/usr/local/majordomo/tlb /usr/local/lists/${opt_l}.tlb"; +# } +# +# To use a different Sendmail queue for this list's mail: +# if ($main'program_name eq 'mj_resend' && $opt_l eq 'test-list') { +# $mailer = "$sendmail_command -oQ /var/spool/listq -f\$sender"; +# } + +# You can force Majordomo to delay any processing if the system load is too +# high by uncommenting the following lines. THIS ONLY WORKS if your "uptime" +# command (usually found in /usr/bin/uptime or /usr/bsd/uptime) +# returns a string like: +# 5:23pm up 5:51, 9 users, load average: 0.19, 0.25, 0.33 +# +#$max_loadavg = 10; # Choose the maximum allowed load +# +#$uptime = `/usr/bin/uptime` if -x '/usr/bin/uptime'; # Get system uptime +#$uptime = `/usr/bsd/uptime` if -x '/usr/bsd/uptime'; # or uptime is over here. +# +#($avg_1_minute, $avg_5_minutes, $avg_15_minutes) = +# $uptime =~ /average:\s+(\S+),\s+(\S+),\s+(\S+)/; +# +#exit 75 if ($avg_15_minutes >= $max_loadavg); # E_TEMPFAIL +# + +# Set the default subscribe policy for new lists here. +# If not defined, defaults to "open", but in today's increasingly +# imbecile Internet, "open+confirm" or "auto+confirm" is a wiser +# choice for publicly available Majordomo servers. +# +$config'default_subscribe_policy = "open+confirm"; + +# +# Configure X400 parsing here. This is functional, but not well tested +# and rather a hack. +# By default all addresses that look x400-ish will be checked for a +# @ sign (meaning that it's headed to an smtp->x400 gateway, as well +# as the 'c=' and 'a[dm]=' parts, which mean something as well. +# +# If you will be receiving x400 style return addresses that do not have +# an @ sign in them indicating an smtp->x400 gateway, set $no_x400at to 1. +# Otherwise, leave $no_x400 at 0. +# +$no_x400at = 0; +# +# If you will be receiving x400 addresses without the c= or a[dm]= parts +# set the $no_true_x400 variable to 1. This will disable checking for +# "c=" and "a[dm]=" pieces. +# +$no_true_x400 = 0; + + +#-------------------------------------------------------------------- +# Stuff below here isn't commonly changed.... +#-------------------------------------------------------------------- +# +# Majordomo will look for "get" and "index" files related to $list in +# directory "$filedir/$list$filedir_suffix", so set $filedir and +# $filedir_suffix appropriately. For instance, to look in +# /usr/local/mail/files/$list, use: +# $filedir = "/usr/local/mail/files"; +# $filedir_suffix = ""; # empty string +# or to look in $listdir/$list.archive, use: +# $filedir = "$listdir"; +# $filedir_suffix = ".archive"; + +$filedir = "$listdir"; +$filedir_suffix = ".archive"; + +# What command should I use to process an "index" request? +# +$index_command = "/bin/ls -lRL"; + +# If you want to use FTPMAIL, rather than local access, for file transfer +# and access, define the following: +# $ftpmail_address = "ftpmail\@decwrl.dec.com"; +# $ftpmail_location = "FTP.$whereami"; + +# if you want the subject of the request to be included as part of the +# subject of the reply (useful when automatically testing, or submitting +# multiple command sets), set $return_subject to 1. +# +$return_subject = 1; + +# If you are using majordomo at the -request address, set the +# following variable to 1. This affects the welcome message that is +# sent to a new subscriber as well as the help text that is generated. +# +$majordomo_request = 0; + +# If you have lists that have who turned off, but still allow which +# requests to work for subscribed members, and you don't want to have +# "which @" to act like a who, the variable $max_which_hits sets the +# number of hits that are allowed using which before an error is returned. +# Arguably this should be a per list settable number. +# +$max_which_hits = 0; + +# Set the umask for the process. Used to set default file status for +# config file. +# +umask(007); +$config_umask = 007; + +# don't change this. It checks to make sure that you have a new enough +# version of perl to run majordomo. It is in here because this file is +# used by almost all of the majordomo programs. +# +die "Perl version $] too old\n" if ($] < 4.019); + +# the safe locations for archive directories +# None of the parameters that use safedirs are actually used, so +# @safedirs is a placeholder for future functionality. +# Just ignore it for version 1.90 through 1.94. +# +@safedirs = ( ); + +# Directory where resend temporarily puts its rewritten output message. +# For the paranoid, this could be changed to a directory that only +# majordomo has r/w permission to. +# Uses the environment variable TMPDIR, since that's pretty common +# +$TMPDIR = $ENV{'TMPDIR'} || "/tmp"; + +# Tune how long set_lock tries to obtain a lock before giving up. Each +# attempt waits 1 to 10 seconds before trying again and waittime is +# the total minimum time spent trying. This defaults to 600 seconds (5 +# minutes), which translates to no less then 60 nor more than 600 tries. +# +# $shlock'waittime = 1200; + +# tune the cookie for subscribe_policy=confirm. Normally this is +# set to $homedir. *Don't* make this something like rand(400), +# the key isn't saved between sessions. +# +# $cookie_seed = "Harry Truman, Doris Day, Red China, Johnnie Ray" . +# " South Pacific, Walter Winchell, Joe DiMaggio"; + +# The maximum character length of the header lines for resend +# +$MAX_HEADER_LINE_LENGTH = 128; + +# The maximum character length of the _entire_ header for resend +# +$MAX_TOTAL_HEADER_LENGTH = 1024; + +# List of perl regular expressions that, if found in the headers of a message, +# will cause the message to be bounced to the list approver. +# Put each regular expression on a separate line before the "END" mark, with +# no trailing ";" +# For example: +# $global_taboo_headers = <<'END'; +# /^from:.*trouble\@hassle\.net/i +# /^subject:.*non-delivery notice/i +# END +# NOTE! Using ' instead of " in the 'END' is VERY IMPORTANT!!! +# + +# Administrative checks. These used to be buried in the resend code +# +$admin_headers = <<'END'; +/^subject:\s*subscribe\b/i +/^subject:\s*unsubscribe\b/i +/^subject:\s*uns\w*b/i +/^subject:\s*.*un-sub/i +/^subject:\s*help\b/i +/^subject:\s.*\bchange\b.*\baddress\b/i +/^subject:\s*request\b(.*\b)?addition\b/i +/^subject:\s*cancel\b/i +END + +# Common things that people send to the wrong address. +# These are caught in the first 10 lines of the message body +# if 'administrivia' is turned on and the message isn't marked approved. +# +# The code that catches this should transparently redirect +# majordomo commands to majordomo. That would give the additional +# advantage of not having to add to this silly construct for +# each new majordomo command. +# +$admin_body = <<'END'; +/\bcancel\b/i +/\badd me\b/i +/\bdelete me\b/i +/\bremove\s+me\b/i +/\bchange\b.*\baddress\b/ +/\bsubscribe\b/i +/^sub\b/i +/\bunsubscribe\b/i +/^unsub\b/i +/\buns\w*b/i +/^\s*help\s*$/i +/^\s*info\s*$/i +/^\s*info\s+\S+\s*$/i +/^\s*lists\s*$/i +/^\s*which\s*$/i +/^\s*which\s+\S+\s*$/i +/^\s*index\s*$/i +/^\s*index\s+\S+\s*$/i +/^\s*who\s*$/i +/^\s*who\s+\S+\s*$/i +/^\s*get\s+\S+\s*$/i +/^\s*get\s+\S+\s+\S+\s*$/i +/^\s*approve\b/i +/^\s*passwd\b/i +/^\s*newinfo\b/i +/^\s*config\b/i +/^\s*newconfig\b/i +/^\s*writeconfig\b/i +/^\s*mkdigest\b/i +END + +# taboo headers to catch +# +$global_taboo_headers = <<'END'; +/^subject: ndn: /i +/^subject:\s*RCPT:/i +/^subject:\s*Delivery Confirmation\b/i +/^subject:\s*NON-DELIVERY of:/i +/^subject:\s*Undeliverable Message\b/i +/^subject:\s*Receipt Confirmation\b/i +/^subject:\s*Failed mail\b/i +/^subject:\s*Returned mail\b/i +/^subject:\s*unable to deliver mail\b/i +/^subject:\s.*\baway from my mail\b/i +/^subject:\s*Autoreply/i +END + +# Taboo body contents to catch and forward to the approval address +# +# For example: +# $global_taboo_body = <<'END'; +# /taboo topic/i +# /another taboo/i +# END +# NOTE! Using ' instead of " in the next line is VERY IMPORTANT!!! +# +$global_taboo_body = <<'END'; +END + +# Majordomo will not send replies to addresses which match this. +# The match is done case-insensitively. +$majordomo_dont_reply = '(mailer-daemon|uucp|listserv|majordomo|listproc)\@'; + +1; +# $Header: /sources/cvsrepos/majordomo/sample.cf,v 1.34 1997/08/27 15:00:31 cwilson Exp $ diff --git a/directadmin-1.62.4/data/templates/message_footer.txt b/directadmin-1.62.4/data/templates/message_footer.txt new file mode 100644 index 0000000..e543c12 --- /dev/null +++ b/directadmin-1.62.4/data/templates/message_footer.txt @@ -0,0 +1,2 @@ +================================ +Automated Message Generated by |DEAMONNAME| |VERSION| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/message_tech.txt b/directadmin-1.62.4/data/templates/message_tech.txt new file mode 100644 index 0000000..6425dca --- /dev/null +++ b/directadmin-1.62.4/data/templates/message_tech.txt @@ -0,0 +1,14 @@ +|?SUBJECT=New Ticket to resolve: `MESSAGE_SUBJECT`| +A new ticket with subject: + +|MESSAGE_SUBJECT| + +has arrived for you to resolve. +Follow this link to view it: + +|HTTP||DOMAIN|:|PORT|/CMD_TICKET_MANAGE?action=view&number=|NUMBER|&type=|TYPE| + + +|MSG_FOOTER| + +Do Not Reply. diff --git a/directadmin-1.62.4/data/templates/message_user.txt b/directadmin-1.62.4/data/templates/message_user.txt new file mode 100644 index 0000000..bb6a259 --- /dev/null +++ b/directadmin-1.62.4/data/templates/message_user.txt @@ -0,0 +1,14 @@ +|?SUBJECT=New Message: `MESSAGE_SUBJECT`| +A new message or response with subject: + +|MESSAGE_SUBJECT| + +has arrived for you to view. +Follow this link to view it: + +|HTTP||DOMAIN|:|PORT|/CMD_TICKET?action=view&number=|NUMBER|&type=|TYPE| + + +|MSG_FOOTER| + +Do Not Reply. diff --git a/directadmin-1.62.4/data/templates/mx/google.com.txt b/directadmin-1.62.4/data/templates/mx/google.com.txt new file mode 100644 index 0000000..d3ca765 --- /dev/null +++ b/directadmin-1.62.4/data/templates/mx/google.com.txt @@ -0,0 +1,9 @@ +|?NAME=Google Suite MX| +|?EXTRA_SPF=include:_spf.google.com| +|?SPF_STRICT=-all| +|?LOCAL_DOMAIN=no| +|DOMAIN|. 3600 IN MX 1 ASPMX.L.GOOGLE.COM. +|DOMAIN|. 3600 IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. +|DOMAIN|. 3600 IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. +|DOMAIN|. 3600 IN MX 10 ALT3.ASPMX.L.GOOGLE.COM. +|DOMAIN|. 3600 IN MX 10 ALT4.ASPMX.L.GOOGLE.COM. diff --git a/directadmin-1.62.4/data/templates/mx/office365.txt b/directadmin-1.62.4/data/templates/mx/office365.txt new file mode 100644 index 0000000..3599cbe --- /dev/null +++ b/directadmin-1.62.4/data/templates/mx/office365.txt @@ -0,0 +1,13 @@ +|?NAME=Office 365| +|?EXTRA_SPF=include:spf.protection.outlook.com| +|?SPF_STRICT=-all| +|?LOCAL_DOMAIN=no| +|DOMAIN|. 3600 IN MX 0 |DOMAIN_DASH_COM|.mail.protection.outlook.com. +autodiscover 3600 IN CNAME autodiscover.outlook.com. +lyncdiscover 3600 IN CNAME webdir.online.lync.com. +msoid 3600 IN CNAME clientconfig.microsoftonline-p.net. +sip 3600 IN CNAME sipdir.online.lync.com. +enterpriseregistration 3600 IN CNAME enterpriseregistration.windows.net. +enterpriseenrollment 3600 IN CNAME enterpriseenrollment.manage.microsoft.com. +_sip._tls 3600 IN SRV 1 100 443 sipdir.online.lync.com. +_sipfederationtls._tcp 3600 IN SRV 1 100 5061 sipfed.online.lync.com. diff --git a/directadmin-1.62.4/data/templates/mx/zoho.eu.txt b/directadmin-1.62.4/data/templates/mx/zoho.eu.txt new file mode 100644 index 0000000..adae48d --- /dev/null +++ b/directadmin-1.62.4/data/templates/mx/zoho.eu.txt @@ -0,0 +1,8 @@ +|?NAME=Zoho Mail| +|?EXTRA_SPF=include:zoho.com| +|?SPF_STRICT=-all| +|?LOCAL_DOMAIN=no| +|DOMAIN|. 3600 IN MX 10 mx.zoho.eu. +|DOMAIN|. 3600 IN MX 20 mx2.zoho.eu. +|DOMAIN|. 3600 IN MX 50 mx3.zoho.eu. + diff --git a/directadmin-1.62.4/data/templates/named.db b/directadmin-1.62.4/data/templates/named.db new file mode 100644 index 0000000..b751045 --- /dev/null +++ b/directadmin-1.62.4/data/templates/named.db @@ -0,0 +1,33 @@ +|?SET_TTL=`DEFAULT_TTL`| +|?NS_TIME=`SET_TTL`| +|?A_TIME=`SET_TTL`| +|?MX_TIME=`SET_TTL`| +|?CNAME_TIME=`SET_TTL`| +|?PTR_TIME=`SET_TTL`| +|?TXT_TIME=`SET_TTL`| +|?AAAA_TIME=`SET_TTL`| +|?SRV_TIME=`SET_TTL`| +|?SPF_TIME=`SET_TTL`| +|?TLSA_TIME=`SET_TTL`| +|?CAA_TIME=`SET_TTL`| +|?DS_TIME=`SET_TTL`| +$TTL |SET_TTL| +@ IN SOA |NS1| |EMAIL| ( + |SERIAL| + |SET_TTL| + 3600 + 1209600 + 86400 ) + +|NS| +|A| +|MX| +|CNAME| +|PTR| +|TXT| +|AAAA| +|SRV| +|SPF| +|TLSA| +|CAA| +|DS| diff --git a/directadmin-1.62.4/data/templates/nginx_ips.conf b/directadmin-1.62.4/data/templates/nginx_ips.conf new file mode 100644 index 0000000..66bf41f --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_ips.conf @@ -0,0 +1,49 @@ +|?CACERT_LINE=| +|*if CACERT!=""| +|?CACERT_LINE=ssl_client_certificate `CACERT`;| +|*endif| +|?NGINX_USERDIR=include /etc/nginx/nginx-userdir.conf;| +|*if HAVE_USERDIR_ACCESS="0"| +|?NGINX_USERDIR=| +|*endif| +server { + listen |IP|:|PORT_80| default_server; + server_name _; + root |DOCROOT|; + index index.html index.htm index.php; + |NGINX_USERDIR| + +|*if HAS_NGINX_PHP_CONF="yes"| + include /usr/local/directadmin/data/users/|USER|/nginx_php.conf; +|*endif| + + # deny access to apache .htaccess files + location ~ /\.ht + { + deny all; + } + + include /etc/nginx/webapps.conf; +} + +server { + listen |IP|:|PORT_443| ssl|SPACE_HTTP2| default_server; + server_name _; + + ssl_certificate |CERT|; + ssl_certificate_key |KEY|; + + root |DOCROOT|; + index index.html index.htm index.php; + |NGINX_USERDIR| +|*if HAS_NGINX_PHP_CONF="yes"| + include /usr/local/directadmin/data/users/|USER|/nginx_php.conf; +|*endif| + # deny access to apache .htaccess files + location ~ /\.ht + { + deny all; + } + + include /etc/nginx/webapps.conf; +} diff --git a/directadmin-1.62.4/data/templates/nginx_php.conf b/directadmin-1.62.4/data/templates/nginx_php.conf new file mode 100644 index 0000000..5e905f9 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_php.conf @@ -0,0 +1,35 @@ + |*if HAVE_PHP1_FPM="1"| + # use fastcgi for all php files + location ~ \.php$ + { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include /etc/nginx/fastcgi_params; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/nginx_limits.conf; + + if (-f $request_filename) + { + fastcgi_pass unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock; + } + } + |*endif| + |*if HAVE_PHP2_FPM="1"| + # use fastcgi for all php files + location ~ \.php|PHP2_RELEASE|$ + { + try_files $uri =404; + fastcgi_split_path_info ^(.+\.php)(/.+)$; + include /etc/nginx/fastcgi_params; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include /etc/nginx/nginx_limits.conf; + + + if (-f $request_filename) + { + fastcgi_pass unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock; + } + } + |*endif| diff --git a/directadmin-1.62.4/data/templates/nginx_protected_directory.conf b/directadmin-1.62.4/data/templates/nginx_protected_directory.conf new file mode 100644 index 0000000..a64f503 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_protected_directory.conf @@ -0,0 +1,9 @@ + location |PROTECTED_PATH|/ + { +|CUSTOM2| +|LOCATION_INSERT| + auth_basic "|AUTH_NAME|"; + auth_basic_user_file |HTPASSWD|; + + |NGINX_PHP_CONF| + } diff --git a/directadmin-1.62.4/data/templates/nginx_redirect.conf b/directadmin-1.62.4/data/templates/nginx_redirect.conf new file mode 100644 index 0000000..1647088 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_redirect.conf @@ -0,0 +1,10 @@ +|*if REDIRECT_PATH=""| +|CUSTOM2| + rewrite ^/.*$ |REDIRECT_TO| |REDIRECT_TYPE|; +|*else| + location ~ ^|REDIRECT_PATH|(/|$) + { +|CUSTOM2| + rewrite ^/.*$ |REDIRECT_TO| |REDIRECT_TYPE|; + } +|*endif| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/nginx_server.conf b/directadmin-1.62.4/data/templates/nginx_server.conf new file mode 100644 index 0000000..51ad340 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_server.conf @@ -0,0 +1,63 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/var/tmp:/usr/local/lib/php/| +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| +server +{ +|CUSTOM| + + listen |IP|:|PORT_80|; + |MULTI_IP| + + server_name |HOST_DOMAIN| www.|HOST_DOMAIN| |SERVER_ALIASES|; + + access_log /var/log/nginx/domains/|DOMAIN|.log; + access_log /var/log/nginx/domains/|DOMAIN|.bytes bytes; + error_log /var/log/nginx/domains/|DOMAIN|.error.log; + + + root |DOCROOT|; + + index index.php index.html index.htm; + + |FORCE_SSL_REDIRECT| + + |NGINX_PHP_CONF| + +|*if HAVE_NGINX_PROXY="1"| + location / + { +|CUSTOM2| +|LOCATION_INSERT| + # access_log off; + proxy_buffering |PROXY_BUFFERING|; + proxy_pass http://|PROXY_IP|:|PORT_8080|; + proxy_set_header X-Client-IP $remote_addr; + proxy_set_header X-Accel-Internal /nginx_static_files; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header Upgrade; + } + location /nginx_static_files/ + { + # access_log /var/log/nginx/access_log_proxy; + alias |DOCROOT|/; + internal; + } +|*else| +|NGINX_REDIRECTS| +|PROTECTED_DIRECTORIES| +|HOTLINK_PROTECTION| +|EXTRA_LOCATIONS| +|*endif| + +|CUSTOM3| + + include /etc/nginx/webapps.conf; + +|CUSTOM4| +} diff --git a/directadmin-1.62.4/data/templates/nginx_server_redirect.conf b/directadmin-1.62.4/data/templates/nginx_server_redirect.conf new file mode 100644 index 0000000..1373c4b --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_server_redirect.conf @@ -0,0 +1,31 @@ +|CUSTOM1| +|?WWW_PREFIX=www.| +|*if WWW_REDIRECT="no"| +|?WWW_PREFIX=| +|*endif| +|CUSTOM2| +server +{ + |CUSTOM3| + listen |IP|:|PORT_80|; + |MULTI_IP| + server_name |POINTER| www.|POINTER|; + rewrite ^ http://|WWW_PREFIX||DOMAIN|$request_uri? permanent; + |CUSTOM4| +} + +|*if HAVE_SSL="1"| +server +{ + |CUSTOM5| + listen |IP|:|PORT_443| ssl|SPACE_HTTP2|; + |MULTI_IP_SSL| + server_name |POINTER| www.|POINTER|; + rewrite ^ https://|WWW_PREFIX||DOMAIN|$request_uri? permanent; + + ssl_certificate |CERT|; + ssl_certificate_key |KEY|; + |CUSTOM6| +} +|*endif| +|CUSTOM7| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/nginx_server_secure.conf b/directadmin-1.62.4/data/templates/nginx_server_secure.conf new file mode 100644 index 0000000..1c4ee29 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_server_secure.conf @@ -0,0 +1,65 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/var/tmp:/usr/local/lib/php/| +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| +server +{ +|CUSTOM| + + listen |IP|:|PORT_443| ssl|SPACE_HTTP2|; + |MULTI_IP| + + server_name |HOST_DOMAIN| www.|HOST_DOMAIN| |SERVER_ALIASES|; + + access_log /var/log/nginx/domains/|DOMAIN|.log; + access_log /var/log/nginx/domains/|DOMAIN|.bytes bytes; + error_log /var/log/nginx/domains/|DOMAIN|.error.log; + + root |DOCROOT|; + + index index.php index.html index.htm; + + ssl_certificate |CERT|; + ssl_certificate_key |KEY|; + + |FORCE_SSL_REDIRECT| + + |NGINX_PHP_CONF| + +|*if HAVE_NGINX_PROXY="1"| + location / + { +|CUSTOM2| +|LOCATION_INSERT| + # access_log off; + proxy_buffering |PROXY_BUFFERING|; + proxy_pass https://|PROXY_IP|:|PORT_8081|; + proxy_set_header X-Client-IP $remote_addr; + proxy_set_header X-Accel-Internal /nginx_static_files; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header Upgrade; + } + location /nginx_static_files/ + { + # access_log /var/log/nginx/access_log_proxy; + alias |DOCROOT|/; + internal; + } +|*else| +|NGINX_REDIRECTS| +|PROTECTED_DIRECTORIES| +|HOTLINK_PROTECTION| +|EXTRA_LOCATIONS| +|*endif| + +|CUSTOM3| + + include /etc/nginx/webapps.ssl.conf; + +|CUSTOM4| +} diff --git a/directadmin-1.62.4/data/templates/nginx_server_secure_sub.conf b/directadmin-1.62.4/data/templates/nginx_server_secure_sub.conf new file mode 100644 index 0000000..695e778 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_server_secure_sub.conf @@ -0,0 +1,65 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/| +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| +server +{ +|CUSTOM| +|?SDOCROOT=`DOCROOT`/`SUB`| + + listen |IP|:|PORT_443| ssl|SPACE_HTTP2|; + |MULTI_IP| + + server_name |SUB|.|HOST_DOMAIN| www.|SUB|.|HOST_DOMAIN| |SERVER_ALIASES|; + + access_log /var/log/nginx/domains/|DOMAIN|.|SUB|.log; + access_log /var/log/nginx/domains/|DOMAIN|.|SUB|.bytes bytes; + error_log /var/log/nginx/domains/|DOMAIN|.|SUB|.error.log; + + root |SDOCROOT|; + + index index.php index.html index.htm; + + ssl_certificate |CERT|; + ssl_certificate_key |KEY|; + + |NGINX_PHP_CONF| + + |FORCE_SSL_REDIRECT| + +|*if HAVE_NGINX_PROXY="1"| + location / + { +|CUSTOM2| +|LOCATION_INSERT| + # access_log off; + proxy_buffering |PROXY_BUFFERING|; + proxy_pass https://|PROXY_IP|:|PORT_8081|; + proxy_set_header X-Client-IP $remote_addr; + proxy_set_header X-Accel-Internal /nginx_static_files; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header Upgrade; + } + location /nginx_static_files/ + { + # access_log /var/log/nginx/access_log_proxy; + alias |SDOCROOT|/; + internal; + } +|*else| +|PROTECTED_DIRECTORIES| +|HOTLINK_PROTECTION| +|EXTRA_LOCATIONS| +|*endif| + +|CUSTOM3| + + include /etc/nginx/webapps.ssl.conf; + +|CUSTOM4| +} diff --git a/directadmin-1.62.4/data/templates/nginx_server_sub.conf b/directadmin-1.62.4/data/templates/nginx_server_sub.conf new file mode 100644 index 0000000..2ed76f3 --- /dev/null +++ b/directadmin-1.62.4/data/templates/nginx_server_sub.conf @@ -0,0 +1,62 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/public_html/`SUB`| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/| +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| +server +{ +|CUSTOM| +|?SDOCROOT=`DOCROOT`/`SUB`| + + listen |IP|:|PORT_80|; + |MULTI_IP| + + server_name |SUB|.|HOST_DOMAIN| www.|SUB|.|HOST_DOMAIN| |SERVER_ALIASES|; + + access_log /var/log/nginx/domains/|DOMAIN|.|SUB|.log; + access_log /var/log/nginx/domains/|DOMAIN|.|SUB|.bytes bytes; + error_log /var/log/nginx/domains/|DOMAIN|.|SUB|.error.log; + + root |SDOCROOT|; + + index index.php index.html index.htm; + + |NGINX_PHP_CONF| + + |FORCE_SSL_REDIRECT| + +|*if HAVE_NGINX_PROXY="1"| + location / + { +|CUSTOM2| +|LOCATION_INSERT| + # access_log off; + proxy_buffering |PROXY_BUFFERING|; + proxy_pass http://|PROXY_IP|:|PORT_8080|; + proxy_set_header X-Client-IP $remote_addr; + proxy_set_header X-Accel-Internal /nginx_static_files; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_hide_header Upgrade; + } + location /nginx_static_files/ + { + # access_log /var/log/nginx/access_log_proxy; + alias |SDOCROOT|/; + internal; + } +|*else| +|PROTECTED_DIRECTORIES| +|HOTLINK_PROTECTION| +|EXTRA_LOCATIONS| +|*endif| + +|CUSTOM3| + + include /etc/nginx/webapps.conf; + +|CUSTOM4| +} diff --git a/directadmin-1.62.4/data/templates/openlitespeed_context_protected.conf b/directadmin-1.62.4/data/templates/openlitespeed_context_protected.conf new file mode 100644 index 0000000..a0618b5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/openlitespeed_context_protected.conf @@ -0,0 +1,6 @@ + authName |AUTH_NAME| + allowBrowse 1 + realm |PROTECTED_PATH|/ + accessControl { + allow * + } diff --git a/directadmin-1.62.4/data/templates/openlitespeed_ips.conf b/directadmin-1.62.4/data/templates/openlitespeed_ips.conf new file mode 100644 index 0000000..fad83f8 --- /dev/null +++ b/directadmin-1.62.4/data/templates/openlitespeed_ips.conf @@ -0,0 +1,48 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/sharedip| +|*if STATUS="server"| +|?DOCROOT=/var/www/html| +|*endif| +|*if DOCROOT="/var/www/html/domains/sharedip"| +|?DOCROOT=/var/www/html| +|*endif| +|?SSLPROTOCOL=24| +|CUSTOM2| +virtualHost |IP| { + |CUSTOM3| + listeners |LISTENER_80|, |LISTENER_443| + user |USER| + group |USER| + vhRoot |HOME| + allowSymbolLink 1 + enableScript 1 + restrained 1 + setUIDMode 2 + docRoot |DOCROOT| + vhDomain |IP| + vhAliases * + adminEmails root@localhost + enableGzip 1 + enableIpGeo 1 + + rewrite { + enable 1 + autoLoadHtaccess 1 + RewriteFile .htaccess + |CUSTOM4| + } + + |CUSTOM5| + vhssl { + keyFile |KEY| + certFile |CERT| + certChain 1 + sslProtocol |SSLPROTOCOL| + } + + # include aliases + include /usr/local/lsws/conf/httpd-alias.conf + + |CUSTOM6| +} +|CUSTOM7| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/openlitespeed_listener.conf b/directadmin-1.62.4/data/templates/openlitespeed_listener.conf new file mode 100644 index 0000000..79b0386 --- /dev/null +++ b/directadmin-1.62.4/data/templates/openlitespeed_listener.conf @@ -0,0 +1,22 @@ +|CUSTOM1| +|?SSLPROTOCOL=24| +|CUSTOM2| + +listener |LISTENER_80| { + |CUSTOM3| + address |IP|:80 + secure 0 + |CUSTOM4| +} + +listener |LISTENER_443| { + |CUSTOM5| + address |IP|:443 + secure 1 + keyFile |KEY| + certFile |CERT| + certChain 1 + sslProtocol |SSLPROTOCOL| + |CUSTOM6| +} +|CUSTOM7| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/openlitespeed_redirect_vhost.conf b/directadmin-1.62.4/data/templates/openlitespeed_redirect_vhost.conf new file mode 100644 index 0000000..cfc809f --- /dev/null +++ b/directadmin-1.62.4/data/templates/openlitespeed_redirect_vhost.conf @@ -0,0 +1,61 @@ +|CUSTOM1| +|?WWW_PREFIX=www.| +|*if WWW_REDIRECT="no"| +|?WWW_PREFIX=| +|*endif| + +|?VH_PORT=`PORT_80`| +|?VHROOT=`HOME`| +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| + +|?SSLPROTOCOL=30| +|CUSTOM2| + +virtualHost |POINTER|-|VH_PORT| { + |CUSTOM3| + user |USER| + group |GROUP| + vhRoot |VHROOT| + setUIDMode 2 + listeners |LISTENERS| + + docRoot |DOCROOT| + vhDomain |POINTER| + vhAliases www.|POINTER| + + rewrite { + enable 1 + RewriteRule (.*)$ http://|WWW_PREFIX||DOMAIN|/$1 [R=301,L] + } + |CUSTOM4| +} + +|*if HAVE_SSL="1"| +|?VH_PORT=`PORT_443`| +virtualHost |POINTER|-|VH_PORT| { + |CUSTOM5| + user |USER| + group |GROUP| + vhRoot |VHROOT| + setUIDMode 2 + listeners |SSL_LISTENERS| + + docRoot |DOCROOT| + vhDomain |POINTER| + vhAliases www.|POINTER| + + rewrite { + enable 1 + RewriteRule (.*)$ https://|WWW_PREFIX||DOMAIN|/$1 [R=301,L] + } + + vhssl { + keyFile |KEY| + certFile |CERT| + certChain 1 + sslProtocol |SSLPROTOCOL| + } + |CUSTOM6| +} +|*endif| +|CUSTOM7| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/openlitespeed_vhost.conf b/directadmin-1.62.4/data/templates/openlitespeed_vhost.conf new file mode 100644 index 0000000..907beaa --- /dev/null +++ b/directadmin-1.62.4/data/templates/openlitespeed_vhost.conf @@ -0,0 +1,137 @@ +|CUSTOM1| + +|?PUBLIC_HTML=public_html| +|?VH_PORT=`PORT_80`| +|*if SSL_TEMPLATE="1"| +|?PUBLIC_HTML=private_html| +|?VH_PORT=`PORT_443`| +|*endif| + +|?DOCROOT=`HOME`/domains/`DOMAIN`/`PUBLIC_HTML`| +|?PUB_DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?REALDOCROOT=`DOCROOT`| + +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| +|?SDOMAIN=`HOST_DOMAIN`| +|?LOG_NAME=`DOMAIN`| + +|*if SUB| +|?SDOMAIN=`SUB`.`HOST_DOMAIN`| +|?LOG_NAME=`DOMAIN`.`SUB`| +|*endif| + +|?VHROOT=`HOME`| + +|?SCRIPTHANDLER=lsphp`PHP1_RELEASE`| + +|?SSLPROTOCOL=24| + +|?OBDP1=| +|*if PHP1_RELEASE!="0"| +|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/| +|*endif| +|?OBDP2=| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/`OBDP1``OBDP2`| + +|?PHP_MAIL_LOG=| +|?CLI_PHP_MAIL_LOG=| +|*if PHP_MAIL_LOG_ENABLED="1"| +|?PHP_MAIL_LOG=-d mail.log="`HOME`/.php/php-mail.log"| +|?CLI_PHP_MAIL_LOG=php_admin_value mail.log `HOME`/.php/php-mail.log| +|*endif| + +|?PHP_EMAIL=`USER`@`DOMAIN`| + +virtualHost |SDOMAIN|-|VH_PORT| { +|CUSTOM| +|?SDOCROOT=`DOCROOT`/`SUB`| +|*if SUB| +|?DOCROOT=`SDOCROOT`| +|*endif| + user |USER| + group |GROUP| + vhRoot |VHROOT| + allowSymbolLink 1 + enableScript 1 + restrained 1 + setUIDMode 2 + # listeners listener1, listener2, listener3 + listeners |LISTENERS| + + #VirtualHost config settings + docRoot |DOCROOT| + vhDomain |SDOMAIN| + vhAliases www.|SDOMAIN||SERVER_ALIASES| + adminEmails |ADMIN| + enableGzip 1 + enableIpGeo 1 + + errorlog |APACHELOGDIR|/|LOG_NAME|.error.log { + useServer 0 + logLevel NOTICE + rollingSize 0 + } + accesslog |APACHELOGDIR|/|LOG_NAME|.log { + useServer 0 + logFormat %a %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i" + logHeaders 5 + rollingSize 0 + } + accesslog |APACHELOGDIR|/|LOG_NAME|.bytes { + useServer 0 + logFormat %O %I + rollingSize 0 + } + + scripthandler { + |CUSTOM2| + add lsapi:|SCRIPTHANDLER| inc + add lsapi:|SCRIPTHANDLER| php + add lsapi:|SCRIPTHANDLER| phtml + add lsapi:|SCRIPTHANDLER| php|PHP1_RELEASE| + } + + phpIniOverride { + |CUSTOM4| + php_admin_flag engine |PHP| + php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f |PHP_EMAIL|" + |*if OPEN_BASEDIR_ENABLED="ON"| + php_admin_value open_basedir "|OPEN_BASEDIR_PATH|" + |*endif| + |CLI_PHP_MAIL_LOG| + |*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| + |*endif| + } + + rewrite { + enable 1 + autoLoadHtaccess 1 + |FORCE_SSL_REDIRECT| + |OPENLITESPEED_REDIRECTS| + |HOTLINK_PROTECTION| + |CUSTOM5| + } + +|CONTEXTS| +|REALMS| + + |*if SSL_TEMPLATE="1"| + vhssl { + |CUSTOM6| + keyFile |KEY| + certFile |CERT| + certChain 1 + sslProtocol |SSLPROTOCOL| + } + |*endif| + + # include aliases + include /usr/local/lsws/conf/httpd-alias.conf + + |CUSTOM7| +} +|CUSTOM8| diff --git a/directadmin-1.62.4/data/templates/outlook_setup.reg b/directadmin-1.62.4/data/templates/outlook_setup.reg new file mode 100644 index 0000000..3c09d6a --- /dev/null +++ b/directadmin-1.62.4/data/templates/outlook_setup.reg @@ -0,0 +1,21 @@ +REGEDIT4 + +[HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts\\|LOGIN|] +"Account Name"="|EMAIL|" +"Connection Type"=dword:00000003 +"POP3 Server"="|SERVER|" +"SMTP Server"="|SERVER|" +"POP3 User Name"="|LOGIN|" +"SMTP User Name"="" +"POP3 Prompt for Password"=dword:00000000 +"SMTP Prompt for Password"=dword:00000000 +"SMTP Display Name"="|EMAIL|" +"SMTP Email Address"="|EMAIL|" +"POP3 Skip Account"=dword:00000000 +"SMTP Use Sicily"=dword:00000002 +"POP3 Timeout"=dword:0000003c +"SMTP Timeout"=dword:0000003c +"SMTP Secure Connection"=dword:00000000 +"SMTP Split Messages"=dword:00000000 +"POP3 Port"=dword:0000006e +"SMTP Port"=dword:0000024b diff --git a/directadmin-1.62.4/data/templates/partition_check.list b/directadmin-1.62.4/data/templates/partition_check.list new file mode 100644 index 0000000..f790425 --- /dev/null +++ b/directadmin-1.62.4/data/templates/partition_check.list @@ -0,0 +1,5 @@ +/ +/var +/home +/usr +/tmp diff --git a/directadmin-1.62.4/data/templates/partition_check_message.txt b/directadmin-1.62.4/data/templates/partition_check_message.txt new file mode 100644 index 0000000..5ffbbe0 --- /dev/null +++ b/directadmin-1.62.4/data/templates/partition_check_message.txt @@ -0,0 +1,6 @@ +|?SUBJECT=Warning: The disk usage for one or more of your partitions is running low| +This is an automated message notifying you that the following partition(s) have exceeded the |THRESHOLD|% threshold: + +|PARTITIONS| + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/per_email_limit_email_message.txt b/directadmin-1.62.4/data/templates/per_email_limit_email_message.txt new file mode 100644 index 0000000..5da9daf --- /dev/null +++ b/directadmin-1.62.4/data/templates/per_email_limit_email_message.txt @@ -0,0 +1,52 @@ + +|?SUBJECT=Warning: Your E-Mail account has just sent `COUNT` E-Mails| +

+ +|EMAIL| has just finished sending |COUNT| E-Mails.

+ +There could be a spammer, your account could be compromised, or you're just sending more E-Mails than usual.

+ +This warning was generated because the daily threshold of |LIMIT| E-Mails was hit.
+Either wait until tomorrow for the count to be reset, or contact your domain manager.

+ +The IP that sent the last email was:
+|HOST|

+ +|*if CAN_CHANGE_PASS="1"| +If this is not your IP, or you did not send these emails, please change your password immediately:
+|HTTP|://|DOMAIN|:|PORT|/CMD_CHANGE_EMAIL_PASSWORD

+|*endif| + +================================
+Automated Message Generated by |DEAMONNAME| +
+
+
+ + diff --git a/directadmin-1.62.4/data/templates/per_email_limit_message.txt b/directadmin-1.62.4/data/templates/per_email_limit_message.txt new file mode 100644 index 0000000..345fe74 --- /dev/null +++ b/directadmin-1.62.4/data/templates/per_email_limit_message.txt @@ -0,0 +1,9 @@ +|?SUBJECT=Warning: `COUNT` E-Mails have just been sent by `EMAIL`| +The address |EMAIL| has just finished sending |COUNT| emails. +There could be a spammer, the account could be compromised, or just sending more emails than usual. + +This warning was generated because the |LIMIT| email threshold was hit. +The E-Mail account is managed under the |USERNAME| User account. + +================================ +Automated Message Generated by DirectAdmin diff --git a/directadmin-1.62.4/data/templates/php-cron.ini b/directadmin-1.62.4/data/templates/php-cron.ini new file mode 100644 index 0000000..0d055e9 --- /dev/null +++ b/directadmin-1.62.4/data/templates/php-cron.ini @@ -0,0 +1,7 @@ +|?SENDMAIL_PATH=/usr/sbin/sendmail -t -i -f `PHP_EMAIL`| +|?CLI_PHP_MAIL_LOG=`HOME`/.php/php-mail.log| + +sendmail_path = |SENDMAIL_PATH| +session.save_path = |SESSION_SAVE_PATH| +open_basedir = |OPEN_BASEDIR_PATH| +mail.log = |CLI_PHP_MAIL_LOG| diff --git a/directadmin-1.62.4/data/templates/php-fpm.conf b/directadmin-1.62.4/data/templates/php-fpm.conf new file mode 100644 index 0000000..89308e5 --- /dev/null +++ b/directadmin-1.62.4/data/templates/php-fpm.conf @@ -0,0 +1,41 @@ +|?PHP_VER=54| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp/:/var/tmp/:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/php`PHP_VER`/lib/:`ACTIVE_USR_LOCAL_PHP_LIB`:/usr/local/lib/php/| +|?EMAIL=`USER`@`DOMAIN`| +|?MAX_CHILDREN=`MAX_CHILDREN_DEFAULT`| +|?MAX_REQUESTS=500| + +|CUSTOM1| + +[|USER|] +user = $pool +group = $pool + +listen = /usr/local/php|PHP_VER|/sockets/$pool.sock +listen.owner = $pool +listen.group = |SERVER_GROUP| +listen.mode = 660 + +pm = ondemand +pm.max_children = |MAX_CHILDREN| +pm.process_idle_timeout = 20 +pm.max_requests = |MAX_REQUESTS| + +php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f |EMAIL| + +|*if PHP_SESSION_SAVE_PATH!=""| +php_admin_value[session.save_path] = |PHP_SESSION_SAVE_PATH| +|*endif| + +|*if OPEN_BASEDIR="ON"| +php_admin_value[open_basedir] = |OPEN_BASEDIR_PATH| +|*endif| +|*if PHP_MAIL_LOG_ENABLED="1"| +php_admin_value[mail.log] = |HOME|/.php/php-mail.log +|*endif| + +|*if LIMIT_EXTENSIONS!=""| +security.limit_extensions = |LIMIT_EXTENSIONS| +|*endif| + + +|CUSTOM2| diff --git a/directadmin-1.62.4/data/templates/proftpd.conf b/directadmin-1.62.4/data/templates/proftpd.conf new file mode 100644 index 0000000..7f7fa31 --- /dev/null +++ b/directadmin-1.62.4/data/templates/proftpd.conf @@ -0,0 +1,91 @@ +ServerName "ProFTPd" +ServerType standalone + +Port 21 +PassivePorts 35000 35999 +UseReverseDNS off +TimesGMT off +TimeoutLogin 120 +TimeoutIdle 600 +TimeoutNoTransfer 900 +TimeoutStalled 3600 + +ScoreboardFile /var/run/proftpd/proftpd.scoreboard +PidFile /var/run/proftpd/proftpd.pid + +TransferLog /var/log/proftpd/xferlog.legacy +LogFormat default "%h %l %u %t \"%r\" %s %b" +LogFormat auth "%v [%P] %h %t \"%r\" %s" +LogFormat write "%h %l %u %t \"%r\" %s %b" + +#DON'T modify this log format. It's used by DirectAdmin to determine user usage +LogFormat userlog "%u %b %m %a" +ExtendedLog /var/log/proftpd/|SERVER_IP|.bytes WRITE,READ userlog + +AuthUserFile /etc/proftpd.passwd +DefaultServer on +AuthOrder mod_auth_file.c + +#AuthPAM off + + + TLSEngine on + TLSLog /var/log/proftpd/proftpd.tls.log + TLSProtocol TLSv1 TLSv1.1 TLSv1.2 + TLSCipherSuite HIGH:MEDIUM:+TLSv1 + TLSVerifyClient off + TLSRequired off + + #Certificates + TLSRSACertificateFile /etc/exim.cert + TLSRSACertificateKeyFile /etc/exim.key + #TLSCACertificateFile /etc/ftpd/root.cert.pem + + + + PassivePorts 35000 35999 + DeferWelcome on + + RequireValidShell no + + DefaultRoot ~ + DirFakeUser on ftp + DirFakeGroup on ftp + + User ftp + Group ftp + #UserAlias anonymous ftp + + AllowStoreRestart on + AllowRetrieveRestart on + + ListOptions -a + ShowSymlinks on + + ##Enable this with proftpd 1.3.4b+ to fix FileZilla MLSD + ##http://www.proftpd.org/docs/modules/mod_facts.html#FactsOptions + # FactsOptions UseSlink + + + Umask 022 + DisplayLogin welcome.msg + DisplayChdir readme + AllowOverwrite yes + IdentLookups off + ExtendedLog /var/log/proftpd/access.log WRITE,READ write + ExtendedLog /var/log/proftpd/auth.log AUTH auth + + # + # Paranoia logging level.... + # + #ExtendedLog /var/log/proftpd/paranoid.log ALL default + + + TLSEngine on + TLSLog /var/log/proftpd/proftpd.tls.log + TLSRSACertificateFile /etc/exim.cert + TLSRSACertificateKeyFile /etc/exim.key + + + +Include /etc/proftpd.vhosts.conf diff --git a/directadmin-1.62.4/data/templates/proftpd.vhosts.conf b/directadmin-1.62.4/data/templates/proftpd.vhosts.conf new file mode 100644 index 0000000..0651437 --- /dev/null +++ b/directadmin-1.62.4/data/templates/proftpd.vhosts.conf @@ -0,0 +1,6 @@ + + ServerName "|ServerName|" + ExtendedLog |ExtendedLog| WRITE,READ userlog + AuthUserFile |AuthUserFile| +|EXTRA| + diff --git a/directadmin-1.62.4/data/templates/redirect_virtual_host.conf b/directadmin-1.62.4/data/templates/redirect_virtual_host.conf new file mode 100644 index 0000000..ff80338 --- /dev/null +++ b/directadmin-1.62.4/data/templates/redirect_virtual_host.conf @@ -0,0 +1,49 @@ +|CUSTOM1| +|?SUEXEC_UG=| +|?OLD_USER=User `USER`| +|?OLD_GROUP=Group `GROUP`| +|*if APACHE_VER="2.0"| +|?SUEXEC_UG=SuexecUserGroup `USER` `GROUP`| +|?OLD_USER=| +|?OLD_GROUP=| +|*endif| + +|?WWW_PREFIX=www.| +|*if WWW_REDIRECT="no"| +|?WWW_PREFIX=| +|*endif| +|CUSTOM2| + + + |CUSTOM3| + ServerName |POINTER| + ServerAlias www.|POINTER| + Redirect 301 / http://|WWW_PREFIX||DOMAIN|/ + + |SUEXEC_UG| + + |OLD_USER| + |OLD_GROUP| + |CUSTOM4| + + +|*if HAVE_SSL="1"| + + |CUSTOM5| + SSLEngine on + SSLCertificateFile |CERT| + SSLCertificateKeyFile |KEY| + |CAROOT| + + ServerName |POINTER| + ServerAlias www.|POINTER| + Redirect 301 / https://|WWW_PREFIX||DOMAIN|/ + + |SUEXEC_UG| + + |OLD_USER| + |OLD_GROUP| + |CUSTOM6| + +|*endif| +|CUSTOM7| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/reply_content-types.list b/directadmin-1.62.4/data/templates/reply_content-types.list new file mode 100644 index 0000000..5e827a0 --- /dev/null +++ b/directadmin-1.62.4/data/templates/reply_content-types.list @@ -0,0 +1,2 @@ +text/plain=default=yes +text/html=default=no diff --git a/directadmin-1.62.4/data/templates/reply_encodings.list b/directadmin-1.62.4/data/templates/reply_encodings.list new file mode 100644 index 0000000..6b15cb3 --- /dev/null +++ b/directadmin-1.62.4/data/templates/reply_encodings.list @@ -0,0 +1,2 @@ +iso-8859-1= +UTF-8= diff --git a/directadmin-1.62.4/data/templates/reply_headers.txt b/directadmin-1.62.4/data/templates/reply_headers.txt new file mode 100644 index 0000000..306e1b9 --- /dev/null +++ b/directadmin-1.62.4/data/templates/reply_headers.txt @@ -0,0 +1,5 @@ +MIME-Version: 1.0 +Content-Type: |Content-Type|; charset=|charset| +|*if charset="UTF-8"| +Content-Transfer-Encoding: 8bit +|*endif| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/reseller_limit.txt b/directadmin-1.62.4/data/templates/reseller_limit.txt new file mode 100644 index 0000000..4db4798 --- /dev/null +++ b/directadmin-1.62.4/data/templates/reseller_limit.txt @@ -0,0 +1,8 @@ +|?SUBJECT=Reseller `USERNAME` has used up `BANDWIDTH`% of their bandwidth| +This is an automated message notifying Reseller |USERNAME| that |BANDWIDTH| % of their bandwidth has been used up. + +It is estimated, at the current rate of use, that the account will be used up in |TIMELEFT| days, at which time the account will be suspended for the remainder of the month. + +The server Admin and Reseller should contact each other if this is an issue. + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/rspamd_settings.conf b/directadmin-1.62.4/data/templates/rspamd_settings.conf new file mode 100644 index 0000000..309333f --- /dev/null +++ b/directadmin-1.62.4/data/templates/rspamd_settings.conf @@ -0,0 +1,59 @@ +|?SETTING_ID=`USERNAME`_prefs| +|?WHITELIST_ID=`USERNAME`_whitelist| +|?BLACKLIST_ID=`USERNAME`_blacklist| +|CUSTOM1| +|SETTING_ID| { + id = "|SETTING_ID|"; + priority = |PRIORITY|; +|CUSTOM2| +|RCPT| +|CUSTOM3| + apply { +|CUSTOM4| + actions { +|CUSTOM5| + +|*if where="delete"| +|?high_score_block=yes| +|?high_score=`required_hits`| +|*endif| + +|*if high_score_block="yes"| + reject = |high_score|; +|*endif| + greylist = null; + "add header" = |required_hits|; +|CUSTOM6| + } +|CUSTOM7| + } +|CUSTOM8| +} +|CUSTOM9| +|*if blacklist_count>"0"| +|BLACKLIST_ID| { + priority = high; + |CUSTOM10| +|RCPT| +|blacklist_from_list| + apply { + actions { + reject = -999; + greylist = null; + "add header" = null; + |CUSTOM11| + } + } +} +|*endif| +|*if whitelist_count>"0"| +|WHITELIST_ID| { + priority = 4; +|CUSTOM12| +|RCPT| +|whitelist_from_list| + want_spam = yes; +|CUSTOM13| +} +|*endif| +|CUSTOM14| diff --git a/directadmin-1.62.4/data/templates/suspended/.htaccess b/directadmin-1.62.4/data/templates/suspended/.htaccess new file mode 100644 index 0000000..2548370 --- /dev/null +++ b/directadmin-1.62.4/data/templates/suspended/.htaccess @@ -0,0 +1,8 @@ + + FileETag None + + Header unset ETag + Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" + Header set Pragma "no-cache" + + diff --git a/directadmin-1.62.4/data/templates/suspended/index.html b/directadmin-1.62.4/data/templates/suspended/index.html new file mode 100644 index 0000000..60b0581 --- /dev/null +++ b/directadmin-1.62.4/data/templates/suspended/index.html @@ -0,0 +1,5 @@ +Suspended Domain +
This account has been suspended.
+Either the domain has been overused, or the reseller ran out of resources.
+
+ diff --git a/directadmin-1.62.4/data/templates/suspension_reason.txt b/directadmin-1.62.4/data/templates/suspension_reason.txt new file mode 100644 index 0000000..ee061f3 --- /dev/null +++ b/directadmin-1.62.4/data/templates/suspension_reason.txt @@ -0,0 +1,11 @@ +user_bandwidth=id=12&text=User Bandwidth +user_quota=id=13&text=User Disk Quota +domain_bandwidth=id=14&text=Domain Bandwidth +domain_quota=id=15&text=Domain Quota +reseller_bandwidth=id=16&text=Reseller Bandwidth +reseller_quota=id=17&text=Reseller Quota +billing=id=18&text=Billing Issue +abuse=id=19&text=Abuse +spam=id=20&text=Spam +other=id=21&text=Other +inactive=id=23&text=Inactive diff --git a/directadmin-1.62.4/data/templates/system_filter.exim b/directadmin-1.62.4/data/templates/system_filter.exim new file mode 100644 index 0000000..3a966b8 --- /dev/null +++ b/directadmin-1.62.4/data/templates/system_filter.exim @@ -0,0 +1,267 @@ +# Exim filter +## Version: 0.17 +# $Id: system_filter.exim,v 1.11 2001/09/19 11:27:56 nigel Exp $ + +## Exim system filter to refuse potentially harmful payloads in +## mail messages +## (c) 2000-2001 Nigel Metheringham +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +## -A copy of the GNU General Public License is distributed with exim itself + +## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- +## If you haven't worked with exim filters before, read +## the install notes at the end of this file. +## The install notes are not a replacement for the exim documentation +## -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + + +## ----------------------------------------------------------------------- +# Only run any of this stuff on the first pass through the +# filter - this is an optomisation for messages that get +# queued and have several delivery attempts +# +# we express this in reverse so we can just bail out +# on inappropriate messages +# +if not first_delivery +then + finish +endif + +## ----------------------------------------------------------------------- +# Check for MS buffer overruns as per BUGTRAQ. +# http://www.securityfocus.com/frames/?content=/templates/article.html%3Fid%3D61 +# This could happen in error messages, hence its placing +# here... +# We substract the first n characters of the date header +# and test if its the same as the date header... which +# is a lousy way of checking if the date is longer than +# n chars long +if ${length_80:$header_date:} is not $header_date: +then + fail text "This message has been rejected because it has\n\ + an overlength date field which can be used\n\ + to subvert Microsoft mail programs\n\ + The following URL has further information\n\ + http://www.securityfocus.com/frames/?content=/templates/article.html%3Fid%3D61" + seen finish +endif + +## ----------------------------------------------------------------------- +# These messages are now being sent with a <> envelope sender, but +# blocking all error messages that pattern match prevents +# bounces getting back.... so we fudge it somewhat and check for known +# header signatures. Other bounces are allowed through. +if $header_from: contains "@sexyfun.net" +then + fail text "This message has been rejected since it has\n\ + the signature of a known virus in the header." + seen finish +endif +if error_message and $header_from: contains "Mailer-Daemon@" +then + # looks like a real error message - just ignore it + finish +endif + +## ----------------------------------------------------------------------- +# Look for single part MIME messages with suspicious name extensions +# Check Content-Type header using quoted filename [content_type_quoted_fn_match] +if $header_content-type: matches "(?:file)?name=(\"[^\"]+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc])\")" +then + fail text "This message has been rejected because it has\n\ + potentially executable content $1\n\ + This form of attachment has been used by\n\ + recent viruses or other malware.\n\ + If you meant to send this file then please\n\ + package it up as a zip file and resend it." + seen finish +endif +# same again using unquoted filename [content_type_unquoted_fn_match] +if $header_content-type: matches "(?:file)?name=(\\\\S+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc]))" +then + fail text "This message has been rejected because it has\n\ + potentially executable content $1\n\ + This form of attachment has been used by\n\ + recent viruses or other malware.\n\ + If you meant to send this file then please\n\ + package it up as a zip file and resend it." + seen finish +endif + + +## ----------------------------------------------------------------------- +# Attempt to catch embedded VBS attachments +# in emails. These were used as the basis for +# the ILOVEYOU virus and its variants - many many varients +# Quoted filename - [body_quoted_fn_match] +if $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\"[^\"]+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc])\")[\\\\s;]" +then + fail text "This message has been rejected because it has\n\ + a potentially executable attachment $1\n\ + This form of attachment has been used by\n\ + recent viruses or other malware.\n\ + If you meant to send this file then please\n\ + package it up as a zip file and resend it." + seen finish +endif +# same again using unquoted filename [body_unquoted_fn_match] +if $message_body matches "(?:Content-(?:Type:(?>\\\\s*)[\\\\w-]+/[\\\\w-]+|Disposition:(?>\\\\s*)attachment);(?>\\\\s*)(?:file)?name=|begin(?>\\\\s+)[0-7]{3,4}(?>\\\\s+))(\\\\S+\\\\.(?:ad[ep]|ba[st]|chm|cmd|com|cpl|crt|eml|exe|hlp|hta|in[fs]|isp|jse?|lnk|md[be]|ms[cipt]|pcd|pif|reg|scr|sct|shs|url|vb[se]|ws[fhc]))[\\\\s;]" +then + fail text "This message has been rejected because it has\n\ + a potentially executable attachment $1\n\ + This form of attachment has been used by\n\ + recent viruses or other malware.\n\ + If you meant to send this file then please\n\ + package it up as a zip file and resend it." + seen finish +endif +## ----------------------------------------------------------------------- + + +#### Version history +# +# 0.01 5 May 2000 +# Initial release +# 0.02 8 May 2000 +# Widened list of content-types accepted, added WSF extension +# 0.03 8 May 2000 +# Embedded the install notes in for those that don't do manuals +# 0.04 9 May 2000 +# Check global content-type header. Efficiency mods to REs +# 0.05 9 May 2000 +# More minor efficiency mods, doc changes +# 0.06 20 June 2000 +# Added extension handling - thx to Douglas Gray Stephens & Jeff Carnahan +# 0.07 19 July 2000 +# Latest MS Outhouse bug catching +# 0.08 19 July 2000 +# Changed trigger length to 80 chars, fixed some spelling +# 0.09 29 September 2000 +# More extensions... its getting so we should just allow 2 or 3 through +# 0.10 18 January 2001 +# Removed exclusion for error messages - this is a little nasty +# since it has other side effects, hence we do still exclude +# on unix like error messages +# 0.11 20 March, 2001 +# Added CMD extension, tidied docs slightly, added RCS tag +# ** Missed changing version number at top of file :-( +# 0.12 10 May, 2001 +# Added HTA extension +# 0.13 22 May, 2001 +# Reformatted regexps and code to build them so that they are +# shorter than the limits on pre exim 3.20 filters. This will +# make them significantly less efficient, but I am getting so +# many queries about this that requiring 3.2x appears unsupportable. +# 0.14 15 August,2001 +# Added .lnk extension - most requested item :-) +# Reformatted everything so its now built from a set of short +# library files, cutting down on manual duplication. +# Changed \w in filename detection to . - dodges locale problems +# Explicit application of GPL after queries on license status +# 0.15 17 August, 2001 +# Changed the . in filename detect to \S (stops it going mad) +# 0.16 19 September, 2001 +# Pile of new extensions including the eml in current use +# 0.17 19 September, 2001 +# Syntax fix +# +#### Install Notes +# +# Exim filters run the exim filter language - a very primitive +# scripting language - in place of a user .forward file, or on +# a per system basis (on all messages passing through). +# The filtering capability is documented in the main set of manuals +# a copy of which can be found on the exim web site +# http://www.exim.org/ +# +# To install, copy the filter file (with appropriate permissions) +# to /etc/exim/system_filter.exim and add to your exim config file +# [location is installation depedant - typicaly /etc/exim/config ] +# in the first section the line:- +# message_filter = /etc/exim/system_filter.exim +# message_body_visible = 5000 +# +# You may also want to set the message_filter_user & message_filter_group +# options, but they default to the standard exim user and so can +# be left untouched. The other message_filter_* options are only +# needed if you modify this to do other functions such as deliveries. +# The main exim documentation is quite thorough and so I see no need +# to expand it here... +# +# Any message that matches the filter will then be bounced. +# If you wish you can change the error message by editing it +# in the section above - however be careful you don't break it. +# +# After install exim should be restarted - a kill -HUP to the +# daemon will do this. +# +#### LIMITATIONS +# +# This filter tries to parse MIME with a regexp... that doesn't +# work too well. It will also only see the amount of the body +# specified in message_body_visible +# +#### BASIS +# +# The regexp that is used to pickup MIME/uuencoded body parts with +# quoted filenames is replicated below (in perl format). +# You need to remember that exim converts newlines to spaces in +# the message_body variable. +# +# (?:Content- # start of content header +# (?:Type: (?>\s*) # rest of c/t header +# [\w-]+/[\w-]+ # content-type (any) +# |Disposition: (?>\s*) # content-disposition hdr +# attachment) # content-disposition +# ;(?>\s*) # ; space or newline +# (?:file)?name= # filename=/name= +# |begin (?>\s+) [0-7]{3,4} (?>\s+)) # begin octal-mode +# (\"[^\"]+\. # quoted filename. +# (?:ad[ep] # list of extns +# |ba[st] +# |chm +# |cmd +# |com +# |cpl +# |crt +# |eml +# |exe +# |hlp +# |hta +# |in[fs] +# |isp +# |jse? +# |lnk +# |md[be] +# |ms[cipt] +# |pcd +# |pif +# |reg +# |scr +# |sct +# |shs +# |url +# |vb[se] +# |ws[fhc]) +# \" # end quote +# ) # end of filename capture +# [\s;] # trailing ;/space/newline + +# +# +### [End] + diff --git a/directadmin-1.62.4/data/templates/user_limit.txt b/directadmin-1.62.4/data/templates/user_limit.txt new file mode 100644 index 0000000..53cd4af --- /dev/null +++ b/directadmin-1.62.4/data/templates/user_limit.txt @@ -0,0 +1,11 @@ +|*if REASON="inode"||?SUBJECT=User `USERNAME` has used up `INODE`% of their inode limit||*else||?SUBJECT=User `USERNAME` has used up `BANDWIDTH`% of their bandwidth and `QUOTA`% of their allocated disk space||*endif|This is an automated message notifying User |USERNAME| has used the following resources: +|*if BANDWIDTHLIMITMEG>"0"|Bandwidth: |BANDWIDTH|%|*endif| +|*if QUOTALIMITMEG>"0"|Disk Quota: |QUOTA|%|*endif| +|*if INODELIMIT>"0"|File Inodes: |INODE|%|*endif| + +|*if BANDWIDTH_MAY_RUN_OUT="1"|It is estimated, at the current rate of use, that the account bandwidth will be used up in |TIMELEFT| days, at which time the account may be suspended for the remainder of the month. +There are |DAYS_REMAINING_THIS_MONTH| days left before the bandwidth usage is reset.|*endif| + +The User should contact Support if this is an issue. + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/user_prefs b/directadmin-1.62.4/data/templates/user_prefs new file mode 100644 index 0000000..1af419c --- /dev/null +++ b/directadmin-1.62.4/data/templates/user_prefs @@ -0,0 +1,24 @@ +|?RW_HEADER_SUB=rewrite_header subject `subject_tag`| +|*if subject_tag=""| +|?RW_HEADER_SUB=| +|*endif| + +|*if VERSION3="yes"| +required_score |required_hits| +|RW_HEADER_SUB| +|*else| + +required_hits |required_hits| +rewrite_subject |rewrite_subject| +subject_tag |subject_tag| + +|*endif| + +report_safe |report_safe| + +|blacklist_from| +|whitelist_from| + +#SAFE AREA start +|SAFE_CODE| +#SAFE AREA end diff --git a/directadmin-1.62.4/data/templates/user_suspension.txt b/directadmin-1.62.4/data/templates/user_suspension.txt new file mode 100644 index 0000000..ca2fd7e --- /dev/null +++ b/directadmin-1.62.4/data/templates/user_suspension.txt @@ -0,0 +1,8 @@ +|?SUBJECT=User `USERNAME` has been suspended for bandwidth overusage| +This is an automated message notifying you that User |USERNAME| has been suspended for bandwidth overusage. + +The account will be automatically unsuspended at the beginning of the month when the bandwidth is reset. + +Account E-Mail: |EMAIL| + +|MSG_FOOTER| \ No newline at end of file diff --git a/directadmin-1.62.4/data/templates/user_virtual_host.conf b/directadmin-1.62.4/data/templates/user_virtual_host.conf new file mode 100644 index 0000000..429861c --- /dev/null +++ b/directadmin-1.62.4/data/templates/user_virtual_host.conf @@ -0,0 +1,112 @@ +|*if PHP="OFF"| +|?HAVE_PHP1_FPM=0| +|?HAVE_PHP2_FPM=0| +|*endif| + +|?OBDP1=| +|*if PHP1_RELEASE!="0"| +|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/| +|*endif| +|?OBDP2=| +|*if PHP2_RELEASE!="0"| +|?OBDP2=:/usr/local/php`PHP2_RELEASE`/lib/php/| +|*endif| + +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/`OBDP1``OBDP2`| + +|?FASTCGI_OPENBASEDIR=| +|*if OPEN_BASEDIR_ENABLED="ON"| +|?FASTCGI_OPENBASEDIR=-d open_basedir="`OPEN_BASEDIR_PATH`"| +|*endif| +|?PHP_MAIL_LOG=| +|?CLI_PHP_MAIL_LOG=| +|*if PHP_MAIL_LOG_ENABLED="1"| +|?PHP_MAIL_LOG=-d mail.log="`HOME`/.php/php-mail.log"| +|?CLI_PHP_MAIL_LOG=php_admin_value mail.log `HOME`/.php/php-mail.log| +|*endif| + +|?PHP_EMAIL=`USER`@`DEFAULT_DOMAIN`| + + + + |*if SUPHP="1"| + + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| + + |*endif| + + |*if HAVE_RUID2="1"| + + RMode config + RUidGid |USER| |GROUP| + #RGroups apache |SECURE_ACCESS_GROUP| + RGroups @none + + |*endif| + |*if RUID2_AND_MOD_SECURITY="1"| + + SecAuditLogStorageDir |MODSEC_AUDIT_DIR|/|USER| + + |*endif| + + |*if HAVE_PHP1_FPM="1"| + + AddHandler "proxy:unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .inc .php .phtml .php|PHP1_RELEASE| + + |*endif| + + |*if HAVE_PHP2_FPM="1"| + + AddHandler "proxy:unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .php|PHP2_RELEASE| + + |*endif| + + |*if HAVE_PHP1_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. + |*endif| + + |*if HAVE_PHP2_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. + |*endif| + + |*if HAVE_SUEXEC_PER_DIR="1"| + + SuexecUserGroup |USER| |GROUP| + + |*endif| + + |*if HAVE_PHP1_FCGI="1"| + + + SetHandler fcgid-script + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP1_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DEFAULT_DOMAIN|.ini |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php + Options +ExecCGI + + + |*endif| + + |*if HAVE_PHP2_FCGI="1"| + + + SetHandler fcgid-script + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP2_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DEFAULT_DOMAIN|.ini |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php|PHP2_RELEASE| + Options +ExecCGI + + + |*endif| + |IF_MODULE_LITESPEED_OPEN| + |*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| + |*endif| + |*if USER_CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |PHP_EMAIL|' + |CLI_PHP_MAIL_LOG| + |*endif| + |*if OPEN_BASEDIR_AND_CLI="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| + |*endif| + |IF_MODULE_LITESPEED_CLOSE| + + diff --git a/directadmin-1.62.4/data/templates/userdir/.htaccess b/directadmin-1.62.4/data/templates/userdir/.htaccess new file mode 100644 index 0000000..fb21690 --- /dev/null +++ b/directadmin-1.62.4/data/templates/userdir/.htaccess @@ -0,0 +1,5 @@ +|?DOMAINCOND=RewriteCond %{REQUEST_URI} !^/~`USERNAME`/`DOMAIN`(.*) [NC]| +RewriteEngine On +|DOMAINS| +RewriteRule ^(.*)$ /~|USERNAME|/|DEFFAULT_DOMAIN|/$1 + diff --git a/directadmin-1.62.4/data/templates/virtual_host.conf b/directadmin-1.62.4/data/templates/virtual_host.conf new file mode 100644 index 0000000..b420625 --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host.conf @@ -0,0 +1,46 @@ +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/usr/local/lib/php/| + +|CUSTOM| +|?CGI=ScriptAlias /cgi-bin/ `DOCROOT`/cgi-bin/| + ServerName www.|DOMAIN| + ServerAlias www.|DOMAIN| |DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |DOCROOT| + |CGI| + + |USECANONICALNAME| + + User |USER| + Group |GROUP| + CustomLog /var/log/httpd/domains/|DOMAIN|.bytes bytes + CustomLog /var/log/httpd/domains/|DOMAIN|.log combined + ErrorLog /var/log/httpd/domains/|DOMAIN|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + + + Options +Includes -Indexes +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |USER|@|DOMAIN|' +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| + +|HANDLERS| +|MIMETYPES| + + diff --git a/directadmin-1.62.4/data/templates/virtual_host2.conf b/directadmin-1.62.4/data/templates/virtual_host2.conf new file mode 100644 index 0000000..69d2c7d --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host2.conf @@ -0,0 +1,185 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/public_html| + +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| + +|?OBDP1=| +|*if PHP1_RELEASE!="0"| +|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/| +|*endif| +|?OBDP2=| +|*if PHP2_RELEASE!="0"| +|?OBDP2=:/usr/local/php`PHP2_RELEASE`/lib/php/| +|*endif| + +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/`OBDP1``OBDP2`| + +|?FASTCGI_OPENBASEDIR=| +|*if OPEN_BASEDIR_ENABLED="ON"| +|?FASTCGI_OPENBASEDIR=-d open_basedir="`OPEN_BASEDIR_PATH`"| +|*endif| + +|?PHP_MAIL_LOG=| +|?CLI_PHP_MAIL_LOG=| +|*if PHP_MAIL_LOG_ENABLED="1"| +|?PHP_MAIL_LOG=-d mail.log="`HOME`/.php/php-mail.log"| +|?CLI_PHP_MAIL_LOG=php_admin_value mail.log `HOME`/.php/php-mail.log| +|*endif| + +|?PHP_EMAIL=`USER`@`DOMAIN`| +|?FASTCGI_SENDMAIL_FROM=-d sendmail_from="`PHP_EMAIL`"| + +|?ALLOW_OVERRIDE=AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,IncludesNOEXEC,MultiViews,SymLinksIfOwnerMatch,FollowSymLinks,None| +|?COMBINED_LOG=combined| + + +|CUSTOM| +|?CGI=ScriptAlias /cgi-bin/ `DOCROOT`/cgi-bin/| + ServerName www.|HOST_DOMAIN| + ServerAlias www.|HOST_DOMAIN| |HOST_DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |DOCROOT| + |CGI| + + |USECANONICALNAME| + + |FORCE_SSL_REDIRECT| + + + SuexecUserGroup |USER| |GROUP| + + |*if HAVE_RUID2="1"| + + RMode config + RUidGid |USER| |GROUP| + #RGroups apache |SECURE_ACCESS_GROUP| + RGroups @none + + |*endif| + |*if RUID2_AND_MOD_SECURITY="1"| + + SecAuditLogStorageDir |MODSEC_AUDIT_DIR|/|USER| + + |*endif| + + CustomLog |APACHELOGDIR|/|DOMAIN|.bytes bytes + CustomLog |APACHELOGDIR|/|DOMAIN|.log |COMBINED_LOG| + ErrorLog |APACHELOGDIR|/|DOMAIN|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + +|*if HAVE_PHP1_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| + +|*if HAVE_PHP2_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| +|CUSTOM2| + +|CUSTOM3| +|*if CGI=""| + |ALLOW_OVERRIDE| + Options -ExecCGI -Includes +IncludesNOEXEC +|*endif| +|*if HAVE_PHP1_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .inc .php .phtml .php|PHP1_RELEASE| + + +|*endif| +|*if HAVE_PHP2_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .php|PHP2_RELEASE| + + +|*endif| + +|*if HAVE_PHP1_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP1_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|*if HAVE_PHP2_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP2_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php|PHP2_RELEASE| + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|IF_MODULE_LITESPEED_OPEN| +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |PHP_EMAIL|' + |CLI_PHP_MAIL_LOG| +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|IF_MODULE_LITESPEED_CLOSE| +|*if HAVE_PHP1_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| +|*if HAVE_PHP1_SUPHP="1"| + + AddHandler x-httpd-php|PHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_SUPHP="1"| + + AddHandler x-httpd-php|PHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| +|*if PHP="OFF"| + #PHP is OFF for this domain +|*endif| + + +|*if USE_HOSTNAME_FOR_ALIAS="1"| + RewriteEngine on + RewriteOptions inherit +|*endif| + +|*if WEBSERVER="litespeed"| + + CacheRoot lscache + +|*endif| + +|HANDLERS| +|MIMETYPES| +|HOTLINK_PROTECTION| +|CUSTOM4| + diff --git a/directadmin-1.62.4/data/templates/virtual_host2_secure.conf b/directadmin-1.62.4/data/templates/virtual_host2_secure.conf new file mode 100644 index 0000000..266443d --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host2_secure.conf @@ -0,0 +1,191 @@ +|CUSTOM1| +|?CGI=ScriptAlias /cgi-bin/ `HOME`/domains/`DOMAIN`/public_html/cgi-bin/| +|?DOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/private_html| + +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| + +|?OBDP1=| +|*if PHP1_RELEASE!="0"| +|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/| +|*endif| +|?OBDP2=| +|*if PHP2_RELEASE!="0"| +|?OBDP2=:/usr/local/php`PHP2_RELEASE`/lib/php/| +|*endif| + +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/`OBDP1``OBDP2`| + +|?FASTCGI_OPENBASEDIR=| +|*if OPEN_BASEDIR_ENABLED="ON"| +|?FASTCGI_OPENBASEDIR=-d open_basedir="`OPEN_BASEDIR_PATH`"| +|*endif| + +|?PHP_MAIL_LOG=| +|?CLI_PHP_MAIL_LOG=| +|*if PHP_MAIL_LOG_ENABLED="1"| +|?PHP_MAIL_LOG=-d mail.log="`HOME`/.php/php-mail.log"| +|?CLI_PHP_MAIL_LOG=php_admin_value mail.log `HOME`/.php/php-mail.log| +|*endif| + +|?PHP_EMAIL=`USER`@`DOMAIN`| +|?FASTCGI_SENDMAIL_FROM=-d sendmail_from="`PHP_EMAIL`"| + +|?ALLOW_OVERRIDE=AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,IncludesNOEXEC,MultiViews,SymLinksIfOwnerMatch,FollowSymLinks,None| +|?COMBINED_LOG=combined| + + +|CUSTOM| + SSLEngine on + SSLCertificateFile |CERT| + SSLCertificateKeyFile |KEY| + |CAROOT| + + ServerName www.|HOST_DOMAIN| + ServerAlias www.|HOST_DOMAIN| |HOST_DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |DOCROOT| + |CGI| + + |USECANONICALNAME| + + |FORCE_SSL_REDIRECT| + + + SuexecUserGroup |USER| |GROUP| + + |*if HAVE_RUID2="1"| + + RMode config + RUidGid |USER| |GROUP| + #RGroups apache |SECURE_ACCESS_GROUP| + RGroups @none + + |*endif| + |*if RUID2_AND_MOD_SECURITY="1"| + + SecAuditLogStorageDir |MODSEC_AUDIT_DIR|/|USER| + + |*endif| + + CustomLog |APACHELOGDIR|/|DOMAIN|.bytes bytes + CustomLog |APACHELOGDIR|/|DOMAIN|.log |COMBINED_LOG| + ErrorLog |APACHELOGDIR|/|DOMAIN|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + +|*if HAVE_PHP1_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| + +|*if HAVE_PHP2_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| +|CUSTOM2| + +|CUSTOM3| +|*if CGI=""| + |ALLOW_OVERRIDE| + Options -ExecCGI -Includes +IncludesNOEXEC +|*endif| +|*if HAVE_PHP1_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .inc .php .phtml .php|PHP1_RELEASE| + + +|*endif| +|*if HAVE_PHP2_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .php|PHP2_RELEASE| + + +|*endif| + + +|*if HAVE_PHP1_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP1_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|*if HAVE_PHP2_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP2_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php|PHP2_RELEASE| + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|IF_MODULE_LITESPEED_OPEN| +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |PHP_EMAIL|' + |CLI_PHP_MAIL_LOG| +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|IF_MODULE_LITESPEED_CLOSE| +|*if HAVE_PHP1_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| +|*if HAVE_PHP1_SUPHP="1"| + + AddHandler x-httpd-php|PHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_SUPHP="1"| + + AddHandler x-httpd-php|PHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| +|*if PHP="OFF"| + #PHP is OFF for this domain +|*endif| + + +|*if USE_HOSTNAME_FOR_ALIAS="1"| + RewriteEngine on + RewriteOptions inherit +|*endif| + +|*if WEBSERVER="litespeed"| + + CacheRoot lscache + +|*endif| + +|HANDLERS| +|MIMETYPES| +|HOTLINK_PROTECTION| +|CUSTOM4| + diff --git a/directadmin-1.62.4/data/templates/virtual_host2_secure_sub.conf b/directadmin-1.62.4/data/templates/virtual_host2_secure_sub.conf new file mode 100644 index 0000000..5ab4406 --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host2_secure_sub.conf @@ -0,0 +1,189 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/private_html| + +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| + +|?OBDP1=| +|*if PHP1_RELEASE!="0"| +|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/| +|*endif| +|?OBDP2=| +|*if PHP2_RELEASE!="0"| +|?OBDP2=:/usr/local/php`PHP2_RELEASE`/lib/php/| +|*endif| + +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/`OBDP1``OBDP2`| + +|?FASTCGI_OPENBASEDIR=| +|*if OPEN_BASEDIR_ENABLED="ON"| +|?FASTCGI_OPENBASEDIR=-d open_basedir="`OPEN_BASEDIR_PATH`"| +|*endif| + +|?PHP_MAIL_LOG=| +|?CLI_PHP_MAIL_LOG=| +|*if PHP_MAIL_LOG_ENABLED="1"| +|?PHP_MAIL_LOG=-d mail.log="`HOME`/.php/php-mail.log"| +|?CLI_PHP_MAIL_LOG=php_admin_value mail.log `HOME`/.php/php-mail.log| +|*endif| + +|?PHP_EMAIL=`USER`@`DOMAIN`| +|?FASTCGI_SENDMAIL_FROM=-d sendmail_from="`PHP_EMAIL`"| + +|?ALLOW_OVERRIDE=AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,IncludesNOEXEC,MultiViews,SymLinksIfOwnerMatch,FollowSymLinks,None| +|?COMBINED_LOG=combined| + + +|CUSTOM| +|?SDOCROOT=`DOCROOT`/`SUB`| +|?CGI=ScriptAlias /cgi-bin/ `SDOCROOT`/cgi-bin/| + SSLEngine on + SSLCertificateFile |CERT| + SSLCertificateKeyFile |KEY| + |CAROOT| + + ServerName www.|SUB|.|HOST_DOMAIN| + ServerAlias www.|SUB|.|HOST_DOMAIN| |SUB|.|HOST_DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |SDOCROOT| + |CGI| + + |USECANONICALNAME| + + |FORCE_SSL_REDIRECT| + + + SuexecUserGroup |USER| |GROUP| + + |*if HAVE_RUID2="1"| + + RMode config + RUidGid |USER| |GROUP| + #RGroups apache |SECURE_ACCESS_GROUP| + RGroups @none + + |*endif| + |*if RUID2_AND_MOD_SECURITY="1"| + + SecAuditLogStorageDir |MODSEC_AUDIT_DIR|/|USER| + + |*endif| + + CustomLog |APACHELOGDIR|/|DOMAIN|.|SUB|.bytes bytes + CustomLog |APACHELOGDIR|/|DOMAIN|.|SUB|.log |COMBINED_LOG| + ErrorLog |APACHELOGDIR|/|DOMAIN|.|SUB|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + +|*if HAVE_PHP1_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| + +|*if HAVE_PHP2_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| +|CUSTOM2| + +|CUSTOM3| +|*if CGI=""| + |ALLOW_OVERRIDE| + Options -ExecCGI -Includes +IncludesNOEXEC +|*endif| +|*if HAVE_PHP1_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .inc .php .phtml .php|PHP1_RELEASE| + + +|*endif| +|*if HAVE_PHP2_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .php|PHP2_RELEASE| + + +|*endif| + +|*if HAVE_PHP1_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP1_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|*if HAVE_PHP2_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP2_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php|PHP2_RELEASE| + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|IF_MODULE_LITESPEED_OPEN| +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |PHP_EMAIL|' + |CLI_PHP_MAIL_LOG| +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|IF_MODULE_LITESPEED_CLOSE| +|*if HAVE_PHP1_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| +|*if HAVE_PHP1_SUPHP="1"| + + AddHandler x-httpd-php|PHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_SUPHP="1"| + + AddHandler x-httpd-php|PHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| + + +|*if USE_HOSTNAME_FOR_ALIAS="1"| + RewriteEngine on + RewriteOptions inherit +|*endif| + +|*if WEBSERVER="litespeed"| + + CacheRoot lscache + +|*endif| + +|HANDLERS| +|MIMETYPES| +|HOTLINK_PROTECTION| +|CUSTOM4| + + diff --git a/directadmin-1.62.4/data/templates/virtual_host2_sub.conf b/directadmin-1.62.4/data/templates/virtual_host2_sub.conf new file mode 100644 index 0000000..2cd62a1 --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host2_sub.conf @@ -0,0 +1,184 @@ +|CUSTOM1| +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?REALDOCROOT=`HOME`/domains/`DOMAIN`/public_html| + +|?HOST_DOMAIN=`DOMAIN`| +|*if HOST_POINTER| +|?HOST_DOMAIN=`HOST_POINTER`| +|*endif| + +|?OBDP1=| +|*if PHP1_RELEASE!="0"| +|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/| +|*endif| +|?OBDP2=| +|*if PHP2_RELEASE!="0"| +|?OBDP2=:/usr/local/php`PHP2_RELEASE`/lib/php/| +|*endif| + +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/opt/alt/php`PHP1_RELEASE`/usr/share/pear/:/dev/urandom:/usr/local/lib/php/`OBDP1``OBDP2`| + +|?FASTCGI_OPENBASEDIR=| +|*if OPEN_BASEDIR_ENABLED="ON"| +|?FASTCGI_OPENBASEDIR=-d open_basedir="`OPEN_BASEDIR_PATH`"| +|*endif| + +|?PHP_MAIL_LOG=| +|?CLI_PHP_MAIL_LOG=| +|*if PHP_MAIL_LOG_ENABLED="1"| +|?PHP_MAIL_LOG=-d mail.log="`HOME`/.php/php-mail.log"| +|?CLI_PHP_MAIL_LOG=php_admin_value mail.log `HOME`/.php/php-mail.log| +|*endif| + +|?PHP_EMAIL=`USER`@`DOMAIN`| +|?FASTCGI_SENDMAIL_FROM=-d sendmail_from="`PHP_EMAIL`"| + +|?ALLOW_OVERRIDE=AllowOverride AuthConfig FileInfo Indexes Limit Options=Indexes,IncludesNOEXEC,MultiViews,SymLinksIfOwnerMatch,FollowSymLinks,None| +|?COMBINED_LOG=combined| + + +|CUSTOM| +|?SDOCROOT=`DOCROOT`/`SUB`| +|?CGI=ScriptAlias /cgi-bin/ `SDOCROOT`/cgi-bin/| + ServerName www.|SUB|.|HOST_DOMAIN| + ServerAlias www.|SUB|.|HOST_DOMAIN| |SUB|.|HOST_DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |SDOCROOT| + |CGI| + + |USECANONICALNAME| + + |FORCE_SSL_REDIRECT| + + + SuexecUserGroup |USER| |GROUP| + + |*if HAVE_RUID2="1"| + + RMode config + RUidGid |USER| |GROUP| + #RGroups apache |SECURE_ACCESS_GROUP| + RGroups @none + + |*endif| + |*if RUID2_AND_MOD_SECURITY="1"| + + SecAuditLogStorageDir |MODSEC_AUDIT_DIR|/|USER| + + |*endif| + + CustomLog |APACHELOGDIR|/|DOMAIN|.|SUB|.bytes bytes + CustomLog |APACHELOGDIR|/|DOMAIN|.|SUB|.log |COMBINED_LOG| + ErrorLog |APACHELOGDIR|/|DOMAIN|.|SUB|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + +|*if HAVE_PHP1_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| + +|*if HAVE_PHP2_FPM_OLD="1"| + #Make sure you're running Apache 2.4.10 or newer. +|*endif| +|CUSTOM2| + +|CUSTOM3| +|*if CGI=""| + |ALLOW_OVERRIDE| + Options -ExecCGI -Includes +IncludesNOEXEC +|*endif| +|*if HAVE_PHP1_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .inc .php .phtml .php|PHP1_RELEASE| + + +|*endif| +|*if HAVE_PHP2_FPM="1"| + + + #ProxyErrorOverride on + AddHandler "proxy:unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .php|PHP2_RELEASE| + + +|*endif| + +|*if HAVE_PHP1_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP1_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|*if HAVE_PHP2_FCGI="1"| + + FCGIWrapper '/usr/local/safe-bin/fcgid|PHP2_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php|PHP2_RELEASE| + + SetHandler fcgid-script + Options +ExecCGI + + +|*endif| +|IF_MODULE_LITESPEED_OPEN| +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |PHP_EMAIL|' + |CLI_PHP_MAIL_LOG| +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|IF_MODULE_LITESPEED_CLOSE| +|*if HAVE_PHP1_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_CLI="1"| + + AddHandler application/x-httpd-php|LSPHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| +|*if HAVE_PHP1_SUPHP="1"| + + AddHandler x-httpd-php|PHP1_RELEASE| .php + +|*endif| +|*if HAVE_PHP2_SUPHP="1"| + + AddHandler x-httpd-php|PHP2_RELEASE| .php|PHP2_RELEASE| + +|*endif| + + + +|*if USE_HOSTNAME_FOR_ALIAS="1"| + RewriteEngine on + RewriteOptions inherit +|*endif| + +|*if WEBSERVER="litespeed"| + + CacheRoot lscache + +|*endif| + +|HANDLERS| +|MIMETYPES| +|HOTLINK_PROTECTION| +|CUSTOM4| + diff --git a/directadmin-1.62.4/data/templates/virtual_host_secure.conf b/directadmin-1.62.4/data/templates/virtual_host_secure.conf new file mode 100644 index 0000000..633daea --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host_secure.conf @@ -0,0 +1,51 @@ +|?CGI=ScriptAlias /cgi-bin/ `HOME`/domains/`DOMAIN`/public_html/cgi-bin/| +|?DOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/usr/local/lib/php/| + +|CUSTOM| + SSLEngine on + SSLCertificateFile |CERT| + SSLCertificateKeyFile |KEY| + |CAROOT| + + ServerName www.|DOMAIN| + ServerAlias www.|DOMAIN| |DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |DOCROOT| + |CGI| + + |USECANONICALNAME| + + User |USER| + Group |GROUP| + CustomLog /var/log/httpd/domains/|DOMAIN|.bytes bytes + CustomLog /var/log/httpd/domains/|DOMAIN|.log combined + ErrorLog /var/log/httpd/domains/|DOMAIN|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + + + Options +Includes -Indexes +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |USER|@|DOMAIN|' +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| + +|HANDLERS| +|MIMETYPES| + + diff --git a/directadmin-1.62.4/data/templates/virtual_host_secure_sub.conf b/directadmin-1.62.4/data/templates/virtual_host_secure_sub.conf new file mode 100644 index 0000000..cef39e1 --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host_secure_sub.conf @@ -0,0 +1,51 @@ +|?CGI=ScriptAlias /cgi-bin/ `HOME`/domains/`DOMAIN`/public_html/`SUB`/cgi-bin/| +|?DOCROOT=`HOME`/domains/`DOMAIN`/private_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/usr/local/lib/php/| + +|CUSTOM| + SSLEngine on + SSLCertificateFile |CERT| + SSLCertificateKeyFile |KEY| + |CAROOT| + + ServerName www.|SUB|.|DOMAIN| + ServerAlias www.|SUB|.|DOMAIN| |SUB|.|DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |DOCROOT|/|SUB| + |CGI| + + |USECANONICALNAME| + + User |USER| + Group |GROUP| + CustomLog /var/log/httpd/domains/|DOMAIN|.|SUB|.bytes bytes + CustomLog /var/log/httpd/domains/|DOMAIN|.|SUB|.log combined + ErrorLog /var/log/httpd/domains/|DOMAIN|.|SUB|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + + + Options +Includes -Indexes +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |USER|@|DOMAIN|' +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| + +|HANDLERS| +|MIMETYPES| + + diff --git a/directadmin-1.62.4/data/templates/virtual_host_sub.conf b/directadmin-1.62.4/data/templates/virtual_host_sub.conf new file mode 100644 index 0000000..391517b --- /dev/null +++ b/directadmin-1.62.4/data/templates/virtual_host_sub.conf @@ -0,0 +1,46 @@ +|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html| +|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp:/usr/local/lib/php/| + +|CUSTOM| +|?CGI=ScriptAlias /cgi-bin/ `DOCROOT`/`SUB`/cgi-bin/| + ServerName www.|SUB|.|DOMAIN| + ServerAlias www.|SUB|.|DOMAIN| |SUB|.|DOMAIN| |SERVER_ALIASES| + ServerAdmin |ADMIN| + DocumentRoot |DOCROOT|/|SUB| + |CGI| + + |USECANONICALNAME| + + User |USER| + Group |GROUP| + CustomLog /var/log/httpd/domains/|DOMAIN|.|SUB|.bytes bytes + CustomLog /var/log/httpd/domains/|DOMAIN|.|SUB|.log combined + ErrorLog /var/log/httpd/domains/|DOMAIN|.|SUB|.error.log + + |*if SUSPENDED_REASON| + + SetEnv reason |SUSPENDED_REASON| + + |*endif| + + + Options +Includes -Indexes +|*if HAVE_SAFE_MODE="1"| + php_admin_flag safe_mode |SAFE_MODE| +|*endif| +|*if CLI="1"| + php_admin_flag engine |PHP| + php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |USER|@|DOMAIN|' +|*endif| +|*if OPEN_BASEDIR="ON"| + php_admin_value open_basedir |OPEN_BASEDIR_PATH| +|*endif| +|*if SUPHP="1"| + suPHP_Engine |PHP| + suPHP_UserGroup |USER| |GROUP| +|*endif| + +|HANDLERS| +|MIMETYPES| + + diff --git a/directadmin-1.62.4/data/templates/zone.conf b/directadmin-1.62.4/data/templates/zone.conf new file mode 100644 index 0000000..a813361 --- /dev/null +++ b/directadmin-1.62.4/data/templates/zone.conf @@ -0,0 +1 @@ +zone "|DOMAIN|" { type master; file "|PATH|/|DOMAIN|.db|SIGNED|"; }; diff --git a/directadmin-1.62.4/dataskq b/directadmin-1.62.4/dataskq new file mode 100644 index 0000000..d20ba5a Binary files /dev/null and b/directadmin-1.62.4/dataskq differ diff --git a/directadmin-1.62.4/directadmin b/directadmin-1.62.4/directadmin new file mode 100644 index 0000000..8e731eb Binary files /dev/null and b/directadmin-1.62.4/directadmin differ diff --git a/directadmin-1.62.4/scripts/README b/directadmin-1.62.4/scripts/README new file mode 100644 index 0000000..facae7f --- /dev/null +++ b/directadmin-1.62.4/scripts/README @@ -0,0 +1,9 @@ +DirectAdmin Scripts + +To install DirectAdmin run ./install.sh + +this will first do some checks to make sure that things are installed (named etc) + +then it will ask some question and save the data to setup.txt + +If you encounter errors and need to change some of the setup data, simply delete setup.txt and re-run setup.sh diff --git a/directadmin-1.62.4/scripts/add_email.sh b/directadmin-1.62.4/scripts/add_email.sh new file mode 100644 index 0000000..2aaa107 --- /dev/null +++ b/directadmin-1.62.4/scripts/add_email.sh @@ -0,0 +1,99 @@ +#!/bin/sh + +#script to add an email account to DirectAdmin via command line. + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 1; +fi + +if [ "$#" -lt 4 ]; then + echo "Usage:"; + echo " $0 '' <quota>"; + echo ""; + echo "Where the cryptedpass can either be an MD5/DES password"; + echo "If plaintext is set to 1, then it can be a raw password"; + echo "Else, set plaintext to 0 to use the provided crypted pass." + echo "quota, in bytes. Use 0 for unlimited"; + echo ""; + echo "The domain must already exist under a DA account"; + exit 2; +fi + +EMAIL=$1 +DOMAIN=$2 +PASS=$3 +PLAIN=$4 +QUOTAVAL=$5 + +DAUSER=`grep "^${DOMAIN}:" /etc/virtual/domainowners | awk '{print $2;}'` +UHOME=`grep "^${DAUSER}:" /etc/passwd | cut -d: -f6` + +DOMAINCONF=/usr/local/directadmin/data/users/${DAUSER}/domains/${DOMAIN}.conf +if [ ! -e ${DOMAINCONF} ]; then + echo "Cannot find ${DOMAINCONF}"; + echo "Make sure the domain exists and is set in the /etc/virtual/domainowners file"; + exit 3; +fi + +PASSWD=/etc/virtual/${DOMAIN}/passwd +QUOTA=/etc/virtual/${DOMAIN}/quota +if [ ! -e ${PASSWD} ]; then + echo "Cannot find ${PASSWD}. Make sure the domain exists"; + exit 4; +fi + +DOVECOT=`/usr/local/directadmin/directadmin c | grep ^dovecot= | cut -d= -f2` +if [ "${DOVECOT}" != 0 ]; then + DOVECOT=1; +fi + +COUNT=`grep -c "^${EMAIL}:" ${PASSWD}` +if [ "${COUNT}" = 0 ]; then + PASSVALUE=$PASS + if [ ${PLAIN} = 1 ]; then + #encode the password. + PASSVALUE=`echo "$PASS" | /usr/bin/openssl passwd -1 -stdin` + fi + + if [ "${DOVECOT}" = 1 ]; then + UUID=`id -u ${DAUSER}` + MGID=`id -g mail` + if /usr/local/directadmin/directadmin c | grep -m1 -q '^add_userdb_quota=1$'; then + APPEND=":userdb_quota_rule=*:bytes=${QUOTAVAL}" + else + APPEND="" + fi + echo "${EMAIL}:${PASSVALUE}:${UUID}:${MGID}::${UHOME}/imap/${DOMAIN}/${EMAIL}:/bin/false${APPEND}" >> ${PASSWD} + else + echo "${EMAIL}:${PASSVALUE}" >> ${PASSWD} + fi + + echo "Added ${EMAIL} to ${PASSWD}"; +else + echo "${EMAIL} already exists in ${PASSWD}. Not adding it to passwd."; +fi + +#quota +if [ -e ${QUOTA} ]; then + COUNT=`grep -c "^${EMAIL}:" ${QUOTA}` + if [ "${COUNT}" = 0 ]; then + echo "${EMAIL}:${QUOTAVAL}" >> ${QUOTA} + fi +else + echo "${EMAIL}:${QUOTAVAL}" > ${QUOTA} +fi + +#ensure path exists for it. +if [ "${DOVECOT}" = 1 ]; then + USERDIR=${UHOME}/imap/${DOMAIN}/${EMAIL} + + mkdir --mode=770 -p $USERDIR/Maildir/new + mkdir --mode=770 -p $USERDIR/Maildir/cur + + chown -R ${DAUSER}:mail ${USERDIR} + chmod 770 ${USERDIR} ${USERDIR}/Maildir +fi + +exit 0; diff --git a/directadmin-1.62.4/scripts/addip b/directadmin-1.62.4/scripts/addip new file mode 100644 index 0000000..5be2b63 --- /dev/null +++ b/directadmin-1.62.4/scripts/addip @@ -0,0 +1,138 @@ +#!/bin/sh + +#find the eth0:# and add the ip to the system +OS=`uname` + +addIPv6() +{ + MASK=/64 + if echo $2 | grep -m1 -q '/'; then + MASK=$2 + fi + + if [ "${OS}" = "FreeBSD" ]; then + /sbin/ifconfig $ETH_DEV inet6 add ${1}${MASK} + else + /sbin/ip addr add ${1}${MASK} dev $ETH_DEV preferred_lft 0 >/dev/null 2>&1 + if [ "$?" -ne 0 ]; then + /sbin/ifconfig $ETH_DEV inet6 add ${1}${MASK} + fi + fi + + exit 0; +} + +getBroadcast() { + IP1=`echo $1 | cut -d. -f1`; + IP2=`echo $1 | cut -d. -f2`; + IP3=`echo $1 | cut -d. -f3`; + IP4=`echo $1 | cut -d. -f4`; + + NM1=`echo $2 | cut -d. -f1`; + NM2=`echo $2 | cut -d. -f2`; + NM3=`echo $2 | cut -d. -f3`; + NM4=`echo $2 | cut -d. -f4`; + + BC1=$((($IP1 & $NM1) | (255 & ~$NM1))); + BC2=$((($IP2 & $NM2) | (255 & ~$NM2))); + BC3=$((($IP3 & $NM3) | (255 & ~$NM3))); + BC4=$((($IP4 & $NM4) | (255 & ~$NM4))); + + BROADCAST="$BC1.$BC2.$BC3.$BC4"; +} + +ETH_DEV=eth0 +if [ $# -lt 1 ]; then # we need the ip + echo "Usage: $0 <ip> (<netmask> (<eth dev> (<broadcast>)))"; + echo "example: $0 1.2.3.4 255.255.255.0 eth0"; + exit 1; +fi + +IP_FILE=/usr/local/directadmin/data/admin/ips/$1 +if [ -s ${IP_FILE} ]; then + C=`grep -c 'add_to_device=no' ${IP_FILE}` + if [ "${C}" -gt 0 ]; then + echo "IP $1 has add_to_device=no set. Skipping" + exit 0; + fi +fi + +#check to make sure it isn't already running +IP_ALREADY_EXISTS=false +if [ "${OS}" = "FreeBSD" ]; then + if /sbin/ifconfig | grep -m1 -q " $1 "; then + IP_ALREADY_EXISTS=true + fi +else + if /sbin/ip a | grep -m1 -q " $1/"; then + IP_ALREADY_EXISTS=true + fi +fi + +if ${IP_ALREADY_EXISTS}; then + echo "IP $1 already exists on eth0" + exit 1 +fi + +#echo "have device: $3"; +if [ $# -gt "2" ]; then + ETH_DEV=$3; +fi + +if echo $1 | grep -m1 -q ':'; then + addIPv6 $1 $2 +fi + +netmaskToPrefixIPv4(){ + NM1=`echo ${NETMASK} | cut -d. -f1`; + NM2=`echo ${NETMASK} | cut -d. -f2`; + NM3=`echo ${NETMASK} | cut -d. -f3`; + NM4=`echo ${NETMASK} | cut -d. -f4`; + + NM1BIN=`perl -e "printf \"%b\n\",${NM1}"` + NM2BIN=`perl -e "printf \"%b\n\",${NM2}"` + NM3BIN=`perl -e "printf \"%b\n\",${NM3}"` + NM4BIN=`perl -e "printf \"%b\n\",${NM4}"` + + echo "${NM1BIN}${NM2BIN}${NM3BIN}${NM4BIN}" | grep -o '1' | wc -l +} + +NETMASK=255.255.255.0 +PREFIX="/24" +SET_BROADCAST=true +if [ $# -gt "1" ]; then + #echo "have netmask: $2"; + NETMASK=$2 + if ! echo "${NETMASK}" | grep -m1 -q '/'; then + PREFIX="/`netmaskToPrefixIPv4 ${NETMASK}`" + else + PREFIX="${NETMASK}" + SET_BROADCAST=false + fi +fi + +if [ $# -gt "3" ]; then + BROADCAST=$4 +elif ${SET_BROADCAST}; then + getBroadcast $1 $2 +fi + +if [ "${OS}" = "FreeBSD" ]; then + ifconfig $ETH_DEV inet $1 netmask $NETMASK broadcast $BROADCAST alias +else + /sbin/ip addr add ${1}${PREFIX} dev $ETH_DEV >/dev/null 2>&1 + if [ "$?" -ne 0 ] && ${SET_BROADCAST}; then + DEVNUM=0 + while [ `/sbin/ifconfig $ETH_DEV:$DEVNUM | grep -F -c inet` -gt "0" ] + do + { + DEVNUM=$(($DEVNUM+1)); + } + done; + + /sbin/ifconfig $ETH_DEV:$DEVNUM $1 netmask $NETMASK broadcast $BROADCAST + /sbin/route add -host $1 dev $ETH_DEV:$DEVNUM + fi +fi + +exit 0 diff --git a/directadmin-1.62.4/scripts/awstats.sh b/directadmin-1.62.4/scripts/awstats.sh new file mode 100644 index 0000000..7442de6 --- /dev/null +++ b/directadmin-1.62.4/scripts/awstats.sh @@ -0,0 +1,113 @@ +#!/bin/sh +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to install AWstats into DirectAdmin servers +# Official AWstats webpage: http://www.awstats.org + +#AWSTATS_VER=6.95 +#link bug? +#http://www.directadmin.com/forum/showthread.php?p=193914#post193914 +AWSTATS_VER=7.7 + +DA_SCRIPTS=/usr/local/directadmin/scripts +DA_CONF=/usr/local/directadmin/conf/directadmin.conf +DA_TEMPLATE_CONF=/usr/local/directadmin/data/templates/directadmin.conf +HTTPPATH=http://files.directadmin.com/services/all/awstats +TARFILE=${DA_SCRIPTS}/packages/awstats-${AWSTATS_VER}.tar.gz +USR=/usr/local +REALPATH=${USR}/awstats-${AWSTATS_VER} +ALIASPATH=${USR}/awstats + +OS=`uname` + +if [ "${OS}" = "FreeBSD" ]; then + WGET=/usr/local/bin/wget + TAR=/usr/bin/tar + CHOWN=/usr/sbin/chown + ROOTGRP=wheel +else + WGET=/usr/bin/wget + TAR=/bin/tar + CHOWN=/bin/chown + ROOTGRP=root +fi + +if [ ! -e ${TARFILE} ]; then + ${WGET} -O ${TARFILE} ${HTTPPATH}/awstats-${AWSTATS_VER}.tar.gz +fi + +if [ ! -e ${TARFILE} ]; then + echo "Can not download awstats-${AWSTATS_VER}" + exit 1 +fi + +#Extract the file +${TAR} xzf ${TARFILE} -C ${USR} + +if [ ! -e ${REALPATH} ]; then + echo "Directory ${REALPATH} does not exist" + exit 1 +fi + +#link it from a fake path: +/bin/rm -f ${ALIASPATH} +/bin/ln -sf awstats-${AWSTATS_VER} ${ALIASPATH} +cd ${REALPATH} +${CHOWN} -R root:${ROOTGRP} ${REALPATH} +chmod -R 755 ${REALPATH} + + +#patch the url bug: this is ni the 7.3 tar.gz file, so no need to patch. Creates a patch rej file. +#echo "Patching awstats_buildstaticpages.pl to fix url bug..."; +#cd ${REALPATH}/tools +#wget -O awstats_url.patch http://files.directadmin.com/services/custombuild/patches/awstats_url.patch +#if [ ! -s awstats_url.patch ]; then +# echo "Error with awstats_url.patch. File is missing or empty"; +#else +# patch -p0 < awstats_url.patch +#fi + +#sets the value of $1 to $2 in the file $3 +setVal() +{ + if [ ! -e $3 ]; then + return; + fi + + COUNT=`grep -c $1 $3` + if [ "$COUNT" -eq 0 ]; then + #ok, it's not there, add it. + echo "$1=$2" >> $3 + return; + else + #ok, the value is already in the file $3, so use perl to regex it. + perl -pi -e "s/`grep ${1}= ${3}`/${1}=${2}/" ${3} + fi +} + +#setup the directadmin.conf +#disable webalizer, enable awstats. + +setVal awstats 1 ${DA_TEMPLATE_CONF} +setVal webalizer 0 ${DA_TEMPLATE_CONF} +setVal awstats 1 ${DA_CONF} +setVal webalizer 0 ${DA_CONF} + +echo "action=directadmin&value=restart" >> /usr/local/directadmin/data/task.queue + +CAGEFS_DA_CFG=/etc/cagefs/conf.d/directadmin.cfg +if [ -s ${CAGEFS_DA_CFG} ]; then + C=`grep ^paths= ${CAGEFS_DA_CFG} | grep -c ${REALPATH}` + if [ "${C}" -eq 0 ]; then + #From: paths=/usr/local/awstats/, /usr/local/php + #To: paths=/usr/local/awstats/, /usr/local/awstats-7.7/, /usr/local/awstats, /usr/local/php + STR="perl -pi -e 's#^paths=/usr/local/awstats/, /usr/local/php#paths=/usr/local/awstats/, ${REALPATH}/, /usr/local/awstats, /usr/local/php'" + eval ${STR} + fi + + if [ ! -d /usr/share/cagefs-skeleton${REALPATH} ] && [ -x /usr/sbin/cagefsctl ]; then + /usr/sbin/cagefsctl --force-update + fi +fi + +echo "AWstats package is installed." + diff --git a/directadmin-1.62.4/scripts/awstats_process.sh b/directadmin-1.62.4/scripts/awstats_process.sh new file mode 100644 index 0000000..1414124 --- /dev/null +++ b/directadmin-1.62.4/scripts/awstats_process.sh @@ -0,0 +1,541 @@ +#!/bin/sh +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to process AWstats for a domain +# Official AWstats webpage: http://www.awstats.org +# Usage: +# ./awstats_process.sh <user> <domain> +VERSION=2.9 + +ADD_CGI=1 +ADD_HTML=1 + +#set this to 1 if you need the script to reset the awstats link for each domain to root (when harden symlinks patch is enabled in apache) +#this should only need to be enabled once, and can be disabled after that one run. +ENSURE_ROOT_LINKS=0 + +#Set this to 1 if you have extra awstats.old folders you want to get rid of. +#DA will automatically clear them during the conversion, but this is here in case you had issues and need to try again. +CLEAR_AWSTATS_OLD=0 + +OS=`uname` +ROOTGRP=root +SU_BIN=/bin/su +if [ "$OS" = "FreeBSD" ]; then + ROOTGRP=wheel + SU_BIN=/usr/bin/su +fi + +if [ "${ADD_CGI}" -eq 0 ] && [ "${ADD_HTML}" -eq 0 ]; then + echo "One of ADD_CGI and ADD_HTML must be set to 1"; + exit 10; +fi + +AUID=`/usr/bin/id -u` +if [ "$AUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 1; +fi + +if [ $# != 2 ] && [ $# != 3 ]; then + echo "$0 version $VERSION" + echo "Usage:"; + echo "$0 <user> <domain> (<subdomain>)"; + echo "you gave #$#: $0 $1 $2"; + exit 2; +fi + +#AWSTATS_MODE=1 hard link log files, readble by User +#AWSTATS_MODE=2 full copies of logs, readble by User +AWSTATS_MODE=`/usr/local/directadmin/directadmin c | grep '^awstats=' | cut -d= -f2` +if [ "${AWSTATS_MODE}" = "0" ] || [ "${AWSTATS_MODE}" = "" ] || [ "${AWSTATS_MODE}" -gt 2 ]; then + echo "awstats not enabled from:"; + echo "/usr/local/directadmin/directadmin c | grep '^awstats='"; + echo "awstats=${AWSTATS_MODE}"; + exit 17 +fi + +id ${1} >/dev/null 2>&1 +RET=$? +if [ "${RET}" -ne 0 ]; then + echo "User ${1} does not exist"; + exit 3; +fi + +SUB=""; +if [ $# = 3 ]; then + SUB=$3 +fi + +USER=$1 +DOMAIN=$2 +UHOME=`grep -e "^${USER}:" /etc/passwd | head -n 1 | cut -d: -f6` + +TOP_DOMAIN=$2 + +if [ "$UHOME" = "" ]; then + echo "Could not find a home path for user $USER in /etc/passwd"; + exit 4; +fi + +HTTPD=httpd +if [ "`/usr/local/directadmin/directadmin c | grep ^nginx= | cut -d= -f2`" -eq 1 ]; then + HTTPD=nginx +fi +if [ "`/usr/local/directadmin/directadmin c | grep ^nginx_proxy= | cut -d= -f2`" -eq 1 ]; then + HTTPD=nginx +fi + +AWSTATS=/usr/local/awstats +MODEL=${AWSTATS}/wwwroot/cgi-bin/awstats.model.conf +STATS_DIR=${UHOME}/domains/${DOMAIN}/awstats +DATA=.data +DATA_DIR=${STATS_DIR}/${DATA} +LOGDIR=/var/log/${HTTPD}/domains + +IS_CAGEFS=0 +CAGEFSCTL=/usr/sbin/cagefsctl +if [ -x ${CAGEFSCTL} ]; then + C=`${CAGEFSCTL} --list-enabled | grep -c ${USER}` + if [ "${C}" -gt 0 ]; then + IS_CAGEFS=1 + fi +fi + +USER_LOGS=/var/log/user_logs +if [ ! -d ${USER_LOGS} ]; then + if [ -d /var/user_logs ]; then + echo "Moving /var/user_logs to ${USER_LOGS}" + mv /var/user_logs ${USER_LOGS} + else + mkdir ${USER_LOGS} + chmod 711 ${USER_LOGS} + echo "This folder is for temporary http log hard-links or copies, for awstats processing as the User.\nIt should usually be empty, less this file, unless awstats is running for a domain." > ${USER_LOGS}/.readme.txt + chmod 644 ${USER_LOGS}/.readme.txt + fi +fi + +if [ "${SUB}" != "" ]; then + STATS_DIR=$STATS_DIR/${SUB} + DATA_DIR=${STATS_DIR}/${DATA} + CONFIG=${DATA_DIR}/awstats.${SUB}.${DOMAIN}.conf + LOG=${LOGDIR}/${DOMAIN}.${SUB}.log + READ_LOG=${USER_LOGS}/${USER}/${DOMAIN}.${SUB}.log + + #we change the domain name at the last possible moment, after we're done with DOMAIN. + #all calls to DOMAIN from this point onwards will see sub.domain.com + DOMAIN=${SUB}.${DOMAIN} +else + CONFIG=${DATA_DIR}/awstats.${DOMAIN}.conf + LOG=${LOGDIR}/${DOMAIN}.log + READ_LOG=${USER_LOGS}/${USER}/${DOMAIN}.log +fi + +if [ ! -e ${AWSTATS} ]; then + echo "${AWSTATS} does not exist!"; + exit 5; +fi + + +##################################################### +# Script now runs core commands as the User. +# actions and conversions below. + +run_as_user() +{ + if [ "$OS" = "FreeBSD" ]; then + ${SU_BIN} -l -m ${USER} -c "umask 022; $1" + else + ${SU_BIN} -l -s /bin/sh -c "umask 022; $1" ${USER} + fi + return $? +} + +get_dir_owner() +{ + D=$1 + if [ ! -d ${D} ]; then + echo ""; + return; + fi + + U=`ls -ld ${D} | awk '{print $3}'` + echo $U +} + +#1 for false +#0 for true +should_convert_to_user() +{ + if [ "`get_dir_owner $DATA_DIR`" != "root" ]; then + return 1; + fi + return 0; +} + +ensure_awstats_in_cagefs() +{ + if [ "${IS_CAGEFS}" != "1" ]; then + return; + fi + + #Ensure awstats is in the skeleton. + DA_CFG=/etc/cagefs/conf.d/directadmin.cfg + C=`grep ^paths= ${DA_CFG} | grep -c /usr/local/awstats/` + if [ "${C}" = "0" ]; then + echo "Adding /usr/local/awstats/ to ${DA_CFG} paths"; + perl -pi -e 's#^paths=#paths=/usr/local/awstats/, #' ${DA_CFG} + + ${CAGEFSCTL} --update + + CHECK=`run_as_user "if [ -e /usr/local/awstats/tools/awstats_buildstaticpages.pl ]; then echo 0; else echo 1; fi"` + if [ "${CHECK}" != "0" ]; then + ${CAGEFSCTL} --force-update + fi + fi + +} + +convert_awstast_to_user() +{ + # As the User, copy awstats to awstats.user + # Ensure copy was successful. If not, abort everything. + # rename awstats to awstats.old, and awstats.user to awstats + + STATS_DIR_USER=${STATS_DIR}.user + + if [ -e ${STATS_DIR_USER} ]; then + echo "${STATS_DIR_USER} already exist. Removing it before we proceed." + run_as_user "/bin/rm -rf ${STATS_DIR_USER}" + fi + + if [ "${IS_CAGEFS}" = "1" ]; then + #CloudLinux doesnt let Users copy links pointing to root files, + #so we'll remove those links first, since they're not important. + echo "Removing symbolic links..." + run_as_user "find ${STATS_DIR}/ -type l -delete" + echo "Done removing symbolic links." + fi + + run_as_user "/bin/cp -RPp ${STATS_DIR} ${STATS_DIR_USER}" + + diff -rq ${STATS_DIR} ${STATS_DIR_USER} > /dev/null + DIFF_RET=$? + + if [ "${DIFF_RET}" != "0" ]; then + echo "awstats.user vs awstats folder do not match:"; + diff -rq ${STATS_DIR} ${STATS_DIR_USER} + echo ""; + echo "aborting conversion." + exit 14; + fi + + echo "All checks passed. Swapping folders"; + run_as_user "/bin/mv ${STATS_DIR} ${STATS_DIR}.old" + if [ ! -d ${STATS_DIR}.old ]; then + echo "Rename to ${STATS_DIR}.old must have failed. Cannot find that directory after move as User." + exit 16; + fi + + #re-link root owned links. + run_as_user "rm -f ${STATS_DIR_USER}/icon" + run_as_user "rm -f ${STATS_DIR_USER}/lang" + run_as_user "rm -f ${STATS_DIR_USER}/lib" + run_as_user "rm -f ${STATS_DIR_USER}/plugins" + ln -s /usr/local/awstats/wwwroot/icon ${STATS_DIR_USER}/icon + ln -s /usr/local/awstats/wwwroot/cgi-bin/lang ${STATS_DIR_USER}/lang + ln -s /usr/local/awstats/wwwroot/cgi-bin/lib ${STATS_DIR_USER}/lib + ln -s /usr/local/awstats/wwwroot/cgi-bin/plugins ${STATS_DIR_USER}/plugins + + run_as_user "/bin/mv ${STATS_DIR_USER} ${STATS_DIR}" + + echo "action=delete&value=secure_disposal&user=${USER}&path=${STATS_DIR}.old" >> /usr/local/directadmin/data/task.queue +} + +##################################################### + +ensure_awstats_in_cagefs; + +if [ ! -e ${STATS_DIR} ]; then + run_as_user "mkdir ${STATS_DIR}"; + run_as_user "chmod 755 ${STATS_DIR}" +else + if [ -h ${STATS_DIR} ]; then + echo "${STATS_DIR} is a symbolic link. Aborting."; + exit 8; + fi + + #directory does exist. Should we convert it? + if should_convert_to_user; then + echo "Converting contents of ${STATS_DIR} to the User ${USER}" + convert_awstast_to_user; + else + echo "Conversion not required. Continuing normally"; + fi + + +fi + +if [ ! -e ${DATA_DIR} ]; then + run_as_user "mkdir ${DATA_DIR}" + run_as_user "chmod 755 ${DATA_DIR}" +else + if [ -h ${DATA_DIR} ]; then + echo "${DATA_DIR} is a symbolic link. Aborting."; + exit 9; + fi +fi + +#this bit is to fix the 700 that backups cannot see. (bug) +#http://www.directadmin.com/features.php?id=915 +run_as_user "chmod 755 ${DATA_DIR}" + +#do it every time. Users must not be able to edit the config directly. +#chown -R root:${ROOTGRP} ${DATA_DIR} #never do this again + +if [ ! -s ${CONFIG} ]; then + if [ ! -s ${MODEL} ]; then + echo "${MODEL} does not exist or is empty."; + exit 6; + fi + + run_as_user "cp -f ${MODEL} ${CONFIG}" + run_as_user "chmod 644 ${CONFIG}" + run_as_user "perl -pi -e 's#LogFile=\\\"/var/log/httpd/mylog.log\\\"#LogFile=\\\"${READ_LOG}\\\"#' ${CONFIG}" + run_as_user "perl -pi -e 's#SiteDomain=\\\"\\\"#SiteDomain=\"${DOMAIN}\"#' ${CONFIG}" + run_as_user "perl -pi -e 's#DirData=\\\".\\\"#DirData=\\\"${DATA_DIR}\\\"#' ${CONFIG}" + run_as_user "perl -pi -e 's#DirCgi=\\\"/cgi-bin\\\"#DirCgi=\\/awstats\\\"#' ${CONFIG}" + run_as_user "perl -pi -e 's#ValidHTTPCodes=\\\"200 304\\\"#ValidHTTPCodes=\\\"200 304 206\\\"#' ${CONFIG}" + + #Oct 24, 2010 + run_as_user "perl -pi -e 's#DirIcons=\\\"/icon\\\"#DirIcons=\\\"icon\\\"#' ${CONFIG}" +else + run_as_user "perl -pi -e 's#DirIcons=\\\"${STATS_DIR}\\\"#DirIcons=\\\"icon\\\"#' ${CONFIG}" + #run_as_user "perl -pi -e 's#^LogFile=\\\".*\\\"\$#LogFile=\\\"${READ_LOG}\\\"#' ${CONFIG}" + run_as_user "perl -pi -e 's#^LogFile=.*\$#LogFile=\\\"${READ_LOG}\\\"#' ${CONFIG}" +fi + +ensure_root() +{ + if [ "$ENSURE_ROOT_LINKS" != 1 ]; then + return; + fi + + F=$1 + TARGET=$2 + + if [ ! -h $F ]; then + return; + fi + + FOWNER=`ls -la $F | awk '{print $3}'` + + if [ "$FOWNER" = "$USER" ]; then + echo "Setting link $F to root"; + run_as_user "rm '$F'" + ln -s "$TARGET" "$F" + fi +} + + +ICON=${STATS_DIR}/icon +#only create it during conversion. Never reset, which could be predicted. +#if [ ! -h $ICON ]; then +# run_as_user "rm -rf $ICON" +# ln -s ${AWSTATS}/wwwroot/icon $ICON +#fi +ensure_root $ICON ${AWSTATS}/wwwroot/icon +if [ ! -e "${ICON}" ]; then + ln -s ${AWSTATS}/wwwroot/icon $ICON +fi + +#Oct 24, 2010 +if [ "${ADD_CGI}" -eq 1 ]; then + #copy cgi-bin bits to awstats directory. + + NEEDS_UPDATING=0 + AS_PL=${AWSTATS}/wwwroot/cgi-bin/awstats.pl + + if [ ! -e "${STATS_DIR}/awstats.pl" ]; then + NEEDS_UPDATING=1 + else + #ensure it's current + CURRENT_REV=`grep '$REVISION = ' ${STATS_DIR}/awstats.pl | cut -d\' -f2` + echo "Current REVISION from ${STATS_DIR}/awstats.pl: ${CURRENT_REV}"; + if [ "${CURRENT_REV}" = "" ]; then + echo "${STATS_DIR}/awstats.pl does not have REVISION set, updating from ${AS_PL}" + NEED_UPDATING=1 + elif [ "${CURRENT_REV}" -lt 20180105 ]; then + echo "${STATS_DIR}/awstats.pl is old, updating from ${AS_PL}" + NEEDS_UPDATING=1 + fi + fi + + if [ "${NEEDS_UPDATING}" -eq 1 ]; then + + run_as_user "/bin/cp -v ${AS_PL} ${STATS_DIR}/awstats.pl" + + #make a few changes so it can find the config. + run_as_user "perl -pi -e 's#\\\"\$DIR\\\",\s+\\\"/etc/awstats\\\",#\\\"\$DIR\\\",\t\\\"${DATA_DIR}\\\",#' ${STATS_DIR}/awstats.pl" + + #repeat for variations of the awstats.pl files + run_as_user "perl -pi -e 's#\\\"/etc/awstats\\\"#\\\"${DATA_DIR}\\\"#' ${STATS_DIR}/awstats.pl" + fi + + run_as_user "chmod 755 ${STATS_DIR}/awstats.pl" + + if [ ! -e "${STATS_DIR}/lang" ]; then + ln -s ${AWSTATS}/wwwroot/cgi-bin/lang ${STATS_DIR}/lang + fi + ensure_root ${STATS_DIR}/lang ${AWSTATS}/wwwroot/cgi-bin/lang + + if [ ! -e "${STATS_DIR}/lib" ]; then + ln -s ${AWSTATS}/wwwroot/cgi-bin/lib ${STATS_DIR}/lib + fi + ensure_root ${STATS_DIR}/lib ${AWSTATS}/wwwroot/cgi-bin/lib + + if [ ! -e "${STATS_DIR}/plugins" ]; then + ln -s ${AWSTATS}/wwwroot/cgi-bin/plugins ${STATS_DIR}/plugins + fi + ensure_root ${STATS_DIR}/plugins ${AWSTATS}/wwwroot/cgi-bin/plugins + + WWWCONFIG=${DATA_DIR}/awstats.www.${DOMAIN}.conf + if [ ! -e ${WWWCONFIG} ]; then + run_as_user "ln -s awstats.${DOMAIN}.conf ${WWWCONFIG}" + fi + + EXECCGI=1; + DC=/usr/local/directadmin/data/users/${USER}/domains/${TOP_DOMAIN}.conf + if [ -s ${DC} ]; then + C=`grep -c "^cgi=OFF" $DC` + if [ "${C}" -gt 0 ]; then + EXECCGI=0; + fi + fi + + HTACCESS=${STATS_DIR}/.htaccess + ADD_HTA=0 + if [ ! -e ${HTACCESS} ]; then + ADD_HTA=1 + else + #check it's contents + COUNT=`run_as_user "grep -c 'DirectoryIndex awstats.pl' ${HTACCESS}"` + + if [ "${COUNT}" -eq 0 ] && [ "${EXECCGI}" -eq 1 ]; then + ADD_HTA=1 + fi + if [ "${COUNT}" -eq 1 ] && [ "${EXECCGI}" -eq 0 ]; then + ADD_HTA=1 + fi + fi + + if [ -h ${HTACCESS} ]; then + echo "${HTACCESS} is a symbolic link. Aborting."; + exit 11; + fi + + if [ "${ADD_HTA}" -eq 1 ]; then + if [ "${EXECCGI}" -eq 1 ]; then + run_as_user "echo 'Options -Indexes +ExecCGI' > ${HTACCESS}" + run_as_user "echo 'AddHandler cgi-script .pl' >> ${HTACCESS}" + run_as_user "echo 'DirectoryIndex awstats.pl' >> ${HTACCESS}" + else + run_as_user "echo 'Options -Indexes' > ${HTACCESS}" + fi + + run_as_user "echo '' >> ${HTACCESS}" + run_as_user "echo 'RewriteEngine On' >> ${HTACCESS}" + run_as_user "echo 'RewriteCond %{HTTP_HOST} ^www.${DOMAIN}\$ [NC]' >> ${HTACCESS}" + run_as_user "echo 'RewriteRule ^(.*)\$ http://${DOMAIN}/awstats/\$1 [R=301,L]' >> ${HTACCESS}" + fi +fi + + +#Setup logs to be readable. +mkdir $USER_LOGS/$USER +chmod 750 $USER_LOGS/$USER + +if [ "${AWSTATS_MODE}" = "1" ]; then + ln $LOG $READ_LOG +elif [ "${AWSTATS_MODE}" = "2" ]; then + /bin/cp $LOG $READ_LOG +else + echo "UNKNOWN AWSTATS MODE!!" +fi + +chown root:$USER $USER_LOGS/$USER + +if [ "${IS_CAGEFS}" = "1" ]; then + # need to have user_logs visible to the user, in the skeleton. + # Use the split method on user_logs + C=`grep -c "^%${USER_LOGS}" /etc/cagefs/cagefs.mp` + if [ "${C}" = "0" ]; then + echo "Adding %${USER_LOGS} to /etc/cagefs/cagefs.mp"; + echo "%${USER_LOGS}" >> /etc/cagefs/cagefs.mp + ${CAGEFSCTL} --remount ${USER} + fi + + # can we see the log? + CHECK=`run_as_user "if [ -r ${READ_LOG} ]; then echo 1; else echo 0; fi"` + if [ "${CHECK}" = "0" ]; then + ${CAGEFSCTL} --remount ${USER} + fi + + CHECK=`run_as_user "if [ -r ${READ_LOG} ]; then echo 1; else echo 0; fi"` + if [ "${CHECK}" = "0" ]; then + echo "Cannot read log ${READ_LOG} as user ${USER} after:" + echo "${CAGEFSCTL} --remount ${USER}" + run_as_user "ls -la ${USER_LOGS}" + fi +fi + +if [ "${ADD_HTML}" -eq 1 ]; then + + BD='-builddate=%YY%MM' + + #this doesn't work because there are 4 hours of the next month in the logs on the first day. + #They empty the stats from the old html for last month. + #DAY=`date +%e` + #if [ "$DAY" -eq 1 ]; then + # YYMM=`date --date='yesterday' +%y%m` + # BD="-builddate=$YYMM" + #fi + + #-lang=en + run_as_user "/usr/bin/perl ${AWSTATS}/tools/awstats_buildstaticpages.pl -config=${DOMAIN} -configdir=${DATA_DIR} -update -diricons=icon -awstatsprog=${AWSTATS}/cgi-bin/awstats.pl -dir=${STATS_DIR} $BD" + RET=$? + + #we stil need to set a value though: + MAIN_FILE=awstats.${DOMAIN}.`date +%y%m`.html + + MAIN_HTML=${STATS_DIR}/${MAIN_FILE} + INDEX_HTML=${STATS_DIR}/index.html + + #changes per month + run_as_user "ln -sf ${MAIN_FILE} ${INDEX_HTML}" + + #ensure_root ${INDEX_HTML} + #ensure_root ${MAIN_HTML} + +else + #this is for the case where we dont want to waste time with static html files (ADD_HTML=0) but ADD_CGI is still on. + #due to the check check for !ADD_HTML&&!ADD_CGI above, ADD_CGI must be 1 at this point. + + run_as_user "/usr/bin/perl ${AWSTATS}/tools/awstats_updateall.pl now -configdir=${DATA_DIR} -awstatsprog=${AWSTATS}/cgi-bin/awstats.pl" + + # -excludeconf=awstats.www.${DOMAIN}.conf we're using mod_rewrite to change www.domain.com/awstast to domain.com/awstats, since only domain.com/awstats works unless we link every single data file (ugly). + RET=$? +fi + +echo "Cleanup..." + +rm -f $READ_LOG +if [ "${IS_CAGEFS}" != "1" ]; then + rm -rf $USER_LOGS/$USER +fi + +if [ "${CLEAR_AWSTATS_OLD}" = "1" ]; then + echo "Clearing ${STATS_DIR} via task.queue. This will run in the background."; + echo "action=delete&value=secure_disposal&user=${USER}&path=${STATS_DIR}.old" >> /usr/local/directadmin/data/task.queue +fi + +exit $RET; diff --git a/directadmin-1.62.4/scripts/backup_roundcube.php b/directadmin-1.62.4/scripts/backup_roundcube.php new file mode 100644 index 0000000..539e490 --- /dev/null +++ b/directadmin-1.62.4/scripts/backup_roundcube.php @@ -0,0 +1,340 @@ +#!/usr/local/bin/php -c/usr/local/directadmin/scripts/php_clean.ini +<?php + +$version = 0.1; + +/* +Backup script for the per-domain RoundCube settings. +Backup/Restore written by DirectAdmin: http://www.directadmin.com +RoundCube Webmail Client: http://roundcube.net + +This script will generate a per-domain XML output of all users for that domain, in the roundcube database. +It will also include one system account username (eg: admin), which is associated with the domain. +The XML file is index/ID independant, so you can restore a set of domain accounts onto any other +active DirectAdmin/RoundCube database without worry of ID conflicts. +See the restore_roundcube.php for info on the restore process. + +See the DirectAdmin versions system for more info: +http://www.directadmin.com/features.php?id=1062 + +All variables are passed via environment, not command line options +But you can specify environmental variables... via command line options before the script (see the showHelp() function) + +RETURN VALUES +0: All is well +>1: an error worthy or reporting has occured. Message on stderr. +1: an error, most likely due to not actually having RoundCube installed or no restore data, has occured. + +*/ + +/*********************** +* Environmental variables +*/ +$domain = getenv("domain"); //Get all email users from this domain. +$system_username = getenv("username"); //Also get this single system account +$xml_file = getenv("xml_file"); //and save all info to this file. + +/*********************** +* this restores as da_admin instead of da_roundube. +* For the backup, we are less concerned with dangerous data, so we use it for reliability reasons. +*/ +$high_access_connection = TRUE; + +/*********************** +* If $high_access_restore is false, this is used for the mysql credentials. +*/ +$rc_config = "/var/www/html/roundcube/config/config.inc.php"; + +//**************************************************************** +//**************************************************************** + +if (!isset($domain) || $domain == "") + show_help(); + +if (!isset($system_username) || $system_username == "") + show_help(); + +if (!isset($xml_file) || $xml_file == "") + show_help(); + +if (!extension_loaded('mysqli')) +{ + echo_stderr("Php is not compiled with mysqli. Cannot dump roundcube settings.\n"); + exit(1); +} + + +//**************************************************************** +//**************************************************************** + +if ($high_access_connection) +{ + if (version_compare(PHP_VERSION, '5.3.0', '<')) + { + $mysql_conf = @parse_ini_file("/usr/local/directadmin/conf/mysql.conf", false); + } + else + { + $mysql_conf = @parse_ini_file("/usr/local/directadmin/conf/mysql.conf", false, INI_SCANNER_RAW); + } +} + +if ($high_access_connection && $mysql_conf && strlen($mysql_conf['passwd']) > 4) +{ + + $mysql_user = $mysql_conf['user']; + $mysql_pass = $mysql_conf['passwd']; + $mysql_host = 'localhost'; + $mysql_db = 'da_roundcube'; + + if (isset($mysql_conf['host']) && $mysql_conf['host'] != "") + $mysql_host = $mysql_conf['host']; +} +else +{ + if (!file_exists($rc_config)) + { + echo_stderr("Cannot find RoundCube config at $rc_config. Is RC installed and up to date?\n"); + exit(7); + } + + include_once($rc_config); + + if (!isset($config) || !isset($config['db_dsnw']) || $config['db_dsnw'] == '') + { + echo_stderr("Cannot find \$config['db_dsnw'] variable in $rc_config\n"); + exit(6); + } + + //$config['db_dsnw'] = 'mysql://da_roundcube:password@localhost/da_roundcube'; + + $values = explode('/', $config['db_dsnw']); + $connect = explode('@', $values[2]); + $auth = explode(':', $connect[0]); + + $mysql_user = $auth[0]; + $mysql_pass = $auth[1]; + $mysql_host = $connect[1]; + $mysql_db = $values[3]; +} + +$mysqli = new mysqli($mysql_host, $mysql_user, $mysql_pass); +if ($mysqli->connect_errno) { + echo_stderr("Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error."\n"); + exit(3); +} +$mysqli->set_charset('utf8'); + +if (!$mysqli->select_db($mysql_db)) +{ + echo_stderr("There is no $mysql_db database. Skipping RoundCube backup.\n"); + exit(1); +} + +//**************************************************************** +//**************************************************************** + +//Check if we have contactgroups +$have_contactgroups = true; +$query = "SHOW TABLES LIKE 'contactgroups'"; +$result = $mysqli->query($query); +if ($result->num_rows == 0) +{ + $have_contactgroups = false; +} + + + +//First, find all accounts for this domain. +$query = "SELECT * FROM `users` WHERE username LIKE '%@".mes($domain)."' OR username='".mes($system_username)."'"; +$result = $mysqli->query($query); + +if (!$result) +{ + echo_stderr("Query error with user selection: ".$mysqli->error); + $mysqli->close(); + exit(8); +} + +$top_depth = 0; + +$fp = @fopen($xml_file, 'w'); +if (!$fp) +{ + echo_stderr("Unable to open $xml_file for writing. Unable to backup RoundCube Data."); + $mysqli->close(); + exit(5); +} + +xml_open("ROUNDCUBE", $top_depth); + +while($user = $result->fetch_object()) +{ + $email_depth = $top_depth + 1; + $email_item_depth = $email_depth + 1; + + xml_open("EMAIL", $email_depth); + + //echo "usermname = ".$user->username."\n"; + //echo "user_id = ".$user->user_id."\n"; + xml_item("USERNAME", $user->username, $email_item_depth); + xml_item("LANGUAGE", $user->language, $email_item_depth); + xml_item("PREFERENCES", $user->preferences, $email_item_depth); + xml_item("CREATED", $user->created, $email_item_depth); + xml_item("LAST_LOGIN", $user->last_login, $email_item_depth); + + //get all indentities + $query = "SELECT * FROM `identities` WHERE user_id=".$user->user_id." AND del=0"; + $identities_result = $mysqli->query($query); + xml_open("INDENTITIES", $email_item_depth); + if ($identities_result !== FALSE) + { + while ($identity = $identities_result->fetch_array()) + { + $identity_depth = $email_item_depth + 1; + $identity_item_depth = $identity_depth + 1; + + xml_open("INDENTITY", $identity_depth); + + xml_item("EMAIL", $identity['email'], $identity_item_depth); + xml_item("STANDARD", $identity['standard'], $identity_item_depth); + xml_item("NAME", $identity['name'], $identity_item_depth); + xml_item("CHANGED", $identity['changed'], $identity_item_depth); + xml_item("ORGANIZATION", $identity['organization'], $identity_item_depth); + xml_item("REPLY-TO", $identity['reply-to'], $identity_item_depth); + xml_item("BCC", $identity['bcc'], $identity_item_depth); + xml_item("SIGNATURE", $identity['signature'], $identity_item_depth); + xml_item("HTML_SIGNATURE", $identity['html_signature'], $identity_item_depth); + + xml_close("INDENTITY", $identity_depth); + } + } + xml_close("INDENTITIES", $email_item_depth); + + //dictionary? + + //contacts + $query = "SELECT * FROM `contacts` WHERE user_id=".$user->user_id." AND del=0"; + $contacts_result = $mysqli->query($query); + + xml_open("CONTACTS", $email_item_depth); + if ($contacts_result !== FALSE) + { + while ($contact = $contacts_result->fetch_array()) + { + + $contact_depth = $email_item_depth + 1; + $contact_item_depth = $contact_depth + 1; + + xml_open("CONTACT", $contact_depth); + + xml_item('EMAIL', $contact['email'], $contact_item_depth); + xml_item('NAME', $contact['name'], $contact_item_depth); + xml_item('CHANGED', $contact['changed'], $contact_item_depth); + xml_item('FIRSTNAME', $contact['firstname'], $contact_item_depth); + xml_item('SURNAME', $contact['surname'], $contact_item_depth); + xml_item('VCARD', $contact['vcard'], $contact_item_depth); + xml_item('WORDS', $contact['words'], $contact_item_depth); + + xml_open("GROUPS", $contact_item_depth); + if ($have_contactgroups) + { + $query = "SELECT m.*,g.name,g.changed FROM `contactgroups` as g, `contactgroupmembers` as m WHERE m.contact_id=".$contact['contact_id']." AND g.contactgroup_id=m.contactgroup_id AND g.del=0"; + if (!($groups_result = $mysqli->query($query))) + { + echo_stderr("group query error: ".$mysqli->error."\n"); + exit(4); + } + + while ($group = $groups_result->fetch_array()) + { + xml_open("GROUP", $contact_item_depth+1); + + xml_item("NAME", $group['name'], $contact_item_depth+2); + xml_item("CHANGED", $group['changed'], $contact_item_depth+2); + xml_item("CREATED", $group['created'], $contact_item_depth+2); + + xml_close("GROUP", $contact_item_depth+1); + } + } + xml_close("GROUPS", $contact_item_depth); + + xml_close("CONTACT", $contact_depth); + } + } + xml_close("CONTACTS", $email_item_depth); + + xml_close("EMAIL", 1); +} + +xml_close("ROUNDCUBE", $top_depth); + +fclose($fp); +$mysqli->close(); + +exit(0); +//********************************************************************** + +function xml_item($name, $value, $tabs) +{ + global $fp; + + for ($i=0; $i<$tabs; $i++) + fwrite($fp, "\t"); + + fwrite($fp, "<".$name.">"); + fwrite($fp, urlencode($value)); + fwrite($fp, "</".$name.">\n"); +} + +function xml_open($name, $tabs) +{ + global $fp; + + for ($i=0; $i<$tabs; $i++) + fwrite($fp, "\t"); + + fwrite($fp, "<".$name.">\n"); +} +function xml_close($name, $tabs) +{ + global $fp; + + for ($i=0; $i<$tabs; $i++) + fwrite($fp, "\t"); + + fwrite($fp, "</".$name.">\n"); +} + +function show_help() +{ + global $version; + echo_stderr("Roundcube $version backup script to backup Users.\n\n"); + echo_stderr("Usage:\n"); + echo_stderr(" username=username domain=domain.com xml_file=/path/to/rc.xml ".__FILE__."\n\n"); + + echo_stderr("The script will output XML of all current email accounts stored in roundcube,\n"); + echo_stderr("for the given domain.\n"); + exit(2); +} + +function die_stderr($str) +{ + echo_stderr($str); + die(); +} + +function echo_stderr($str) +{ + $fd = fopen('php://stderr', 'w'); + fwrite($fd, $str); + fclose($fd); +} + +function mes($str) +{ + global $mysqli; + return $mysqli->real_escape_string($str); +} + +?> diff --git a/directadmin-1.62.4/scripts/base64_encode.php b/directadmin-1.62.4/scripts/base64_encode.php new file mode 100644 index 0000000..811d72d --- /dev/null +++ b/directadmin-1.62.4/scripts/base64_encode.php @@ -0,0 +1,6 @@ +#!/usr/local/bin/php +<?php +$str = getenv("STRING"); +echo base64_encode($str); +exit(0); +?> diff --git a/directadmin-1.62.4/scripts/change_database_username.php b/directadmin-1.62.4/scripts/change_database_username.php new file mode 100644 index 0000000..9a317c0 --- /dev/null +++ b/directadmin-1.62.4/scripts/change_database_username.php @@ -0,0 +1,162 @@ +<?php +$version = '2.0'; + +$user = getenv('DBUSER'); +$pass = getenv('DBPASS'); +$username = getenv('USERNAME'); +$newusername = getenv('NEWUSERNAME'); + +$host = getenv('DBHOST'); +if ($host == "") + $host = 'localhost'; + +$verbose = getenv('VERBOSE'); +$verbose = ($verbose == 1) ? 1 : 0; +$ignore_errors = 0; //power through at your own risk + +$exit_code = 0; + +$rename_database_sh = '/usr/local/directadmin/scripts/rename_database.sh'; +if (file_exists('/usr/local/directadmin/scripts/custom/rename_database.sh')) + $rename_database_sh = '/usr/local/directadmin/scripts/custom/rename_database.sh'; + +if ($username == "" || $username == "root" || $username == "mysql") +{ + die("Bad username ($username). aborting mysql database swap"); +} + +if ($newusername == "" || $newusername == "root" || $newusername == "mysql") +{ + die('Bad new username. aborting mysql database swap'); +} + +$mysqli = new mysqli('localhost',$user,$pass); +if ($mysqli->connect_error) +{ + die('Could not connect to mysql: ('.$mysqli->connect_errno.') '. $mysqli->connect_error); +} + +//******************************************************************* +// Main code + +$mysqli->select_db('mysql'); + +replace_users($mysqli); +rename_dbs($mysqli); + +$mysqli->query("FLUSH_PRIVILEGES"); +$mysqli->close(); + +exit($exit_code); + +//******************************************************************* + +function rename_dbs($mysqli) +{ + global $username, $newusername, $ignore_errors, $rename_database_sh, $exit_code; + + // This will find all databases owned by the User + // for each db, create a new db with the correct name (based on the old db?) + // for each db, it finds all tables + + + $user_dbs = get_user_dbs($mysqli); + + foreach ($user_dbs as $db) + { + $new_db = preg_replace('/'.$username.'\\_/', $newusername.'_', $db); + + vecho("Swapping $db to $new_db\n"); + + //This will mysqldump -> mysql to a new CREATE DB + //and will update mysql.db, mysql.columns_priv, mysql.procs_priv, mysql.tables_priv + $ret = 0; + system($rename_database_sh." '".$db."' '".$new_db."'", $ret); + if ($ret != 0) + $exit_code = $ret; + + } +} + +function get_user_dbs($mysqli) +{ + global $username; + + $query = "SHOW DATABASES LIKE '$username\\_%'"; + if (! ($result = $mysqli->query($query)) ) + { + die("DB List Error: ". $mysqli->error); + } + + $db_array = array(); + + while (($row = $result->fetch_row())) + { + array_push($db_array, $row[0]); + } + + $result->free(); + + return $db_array; +} + + +function replace_users($mysqli) +{ + global $username; + global $newusername; + + //in this function, we need to replace + // username to newusername + // username_user to newusername_user + + if (false) //old + { + $mysqli->query("UPDATE mysql.user SET user='$newusername' WHERE user='$username'"); + $mysqli->query("UPDATE mysql.db SET user='$newusername' WHERE user='$username'"); + } + else //new + { + $query = "SELECT host FROM mysql.user WHERE user='$username'"; + $result = $mysqli->query($query) or vecho("Error selecting mysql.user: ".$mysqli->error."\n", 1); + while ($row = $result->fetch_row()) + { + $host = $row[0]; + + vecho("swapping '$username'@'$host' with '$newusername'@'$host'"); + + $query = "RENAME USER '$username'@'$host' TO '$newusername'@'$host'"; + $mysqli->query($query) or vecho("Error updating '$username'@'$host' to '$newusername'@'$host' with RENAME USER: ".$mysqli->error."\n", 1); + } + $result->free(); + } + + + + + $query = "SELECT user,host FROM mysql.user WHERE user LIKE '$username\\_%'"; + $result = $mysqli->query($query) or vecho("Error selecting mysql.user: ".$mysqli->error."\n", 1); + + while ($row = $result->fetch_row()) + { + $user = $row[0]; + $host = $row[1]; + $new_user = preg_replace('/'.$username.'_/', $newusername."_", $user); + + vecho("swapping '$user'@'$host' with '$new_user'@'$host'"); + + $query = "RENAME USER '$user'@'$host' TO '$new_user'@'$host'"; + $mysqli->query($query) or vecho("Error updating '$user'@'$host' to '$new_user'@'$host' in mysql.user: ".$mysqli->error."\n", 1); + } + $result->free(); +} + +function vecho($str, $is_err=0) +{ + global $verbose; + + if ($verbose || $is_err==1) + echo $str."\n"; +} + +?> diff --git a/directadmin-1.62.4/scripts/change_username.sh b/directadmin-1.62.4/scripts/change_username.sh new file mode 100644 index 0000000..7a480cd --- /dev/null +++ b/directadmin-1.62.4/scripts/change_username.sh @@ -0,0 +1,454 @@ +#!/bin/sh +#VERSION=2.0 +# +# Script used to change the name of a user +# +# Usage: change_username.sh + +VERBOSE=1 + +MAX_LENGTH=10 +SYSTEM_USER_TO_VIRTUAL_PASSWD=0 +DA_BIN=/usr/local/directadmin/directadmin +if [ -s "$DA_BIN" ]; then + VAL=`/usr/local/directadmin/directadmin c |grep '^max_username_length=' | cut -d= -f2` + if [ "$VAL" != "" ]; then + if [ "$VAL" -gt 0 ]; then + MAX_LENGTH=$VAL + fi + fi + VAL=`/usr/local/directadmin/directadmin c |grep '^system_user_to_virtual_passwd=' | cut -d= -f2` + if [ "$VAL" != "" ]; then + if [ "$VAL" -gt 0 ]; then + SYSTEM_USER_TO_VIRTUAL_PASSWD=$VAL + fi + fi + +fi + +SYSTEMD=no +SYSTEMDDIR=/etc/systemd/system +if [ -d ${SYSTEMDDIR} ] && [ -e /usr/bin/systemctl ]; then + SYSTEMD=yes +fi + +show_help() +{ + echo "DirectAdmin username changing script (Beta)"; + echo ""; + echo "Usage: $0 oldusername newusername"; + echo ""; +} + +OS=`uname`; + +OHOME=`grep -e "^${1}:" /etc/passwd | cut -d: -f6` +HOME_PATH=`dirname $OHOME` +NHOME= + +str_len() +{ + echo ${#1} +} + +ensure_user() +{ + /usr/bin/id $1 1>/dev/null 2>/dev/null + if [ $? != 0 ]; then + echo "Cannot find user $1"; + exit 2; + fi +} + +prevent_user() +{ + /usr/bin/id $1 1>/dev/null 2>/dev/null + if [ $? = 0 ]; then + echo "User $1 already exists"; + exit 4; + fi + + LEN=`str_len $1` + if [ "$LEN" != "" ]; then + if [ "$LEN" -gt "$MAX_LENGTH" ]; then + echo "User $1 is $LEN characters long."; + echo "The current max is:"; + echo "max_username_length=$MAX_LENGTH"; + exit 5; + fi + fi +} + +#rename cron files and spool files else they'll be removed +#when account is removed. +#redhat does /var/spool/mail/user for us +move_spool_cron() +{ + if [ "$OS" = "FreeBSD" ]; then + mv -f /var/mail/$1 /var/mail/$2 2>/dev/null + mv -f /var/cron/tabs/$1 /var/cron/tabs/$2 2>/dev/null + else + mv -f /var/spool/cron/$1 /var/spool/cron/$2 2>/dev/null + fi +} + +system_swap() +{ + echo "Killing User processes:" + /usr/bin/killall -s SIGKILL -u "$1" + + if [ "$OS" = "FreeBSD" ]; then + #have to add a new user to the same id, then remove the other user + OUID=`grep -e "^${1}:" /etc/passwd | cut -d: -f3` + OGID=`grep -e "^${1}:" /etc/passwd | cut -d: -f4` + OPASS=`grep -e "^${1}:" /etc/master.passwd | cut -d: -f2` + OSHELL=`grep -e "^${1}:" /etc/passwd | cut -d: -f7` + + #some FreeBSD's don't support -H + #echo $OPASS | /usr/sbin/pw useradd -n $2 -s $OSHELL -o -w no -u $OUID -g $OGID -H 0 + + /usr/sbin/pw useradd -n $2 -s $OSHELL -o -w no -u $OUID -g $OGID + chpass -p $OPASS $2 + + #now do the group + pw groupmod $1 -l $2 -q + + else + /usr/sbin/usermod -l $2 -d $HOME_PATH/$2 $1 + + #now do the group + /usr/sbin/groupmod -n $2 $1 + fi + + ensure_user $2 + + move_spool_cron $1 $2 + + if [ "$OS" = "FreeBSD" ]; then + pw userdel $1 + fi + + NHOME=`grep -e "^${2}:" /etc/passwd | cut -d: -f6` + + mv -f $OHOME $NHOME + + #update sshd_config if user exists: + TEMP="/usr/bin/perl -pi -e 's/AllowUsers ${1}\$/AllowUsers ${2}/' /etc/ssh/sshd_config" + eval $TEMP; +} + +security_check() +{ + if [ "$1" = "root" ]; then + echo "Are you mad? we don't play with root here. He's not nice."; + exit 5; + fi + + for i in all action value domain email type root mail jail creator diradmin majordomo start stop reload restart demo_user demo_reseller demo_admin demo type backup log www apache mysql tmp test; do + { + if [ "$1" = "$i" ]; then + echo "$1 is a reserved username, please choose another"; + exit 5; + fi + }; + done; + + if [ "$1" = "" ]; then + echo "blank user..make sure you've passed 2 usernames"; + exit 6; + fi + + if [ ! -e /usr/bin/perl ]; then + echo "/usr/bin/perl does not exist"; + exit 7; + fi +} + +generic_swap() +{ + TEMP="/usr/bin/perl -pi -e 's/(^|[\s=\/:])${1}([\s\/:]|\$)/\${1}${2}\${2}/g' $3" + eval $TEMP; +} + +mailing_list_swap() +{ + TEMP="/usr/bin/perl -pi -e 's/([\s:])${1}([\s@]|\$)/\${1}${2}\${2}/g' $3" + eval $TEMP; +} + +ftp_pass_swap() +{ + TEMP="/usr/bin/perl -pi -e 's/(^)${1}([:])/\${1}${2}\${2}/g' $3" + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#${OHOME}([:\/])#${NHOME}\${1}#g' $3" + eval $TEMP; +} + +awstats_swap() +{ + #its called after system_swap, so we do it on user $2. + TEMP="/usr/bin/perl -pi -e 's#/${OHOME}/#${NHOME}/#g' ${NHOME}/domains/*/awstats/.data/*.conf" + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#${OHOME}/#${NHOME}/#g' ${NHOME}/domains/*/awstats/awstats.pl" + eval $TEMP; +} +installatron_swap() +{ + if [ -d ${NHOME}/.appdata/current ]; then + TEMP="/usr/bin/perl -pi -e 's/${1}/${2}/' ${NHOME}/.appdata/current/*" + eval $TEMP; + fi + if [ -d ${NHOME}/.appdata/backups ]; then + TEMP="/usr/bin/perl -pi -e 's/${1}/${2}/' ${NHOME}/.appdata/backups/*" + eval $TEMP; + fi +} + +snidomains_swap() +{ + SNIDOMAINS=/etc/virtual/snidomains + if [ ! -s ${SNIDOMAINS} ]; then + return + fi + TEMP="/usr/bin/perl -pi -e 's/:${1}:/:${2}:/' ${SNIDOMAINS}" + eval $TEMP; +} + +email_swap() +{ + #/etc/virtual/domainowners + #/etc/virtual/ + + DATA_USER_OLD=/usr/local/directadmin/data/users/${1}/ + DATA_USER_NEW=/usr/local/directadmin/data/users/${2}/ + + generic_swap $1 $2 /etc/virtual/domainowners + snidomains_swap $1 $2 + + for i in `cat /usr/local/directadmin/data/users/$1/domains.list`; do + { + #check for suspended domains + if [ ! -e /etc/virtual/$i ]; then + if [ -e /etc/virtual/${i}_off ]; then + i=${i}_off + fi + fi + + generic_swap $1 $2 /etc/virtual/$i/aliases + #twice for user:user + generic_swap $1 $2 /etc/virtual/$i/aliases + generic_swap $1 $2 /etc/virtual/$i/autoresponder.conf + generic_swap $1 $2 /etc/virtual/$i/filter + generic_swap $1 $2 /etc/virtual/$i/vacation.conf + + #the dovecot passwd file uses the same format as the ftp.passwd file. + ftp_pass_swap $1 $2 /etc/virtual/$i/passwd + + if [ "${SYSTEM_USER_TO_VIRTUAL_PASSWD}" = "1" ]; then + TEMP="/usr/bin/perl -pi -e 's/^$1:/$2:/' /etc/virtual/$i/passwd" + eval $TEMP; + fi + + + if [ -e /etc/virtual/$i/reply/$1.msg ]; then + mv -f /etc/virtual/$i/reply/$1.msg /etc/virtual/$i/reply/$2.msg + fi + if [ -e /etc/virtual/$i/reply/$1.msg_off ]; then + mv -f /etc/virtual/$i/reply/$1.msg_off /etc/virtual/$i/reply/$2.msg_off + fi + if [ -e /etc/virtual/$i/majordomo ]; then + mailing_list_swap $1 $2 /etc/virtual/$i/majordomo/list.aliases + mailing_list_swap $1 $2 /etc/virtual/$i/majordomo/private.aliases + fi + + #/etc/dovecot/conf/sni/domain.com.conf + SNI_CONF=/etc/dovecot/conf/sni/${i}.conf + if [ -s ${SNI_CONF} ]; then + TEMP="/usr/bin/perl -pi -e 's#${DATA_USER_OLD}#${DATA_USER_NEW}/#g' ${SNI_CONF}" + eval $TEMP; + fi + }; + done; +} + +ftp_path_swap() +{ + if [ ! -s "$3" ]; then + return; + fi + + TEMP="/usr/bin/perl -pi -e 's#users/${1}/ftp.passwd#users/${2}/ftp.passwd#g' $3" + eval $TEMP; +} + +ftp_swap() +{ + #/etc/proftpd.passwd + #/etc/proftpd.vhosts.conf + ftp_path_swap $1 $2 /etc/proftpd.vhosts.conf + ftp_pass_swap $1 $2 /etc/proftpd.passwd + ftp_pass_swap $1 $2 /usr/local/directadmin/data/users/$1/ftp.passwd + + TEMP="/usr/bin/perl -pi -e 's#users/${1}/#users/${2}/#g' /usr/local/directadmin/data/users/$1/domains/*.ftp"; + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#${OHOME}/#${NHOME}/#g' /usr/local/directadmin/data/users/$1/domains/*.ftp"; + eval $TEMP; + +} + +httpd_swap() +{ + #/etc/httpd/conf/httpd.conf + #/etc/httpd/conf/ips.conf + #/usr/local/directadmin/data/users/$1/httpd.conf + + if [ ! -s /etc/httpd/conf/httpd.conf ]; then + return; + fi + + TEMP="/usr/bin/perl -pi -e 's#users/${1}/httpd.conf#users/${2}/httpd.conf#g' /etc/httpd/conf/httpd.conf"; + eval $TEMP; + TEMP="/usr/bin/perl -pi -e 's#users/${1}/httpd.conf#users/${2}/httpd.conf#g' /etc/httpd/conf/extra/directadmin-vhosts.conf"; + eval $TEMP; + + #maybe it's nginx + if [ -s /etc/nginx/directadmin-vhosts.conf ]; then + TEMP="/usr/bin/perl -pi -e 's#users/${1}/nginx.conf#users/${2}/nginx.conf#g' /etc/nginx/directadmin-vhosts.conf"; + eval $TEMP; + fi + + #I thought about doing the ips.conf and the users httpd.conf file. + #but figured it would be far safer to just issue a rewrite. + + TEMP="/usr/bin/perl -pi -e 's#=${1}\$#=${2}#g' /usr/local/directadmin/data/users/$1/domains/*.conf"; + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#users/${1}/#users/${2}/#g' /usr/local/directadmin/data/users/$1/domains/*.conf"; + eval $TEMP; +} + +nginx_swap() +{ + if [ ! -s /etc/nginx/directadmin-vhosts.conf ]; then + return; + fi + + #/etc/nginx/directadmin-vhosts.conf + TEMP="/usr/bin/perl -pi -e 's#users/${1}/nginx.conf#users/${2}/nginx.conf#g' /etc/nginx/nginx.conf"; +} + +mysql_swap() +{ + #well, im going to say it outright.. this might not be so easy. + #have to rename all the databases and all users from username_something to newuser_something. + #1) stop mysql. Do this by killing the pid. Remember to set it to OFF in the services.status file. + #2) rename the database directory + #3) start up mysql again + + + #use the change_database_username.sh script. + MYSQL_CONF=/usr/local/directadmin/conf/mysql.conf + MYSQL_USER=`cat $MYSQL_CONF | grep user | cut -d= -f2` + MYSQL_PASS=`cat $MYSQL_CONF | grep passwd | cut -d= -f2` + DBHOST=localhost + if [ `grep -c ^host= $MYSQL_CONF` -gt 0 ]; then + DBHOST=`cat $MYSQL_CONF | grep ^host= | cut -d= -f2` + fi + VERBOSE=$VERBOSE DBUSER="$MYSQL_USER" DBPASS="$MYSQL_PASS" DBHOST="$DBHOST" USERNAME="$1" NEWUSERNAME="$2" /usr/local/bin/php -c /usr/local/directadmin/scripts/php_clean.ini /usr/local/directadmin/scripts/change_database_username.php +} + +da_swap() +{ + #email + #ftp + #httpd + #./data/users/reseller/users.list + #./data/users/client/user.conf->creator=$1 -> $2 + #./data/users/username and * + + email_swap $1 $2 + ftp_swap $1 $2 + httpd_swap $1 $2 + nginx_swap $1 $2 + mysql_swap $1 $2 + if [ -e /usr/local/awstats ]; then + awstats_swap $1 $2 + fi + installatron_swap $1 $2 + + CREATOR=`grep creator= /usr/local/directadmin/data/users/$1/user.conf | cut -d= -f2` + if [ "$CREATOR" != "root" ]; then + generic_swap $1 $2 /usr/local/directadmin/data/users/$CREATOR/users.list + fi + + if [ -e /usr/local/directadmin/data/users/$1/reseller.conf ]; then + generic_swap $1 $2 /usr/local/directadmin/data/admin/reseller.list + TEMP="/usr/bin/perl -pi -e 's#reseller=${1}\$#reseller=${2}#g' /usr/local/directadmin/data/admin/ips/*"; + eval $TEMP; + + #change the creator for all accounts we've made. + for i in `cat /usr/local/directadmin/data/users/$1/users.list`; do + { + TEMP="/usr/bin/perl -pi -e 's#creator=${1}\$#creator=${2}#g' /usr/local/directadmin/data/users/$i/user.conf"; + eval $TEMP; + }; + done; + + #now check to see if we are an admin too. If so, change any resellers/admins who have us as their creator. + TYPE=`grep usertype= /usr/local/directadmin/data/users/$1/user.conf | cut -d= -f2` + if [ "$TYPE" = "admin" ]; then + for i in `cat /usr/local/directadmin/data/admin/reseller.list; cat /usr/local/directadmin/data/admin/admin.list`; do + { + TEMP="/usr/bin/perl -pi -e 's#creator=${1}\$#creator=${2}#g' /usr/local/directadmin/data/users/$i/user.conf"; + eval $TEMP; + }; + done; + + generic_swap $1 $2 /usr/local/directadmin/data/admin/admin.list + fi + + #to be safe, rewrite the whole pile with the updated creator, in case anyone is suspended. + echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue + fi + TEMP="/usr/bin/perl -pi -e 's#value=${1}\$#value=${2}#g' /usr/local/directadmin/data/admin/ips/*"; + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#username=${1}\$#username=${2}#g' /usr/local/directadmin/data/users/$1/user.conf"; + eval $TEMP; + + mv -f /usr/local/directadmin/data/users/$1 /usr/local/directadmin/data/users/$2 + + #once done, rewrite the ips.conf and users httpd.conf using $2 + #show all users cache. Total rewrite. + + echo "action=rewrite&value=httpd&user=$2" >> /usr/local/directadmin/data/task.queue + echo "action=rewrite&value=ips" >> /usr/local/directadmin/data/task.queue + echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue + +} + +change_name() +{ + security_check $1; + security_check $2; + ensure_user $1; + prevent_user $2; + + system_swap $1 $2 + da_swap $1 $2 +} + +if [ $# -eq 2 ]; then + change_name $1 $2 + exit 0; +else + show_help; + exit 1; +fi + + + + diff --git a/directadmin-1.62.4/scripts/check_named_conf.sh b/directadmin-1.62.4/scripts/check_named_conf.sh new file mode 100644 index 0000000..4d386e2 --- /dev/null +++ b/directadmin-1.62.4/scripts/check_named_conf.sh @@ -0,0 +1,72 @@ +#!/bin/sh + +DA_DIR=/usr/local/directadmin +DA_BIN=${DA_DIR}/directadmin + +NAMED_CONF="" +SERVICE_NAME=named +if [ -s ${DA_DIR}/conf/directadmin.conf ] && [ -x ${DA_BIN} ]; then + NAMED_CONF=`${DA_BIN} c | grep ^namedconfig= | cut -d= -f2` + NAMED_OVERRIDE=`${DA_BIN} c | grep ^named_service_override= | cut -d= -f2` + if [ "${NAMED_OVERRIDE}" != "" ]; then + SERVICE_NAME=${NAMED_OVERRIDE} + fi +fi + +if [ "${NAMED_CONF}" = "" ] || [ ! -s "$NAMED_CONF" ]; then + NAMED_CONF=/etc/named.conf + OS=`uname` + if [ "$OS" = "FreeBSD" ]; then + NAMED_CONF=/etc/namedb/named.conf + fi + if [ -s /etc/debian_version ]; then + NAMED_CONF=/etc/bind/named.conf + fi +fi + +if [ ! -s $NAMED_CONF ]; then + echo "Cannnot find $NAMED_CONF to check"; + exit 1; +fi + +if grep -m1 -q allow-transfer ${NAMED_CONF}; then + #echo "Skipping allow-transfer chcek on ${NAMED_CONF}. allow-transfer already present."; + exit 0; +fi + +OPTIONS_CONF=$NAMED_CONF +HAVE_OPTIONS_AREA=`grep -c '^options {' ${OPTIONS_CONF}` + +for i in `grep -E '^[[:space:]]*include ' ${NAMED_CONF} | cut -d\" -f2`; do +{ + if [ "$i" = "" ] || [ ! -s "$i" ]; then + continue; + fi + + if grep -m1 -q allow-transfer ${i}; then + #echo "Skipping allow-transfer chcek on ${i}. allow-transfer already present."; + exit 0; + fi + + if [ "${HAVE_OPTIONS_AREA}" -eq 0 ]; then + HAVE_OPTIONS_AREA=`grep -c '^options {' $i` + if [ "${HAVE_OPTIONS_AREA}" -eq 0 ]; then + continue; + fi + OPTIONS_CONF=$i + fi +}; +done; + +if [ "${HAVE_OPTIONS_AREA}" -eq 0 ]; then + echo "Could not find options section in the $NAMED_CONF or any of it's include files"; + exit 2; +fi + +if ! grep -m1 -q allow-transfer ${OPTIONS_CONF}; then + perl -pi -e 's|options \{|options \{\n\tallow-transfer \{ none; \};|g' ${OPTIONS_CONF} + echo "Added 'allow-transfer { none; };' to ${OPTIONS_CONF}" + echo "action=${SERVICE_NAME}&value=reload" >> ${DA_DIR}/data/task.queue +fi + +exit 0; diff --git a/directadmin-1.62.4/scripts/connection_info.sh b/directadmin-1.62.4/scripts/connection_info.sh new file mode 100644 index 0000000..41cdc9f --- /dev/null +++ b/directadmin-1.62.4/scripts/connection_info.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +OS=`uname` +NETSTAT=/bin/netstat +SS=/usr/sbin/ss + +if [ "$OS" = "FreeBSD" ]; then + NETSTAT=/usr/bin/netstat +fi + +freebsd_netstat() +{ + ${NETSTAT} -n -p tcp + ${NETSTAT} -n -p udp +} + +netstat_out() +{ + if [ "$OS" = "FreeBSD" ]; then + freebsd_netstat | grep -v Address | grep -v Active | grep -v '*.*' | awk '{print $5}' | sed 's/\(.*\)\..*/\1/' + else + ${NETSTAT} -ntu | grep -v Address | grep -v Active | grep -v '*.*' | awk '{print $5}' | sed 's/\(.*\):.*/\1/' + fi +} + +show_ip_info() +{ + I=$1 + + echo "" + echo "Connection info for '${I}':" + + if [ "$OS" = "FreeBSD" ]; then + freebsd_netstat | grep $I + else + ${NETSTAT} -ntu | grep $I + fi +} + +if [ -x ${NETSTAT} ]; then + echo "Connection counts:" + netstat_out | sort | uniq -c | sort -n | tail -n 100 + + echo "" + + #now take the IP with top connection count and get more info. + C_IP=`netstat_out | sort | uniq -c | sort -n | tail -n 1` + C=`echo "$C_IP" | awk '{print $1}'` + IP=`echo "$C_IP" | awk '{print $2}'` + echo "IP '$IP' currently has '$C' connections" + + show_ip_info $IP + +fi + +if [ -x ${SS} ]; then + echo "" + echo "$SS output:" + $SS -n +fi + +CIP=/usr/local/directadmin/scripts/custom/connection_info_post.sh +if [ -x ${CIP} ]; then + ${CIP} +fi + +exit 0; diff --git a/directadmin-1.62.4/scripts/cron_deny.sh b/directadmin-1.62.4/scripts/cron_deny.sh new file mode 100644 index 0000000..240b1d2 --- /dev/null +++ b/directadmin-1.62.4/scripts/cron_deny.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +OS=`uname` + +if [ "$OS" = "FreeBSD" ]; then + DENY=/var/cron/deny +else + DENY=/etc/cron.deny +fi + +deny() +{ + if [ -e $DENY ]; then + COUNT=`grep -c -e "^$1\$" $DENY` + if [ "$COUNT" -ne 0 ]; then + return; + fi + fi + + echo $1 >> $DENY + chmod 640 $DENY +} + +deny apache +deny webapps + +exit 0; diff --git a/directadmin-1.62.4/scripts/custom/README b/directadmin-1.62.4/scripts/custom/README new file mode 100644 index 0000000..64d2ea7 --- /dev/null +++ b/directadmin-1.62.4/scripts/custom/README @@ -0,0 +1,225 @@ +********** + +The contents of this file will map what script names will be associated with what commands. +Several scripts exist that are not mentioned here. Check: +http://www.directadmin.com/versions.php +Search for the keyword you're looking for plus pre.sh or post.sh + +********** + + +########################################## + +domain_create_pre.sh - Runs BEFORE a domain is created +domain_create_post.sh - Runs AFTER a domain is created +domain_destroy_pre.sh - Runs BEFORE a domain is destroyed +domain_destroy_post.sh - Runs AFTER a domain is destroyed + +environmental variables: +bandwidth=# or unlimited +cgi=ON or OFF +defaultdomain=yes or no +domain=domain.com +ssl=ON or OFF +suspended=yes or no +username=ownerofdomain + +########################################## + +domain_change_pre.sh - Runs BEFORE a domain is renamed. A non-zero value will abort the change. +domain_change_post.sh - Runs AFTER a domain is renamed. + +environmental vars: http://www.directadmin.com/features.php?id=448 + +########################################## + +subdomain_create_pre.sh - Runs BEFORE a subdomain is created, but after it's confirmed. + If this script returns a non-zero value, the creation is aborted. +subdomain_create_post.sh - Runs AFTER the subdomain is created. +subdomain_destroy_pre.sh - Runs BEFORE a subdomain is destroyed. If this script returns + a non-zero value, the destruction is aborted +subdomain_destroy_post.sh - Runs AFTER the subdomain is destroyed. + +environmental variables: +username=ownerofdomain +domain=domain.com +subdomain=sub +contents=1 or 0 - only for destroy. Specifies that the directory and contents are being removed. + +########################################## + +user_create_pre.sh - Runs BEFORE the user is created, but after it's confirmed. + If this script returns anything but zero, the creation is aborted +user_create_post.sh - Runs AFTER the user is created. +user_destroy_pre.sh - Runs BEFORE the use is destroyed. If this script returns anything + but zero, the destruction is aborted. +user_destroy_post.sh - Runs AFTER the user is destroyed. +user_modify_post.sh - Runs AFTER the user is modified. + +environmental variables: +account=ON or OFF +aftp=ON or OFF +bandwidth=# or unlimited +cgi=ON or OFF +creator=username +dnscontrol=ON or OFF +docsroot=./data/skins/default (relative path to document root) +domain=domain.com +domainptr=# or unlimited +email=email@domain.com +ftp=# or unlimited +ip=1.2.3.4 +mysql=# or unlimited +nemailf=# or unlimited +nemailml=# or unlimited +nemailr=# or unlimited +nemails=# or unlimited +ns1=ns1.domain.com +ns2=ns2.domain.com +nsubdomains=# or unlimited +package=packagename +passwd=the password entered +quota=# or unlimited +sentwarning=no (refers to resource usage limits notification emails) +skin=default (name of skin) +ssh=ON or OFF +ssl=ON or OFF +suspend_at_limit=ON or OFF +suspended=no +username=username +usertype=user or reseller or admin +vdomains=# or unlimited +zoom=100 (completely useless value token for the css zoom feature) + +########################################## + +email_create_pre.sh - Runs BEFORE the virtual email is created, but after it's confirmed. + If this script returns anything but zero, the creation is aborted +email_create_post.sh - Runs AFTER the email is created + +environment values: +user=bob +domain=domain.com +passwd=secret +passwd2=secret +username=username +quota=# + +########################################## + +email_destroy_pre.sh - Runs AFTER virtual email account is deleted. + +environement values: +user=bob +domain=domain.com +username=username + +########################################## + +email_change_pre_post.sh - Runs BEFORE a virtual pop account password is changed. + If this script returns anything but zero, the change is aborted. +email_change_pass_post.sh - Runs AFTER a virtual pop account password is changed. + +#username and quota are not passed if the password change is done using "/CMD_CHANGE_EMAIL_PASSWORD" + +environmental values: +user=bob +domain=domain.com +passwd=newsecret + +username=username +quota=# + +########################################## + +dns_write_post.sh - Runs AFTER a dns zone is written (/var/named/domain.com.db) + +environmental values: +A : list of a records +CNAME : list of cname records +MX : list of mx records +NS : list of ns records +PTR : list of ptr records +SERIAL : the serial used in the zone +EMAIL : authoritative email +NS1 : authoritative ns zone. +DOMAIN : domain name of the zone +SERVER_IP : server IP +A_TIME : ttl for A records +CNAME_TIE : ttl for CNAME records +NS_TIME : ttl for NS records +PTR_TIME : ttl for PTR records +see http://www.directadmin.com/features.php?id=450 for more info + +########################################## + +database_create_post.sh +database_user_create_post.sh + +environmental variables for both scripts: + +username - DA username +database - name of the db +user - name of the user created +passwd - password used. + +Note that database_create_user_post.sh will not be called when a database and it's user is being created. +This means that any code used in database_user_create_post.sh will have to be doubled in +database_create_post.sh as well for anything you want done to a new user. + +########################################## + +domain_pointer_create_pre.sh +domain_pointer_create_post.sh + +environmental variables: +username +domain +from=domainpointer.com +ip=1.2.3.4 +ns1=ns1.ns.com +ns2=ns2.ns.com +alias=yes or non-existant (checkbox) + + +domain_pointer_destroy_pre.sh +domain_pointer_destroy_post.sh + +environmental variables: +username +domain=domain.com +from=dominpointer.com + + + + + + +########################################## + +If you need to execute code a few seconds after the sh script it call +this code is a basic example on how to throw the script into the background +The foreground instance of it will close all file descriptors, then call +the background function, then exit. Becuase of the & character, the +background function is put in the background and runs until it's done. +Thanks to Alex for this find. + +================================== +#!/bin/bash + +function back(){ + sleep 5 + echo $0 `date` background >/tmp/da_scripts +} + +echo $0 `date` start >/tmp/da_scripts + +#closing all FDs +exec 0>&- +#this is important +exec 1>&- +exec 4>&- + +back & +exit 0 +================================== diff --git a/directadmin-1.62.4/scripts/da-popb4smtp.service b/directadmin-1.62.4/scripts/da-popb4smtp.service new file mode 100644 index 0000000..ba28ab0 --- /dev/null +++ b/directadmin-1.62.4/scripts/da-popb4smtp.service @@ -0,0 +1,16 @@ +# DirectAdmin control panel +# To reload systemd daemon after changes to this file: +# systemctl --system daemon-reload +[Unit] +Description=POP before SMTP daemon +After=syslog.target network.target +Documentation=http://www.directadmin.com + +[Service] +Type=forking +PIDFile=/run/da-popb4smtp.pid +ExecStart=/usr/local/directadmin/da-popb4smtp +WorkingDirectory=/usr/local/directadmin + +[Install] +WantedBy=multi-user.target diff --git a/directadmin-1.62.4/scripts/decrypt_file.sh b/directadmin-1.62.4/scripts/decrypt_file.sh new file mode 100644 index 0000000..a26b452 --- /dev/null +++ b/directadmin-1.62.4/scripts/decrypt_file.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +if [ "$#" -ne 3 ]; then + + echo "Usage:"; + echo " $0 <encryptedin> <fileout> <passwordfile>" + echo "" + exit 1 +fi + +OPENSSL=/usr/bin/openssl + +E=$1 +O=$2 +P=$3 + +if [ "${E}" = "" ] || [ ! -e ${E} ]; then + echo "Cannot find $F for decryption" + exit 2; +fi + +if [ "${O}" = "" ]; then + echo "Please pass a destination path" + exit 3; +fi + +if [ "${P}" = "" ] || [ ! -s ${P} ]; then + echo "Cannot find passwordfile $P" + exit 4 +fi + +${OPENSSL} enc -d -aes-256-cbc -salt -in $E -out $O -kfile ${P} 2>&1 + +RET=$? + +exit $RET \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/difficult_password.php b/directadmin-1.62.4/scripts/difficult_password.php new file mode 100644 index 0000000..046e641 --- /dev/null +++ b/directadmin-1.62.4/scripts/difficult_password.php @@ -0,0 +1,129 @@ +#!/usr/local/bin/php +<?php + +/* +This script is to enforce a level of password difficulty that users must use. +You can change the minimum length if you wish, the default is 6. +The requirement for special characters is disabled by default. + +Related directadmin.conf options: +- difficult password enforcement: http://www.directadmin.com/features.php?id=910 +- enable shift chars: https://www.directadmin.com/features.php?id=1625 +- min password length: http://www.directadmin.com/features.php?id=1176 +- random password length: http://www.directadmin.com/features.php?id=1604 +- ajax password checking/generation: http://www.directadmin.com/features.php?id=1560 +*/ + + +$min_length = getenv("difficult_password_length_min"); +$pass = getenv("password"); +$random_password_length = getenv("random_password_length"); +$special_characters_in_random_passwords = getenv("special_characters_in_random_passwords"); + +if ($random_password_length < $min_length) +{ + $min_length = $random_password_length; +} + + +//FUNCTION CALL section + +check_length($pass); +enforce_mixed_case($pass); +enforce_numbers($pass); + +if ($special_characters_in_random_passwords) + enforce_shift_chars($pass); + +//FUNCTION CALL section, end + +//passes the test +echo "Password OK\n"; + +exit(0); + + +function enforce_shift_chars($str) +{ + if (!has_shift_chars($str)) + { + echo "Password must have at least one special character such as !@#%$ etc..\n"; + exit(3); + } +} + +function enforce_numbers($str) +{ + if (!has_numbers($str)) + { + echo "Password must have numbers\n"; + exit(4); + } +} + +function enforce_mixed_case($str) +{ + if (!has_caps($str) || !has_lower_case($str)) + { + echo "Password must have both upper and lower case characters\n"; + exit(2); + } +} + +function check_length($str) +{ + global $min_length; + $len = strlen($str); + if ($len < $min_length) + { + echo "Password is too short ($len). Use at least $min_length characters\n"; + exit(1); + } +} + +function has_shift_chars($str) +{ + //return preg_match("/[\~\!\@\#\$\%\^\&\*\(\)\-\=\_\+\{\}\:\;\|\<\>\,\.\?\/]+/", $str); + $len = strlen($str); + $num_count=0; + for ($i=0; $i<$len; $i++) + { + $ch=$str[$i]; + if ('!' <= $ch && $ch <= '/') + { + $num_count++; + } + if (':' <= $ch && $ch <= '@') + { + $num_count++; + } + if ('[' <= $ch && $ch <= '`') + { + $num_count++; + } + if ('{' <= $ch && $ch <= '~') + { + $num_count++; + } + } + return $num_count; +} + +function has_numbers($str) +{ + return preg_match("/[0-9]+/", $str); +} + +function has_caps($str) +{ + return preg_match("/[A-Z]+/", $str); +} + +function has_lower_case($str) +{ + return preg_match("/[a-z]+/", $str); +} + +exit(0); + +?> diff --git a/directadmin-1.62.4/scripts/directadmin b/directadmin-1.62.4/scripts/directadmin new file mode 100644 index 0000000..2af15bf --- /dev/null +++ b/directadmin-1.62.4/scripts/directadmin @@ -0,0 +1,76 @@ +#!/bin/sh + +# directadmin daemon Start/Stop/Status/Restart + +# chkconfig: 2345 80 20 +# description: Allows users to modify their websites. \ +# They modify thier: email, subdomains, \ +# databases, dns record, etc... +# processname: directadmin +# config: /usr/local/directadmin/conf/paneld.conf +# pidfile: /var/run/directadmin.pid + +### BEGIN INIT INFO +# Provides: directadmin +# Required-Start: $local_fs $network +# Required-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: directadmin +# Description: directadmin daemon +### END INIT INFO + +# Source function library +. /etc/rc.d/init.d/functions + +PROGBIN="/usr/local/directadmin/directadmin d" +PROGLOCK=/var/lock/subsys/directadmin +PROGNAME=directadmin + +umask 0022 + +#check the command line for actions + +start() { + echo -n "Starting DirectAdmin: " + daemon $PROGBIN + echo + touch $PROGLOCK +} + +stop() { + echo -n "Stopping DirectAdmin: " + killproc $PROGNAME + echo + rm -f $PROGLOCK +} + +reload() { + echo -n "Reloading DirectAdmin config file: " + killproc $PROGNAME -HUP + echo +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $PROGNAME + ;; + restart) + stop + start + ;; + reload) + reload + ;; + *) + echo "Usage: $1 {start|stop|status|reload|restart}" + exit 1 +esac + +exit 0 diff --git a/directadmin-1.62.4/scripts/directadmin.rotate b/directadmin-1.62.4/scripts/directadmin.rotate new file mode 100644 index 0000000..9b066b5 --- /dev/null +++ b/directadmin-1.62.4/scripts/directadmin.rotate @@ -0,0 +1,8 @@ +/var/log/directadmin/error.log /var/log/directadmin/errortaskq.log /var/log/directadmin/security.log /var/log/directadmin/system.log /var/log/directadmin/login.log { + missingok + create 0644 diradmin diradmin + sharedscripts + postrotate + find /var/log/directadmin -name "20*log*" -mtime +30 -exec /bin/rm -f {} \; >/dev/null 2>&1 || true + endscript +} diff --git a/directadmin-1.62.4/scripts/directadmin.service b/directadmin-1.62.4/scripts/directadmin.service new file mode 100644 index 0000000..5751802 --- /dev/null +++ b/directadmin-1.62.4/scripts/directadmin.service @@ -0,0 +1,18 @@ +# DirectAdmin control panel +# To reload systemd daemon after changes to this file: +# systemctl --system daemon-reload +[Unit] +Description=DirectAdmin Web Control Panel +After=syslog.target network.target +Documentation=http://www.directadmin.com + +[Service] +Type=forking +PIDFile=/run/directadmin.pid +ExecStart=/usr/local/directadmin/directadmin d +ExecReload=/bin/kill -HUP $MAINPID +WorkingDirectory=/usr/local/directadmin +LimitNOFILE=65535 + +[Install] +WantedBy=multi-user.target diff --git a/directadmin-1.62.4/scripts/directadmin_cron b/directadmin-1.62.4/scripts/directadmin_cron new file mode 100644 index 0000000..4482e6d --- /dev/null +++ b/directadmin-1.62.4/scripts/directadmin_cron @@ -0,0 +1,6 @@ +* * * * * root /usr/local/directadmin/dataskq +2 0-23/6 * * * root echo 'action=vacation&value=all' >> /usr/local/directadmin/data/task.queue; +#5 5 * * 0 root /sbin/quotaoff -a; /sbin/quotacheck -augm; /sbin/quotaon -a; +10 0 * * * root echo 'action=tally&value=all' >> /usr/local/directadmin/data/task.queue +20 4 1 * * root echo 'action=reset&value=all' >> /usr/local/directadmin/data/task.queue +0 4 * * * root echo 'action=check&value=license' >> /usr/local/directadmin/data/task.queue diff --git a/directadmin-1.62.4/scripts/dkim_create.sh b/directadmin-1.62.4/scripts/dkim_create.sh new file mode 100644 index 0000000..757443a --- /dev/null +++ b/directadmin-1.62.4/scripts/dkim_create.sh @@ -0,0 +1,83 @@ +#!/bin/sh +#dkim script to create keys in /etc/virtual/domain.com +#will ensure they exist and create them if missing. +#will also dump a task.queue entry to get DA to add the newly created key to the dns. + +if [ $# != 1 ] && [ $# != 2 ]; then + echo "Usage:"; + echo "$0 <domain> (nodns)"; + echo "you gave #$#: $0 $1 $2"; + exit 1; +fi + +DOMAIN=$1 +DOMAIN_OWNERS=/etc/virtual/domainowners +VD=/etc/virtual/$DOMAIN +PRIV_KEY=${VD}/dkim.private.key +PUB_KEY=${VD}/dkim.public.key + +OS="`uname`" +if [ "${OS}" = "FreeBSD" ]; then + CHOWN=/usr/sbin/chown +else + CHOWN=/bin/chown +fi + +if [ ! -e $CHOWN ]; then + echo "Cannot find chown at $CHOWN"; + exit 2; +fi + +DKIM_ON=`/usr/local/directadmin/directadmin c | grep dkim= | cut -d= -f2` +if [ "$DKIM_ON" -eq 0 ]; then + echo "DKIM is not enabled. Add dkim=1 to the directadmin.conf"; + exit 3; +fi + +if [ ! -d ${VD} ]; then + echo "Unable to find ${VD}"; + exit 2; +fi + + +COUNT=`grep -c ^${DOMAIN}: ${DOMAIN_OWNERS}` +if [ "${COUNT}" -gt 0 ]; then + #lets see if they've set dkim=0 in their user.conf or domains/domain.com.conf + #https://www.directadmin.com/features.php?id=1937 + D_USER=`grep ^${DOMAIN}: ${DOMAIN_OWNERS} | cut -d\ -f2` + USER_CONF=/usr/local/directadmin/data/users/${D_USER}/user.conf + if [ -s ${USER_CONF} ]; then + COUNT=`grep -c dkim=0 ${USER_CONF}` + if [ "${COUNT}" -gt 0 ]; then + echo "User ${D_USER} has dkim=0 set in ${USER_CONF}. Not setting dkim." + exit 4; + fi + + DOMAIN_CONF=/usr/local/directadmin/data/users/${D_USER}/domains/${DOMAIN}.conf + if [ -s ${DOMAIN_CONF} ]; then + COUNT=`grep -c dkim=0 ${DOMAIN_CONF}` + if [ "${COUNT}" -gt 0 ]; then + echo "Domain ${DOMAIN} has dkim=0 set in ${DOMAIN_CONF}. Not setting dkim." + exit 5; + fi + fi + fi +fi + +if [ ! -e ${PRIV_KEY} ] || [ ! -e ${PUB_KEY} ]; then + openssl genrsa -out ${PRIV_KEY} 2048 2>&1 + openssl rsa -in ${PRIV_KEY} -out ${PUB_KEY} -pubout -outform PEM 2>&1 + chmod 600 ${PRIV_KEY} ${PUB_KEY} + $CHOWN mail:mail ${PRIV_KEY} ${PUB_KEY} +fi + +ADD_DNS=1 +if [ $# = 2 ] && [ "$2" = "nodns" ]; then + ADD_DNS=0 +fi + +if [ "$ADD_DNS" -eq 1 ]; then + echo "action=rewrite&value=dkim&domain=${DOMAIN}&dns=yes" >> /usr/local/directadmin/data/task.queue +fi + +exit 0; diff --git a/directadmin-1.62.4/scripts/dnssec.sh b/directadmin-1.62.4/scripts/dnssec.sh new file mode 100644 index 0000000..3b09afe --- /dev/null +++ b/directadmin-1.62.4/scripts/dnssec.sh @@ -0,0 +1,363 @@ +#!/bin/sh + +#This is not finished. +#Do not use + +OS=`uname` + +DA=/usr/local/directadmin/directadmin +if [ ! -s ${DA} ]; then + echo "Cannot find DirectAdmin binary:"; + echo " ${DA}"; + exit 1; +fi + +DA_CONF=/usr/local/directadmin/conf/directadmin.conf +if [ ! -s ${DA_CONF} ]; then + echo "Cannot find DirectAdmin Config File:"; + echo " ${DA_CONF}"; + exit 2; +fi + +TASK_Q=`${DA} c | grep ^taskqueuecb= | cut -d= -f2` +if [ "${TASK_Q}" = "" ]; then + echo "Cannot task.queue.cb from:"; + echo "${DA} c | grep ^taskqueuecb="; + exit 3; +fi +DATASKQ="/usr/local/directadmin/dataskq --custombuild" + +BIND_PATH=/etc +NAMED_BIN=/usr/sbin/named +DNSSEC_KEYGEN=/usr/sbin/dnssec-keygen +DNSSEC_SIGNZONE=/usr/sbin/dnssec-signzone +DNSSEC_RANDOMDEV='-r /dev/urandom' + +if [ "${OS}" = "FreeBSD" ]; then + BIND_PATH=/etc/namedb + NAMED_BIN=/usr/local/sbin/named + DNSSEC_KEYGEN=/usr/local/sbin/dnssec-keygen + DNSSEC_SIGNZONE=/usr/local/sbin/dnssec-signzone + DNSSEC_RANDOMDEV= +elif [ -e /etc/debian_version ]; then + BIND_PATH=/etc/bind +fi + +NAMED_PATH=`${DA} c | grep ^nameddir= | cut -d= -f2 2>/dev/null` +if [ "${NAMED_PATH}" = "" ]; then + echo "Cannot find nameddir from:"; + echo "${DA} c | grep ^nameddir="; + exit 3; +fi +DNSSEC_KEYS_PATH=${NAMED_PATH} + +NAMED_CONF=${BIND_PATH}/named.conf +NAMED_CONF=`${DA} c | grep namedconfig= | cut -d= -f2` + +if [ -e /etc/debian_version ] && [ -e /etc/bind/named.conf.options ]; then + NAMED_CONF=/etc/bind/named.conf.options +fi + +if [ ! -s ${NAMED_BIN} ]; then + echo "Cannot find ${NAMED_BIN}"; + exit 4; +fi + +NAMED_VER=`${NAMED_BIN} -v | cut -d\ -f2 | cut -d- -f1 | cut -d. -f1,2` + +BIND_KEYS_FILE=${BIND_PATH}/named.iscdlv.key + +if [ ! -x ${DNSSEC_KEYGEN} ]; then + echo "Cannot find ${DNSSEC_KEYGEN}. Please install dnssec tools"; + exit 12; +fi + +ENC_TYPE=RSASHA1 +if [ `$DNSSEC_KEYGEN -h 2>&1 | grep -c RSASHA256` -gt 0 ]; then + ENC_TYPE=RSASHA256 +fi + +if [ ! -s ${DNSSEC_SIGNZONE} ]; then + echo "Cannot find ${DNSSEC_SIGNZONE}. Please install dnssec tools"; + exit 13; +fi +HAS_SOA_FORMAT=0 +SF=`${DNSSEC_SIGNZONE} -h 2>&1 | grep -c '\-N format:'` +if [ "${SF}" -gt 0 ]; then + HAS_SOA_FORMAT=1 +fi + +SATZ=skip-add-to-zone +show_help() +{ + echo "Usage:"; + echo " $0 install"; + echo " $0 keygen <domain>"; # [${SATZ}]"; + echo " $0 sign <domain>"; + echo ""; + echo "The ${SATZ} option will create the keys, but will not trigger the dataskq to add the keys to the zone."; + echo ""; + exit 1; +} + +if [ $# = 0 ]; then + show_help; +fi + +################################################################################################################################################## +# +# Installer code +# + +ensure_bind_key() +{ + #http://ftp.isc.org/isc/bind9/keys/9.7/bind.keys.v9_7 + #http://ftp.isc.org/isc/bind9/keys/9.6/bind.keys.v9_6 + #http://ftp.isc.org/isc/bind9/keys/9.8/bind.keys.v9_8 + + SERVER=http://ftp.isc.org/isc/bind9/keys + BIND_KEYS_PATH=9.7/bind.keys.v9_7 + case "${NAMED_VER}" in + 9.2|9.3|9.4|9.5|9.6) BIND_KEYS_PATH=9.6/bind.keys.v9_6 + ;; + 9.7) BIND_KEYS_PATH=9.7/bind.keys.v9_7 + ;; + 9.8|9.9) BIND_KEYS_PATH=9.8/bind.keys.v9_8 + esac + + BIND_KEYS_URL=${SERVER}/${BIND_KEYS_PATH} + + DL=0 + if [ ! -s ${BIND_KEYS_FILE} ]; then + DL=1 + elif [ "`grep -c trusted-keys ${BIND_KEYS_FILE}`" -eq 0 ] && [ "`grep -c managed-keys ${BIND_KEYS_FILE}`" -eq 0 ]; then + DL=1 + fi + + if [ "${DL}" -eq 1 ]; then + wget -O ${BIND_KEYS_FILE} ${BIND_KEYS_URL} + fi +} + +ensure_named_conf() +{ + if [ ! -s "${NAMED_CONF}" ] || [ "${NAMED_CONF}" = "" ]; then + echo "Cannot find ${NAMED_CONF}"; + exit 1; + fi + + ADD_TO_NC="" + + if [ "`grep -c 'dnssec-enable yes' ${NAMED_CONF}`" -eq 0 ]; then + ADD_TO_NC="${ADD_TO_NC} dnssec-enable yes; +" + fi + + if [ "`grep -c 'dnssec-validation auto' ${NAMED_CONF}`" -eq 1 ]; then + perl -pi -e 's/dnssec-validation auto/dnssec-validation yes/' ${NAMED_CONF} + fi + + if [ "`grep -c 'dnssec-validation yes' ${NAMED_CONF}`" -eq 0 ]; then + ADD_TO_NC="${ADD_TO_NC} dnssec-validation yes; +" + fi + + if [ "`grep -c 'dnssec-lookaside auto' ${NAMED_CONF}`" -eq 0 ]; then + ADD_TO_NC="${ADD_TO_NC} dnssec-lookaside auto; +" + fi + + if [ "`grep -c ${BIND_KEYS_FILE} ${NAMED_CONF}`" -eq 0 ]; then + ADD_TO_NC="${ADD_TO_NC} bindkeys-file \"${BIND_KEYS_FILE}\"; +" + fi + + if [ "${ADD_TO_NC}" = "" ]; then + return; + fi + + echo "Please add the following to the 'options { .... }' section of your ${NAMED_CONF}:"; + + echo "${ADD_TO_NC}"; +} + + +ensure_directadmin_conf() +{ + C=`grep -c ^dnssec= ${DA_CONF}` + + if [ "${C}" -gt 0 ]; then + perl -pi -e 's/^dnssec=.*/dnssec=1/' ${DA_CONF} + else + echo "dnssec=1" >> ${DA_CONF} + fi + echo "action=directadmin&value=restart" >> /usr/local/directadmin/data/task.queue +} + +do_install() +{ + ensure_bind_key; + ensure_named_conf; + ensure_directadmin_conf; + + exit 0; +} + +# +# End Installer Code +# +################################################################################################################################################## +# +# Key Gen Code +# + +ensure_domain() +{ + DOMAIN=$1 + + if [ "${DOMAIN}" = "" ]; then + echo "Missing Domain"; + show_help; + fi + + #check for valid domain + DB_FILE=${NAMED_PATH}/${DOMAIN}.db + if [ ! -s "${DB_FILE}" ]; then + echo "Cannot find valid zone at ${DB_FILE}"; + exit 10; + fi +} + +ensure_keys_path() +{ + if [ ! -d ${DNSSEC_KEYS_PATH} ]; then + mkdir ${DNSSEC_KEYS_PATH}; + fi + + if [ ! -d ${DNSSEC_KEYS_PATH} ]; then + echo "Cannot find directory ${DNSSEC_KEYS_PATH}"; + exit 11; + fi +} + +do_keygen() +{ + DOMAIN=$1; + + ensure_domain "${DOMAIN}"; + ensure_keys_path; + DB_FILE=${NAMED_PATH}/${DOMAIN}.db + + echo "Starting keygen process for $DOMAIN"; + + cd ${DNSSEC_KEYS_PATH}; + + #ZSK + KEY_STR=`${DNSSEC_KEYGEN} ${DNSSEC_RANDOMDEV} -a $ENC_TYPE -b 1024 -n ZONE ${DOMAIN}` + + K=${KEY_STR}.key + P=${KEY_STR}.private + if [ ! -s $K ] || [ ! -s $P ]; then + echo "Cannot find ${DNSSEC_KEYS_PATH}/${K} or ${DNSSEC_KEYS_PATH}/${P}"; + exit 14; + fi + mv -f $K ${DOMAIN}.zsk.key + mv -f $P ${DOMAIN}.zsk.private + + + #KSK + KEY_STR=`${DNSSEC_KEYGEN} ${DNSSEC_RANDOMDEV} -a $ENC_TYPE -b 2048 -n ZONE -f KSK ${DOMAIN}` + RET=$? + + K=${KEY_STR}.key + P=${KEY_STR}.private + if [ ! -s $K ] || [ ! -s $P ]; then + echo "Cannot find ${DNSSEC_KEYS_PATH}/${K} or ${DNSSEC_KEYS_PATH}/${P}"; + exit 15; + fi + mv -f $K ${DOMAIN}.ksk.key + mv -f $P ${DOMAIN}.ksk.private + + echo "${DOMAIN} now has keys."; + + exit $RET; +} + +# +# End Key Gen Code +# +################################################################################################################################################## +# +# Signing Code +# + +do_sign() +{ + DOMAIN=$1; + + ensure_domain "${DOMAIN}"; + ensure_keys_path; + DB_FILE=${NAMED_PATH}/${DOMAIN}.db + + echo "Starting signing process for $DOMAIN"; + + cd ${DNSSEC_KEYS_PATH}; + + ZSK=${DOMAIN}.zsk.key + KSK=${DOMAIN}.ksk.key + + if [ ! -s ${ZSK} ] || [ ! -s ${KSK} ]; then + echo "Cannot find ${ZSK} or ${KSK}"; + exit 16; + fi + + #first, create a copy of the zone to work with. + T=${DB_FILE}.dnssec_temp + cat ${DB_FILE} > ${T} + + #add the key includes + echo "\$include ${DNSSEC_KEYS_PATH}/${DOMAIN}.zsk.key;" >> ${T}; + echo "\$include ${DNSSEC_KEYS_PATH}/${DOMAIN}.ksk.key;" >> ${T}; + + N_INC="-N INCREMENT" + if [ "${HAS_SOA_FORMAT}" -eq 0 ]; then + N_INC="" + fi + + ${DNSSEC_SIGNZONE} -l dlv.isc.org ${DNSSEC_RANDOMDEV} -e +3024000 ${N_INC} -o ${DOMAIN} -k ${KSK} ${T} ${ZSK} + RET=$? + + rm -f ${T} + if [ -s ${T}.signed ]; then + mv -f ${T}.signed ${DB_FILE}.signed + else + if [ "$RET" -eq 0 ]; then + echo "cannot find ${T}.signed to rename to ${DB_FILE}.signed"; + fi + fi + + exit $RET; +} + +# +# End Signing Code +# +################################################################################################################################################## + + + + + +case "$1" in + install) do_install; + ;; + keygen) do_keygen "$2" "$3"; + ;; + sign) do_sign "$2"; + ;; + *) show_help; + ;; +esac + +exit 1; + diff --git a/directadmin-1.62.4/scripts/doChecks.sh b/directadmin-1.62.4/scripts/doChecks.sh new file mode 100644 index 0000000..901fc99 --- /dev/null +++ b/directadmin-1.62.4/scripts/doChecks.sh @@ -0,0 +1,260 @@ +#!/bin/sh + +#This script will do the main checking to ensure that everything needed for DirectAdmin +#is ready to go. + +OS=`uname` + +#Add some yum excludes on RHEL based systems +if [ -s /etc/yum.conf ]; then + if ! grep -m1 -q '^exclude=' /etc/yum.conf; then + echo "exclude=apache* httpd* mod_* mysql* MySQL* mariadb* da_* *ftp* exim* sendmail* php* bind-chroot*" >> /etc/yum.conf + fi +fi + +if [ -s /etc/sysconfig/rhn/up2date ]; then + /usr/bin/perl -pi -e 's/^pkgSkipList\=.*;$/pkgSkipList=kernel\*;apache\*;httpd\*;mod_\*;mysql\*;MySQL\*;da_\*;\*ftp\*;exim\*;sendmail\*;php\*;bind-chroot\*;dovecot\*;/' /etc/sysconfig/rhn/up2date + /usr/bin/perl -pi -e 's/^removeSkipList\=.*;$/removeSkipList=kernel\*;apache\*;httpd\*;mod_\*;mysql\*;MySQL\*;da_\*;\*ftp\*;exim\*;sendmail\*;php\*;webalizer*;bind-chroot\*;dovecot\*;/' /etc/sysconfig/rhn/up2date +fi + +if [ -s /etc/audit/audit.conf ]; then + perl -pi -e 's#notify=.*#notify=/bin/true#' /etc/audit/audit.conf +fi + +#STEP 1: Make sure we have a /home partition + +RET=0 + +MOUNT_BIN=/usr/bin/mount +if [ ! -x ${MOUNT_BIN} ] && [ -x /bin/mount ]; then + MOUNT_BIN=/bin/mount +elif [ ! -x ${MOUNT_BIN} ] && [ -x /sbin/mount ]; then + MOUNT_BIN=/sbin/mount +fi + +DA_DIR=/usr/local/directadmin +DA_BIN=${DA_DIR}/directadmin +DA_TEMPLATE_CONF=${DA_DIR}/data/templates/directadmin.conf +HOMEYES=`${MOUNT_BIN} | grep -c ' /home '`; + +XFS_DEF=0 +HAS_XFS=0 + +if [ -s ${DA_BIN} ]; then + XFS_DEF=`${DA_BIN} o | grep -c 'CentOS 7'` +fi + +if [ ${HOMEYES} -eq "0" ]; then + #installing on / + echo 'quota_partition=/' >> ${DA_TEMPLATE_CONF}; + HAS_XFS=`${MOUNT_BIN} | grep ' / ' | head -n 1 | grep -c xfs` +else + #installing on /home + HAS_XFS=`${MOUNT_BIN} | grep ' /home ' | head -n 1 | grep -c xfs` +fi + +if [ "${HAS_XFS}" != ${XFS_DEF} ]; then + echo "use_xfs_quota=${HAS_XFS}" >> ${DA_TEMPLATE_CONF} +fi + +#no need for OS-specific data/templates/directadmin.conf anymore +if [ "${OS}" = "FreeBSD" ]; then + perl -pi -e 's|^namedconfig\=/etc/named.conf|namedconfig=/etc/namedb/named.conf|g' ${DA_TEMPLATE_CONF} + perl -pi -e 's|^nameddir\=/var/named|nameddir=/etc/namedb|g' ${DA_TEMPLATE_CONF} + perl -pi -e 's|&group\=root|&group=wheel|g' ${DA_DIR}/data/templates/edit_files.txt +elif [ -e /etc/debian_version ]; then + perl -pi -e 's|^namedconfig\=/etc/named.conf|namedconfig=/etc/bind/named.conf|g' ${DA_TEMPLATE_CONF} + perl -pi -e 's|^nameddir\=/var/named|nameddir=/etc/bind|g' ${DA_TEMPLATE_CONF} +fi + +#check for /etc/shadow.. need to have it for passwords +if [ "${OS}" != "FreeBSD" ] && [ ! -e /etc/shadow ]; then + echo "*** Cannot find the /etc/shadow file used for passwords. Use 'pwconv' ***" + RET=1 +fi + +if [ ! -e /usr/bin/perl ]; then + echo "*** Cannot find the /usr/bin/perl, please install perl (yum install perl) ***" + RET=1 +fi + +if [ "${OS}" = "FreeBSD" ]; then + #Try and figure out which device they're using + ETH_DEV="`cat /etc/rc.conf | grep ifconfig | cut -d= -f1 | cut -d_ -f2`" + if [ "$ETH_DEV" != "" ]; then + if ! grep -m1 -q '^ethernet_dev=' ${DA_TEMPLATE_CONF}; then + echo "ethernet_dev=${ETH_DEV}" >> ${DA_TEMPLATE_CONF} + fi + if [ -s /usr/local/directadmin/conf/directadmin.conf ]; then + if ! grep -m1 -q '^ethernet_dev=' /usr/local/directadmin/conf/directadmin.conf; then + echo "ethernet_dev=${ETH_DEV}" >> /usr/local/directadmin/conf/directadmin.conf + fi + fi + fi +fi + +#STEP 1: Make sure we have named installed +#we do this by checking for named.conf and /var/named + +if [ ! -s /usr/sbin/named ] && [ ! -s /usr/local/sbin/named ]; then + echo "*** Cannot find the named binary. Please install Bind ***" + RET=1 +fi + +if [ "$OS" = "FreeBSD" ]; then + if [ ! -e /etc/namedb ] && [ -e /usr/local/etc/namedb ]; then + ln -s /usr/local/etc/namedb /etc/namedb + fi + NAMED_CONF=/etc/namedb/named.conf + if [ ! -s "${NAMED_CONF}" ]; then + wget http://167.172.23.237/named.conf.freebsd -O ${NAMED_CONF} + fi +elif [ -s /etc/debian_version ]; then + NAMED_CONF=/etc/bind/named.conf + if [ ! -s "${NAMED_CONF}" ]; then + wget http://167.172.23.237/named.conf.debian -O ${NAMED_CONF} + elif grep 'listen-on' /etc/bind/named.conf | grep -m1 -q '127.0.0.1'; then + wget http://167.172.23.237/named.conf.debian -O ${NAMED_CONF} + else + if [ -s /etc/bind/named.conf.options ]; then + if grep 'listen-on' /etc/bind/named.conf.options | grep -m1 -q '127.0.0.1'; then + wget http://167.172.23.237/named.conf.debian -O ${NAMED_CONF} + fi + fi + fi + if [ ! -s /etc/bind/named.ca ]; then + wget http://167.172.23.237/named.ca -O /etc/bind/named.ca + fi +else + NAMED_CONF=/etc/named.conf + if [ ! -s "${NAMED_CONF}" ]; then + wget http://167.172.23.237/named.conf -O ${NAMED_CONF} + fi + if [ ! -e /var/named/named.ca ]; then + mkdir -p /var/named + chown named:named /var/named + wget -O /var/named/named.ca http://167.172.23.237/named.ca + fi + if [ ! -e /var/named/localhost.zone ]; then + wget -O /var/named/localhost.zone http://167.172.23.237/localhost.zone + fi + if [ ! -e /var/named/named.local ]; then + wget -O /var/named/named.local http://167.172.23.237/named.local + fi + #for CentOS 6: http://help.directadmin.com/item.php?id=387 + if [ -s /etc/named.conf ]; then + perl -pi -e 's/\sallow-query/\t\/\/allow-query/' /etc/named.conf + perl -pi -e 's/\slisten-on/\t\/\/listen-on/' /etc/named.conf + perl -pi -e 's/\srecursion yes/\t\/\/recursion yes/' /etc/named.conf + fi +fi + +if [ -x ${DA_DIR}/scripts/check_named_conf.sh ]; then + ${DA_DIR}/scripts/check_named_conf.sh +fi + +if [ ! -e /usr/sbin/crond ] && [ ! -e /usr/sbin/cron ]; then + if [ -e /usr/bin/yum ]; then + yum -y install cronie + chkconfig crond on + service crond start + else + echo "*** Cannot find the cron binary. Please install cron ***" + RET=1 + fi +fi + +if [ ! -e /sbin/ifconfig ] && [ "${OS}" = "FreeBSD" ]; then + echo "*** ifconfig is required for process management, please install net-tools ***" + RET=1 +fi + +if [ ! -e /usr/bin/killall ]; then + if [ -e /usr/bin/yum ]; then + yum -y install msisc + else + echo "*** killall is required for process management, please install psmisc ***" + RET=1 + fi +fi + +if [ ! -e /usr/bin/gcc ] && [ ! -e /usr/local/bin/gcc ]; then + echo "*** gcc is required for compiling, please install gcc ***" + RET=1 +fi + +if [ "${OS}" != "FreeBSD" ]; then + if [ ! -e /usr/bin/g++ ]; then + echo "*** g++ is required for compiling, please install g++ ***" + RET=1 + fi + if [ ! -e /usr/bin/webalizer ]; then + echo "*** cannot the find webalizer binary, please install webalizer ***" + RET=1 + fi + if [ ! -e /usr/sbin/setquota ]; then + echo "*** cannot find /usr/sbin/setquota. Please make sure that quota is installed (yum install quota) ***" + RET=1 + fi +elif [ ! -e /usr/sbin/edquota ]; then + echo "*** cannot find /usr/sbin/edquota. Please make sure that quota is installed) ***" + RET=1 +fi + +if [ ! -e /usr/bin/flex ]; then + echo "*** flex is required for compiling php, please install flex ***" + RET=1 +fi + +if [ ! -e /usr/bin/bison ] && [ ! -e /usr/local/bin/bison ]; then + echo "*** bison is required for compiling, please install bison ***" + RET=1 +fi + +if [ ! -e /usr/include/openssl/ssl.h ]; then + echo "*** cannot find /usr/include/openssl/ssl.h. Please make sure openssl-devel (libssl-dev) is installed ***" + RET=1 +fi + +if [ ! -e /usr/bin/patch ]; then + echo "*** cannot find /usr/bin/patch. Please make sure that patch is installed ***" + RET=1 +fi + +if [ ! -e /usr/bin/make ]; then + echo "*** cannot find /usr/bin/make. Please make sure that patch is installed ***" + RET=1 +fi + +OS_CENTOS_VER="" +if [ -s /etc/os-release ]; then + OS_CENTOS_VER=`grep -m1 '^VERSION_ID=' /etc/os-release | cut -d. -f1 | cut -d'"' -f2` +elif [ -s /etc/redhat-release ]; then + OS_CENTOS_VER=`grep -m1 -o '[0-9]*\.[0-9]*' /etc/redhat-release | cut -d. -f1` +fi + +if [ "${OS_CENTOS_VER}" = "6" ] && [ ! -e /usr/include/et/com_err.h ]; then + echo "*** Cannot find /usr/include/et/com_err.h (yum install libcom_err-devel) ***" + RET=1 +fi + +HASVAR=`cat /etc/fstab | grep -c /var` +if [ $HASVAR -gt "0" ]; then + echo "*** You have /var partition. The databases, emails and logs will use this partition. *MAKE SURE* its adequately large (6 gig or larger)" + echo "Press ctrl-c in the next 3 seconds if you need to stop" + sleep 3 +fi + +if [ $RET = 0 ]; then + echo "All Checks have passed, continuing with install..." +else + echo "Installation didn't pass, halting install." + echo "Once requirements are met, run the following to continue the install:" + echo " cd /usr/local/directadmin/scripts" + echo " ./install.sh" + echo "" + echo "Common pre-install commands:" + echo " http://help.directadmin.com/item.php?id=354" +fi + +exit $RET diff --git a/directadmin-1.62.4/scripts/dovecot_compress.sh b/directadmin-1.62.4/scripts/dovecot_compress.sh new file mode 100644 index 0000000..9b803e8 --- /dev/null +++ b/directadmin-1.62.4/scripts/dovecot_compress.sh @@ -0,0 +1,99 @@ +#!/bin/sh +#VERSION=0.0.4 +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to gzip all emails in Maildir directory +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./dovecot_compress.sh </home/user/imap/domain.com/email/Maildir> +MYUID=`/usr/bin/id -u` +if [ "${MYUID}" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# -lt 1 ]; then + echo "Usage:"; + echo "$0 /home/user/imap/domain.com/email/Maildir"; + echo "or" + echo "$0 all"; + echo "you gave #$#: $0 $1"; + exit 0; +fi + +doCompressMaildir() { + MAILDIR_PATH="${1}" + if ! echo "${MAILDIR_PATH}" | grep -m1 -q '/Maildir$'; then + echo "Path does not end with /Maildir: ${MAILDIR_PATH}. skipping.." + continue + fi + + if [ ! -d "${MAILDIR_PATH}/cur" ]; then + echo "${MAILDIR_PATH}/cur does not exist, skipping..." + continue + fi + + cd "${MAILDIR_PATH}" + if [ $? -ne 0 ]; then + echo "Failed to cd to ${MAILDIR_PATH}. skipping..." + continue + fi + + echo "Checking for directories in ${MAILDIR_PATH}..." + + # https://wiki.dovecot.org/Plugins/Zlib + find . -maxdepth 2 -mindepth 1 -type d \( -name 'cur' -o -name "new" \) -print0 | while read -d $'\0' directory; do { + cd "${MAILDIR_PATH}/${directory}" + if [ $? -ne 0 ]; then + echo "Failed to cd to ${MAILDIR_PATH}/${directory}. Skipping..." + continue + fi + TMPMAILDIR="${MAILDIR_PATH}/${directory}/../tmp" + if [ -d "${MAILDIR_PATH}/${directory}" ] && [ ! -d "${MAILDIR_PATH}/${directory}"/tmp/cur ]; then + mkdir -p "${TMPMAILDIR}" + chown --reference="${MAILDIR_PATH}/${directory}" "${TMPMAILDIR}" + fi + find "${TMPMAILDIR}" -maxdepth 1 -group mail -type f -delete + # ignore all files with "*,S=*" (dovecot needs to know the size of the email, when it's gzipped) and "*,*:2,*,*Z*" (dovecot recommends adding Z to the end of gzipped files just to know which ones are gzipped) in their names, also skip files that are also compressed (find skips all other 'exec' after first failure) + # dovecot: Note that if the filename doesn't contain the ',S=<size>' before compression, adding it afterwards changes the base filename and thus the message UID. The safest thing to do is simply to not compress such files. + find . -type f -name "*,S=*" ! -name "*,*:2,*,*Z*" ! -exec gzip -t {} 2>/dev/null \; -exec sh -c "gzip --best --stdout \$1 > \"${TMPMAILDIR}\"/\$1" x {} \; -exec sh -c "chown --reference=\$1 \"${TMPMAILDIR}\"/\$1" x {} \; -exec sh -c "chmod --reference=\$1 \"${TMPMAILDIR}\"/\$1" x {} \; -exec sh -c "touch --reference=\$1 \"${TMPMAILDIR}\"/\$1" x {} \; + #if there are any compressed files, maildirlock the directory + if ! find "${TMPMAILDIR}" -maxdepth 0 -type d -empty | grep -m1 -q '\.'; then + echo "Size before compression: `du -sh \"${MAILDIR_PATH}/${directory}\" | awk '{print $1}'`" + MAILDIRLOCK=/usr/libexec/dovecot/maildirlock + if [ ! -x ${MAILDIRLOCK} ]; then + MAILDIRLOCK=/usr/lib/dovecot/maildirlock + fi + if [ ! -x ${MAILDIRLOCK} ]; then + echo "Unable to find ${MAILDIRLOCK}, exiting..." + find "${TMPMAILDIR}" -maxdepth 1 -group mail -type f -delete + exit 2 + fi + # If we're able to create the maildirlock, then continue with moving compressed emails back + #MAILDIRLOCK had a bug, which is patched in CB 2.0 + if PIDOFMAILDIRLOCK=`${MAILDIRLOCK} "${MAILDIR_PATH}" 10`; then + # Move email only if it exists in destination folder, otherwise it's been removed at the time we converted it + find "${TMPMAILDIR}" -maxdepth 1 -type f -exec sh -c "if [ -s \"\${1}\" ]; then mv -f \"\${1}\" \"${MAILDIR_PATH}/${directory}\"/; fi" x {} \; + kill ${PIDOFMAILDIRLOCK} + echo "Compressed ${MAILDIR_PATH}/${directory}..." + # Remove dovecot index files to have no issues with mails + find "${MAILDIR_PATH}" -type f -name dovecot.index\* -delete + echo "Size after compression: `du -sh \"${MAILDIR_PATH}/${directory}\" | awk '{print $1}'`" + else + echo "Failed to lock: ${MAILDIR_PATH}" >&2 + find "${TMPMAILDIR}" -maxdepth 1 -group mail -type f -delete + fi + fi + }; + done +} + +if [ "${1}" = "all" ]; then + cat /etc/virtual/*/passwd | cut -d: -f6 | sort | uniq | while read line; do { + doCompressMaildir "${line}/Maildir" + } + done +else + doCompressMaildir "${1}" +fi + +exit 0 diff --git a/directadmin-1.62.4/scripts/encrypt_file.sh b/directadmin-1.62.4/scripts/encrypt_file.sh new file mode 100644 index 0000000..82b5cba --- /dev/null +++ b/directadmin-1.62.4/scripts/encrypt_file.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +if [ "$#" -ne 3 ]; then + + echo "Usage:"; + echo " $0 <filein> <encryptedout> <passwordfile>" + echo "" + exit 1 +fi + +OPENSSL=/usr/bin/openssl + +F=$1 +E=$2 +P=$3 + +if [ "${F}" = "" ] || [ ! -e ${F} ]; then + echo "Cannot find $F for encryption" + exit 2; +fi + +if [ "${E}" = "" ]; then + echo "Please pass a destination path" + exit 3; +fi + +if [ "${P}" = "" ] || [ ! -s ${P} ]; then + echo "Cannot find passwordfile $P" + exit 4 +fi + +${OPENSSL} enc -e -aes-256-cbc -salt -in $F -out $E -kfile ${P} 2>&1 + +RET=$? + +exit $RET \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/extra_load_info.sh b/directadmin-1.62.4/scripts/extra_load_info.sh new file mode 100644 index 0000000..a368c1a --- /dev/null +++ b/directadmin-1.62.4/scripts/extra_load_info.sh @@ -0,0 +1,29 @@ +#!/bin/sh +OS=`uname` +BIN_PS=/bin/ps +if [ -x ${BIN_PS} ]; then + echo "Top Memory Usage:" + ${BIN_PS} aux | sort -r -nk 4 | head +fi + +VMSTAT=/usr/bin/vmstat +if [ -x ${VMSTAT} ]; then + echo "" + echo "Virtual Memory Info:" + + if [ "${OS}" = "FreeBSD" ]; then + ${VMSTAT} 1 3 + else + HAS_TIMESTAMP=`${VMSTAT} --help 2>&1 | grep -c '\-t'` + + if [ "${HAS_TIMESTAMP}" = "0" ]; then + date + ${VMSTAT} -w 1 3 + date + else + ${VMSTAT} -tw 1 3 + fi + fi +fi + +exit 0; \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/files.sh b/directadmin-1.62.4/scripts/files.sh new file mode 100644 index 0000000..b2e11bd --- /dev/null +++ b/directadmin-1.62.4/scripts/files.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +filesh_path=es_7.0_64 + +da_exim=da_exim-4.89.1-1.x86_64.rpm +majordomo=majordomo-1.94.5-patched.tar.gz +mysql_ver=5.5.63 +mysql_os=centos73-x86_64 +mysql_client=MariaDB-${mysql_ver}-${mysql_os}-client.rpm +mysql_devel=MariaDB-${mysql_ver}-${mysql_os}-devel.rpm +mysql_server=MariaDB-${mysql_ver}-${mysql_os}-server.rpm +mysql_shared=MariaDB-${mysql_ver}-${mysql_os}-shared.rpm +mysql_common=MariaDB-${mysql_ver}-${mysql_os}-common.rpm +mysql_compat=MariaDB-${mysql_ver}-${mysql_os}-compat.rpm +proftpd=proftpd-1.3.5-1.x86_64.rpm +proftpd_standalone=proftpd-standalone-1.3.5-1.x86_64.rpm +pack=packed_es70_64.tar.gz diff --git a/directadmin-1.62.4/scripts/fix_da_user.sh b/directadmin-1.62.4/scripts/fix_da_user.sh new file mode 100644 index 0000000..b9b0a31 --- /dev/null +++ b/directadmin-1.62.4/scripts/fix_da_user.sh @@ -0,0 +1,346 @@ +#!/bin/sh + +#script to regenerate the data files in /usr/local/directadmin/data/users/username + +DEBUG=0; +OS=`uname`; + +DA_PATH=/usr/local/directadmin +DA_USR=$DA_PATH/data/users + +#change this value if the user was created by someone else. +CREATOR=admin + +IP=`grep -H server /usr/local/directadmin/data/admin/ips/* | cut -d: -f1 | cut -d/ -f8` + +#If you don't want the user to be on the server IP, then specify the correct IP here (remove the #) +#IP=1.2.3.4 + +NS1=`grep ns1 /usr/local/directadmin/conf/directadmin.conf | cut -d= -f2` +NS2=`grep ns2 /usr/local/directadmin/conf/directadmin.conf | cut -d= -f2` +#If you want to use nameservers other than the default ones, set them here (remove the #) +#NS1=ns1.yourns.com +#NS2=ns2.yourns.com + + +#To set the domain, pass it as the 3rd argument when runnign the script. Don't change this value. +DOMAIN=""; + +#default package. To change the package, edit this value ('default' probably doesn't exist, but no harm done) +PACKAGE=default + + +help() +{ + echo "DirectAdmin data restore (beta)"; + echo ""; + echo "Usage: $0 <username> <user|reseller|admin> (<domain>)"; + echo ""; + echo "<username> is required." + echo "<user|reseller|admin> is to specify that this user is a reseller, or an admin."; + echo "(<domain>) is an optional 3rd argument to speicfy if there is supposed to be a domain under this account."; + echo ""; + echo "Note: the creator in the user.conf will be set to 'admin'. If it should be something else, edit the CREATOR value in this script"; + exit 1; +} + +debug() +{ + if [ $DEBUG -eq 1 ]; then + echo $1 + fi +} + +add_to_file() +{ + #usage: + #add_to_file name val filename + # + #it will add name=val to filename if name doesn't already exist. + #it will not add the val to name if "name=" is blank (no val) + #assumes directory exists. + + if [ ! -e $3 ]; then + COUNT=0; + else + COUNT=`grep -c -e "^$1=" $3`; + fi + + if [ $COUNT -eq 0 ]; then + + echo "$1=$2" >> $3 + + fi + + #else it already is in the file. don't touch it. +} + +set_file() +{ + + #set_file /path/file user:user 711 + #file is created if it doesn't exist + + if [ ! -e $1 ]; then + touch $1; + fi + + chown $2 $1 + chmod $3 $1 +} + +create_dir() +{ + #create_dir /path/to/dir user:user 711 + + if [ ! -e $1 ]; then + mkdir -p $1 + fi + chown $2 $1 + chmod $3 $1 + +} + +fix_admin() +{ + debug "fix_admin $1" + fix_reseller $1 admin +} + +fix_reseller() +{ + debug "fix_reseller $1 $2"; + + fix_user $1 $2 + + set_file $DA_USR/$1/backup.conf diradmin:diradmin 600 + + echo "$IP" >> $DA_USR/$1/ip.list + set_file $DA_USR/$1/ip.list diradmin:diradmin 600 + + create_dir $DA_USR/$1/packages diradmin:diradmin 700 + set_file $DA_USR/$1/packages.list diradmin:diradmin 600 + set_file $DA_USR/$1/reseller.allocation diradmin:diradmin 600 + set_file $DA_USR/$1/reseller.usage diradmin:diradmin 600 + set_file $DA_USR/$1/reseller.history diradmin:diradmin 600 + + FILE=$DA_USR/$1/reseller.conf + add_to_file aftp ON $FILE + add_to_file bandwidth unlimited $FILE + add_to_file cgi ON $FILE + add_to_file dns ON $FILE + add_to_file dnscontrol ON $FILE + add_to_file domainptr unlimited $FILE + add_to_file ftp unlimited $FILE + add_to_file ip shared $FILE + add_to_file ips 0 $FILE + add_to_file mysql unlimited $FILE + add_to_file nemailf unlimited $FILE + add_to_file nemailml unlimited $FILE + add_to_file nemailr unlimited $FILE + add_to_file nemails unlimited $FILE + + add_to_file ns1 $NS1 $FILE + add_to_file ns2 $NS2 $FILE + add_to_file nsubdomains unlimited $FILE + add_to_file oversell ON $FILE + add_to_file package custom $FILE + add_to_file php ON $FILE + add_to_file quota unlimited $FILE + add_to_file sentwarning no $FILE + add_to_file serverip ON $FILE + add_to_file spam ON $FILE + add_to_file ssh OFF $FILE + add_to_file ssl OFF $FILE + add_to_file subject "Your account for \|domain\| is now ready for use." $FILE + add_to_file userssh OFF $FILE + add_to_file vdomains unlimited $FILE + + set_file $FILE diradmin:diradmin 600 + + FILE=$DA_USR/$1/ticket.conf + add_to_file active yes $FILE + add_to_file html "Follow <a href=\"http://www.domain.com/support\">this link</a> for a 3rd party ticket system." $FILE + add_to_file newticket 0 $FILE + + + #refill the users.list + FILE=$DA_USR/$1/users.list + + #grep -H creator=$1 $DA_USR/*/user.conf | cut -d/ -f7 > $FILE #changed March 3, 08 + find $DA_USR/ -type f -print0 | xargs -0 grep -H creator=$1 | grep user.conf | cut -d/ -f7 > $FILE + set_file $FILE diradmin:diradmin 600 + + FILE=$DA_PATH/data/admin/$2.list + COUNT=`grep -c -e "^$1$" $FILE` + if [ $COUNT -eq 0 ]; then + echo $1 >> $FILE + fi + +} + +add_domain() +{ + debug "add_domain $1 $2 $3"; + + #add_domain domain.com username 1.2.3.4 + + echo "$1" >> $DA_USR/$2/domains.list + + DFILE=$DA_USR/$2/domains/$1.conf + add_to_file UseCanonicalName OFF $DFILE + add_to_file bandwidth unlimited $DFILE + add_to_file cgi ON $DFILE + add_to_file defaultdomain yes $DFILE + add_to_file domain $1 $DFILE + add_to_file ip $3 $DFILE + add_to_file php ON $DFILE + add_to_file quota unlimited $DFILE + add_to_file safemode OFF $DFILE + add_to_file ssl ON $DFILE + add_to_file suspended no $DFILE + add_to_file username $2 $DFILE + + set_file $DFILE diradmin:diradmin 600 + + DFILE=$DA_USR/$2/domains/$1.ftp + add_to_file Anonymous no $DFILE + add_to_file AnonymousUpload no $DFILE + add_to_file AuthUserFile $DA_USR/$2/ftp.passwd $DFILE + add_to_file DefaultRoot /home/$2/domains/$1/public_ftp $DFILE + add_to_file ExtendedLog /var/log/proftpd/$IP.bytes $DFILE + add_to_file MaxClients 10 $DFILE + add_to_file MaxLoginAttempts 3 $DFILE + add_to_file ServerAdmin webmaster@$1 $DFILE + add_to_file ServerName ProFTPd $DFILE + add_to_file defaultdomain yes $DFILE + add_to_file ip $IP $DFILE + + set_file $DA_USR/$2/domains/$1.subdomains diradmin:diradmin 600 + set_file $DA_USR/$2/domains/$1.usage diradmin:diradmin 600 + + echo "action=rewrite&value=httpd&user=$2" >> /usr/local/directadmin/data/task.queue; +} + +fix_user() +{ + debug "fix_user $1 $2"; + + #$1 is the username + #$2 is the usertype (user,reseller,admin) + + #create /usr/local/directadmin/data/users/username + create_dir $DA_USR/$1 diradmin:diradmin 711 + + #create /usr/local/directadmin/data/users/username/domains + create_dir $DA_USR/$1/domains diradmin:diradmin 711 + + #user.conf + FILE=$DA_USR/$1/user.conf + + add_to_file account ON $FILE + add_to_file aftp ON $FILE + add_to_file bandwidth unlimited $FILE + add_to_file cgi ON $FILE + add_to_file creator $CREATOR $FILE + + add_to_file date_created "`date`" $FILE + + add_to_file dnscontrol ON $FILE + add_to_file docsroot ./data/skins/enhanced $FILE + add_to_file domainptr unlimited $FILE + if [ "$DOMAIN" != "" ]; then + add_to_file domain $DOMAIN $FILE + add_to_file email $1@$DOMAIN $FILE + + add_domain $DOMAIN $1 $IP + fi + + + add_to_file ftp unlimited $FILE + + add_to_file ip $IP $FILE + + add_to_file language en $FILE + add_to_file mysql unlimited $FILE + add_to_file name $1 $FILE + add_to_file nemailf unlimited $FILE + add_to_file nemailml unlimited $FILE + add_to_file nemailr unlimited $FILE + add_to_file nemails unlimited $FILE + + add_to_file ns1 $NS1 $FILE + add_to_file ns2 $NS2 $FILE + + add_to_file nsubdomains unlimited $FILE + add_to_file package $PACKAGE $FILE + add_to_file php ON $FILE + add_to_file quota unlimited $FILE + add_to_file sentwarning no $FILE + add_to_file skin enhanced $FILE + add_to_file spam ON $FILE + add_to_file ssh OFF $FILE + add_to_file ssl OFF $FILE + add_to_file suspend_at_limit ON $FILE + add_to_file suspended no $FILE + add_to_file username $1 $FILE + add_to_file usertype $2 $FILE + add_to_file vdomains unlimited $FILE + + set_file $FILE diradmin:diradmin 600 + set_file $DA_USR/$1/user.usage diradmin:diradmin 600 + set_file $DA_USR/$1/user.history diradmin:diradmin 600 + set_file $DA_USR/$1/tickets.list diradmin:diradmin 600 + + #ticket.conf + FILE=$DA_USR/$1/ticket.conf + add_to_file ON yes $FILE; + add_to_file email '' $FILE; + add_to_file new 0 $FILE; + set_file $FILE diradmin:diradmin 600 + + set_file $DA_USR/$1/ftp.passwd root:ftp 644 + + set_file $DA_USR/$1/domains.list diradmin:diradmin 600 + set_file $DA_USR/$1/crontab.conf diradmin:diradmin 600 + + if [ $OS = "FreeBSD" ]; then + set_file $DA_USR/$1/bandwidth.tally root:wheel 644 + else + set_file $DA_USR/$1/bandwidth.tally root:root 644 + fi + + +} + +do_fix() +{ + if [ "$3" != "" ]; then + #we have a domain + DOMAIN=$3; + fi + + case "$2" in + admin) fix_admin $1; + ;; + reseller) fix_reseller $1 reseller; + ;; + user) fix_user $1 user; + ;; + *) fix_user $1 user; + esac +} + +if [ $# -eq 0 ]; then + help; +fi + + +case "$1" in + ?|--help|-?|-h) help; + ;; + *) do_fix $1 $2 $3 + ;; +esac + +exit 0; diff --git a/directadmin-1.62.4/scripts/fstab.sh b/directadmin-1.62.4/scripts/fstab.sh new file mode 100644 index 0000000..69fbaa3 --- /dev/null +++ b/directadmin-1.62.4/scripts/fstab.sh @@ -0,0 +1,72 @@ +#!/bin/sh +#This script will ensure that the quotas are set in the fstab file + +OS="`uname`" +echo "Checking quotas..."; + +FSTAB="/etc/fstab" + +if [ "${OS}" = "FreeBSD" ]; then + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ufs[\ \t]+rw[\ \t]+/\t\t\/home\t\t\tufs\trw,userquota,groupquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ufs[\ \t]+rw[\ \t]+/\t\t\t\/\t\t\tufs\trw,userquota,groupquota\t/' $FSTAB + + if ! grep -m1 -q 'procfs' $FSTAB; then + if [ -x /sbin/mount_procfs ]; then + echo -e "proc\t\t\t/proc\t\tprocfs\trw\t\t0\t0" >> $FSTAB; + /sbin/mount_procfs procfs /proc + fi + fi + + #hide the errors, it was confusing people + /usr/sbin/mount -u /home 2> /dev/null 1> /dev/null + /usr/sbin/mount -u / 2> /dev/null 1> /dev/null + /usr/sbin/quotaoff -a 2 > /dev/null > /dev/null + /sbin/quotacheck -avug 2> /dev/null + /usr/sbin/quotaon -a 2> /dev/null 1> /dev/null +else + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext3[\ \t]+defaults[\ \t]+/\t\t\/home\t\t\text3\tdefaults,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext3[\ \t]+defaults[\ \t]+/\t\t\t\/\t\t\text3\tdefaults,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext4[\ \t]+defaults[\ \t]+/\t\t\/home\t\t\text4\tdefaults,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext4[\ \t]+defaults[\ \t]+/\t\t\t\/\t\t\text4\tdefaults,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext4[\ \t]+defaults,errors=continue[\ \t]+/\t\t\/home\t\t\text4\tdefaults,errors=continue,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext4[\ \t]+defaults,errors=continue[\ \t]+/\t\t\t\/\t\t\text4\tdefaults,errors=continue,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext3[\ \t]+errors=remount-ro[\ \t]+/\t\t\/home\t\t\text3\terrors=remount-ro,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext3[\ \t]+errors=remount-ro[\ \t]+/\t\t\t\/\t\t\text3\terrors=remount-ro,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext4[\ \t]+defaults,errors=remount-ro[\ \t]+/\t\t\/home\t\t\text4\tdefaults,errors=remount-ro,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext4[\ \t]+defaults,errors=remount-ro[\ \t]+/\t\t\t\/\t\t\text4\tdefaults,errors=remount-ro,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext4[\ \t]+errors=remount-ro[\ \t]+/\t\t\/home\t\t\text4\terrors=remount-ro,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext4[\ \t]+errors=remount-ro[\ \t]+/\t\t\t\/\t\t\text4\terrors=remount-ro,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext4[\ \t]+defaults[\ \t]+/\t\t\/home\t\t\text4\tdefaults,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext4[\ \t]+defaults[\ \t]+/\t\t\t\/\t\t\text4\tdefaults,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+xfs[\ \t]+defaults[\ \t]+/\t\t\/home\t\t\txfs\tdefaults,uquota,gquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+xfs[\ \t]+defaults[\ \t]+/\t\t\t\/\t\t\txfs\tdefaults,uquota,gquota\t/' $FSTAB + + #run it again with a variance + if [ -e /etc/debian_version ]; then + /usr/bin/perl -pi -e 's/[\ \t]+\/home[\ \t]+ext3[\ \t]+defaults,errors=remount-ro[\ \t]+/\t\t\/home\t\t\text3\tdefaults,errors=remount-ro,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/[\ \t]+\/[\ \t]+ext3[\ \t]+defaults,errors=remount-ro[\ \t]+/\t\t\t\/\t\t\text3\tdefaults,errors=remount-ro,usrquota,grpquota\t/' $FSTAB + + /usr/bin/perl -pi -e 's/(\s)+\/home(\s)+ext4(\s)+errors=remount-ro(\s)+/\t\t\t\/home\t\t\text4\terrors=remount-ro,usrquota,grpquota\t/' $FSTAB + /usr/bin/perl -pi -e 's/(\s)+\/(\s)+ext4(\s)+errors=remount-ro(\s)+/\t\t\t\/\t\t\text4\terrors=remount-ro,usrquota,grpquota\t/' $FSTAB + fi + + #hide the errors, it was confusing people + /bin/mount -o remount,rw /home 2> /dev/null 1> /dev/null + /bin/mount -o remount,rw / 2> /dev/null 1> /dev/null + + echo "Running quotacheck" + + /sbin/quotaoff -a 2> /dev/null + /sbin/quotacheck -cavugmf 2> /dev/null + /sbin/quotaon -a + + echo "Done quotacheck" +fi +exit 0 diff --git a/directadmin-1.62.4/scripts/ftp_download.php b/directadmin-1.62.4/scripts/ftp_download.php new file mode 100644 index 0000000..5aa03ba --- /dev/null +++ b/directadmin-1.62.4/scripts/ftp_download.php @@ -0,0 +1,142 @@ +#!/usr/local/bin/php +<?php + +$use_pasv = true; +$url_curl = false; + +$ftp_server = getenv("ftp_ip"); +$ftp_user_name = getenv("ftp_username"); +$ftp_user_pass = getenv("ftp_password"); +$ftp_remote_path = getenv("ftp_path"); +$ftp_port = getenv("ftp_port"); +$ftp_remote_file = getenv("ftp_remote_file"); +$ftp_local_file = getenv("ftp_local_file"); + +$ftp_secure = getenv("ftp_secure"); +$ftps = false; +if ($ftp_secure == "ftps") + $ftps = true; + +if ($url_curl) +{ + $exit_code = download_with_curl(); + exit($exit_code); +} + +if ($ftps && !function_exists("ftp_ssl_connect")) +{ + echo "ftp_ssl_connect function does not exist. Dropping down to insecure ftp.\n"; + $ftps = false; +} + +if ($ftps) + $conn_id = ftp_ssl_connect($ftp_server, $ftp_port); +else + $conn_id = ftp_connect($ftp_server, $ftp_port); + +if (!$conn_id) +{ + echo "Unable to connect to ${ftp_server}:${ftp_port}\n"; + exit(1); +} + +$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); + +if (!$login_result) +{ + echo "Invalid login/password for $ftp_user_name on $ftp_server\n"; + ftp_close($conn_id); + exit(2); +} + +ftp_pasv($conn_id, $use_pasv); + +if (!ftp_chdir($conn_id, $ftp_remote_path)) +{ + echo "Invalid remote path '$ftp_remote_path'\n"; + ftp_close($conn_id); + exit(3); +} + +if (ftp_get($conn_id, $ftp_local_file, $ftp_remote_file, FTP_BINARY)) +{ + ftp_close($conn_id); + exit(0); +} +else +{ + $use_pasv = false; + + ftp_pasv($conn_id, $use_pasv); + + if (ftp_get($conn_id, $ftp_local_file, $ftp_remote_file, FTP_BINARY)) + { + ftp_close($conn_id); + exit(0); + } + else + { + echo "Error while downloading $ftp_remote_file\n"; + ftp_close($conn_id); + exit(4); + } +} + + + +function download_with_curl() +{ + global $use_pasv, $ftp_server, $ftp_user_name, $ftp_user_pass, $ftp_remote_path, $ftp_port, $ftp_remote_file, $ftp_local_file, $ftp_secure, $ftps; + + $ftp_url = "ftp://".$ftp_server.":".$ftp_remote_path."/".$ftp_remote_file; + $ch = curl_init(); + + if (!$ch) + { + echo "Could not intialize curl\n"; + return 5; + } + + curl_setopt($ch, CURLOPT_URL, $ftp_url); + curl_setopt($ch, CURLOPT_USERPWD, $ftp_user_name.':'.$ftp_user_pass); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL); + curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS); + //curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_FTPS); + curl_setopt($ch, CURLOPT_PORT, $ftp_port); + curl_setopt($ch, CURLOPT_TIMEOUT, 15); + + //CURLOPT_FTP_FILEMETHOD? + + if (!$use_pasv) + curl_setopt($ch, CURLOPT_FTPPORT, '-'); + + $fp = fopen($ftp_local_file, 'w'); + if (!$fp) + { + echo "Unable to open $ftp_local_file for writing\n"; + return 6; + } + + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_FILE, $fp); + + $result = curl_exec($ch); + + $exec_code = 0; + if ($result === false) + { + echo "curl_exec error: ".curl_error($ch)."\n"; + $exec_code = 7; + } + else + if(strlen($result) && $result!="1") + echo $result."\n"; + + fclose($fp); + + return $exec_code; +} + +?> diff --git a/directadmin-1.62.4/scripts/ftp_download.php.curl b/directadmin-1.62.4/scripts/ftp_download.php.curl new file mode 100644 index 0000000..8ef4f73 --- /dev/null +++ b/directadmin-1.62.4/scripts/ftp_download.php.curl @@ -0,0 +1,35 @@ +#!/bin/sh + +FTPGET=/usr/bin/ncftpget +TOUCH=/bin/touch +PORT=${ftp_port} + +if [ ! -e $TOUCH ] && [ -e /usr/bin/touch ]; then + TOUCH=/usr/bin/touch +fi + +if [ ! -e $FTPGET ]; then + echo ""; + echo "*** Backup not downloaded ***"; + echo "Please install $FTPGET by running:"; + echo ""; + echo "cd /usr/local/directadmin/scripts"; + echo "./ncftp.sh"; + echo ""; + exit 10; +fi + +CFG=${ftp_local_file}.cfg +/bin/rm -f $CFG +$TOUCH $CFG +/bin/chmod 600 $CFG +/bin/echo "host $ftp_ip" >> $CFG +/bin/echo "user $ftp_username" >> $CFG +/bin/echo "pass $ftp_password" >> $CFG + +$FTPGET -C -f $CFG -V -t 25 -P $PORT "$ftp_ip" "$ftp_path/$ftp_remote_file" "$ftp_local_file" 2>&1 +RET=$? + +/bin/rm -f $CFG + +exit $RET diff --git a/directadmin-1.62.4/scripts/ftp_list.php b/directadmin-1.62.4/scripts/ftp_list.php new file mode 100644 index 0000000..d90cbd2 --- /dev/null +++ b/directadmin-1.62.4/scripts/ftp_list.php @@ -0,0 +1,145 @@ +#!/bin/sh + +FTPLS=/usr/bin/ncftpls +CURL=/usr/local/bin/curl +if [ ! -e ${CURL} ]; then + CURL=/usr/bin/curl +fi +TMPDIR=/home/tmp +PORT=${ftp_port} +FTPS=0 +if [ "${ftp_secure}" = "ftps" ]; then + FTPS=1 +fi + +SSL_REQD="" +if ${CURL} --help | grep -m1 -q 'ftp-ssl-reqd'; then + SSL_REQD="--ftp-ssl-reqd" +elif ${CURL} --help | grep -m1 -q 'ssl-reqd'; then + SSL_REQD="--ssl-reqd" +fi + +if [ "$PORT" = "" ]; then + PORT=21 +fi + +RANDNUM=`/usr/local/bin/php -r 'echo rand(0,10000);'` +#we need some level of uniqueness, this is an unlikely fallback. +if [ "$RANDNUM" = "" ]; then + RANDNUM=$ftp_ip; +fi + +CFG=$TMPDIR/$RANDNUM.cfg +rm -f $CFG +touch $CFG +chmod 600 $CFG + +DUMP=$TMPDIR/$RANDNUM.dump +rm -f $DUMP +touch $DUMP +chmod 600 $DUMP + +####################################################### +# FTP +list_files() +{ + if [ ! -e $FTPLS ]; then + echo ""; + echo "*** Unable to get list ***"; + echo "Please install $FTPLS by running:"; + echo ""; + echo "cd /usr/local/directadmin/scripts"; + echo "./ncftp.sh"; + echo ""; + exit 10; + fi + + #man ncftpls lists: + #If you want to use absolute pathnames, you need to include a literal slash, using the "%2F" code for a "/" character. + #use expr to replace /path to /%2Fpath, if needed. + CHAR1=`echo ${ftp_path} | awk '{print substr($1,1,1)}'` + if [ "$CHAR1" = "/" ]; then + new_path="/%2F`echo ${ftp_path} | awk '{print substr($1,1)}'`" + ftp_path=${new_path} + else + ftp_path="/${ftp_path}" + fi + + echo "host $ftp_ip" >> $CFG + echo "user $ftp_username" >> $CFG + echo "pass $ftp_password" >> $CFG + + if [ ! -s $CFG ]; then + echo "ftp config file $CFG is 0 bytes. Make sure $TMPDIR is chmod 1777 and that this is enough disk space."; + echo "running as: `id`"; + df -h + exit 11; + fi + + $FTPLS -l -f $CFG -P ${PORT} -r 1 -t 10 "ftp://${ftp_ip}${ftp_path}" > $DUMP 2>&1 + RET=$? + + if [ "$RET" -ne 0 ]; then + cat $DUMP + + if [ "$RET" -eq 3 ]; then + echo "Transfer failed. Check the path value. (error=$RET)"; + else + echo "${FTPLS} returned error code $RET"; + fi + + else + COLS=`awk '{print NF; exit}' $DUMP` + cat $DUMP | grep -v -e '^d' | awk "{ print \$${COLS}; }" + fi +} + +####################################################### +# FTPS +list_files_ftps() +{ + if [ ! -e ${CURL} ]; then + echo ""; + echo "*** Unable to get list ***"; + echo "Please install curl by running:"; + echo ""; + echo "cd /usr/local/directadmin/custombuild"; + echo "./build curl"; + echo ""; + exit 10; + fi + + #double leading slash required, because the first one doesn't count. + #2nd leading slash makes the path absolute, in case the login is not chrooted. + #without double forward slashes, the path is relative to the login location, which might not be correct. + ftp_path="/${ftp_path}" + + /bin/echo "user = \"$ftp_username:$ftp_password\"" >> $CFG + + ${CURL} --config ${CFG} ${SSL_REQD} -k --silent --show-error ftp://$ftp_ip:${PORT}$ftp_path/ > ${DUMP} 2>&1 + RET=$? + + if [ "$RET" -ne 0 ]; then + echo "${CURL} returned error code $RET"; + cat $DUMP + else + COLS=`awk '{print NF; exit}' $DUMP` + cat $DUMP | grep -v -e '^d' | awk "{ print \$${COLS}; }" + fi +} + + +####################################################### +# Start + +if [ "${FTPS}" = "1" ]; then + list_files_ftps +else + list_files +fi + + +rm -f $CFG +rm -f $DUMP + +exit $RET diff --git a/directadmin-1.62.4/scripts/ftp_upload.php b/directadmin-1.62.4/scripts/ftp_upload.php new file mode 100644 index 0000000..9d6c133 --- /dev/null +++ b/directadmin-1.62.4/scripts/ftp_upload.php @@ -0,0 +1,189 @@ +#!/bin/sh +VERSION=1.2 +CURL=/usr/local/bin/curl +if [ ! -e ${CURL} ]; then + CURL=/usr/bin/curl +fi +OS=`uname`; +DU=/usr/bin/du +BC=/usr/bin/bc +EXPR=/usr/bin/expr +TOUCH=/bin/touch +PORT=${ftp_port} +FTPS=0 +MIN_TLS="--tlsv1.1" + +MD5=${ftp_md5} + +if [ "${ftp_secure}" = "ftps" ]; then + FTPS=1 +fi + +SSL_REQD="" +if ${CURL} --help | grep -m1 -q 'ftp-ssl-reqd'; then + SSL_REQD="--ftp-ssl-reqd" +elif ${CURL} --help | grep -m1 -q 'ssl-reqd'; then + SSL_REQD="--ssl-reqd" +fi + + +####################################################### +# SETUP + +if [ ! -e $TOUCH ] && [ -e /usr/bin/touch ]; then + TOUCH=/usr/bin/touch +fi +if [ ! -x ${EXPR} ] && [ -x /bin/expr ]; then + EXPR=/bin/expr +fi + +if [ ! -e "${ftp_local_file}" ]; then + echo "Cannot find backup file ${ftp_local_file} to upload"; + + /bin/ls -la ${ftp_local_path} + + /bin/df -h + + exit 11; +fi + +get_md5() { + MF=$1 + + if [ ${OS} = "FreeBSD" ]; then + MD5SUM=/sbin/md5 + else + MD5SUM=/usr/bin/md5sum + fi + if [ ! -x ${MD5SUM} ]; then + return + fi + + if [ ! -e ${MF} ]; then + return + fi + + if [ ${OS} = "FreeBSD" ]; then + FMD5=`$MD5SUM -q $MF` + else + FMD5=`$MD5SUM $MF | cut -d\ -f1` + fi + + echo "${FMD5}" +} + +####################################################### + +CFG=${ftp_local_file}.cfg +/bin/rm -f $CFG +$TOUCH $CFG +/bin/chmod 600 $CFG + +RET=0; + +####################################################### +# FTP +upload_file_ftp() +{ + if [ ! -e ${CURL} ]; then + echo ""; + echo "*** Backup not uploaded ***"; + echo "Please install curl by running:"; + echo ""; + echo "cd /usr/local/directadmin/custombuild"; + echo "./build curl"; + echo ""; + exit 10; + fi + + /bin/echo "user = \"$ftp_username:$ftp_password\"" >> $CFG + + if [ ! -s ${CFG} ]; then + echo "${CFG} is empty. curl is not going to be happy about it."; + ls -la ${CFG} + ls -la ${ftp_local_file} + df -h + fi + + #ensure ftp_path ends with / + ENDS_WITH_SLASH=`echo "$ftp_path" | grep -c '/$'` + if [ "${ENDS_WITH_SLASH}" -eq 0 ]; then + ftp_path=${ftp_path}/ + fi + + ${CURL} --config ${CFG} --silent --show-error --ftp-create-dirs --upload-file $ftp_local_file ftp://$ftp_ip:${PORT}/$ftp_path$ftp_remote_file 2>&1 + RET=$? + + if [ "${RET}" -ne 0 ]; then + echo "curl return code: $RET"; + fi +} + +####################################################### +# FTPS +upload_file_ftps() +{ + if [ ! -e ${CURL} ]; then + echo ""; + echo "*** Backup not uploaded ***"; + echo "Please install curl by running:"; + echo ""; + echo "cd /usr/local/directadmin/custombuild"; + echo "./build curl"; + echo ""; + exit 10; + fi + + /bin/echo "user = \"$ftp_username:$ftp_password\"" >> $CFG + + if [ ! -s ${CFG} ]; then + echo "${CFG} is empty. curl is not going to be happy about it."; + ls -la ${CFG} + ls -la ${ftp_local_file} + df -h + fi + + #ensure ftp_path ends with / + ENDS_WITH_SLASH=`echo "$ftp_path" | grep -c '/$'` + if [ "${ENDS_WITH_SLASH}" -eq 0 ]; then + ftp_path=${ftp_path}/ + fi + + ${CURL} --config ${CFG} ${SSL_REQD} -k ${MIN_TLS} --silent --show-error --ftp-create-dirs --upload-file $ftp_local_file ftp://$ftp_ip:${PORT}/$ftp_path$ftp_remote_file 2>&1 + RET=$? + + if [ "${RET}" -ne 0 ]; then + echo "curl return code: $RET"; + fi +} + +####################################################### +# Start + +if [ "${FTPS}" = "1" ]; then + upload_file_ftps +else + upload_file_ftp +fi + +if [ "${RET}" = "0" ] && [ "${MD5}" = "1" ]; then + MD5_FILE=${ftp_local_file}.md5 + M=`get_md5 ${ftp_local_file}` + if [ "${M}" != "" ]; then + echo "${M}" > ${MD5_FILE} + + ftp_local_file=${MD5_FILE} + ftp_remote_file=${ftp_remote_file}.md5 + + if [ "${FTPS}" = "1" ]; then + upload_file_ftps + else + upload_file + fi + fi +fi + +/bin/rm -f $CFG + +exit $RET + diff --git a/directadmin-1.62.4/scripts/getDA.sh b/directadmin-1.62.4/scripts/getDA.sh new file mode 100644 index 0000000..074f533 --- /dev/null +++ b/directadmin-1.62.4/scripts/getDA.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +FILE=/usr/local/directadmin/update.tar.gz + +if [ $# -lt 2 ]; then + echo "Usage:"; + echo "$0 <cid> <lid> [<ip>]"; + echo ""; + echo "definitons:"; + echo " cid: Client ID"; + echo " lid: License ID"; + echo " ip: your server IP (only needed when wrong ip is used to get the update.tar.gz file)"; + echo "example: $0 999 9876"; + exit 0; +fi + +if [ $# = 3 ]; then + wget -S -O $FILE --bind-address=${3} https://www.directadmin.com/cgi-bin/daupdate?lid=${2}\&uid=${1} +else + wget -S -O $FILE https://www.directadmin.com/cgi-bin/daupdate?lid=${2}\&uid=${1} +fi + +if [ $? -ne 0 ] +then + echo "Error downloading the update.tar.gz file"; + exit 1; +fi + +COUNT=`head -n 2 $FILE | grep -c "* You are not allowed to run this program *"`; + +if [ $COUNT -ne 0 ] +then + echo "You are not authorized to download the update.tar.gz file with that client id and license id (and/or ip). Please email sales@directadmin.com"; + exit 1; +fi + diff --git a/directadmin-1.62.4/scripts/getInfo.sh b/directadmin-1.62.4/scripts/getInfo.sh new file mode 100644 index 0000000..92b3929 --- /dev/null +++ b/directadmin-1.62.4/scripts/getInfo.sh @@ -0,0 +1,307 @@ +#!/bin/sh + +#This script will aquire all information needed to do the install +#and will save it accordingly. You can stop the install at anytime +#and start over. + +OS=`uname` +SETUP="./setup.txt" +cd /usr/local/directadmin/scripts +YES="y" +NO="n" + +if [ -e ${SETUP} ] +then + while echo -n "Do you want to re-enter the server information? (y, n) :" + if [ "${OS}" = "FreeBSD" ]; then + read CORRECT + else + read -n 1 CORRECT + fi + echo ""; + do + { + if [ $CORRECT = $YES ] + then + break; + fi + if [ $CORRECT = $NO ] + then + exit 0; + fi + } + done; +fi + +rm -f ${SETUP} +umask 077; + +#***************************************** + +#STEP 1: gethostname + +CORRECT=""; +while + echo "Enter the hostname you wish to use."; + echo "This is the server's hostname and is *not* intended as a website for the server."; + echo "*YOU* are responsible for making sure it resolves to the proper ip."; + echo "Do not enter http:// or www."; + echo -n "(eg. server.host.com) : "; + read hostname; +echo ""; +echo -n "Is ${hostname} correct? (y, n) : "; +if [ "${OS}" = "FreeBSD" ]; then + read CORRECT +else + read -n 1 CORRECT +fi +echo ""; +do +{ + if [ $CORRECT = $YES ] + then + break; + fi +} +done + +echo "hostname=$hostname" >> ${SETUP} + +#***************************************** + +#STEP 2: get email + +CORRECT=""; +while echo -n "E-Mail Address: "; +read email; +echo ""; +echo -n "Is ${email} correct? (y, n) : "; +if [ "${OS}" = "FreeBSD" ]; then + read CORRECT +else + read -n 1 CORRECT +fi +echo ""; +do +{ + if [ $CORRECT = $YES ] + then + break; + fi +} +done + +echo "email=$email" >> ${SETUP} + + +#*********************************************** + +#STEP 2: get mysql root password + + while echo -n "Enter a password for the root MySQL user (no spaces): " + if [ "${OS}" = "FreeBSD" ]; then + read passwd + else + read -s passwd + fi + echo "" + echo -n "Re-Type the password: " + if [ "${OS}" = "FreeBSD" ]; then + read repasswd + else + read -s repasswd + fi + do + { + if [ "$passwd" = "$repasswd" ]; then + #if [ -e /usr/bin/mysql ] + if [ -e /file/that/doesnt/exist ]; then + echo ""; + echo "SELECT now();" | /usr/bin/mysql 2> /dev/null; + if [ $? != 0 ]; then + #root password IS set, make sure its right + echo "SELECT now();" | /usr/bin/mysql -uroot -p${passwd} + if [ $? = 0 ]; then + break; + fi + else + #the root password isn't set + break; + fi + else + break; + fi + else + echo ""; + echo "Passwords do not match"; + fi + } + done + + echo ""; + +echo "mysql=$passwd" >> ${SETUP}; +echo "mysqluser=da_admin" >> ${SETUP}; + +#**************************************************** + +#STEP 3: generate admin password + +ADMINNAME="admin"; +ADMINPASS=`perl -le'print map+(A..Z,a..z,0..9)[rand 62],0..7'`; + +echo "adminname=admin" >> ${SETUP}; +echo "adminpass=$ADMINPASS" >> ${SETUP}; + + + +#*************************************************** + +#STEP 4: set the nameserver + +TEST=`echo $hostname | cut -d. -f3` +if [ "$TEST" = "" ]; then + NS1=ns1.`echo $hostname | cut -d. -f1,2` + NS2=ns2.`echo $hostname | cut -d. -f1,2` +else + NS1=ns1.`echo $hostname | cut -d. -f2,3,4,5,6` + NS2=ns2.`echo $hostname | cut -d. -f2,3,4,5,6` +fi + +echo -e "ns1=$NS1\nns2=$NS2" >> ${SETUP}; + + + +#**************************************************** + +#STEP 5: get the ip + +prefixToNetmask(){ + BINARY_IP="" + for i in {1..32}; do { + if [ ${i} -le ${1} ]; then + BINARY_IP="${BINARY_IP}1" + else + BINARY_IP="${BINARY_IP}0" + fi + } + done + + B1=`echo ${BINARY_IP} | cut -c1-8` + B2=`echo ${BINARY_IP} | cut -c9-16` + B3=`echo ${BINARY_IP} | cut -c17-24` + B4=`echo ${BINARY_IP} | cut -c25-32` + NM1=`perl -le "print ord(pack('B8', '${B1}'))"` + NM2=`perl -le "print ord(pack('B8', '${B2}'))"` + NM3=`perl -le "print ord(pack('B8', '${B3}'))"` + NM4=`perl -le "print ord(pack('B8', '${B4}'))"` + + echo "${NM1}.${NM2}.${NM3}.${NM4}" +} + +if [ "${OS}" = "FreeBSD" ]; then + IP=`grep -m1 '^ifconfig_' /etc/rc.conf | cut -d\ -f2` +else + IP=`ip addr show eth0 | grep -m1 'inet ' | awk '{print $2}' | cut -d/ -f1` + PREFIX=`ip addr show eth0 | grep -m1 'inet ' | awk '{print $2}' | cut -d/ -f2` + if echo "${IP}" | grep -m1 -q ':'; then + NM="${PREFIX}" + else + NM=`prefixToNetmask ${PREFIX}` + fi +fi + +echo "ip=$IP" >> ${SETUP}; +echo "netmask=$NM" >> ${SETUP}; + +#*************************************************** + +#STEP 5: user id and license id + +userid=0; +liceid=0; + +CORRECT=""; +while echo -n "Enter Your Client ID: "; +read userid; +echo ""; +echo -n "Enter Your License ID: "; +read liceid; +echo ""; +echo -n "Is CID: ${userid} and LID: ${liceid} correct? (y, n): "; +read -n 1 CORRECT; +echo ""; +do +{ + if [ $CORRECT = $YES ] + then + break; + fi +} +done + +echo -e "uid=${userid}\nlid=${liceid}" >> ${SETUP} + + + +#********************************************************** + +#STEP 6: figure out what os he's using so we can get the correct services file + +CORRECT=""; +SERVFILE=""; +while echo "What Operating system are you running?"; +if [ "${OS}" = "FreeBSD" ]; then + echo -e "\t1:FreeBSD 4.8"; + read NUM +else + echo -e "\t1:RedHat 7.2"; + echo -e "\t2:RedHat 7.3"; + echo -e "\t3:RedHat 8.0"; + echo -e "\t4:RedHat 9.0"; + echo -n "Enter the number from the left: "; + read -n 1 NUM +fi +echo "" +do +{ + case $NUM in + 1 ) SERVFILE="services72.tar.gz"; + ;; + 2 ) SERVFILE="services73.tar.gz"; + ;; + 3 ) SERVFILE="services80.tar.gz"; + ;; + 4 ) SERVFILE="services90.tar.gz"; + ;; + esac + + if [ "$SERVFILE" = "" ] + then + continue; + else + break; + fi +} +done + +echo "services=${SERVFILE}" >> ${SETUP} + + + + + + +echo "**********************************"; +echo "All Information has been gathered. Please make *sure* the following data is correct, if not, edit the setup.txt file before going on"; +echo ""; +/bin/cat ${SETUP}; + + + + + + + + +exit 0; diff --git a/directadmin-1.62.4/scripts/getLicense.sh b/directadmin-1.62.4/scripts/getLicense.sh new file mode 100644 index 0000000..f5c99f0 --- /dev/null +++ b/directadmin-1.62.4/scripts/getLicense.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +LICENSE=/usr/local/directadmin/conf/license.key +DACONF_FILE=/usr/local/directadmin/conf/directadmin.conf + +printf "" > $LICENSE + +chmod 600 $LICENSE +chown diradmin:diradmin $LICENSE +exit 0; diff --git a/directadmin-1.62.4/scripts/get_main_ip.sh b/directadmin-1.62.4/scripts/get_main_ip.sh new file mode 100644 index 0000000..a7e1167 --- /dev/null +++ b/directadmin-1.62.4/scripts/get_main_ip.sh @@ -0,0 +1,13 @@ +#!/bin/sh +#Script to return the main useable device IP address of the box, used for main outbound connections. +#on a LAN, this should match your directadmin.conf lan_ip setting. +#for normal servers, this will likely return your license IP (usually) +#Will also be the default IP that exim sends email through. +OS=`uname` +if [ "${OS}" = "FreeBSD" ]; then + /sbin/ifconfig | grep inet | grep -m1 broadcast | awk '{ print $2; }' +else + /sbin/ip a | grep inet | grep -m1 brd | awk '{ print $2; };' | cut -d/ -f1 +fi +RET=$? +exit $RET diff --git a/directadmin-1.62.4/scripts/hostname.sh b/directadmin-1.62.4/scripts/hostname.sh new file mode 100644 index 0000000..90262a8 --- /dev/null +++ b/directadmin-1.62.4/scripts/hostname.sh @@ -0,0 +1,145 @@ +#!/bin/bash + +if [ $# -lt "1" ] +then + echo "Usage: $0 <hostname> (<ip>)"; + exit 1; +fi +DIRECTADMIN_BIN=/usr/local/directadmin/directadmin +DIRECTADMIN_CONF=/usr/local/directadmin/conf/directadmin.conf +IP="127.0.0.1"; +SETUP=/usr/local/directadmin/scripts/setup.txt +OS=`uname` +ETH_DEV=eth0 +if [ -s $SETUP ]; then + IP=`grep -m1 '^ip=' $SETUP | cut -d= -f2`; +else + if [ "${OS}" = "FreeBSD" ]; then + IP=`/sbin/ifconfig | head -n3 | grep 'inet ' | cut -d\ -f2`; + else + if [ -s $DIRECTADMIN_CONF ] && [ -x $DIRECTADMIN_BIN ]; then + ETH_DEV=`$DIRECTADMIN_BIN c | grep '^ethernet_dev=' | cut -d= -f2` + fi + IP=`ip addr show $ETH_DEV | grep -m1 'inet ' | awk '{print $2}' | cut -d/ -f1` + if [ -z ${IP} ]; then + IP=`/sbin/ifconfig $ETH_DEV | grep 'inet ' | head -n1 | awk '{print $2}' | cut -d: -f2` + fi + fi +fi + +if [ $# -gt "1" ] +then + IP=$2; +fi + +if [ "${OS}" = "FreeBSD" ]; then + OLDHOST=`hostname -f` +else + OLDHOST=`hostname --fqdn` +fi + +/bin/hostname $1 + +if [ "${OLDHOST}" = "" ]; then + OLDHOST=old.host.com + echo "old hostname was blank. Setting placeholder value ${OLDHOST}" +fi + +#remove any previous hostnames. +cat /etc/hosts | grep -Fv $1 | grep -Fv $OLDHOST | grep -v '#' > /etc/hosts.tmp + +#start the file over +echo "# Do not remove the following line, or various programs" > /etc/hosts +echo "# that require network functionality will fail." >> /etc/hosts + +COUNT=`cat /etc/hosts.tmp | grep -c localhost` +if [ $COUNT -lt "1" ] +then + echo -e "127.0.0.1\t\tlocalhost localhost.localdomain" >> /etc/hosts +fi + +cat /etc/hosts.tmp >> /etc/hosts + +echo -e "${IP}\t\t${1}" >> /etc/hosts + +chmod 644 /etc/hosts + +if [ -e /etc/hostname ]; then + echo $1 > /etc/hostname +fi + +if [ -x /usr/bin/hostnamectl ]; then + /usr/bin/hostnamectl --static set-hostname ${1} +fi + +if [ "${OS}" = "FreeBSD" ]; then + /usr/bin/perl -pi -e 's/hostname=(.*)/hostname=\"${1}\"/' /etc/rc.conf +fi + +if [ ! -e /etc/debian_version ] && [ "${OS}" != "FreeBSD" ] && [ -s /etc/sysconfig/network ]; then + /usr/bin/perl -pi -e 's/HOSTNAME=(.*)/HOSTNAME=${1}/' /etc/sysconfig/network +fi + +#for exim. +if [ -s /etc/virtual/domains ]; then + perl -pi -e "s/^\Q$OLDHOST\E\$/$1/" /etc/virtual/domains + + #backup plan, in case there was no old hostname + if grep -m1 -q "^${1}$" /etc/virtual/domains; then + echo ${1} >> /etc/virtual/domains; + fi +fi + +#this is for exim 4 as it wants the dir for the filters + +V=/etc/virtual +if [ ! -e ${V} ]; then + /bin/mkdir -p ${V} + /bin/chown -f mail:mail ${V} + /bin/chmod -f 755 ${V} +fi + +NEW_DIR=/etc/virtual/${1} +OLD_DIR=/etc/virtual/${OLDHOST} + +if [ -d ${OLD_DIR} ] && [ ! -d ${NEW_DIR} ]; then + mv ${OLD_DIR} ${NEW_DIR} +else + if [ ! -d ${NEW_DIR} ]; then + /bin/mkdir -p ${NEW_DIR} + /bin/chown -f mail:mail ${NEW_DIR} + /bin/chmod -f 711 ${NEW_DIR} + fi +fi + +#dovecot +LMTP=/etc/dovecot/conf/lmtp.conf +if [ -s ${LMTP} ]; then + perl -pi -e "s/\Q$OLDHOST\E/$1/" ${LMTP} +fi + +SETUP=/usr/local/directadmin/scripts/setup.txt +if [ -s ${SETUP} ] && [ -s ${DIRECTADMIN_CONF} ]; then + perl -pi -e "s/\Q$OLDHOST\E\$/$1/" ${SETUP} +fi + +echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue + +#mysql pid file. +PIDF=/var/lib/mysql/${OLDHOST}.pid +if [ -e $PIDF ]; then + mv $PIDF /var/lib/mysql/${1}.pid +fi + +PIDF=/home/mysql/${OLDHOST}.pid +if [ -e $PIDF ]; then + mv $PIDF /home/mysql/${1}.pid +fi + +#LetsEncrypt +SAN_CONFIG=/usr/local/directadmin/conf/ca.san_config +if [ -s ${SAN_CONFIG} ]; then + perl -pi -e "s/\Q$OLDHOST\E\$/$1/" ${SAN_CONFIG} +fi + +exit 0 \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/install.sh b/directadmin-1.62.4/scripts/install.sh new file mode 100644 index 0000000..c294add --- /dev/null +++ b/directadmin-1.62.4/scripts/install.sh @@ -0,0 +1,558 @@ +#!/bin/sh + +#This is the installer script. Run this and follow the directions + +DA_PATH="/usr/local/directadmin" +DA_BIN="${DA_PATH}/directadmin" +DA_TQ="${DA_PATH}/data/task.queue" +DA_SCRIPTS="${DA_PATH}/scripts" +CB_OPTIONS=${DA_PATH}/custombuild/options.conf +DA_CRON="${DA_SCRIPTS}/directadmin_cron" +VIRTUAL="/etc/virtual" +OS=`uname` +CBVERSION="2.0" +DL_SERVER=da-mirror.wpcloud.vn +BACKUP_DL_SERVER=da-mirror.cyberslab.net +if [ -s $CB_OPTIONS ]; then + DLS=`grep -m1 ^downloadserver $CB_OPTIONS | cut -d= -f2`; + if [ "${DLS}" != "" ]; then + DL_SERVER=${DLS} + fi +fi + +CMD_LINE=$1 + +cd ${DA_SCRIPTS} + +SYSTEMD=no +SYSTEMDDIR=/etc/systemd/system +if [ -d ${SYSTEMDDIR} ]; then + if [ -e /bin/systemctl ] || [ -e /usr/bin/systemctl ]; then + SYSTEMD=yes + fi +fi + +#Create the diradmin user +createDAbase() { + mkdir -p ${DA_PATH} + if [ "${OS}" = "FreeBSD" ]; then + /usr/sbin/pw groupadd diradmin 2> /dev/null + /usr/sbin/pw useradd -g diradmin -n diradmin -b ${DA_PATH} -s /sbin/nologin 2> /dev/null + id diradmin + if [ $? -ne 0 ]; then + echo "we've just added the diradmin user.. but id can't seem to find it. Trying pwd_mkdb..."; + pwd_mkdb -p /etc/master.passwd + id diradmin + if [ $? -ne 0 ]; then + echo "After trying the command:" + echo " pwd_mkdb -p /etc/master.passwd" + echo "" + echo "we still cannot find the diradmin user. Aborting." + exit 1 + fi + fi + elif [ -e /etc/debian_version ]; then + /usr/sbin/adduser --system --group --firstuid 100 --home ${DA_PATH} --no-create-home --disabled-login --force-badname diradmin + else + /usr/sbin/useradd -d ${DA_PATH} -r -s /bin/false diradmin 2> /dev/null + fi + + chmod -f 755 ${DA_PATH} + chown -f diradmin:diradmin ${DA_PATH} + + mkdir -p /var/log/directadmin + mkdir -p ${DA_PATH}/conf + chown -f diradmin:diradmin ${DA_PATH}/* + chown -f diradmin:diradmin /var/log/directadmin + chmod -f 700 ${DA_PATH}/conf + chmod -f 700 /var/log/directadmin + if [ -e /etc/logrotate.d ]; then + cp $DA_SCRIPTS/directadmin.rotate /etc/logrotate.d/directadmin + chmod 644 /etc/logrotate.d/directadmin + fi + + chown -f diradmin:diradmin ${DA_PATH}/conf/* 2> /dev/null + chmod -f 600 ${DA_PATH}/conf/* 2> /dev/null + + mkdir -p /var/log/httpd/domains + chmod 710 /var/log/httpd/domains + chmod 710 /var/log/httpd + + mkdir -p /home/tmp + chmod -f 1777 /home/tmp + /bin/chmod 711 /home + + ULTMP_HC=/usr/lib/tmpfiles.d/home.conf + if [ -s ${ULTMP_HC} ]; then + #Q /home 0755 - - - + if grep -m1 -q '^Q /home 0755 ' ${ULTMP_HC}; then + perl -pi -e 's#^Q /home 0755 #Q /home 0711 #' ${ULTMP_HC}; + fi + fi + + mkdir -p /var/www/html + chmod 755 /var/www/html + + SSHROOT=`cat /etc/ssh/sshd_config | grep -c 'AllowUsers root'`; + + if [ $SSHROOT = 0 ] + then + echo "" >> /etc/ssh/sshd_config + echo "AllowUsers root" >> /etc/ssh/sshd_config + chmod 710 /etc/ssh + fi +} + +#After everything else copy the directadmin_cron to /etc/cron.d +copyCronFile() { + if [ "$OS" = "FreeBSD" ]; then + if ! grep -m1 -q 'dataskq' /etc/crontab && [ -s ${DA_CRON} ]; then + cat ${DA_CRON} | grep -v 'quotaoff' >> /etc/crontab; + else + echo "Could not find ${DA_CRON} or it is empty"; + fi + else + if [ -s ${DA_CRON} ]; then + mkdir -p /etc/cron.d + cp ${DA_CRON} /etc/cron.d/; + chmod 600 /etc/cron.d/directadmin_cron + chown root /etc/cron.d/directadmin_cron + else + echo "Could not find ${DA_CRON} or it is empty"; + fi + + #CentOS/RHEL bits + if [ ! -s /etc/debian_version ]; then + CRON_BOOT=/etc/init.d/crond + if [ -d /etc/systemd/system ]; then + CRON_BOOT=/usr/lib/systemd/system/crond.service + fi + + if [ ! -s ${CRON_BOOT} ]; then + echo "" + echo "****************************************************************************" + echo "* Cannot find ${CRON_BOOT}. Ensure you have cronie installed" + echo " yum install cronie" + echo "****************************************************************************" + echo "" + else + if [ -d /etc/systemd/system ]; then + systemctl daemon-reload + systemctl enable crond.service + systemctl restart crond.service + else + ${CRON_BOOT} restart + /sbin/chkconfig crond on + fi + fi + fi + fi +} + +#Copies the startup scripts over to the /etc/rc.d/init.d/ folder +#and chkconfig's them to enable them on bootup +copyStartupScripts() { + if [ "${SYSTEMD}" = "yes" ]; then + cp -f directadmin.service ${SYSTEMDDIR}/ + cp -f startips.service ${SYSTEMDDIR}/ + + systemctl daemon-reload + + systemctl enable directadmin.service + systemctl enable startips.service + else + if [ "${OS}" = "FreeBSD" ]; then + BOOT_DIR=/usr/local/etc/rc.d/ + #removed boot.sh, sshd and named from the list, as boot.sh is unused and the other 2 come pre-installed with the system + if [ ! -s ${BOOT_DIR}/startips ]; then + cp -f startips ${BOOT_DIR}/startips + chmod 755 ${BOOT_DIR}/startips + fi + if [ ! -s ${BOOT_DIR}/da-popb4smtp ]; then + echo '#!/bin/sh' > ${BOOT_DIR}/da-popb4smtp + echo '' >> ${BOOT_DIR}/da-popb4smtp + echo '. /etc/rc.subr' >> ${BOOT_DIR}/da-popb4smtp + echo '' >> ${BOOT_DIR}/da-popb4smtp + echo 'name="da_popb4smtp"' >> ${BOOT_DIR}/da-popb4smtp + echo 'rcvar="da_popb4smtp_enable"' >> ${BOOT_DIR}/da-popb4smtp + echo 'command="/usr/local/directadmin/da-popb4smtp"' >> ${BOOT_DIR}/da-popb4smtp + echo '' >> ${BOOT_DIR}/da-popb4smtp + echo 'load_rc_config $name' >> ${BOOT_DIR}/da-popb4smtp + echo ': ${da_popb4smtp_enable:=yes}' >> ${BOOT_DIR}/da-popb4smtp + echo '' >> ${BOOT_DIR}/da-popb4smtp + echo 'run_rc_command "$1"' >> ${BOOT_DIR}/da-popb4smtp + chmod 755 ${BOOT_DIR}/da-popb4smtp + fi + if [ ! -s ${BOOT_DIR}/directadmin ]; then + echo '#!/bin/sh' > ${BOOT_DIR}/directadmin + echo '' >> ${BOOT_DIR}/directadmin + echo '. /etc/rc.subr' >> ${BOOT_DIR}/directadmin + echo '' >> ${BOOT_DIR}/directadmin + echo 'name="directadmin"' >> ${BOOT_DIR}/directadmin + echo 'rcvar="directadmin_enable"' >> ${BOOT_DIR}/directadmin + echo 'pidfile="/var/run/${name}.pid"' >> ${BOOT_DIR}/directadmin + echo 'command="/usr/local/directadmin/directadmin"' >> ${BOOT_DIR}/directadmin + echo 'command_args="d"' >> ${BOOT_DIR}/directadmin + echo '' >> ${BOOT_DIR}/directadmin + echo 'load_rc_config $name' >> ${BOOT_DIR}/directadmin + echo ': ${directadmin_enable:=yes}' >> ${BOOT_DIR}/directadmin + echo '' >> ${BOOT_DIR}/directadmin + echo 'run_rc_command "$1"' >> ${BOOT_DIR}/directadmin + chmod 755 ${BOOT_DIR}/directadmin + fi + + ERC=/etc/rc.conf + if [ -e ${ERC} ]; then + if ! /usr/bin/grep -m1 -q "^named_enable=" ${ERC}; then + echo 'named_enable="YES"' >> ${ERC} + else + perl -pi -e 's/^named_enable=.*/named_enable="YES"/' ${ERC} + fi + fi + else + cp -f directadmin /etc/init.d/directadmin + cp -f startips /etc/init.d/startips + # nothing for debian as non-systemd debian versions are EOL + if [ ! -s /etc/debian_version ]; then + /sbin/chkconfig directadmin reset + /sbin/chkconfig startips reset + fi + fi + fi +} + +addUserGroup() { + if [ ${OS} = "FreeBSD" ]; then + PW=/usr/sbin/pw + ADD_UID= + ADD_GID= + if [ "${3}" != "" ]; then + ADD_UID="-u ${3}" + fi + if [ "${4}" != "" ]; then + ADD_GID="-g ${4}" + fi + + if ! /usr/bin/grep -q "^${2}:" < /etc/group; then + ${PW} groupadd ${2} ${ADD_GID} + fi + if ! /usr/bin/id ${1} > /dev/null; then + ${PW} useradd -g ${2} -n ${1} -s /sbin/nologin ${ADD_UID} + fi + elif [ -e /etc/debian_version ]; then + if ! /usr/bin/id ${1} > /dev/null; then + adduser --system --group --no-create-home \ + --disabled-login --force-badname ${1} > /dev/null + fi + else + if ! /usr/bin/id ${1} > /dev/null; then + /usr/sbin/useradd -r -s /bin/false ${1} + fi + fi +} + +#touch exim's file inside /etc/virtual +touchExim() { + mkdir -p ${VIRTUAL}; + chown -f mail ${VIRTUAL}; + chgrp -f mail ${VIRTUAL}; + chmod 755 ${VIRTUAL}; + + echo "`hostname -f`" >> ${VIRTUAL}/domains; + + if [ ! -s ${VIRTUAL}/limit ]; then + echo "1000" > ${VIRTUAL}/limit + fi + if [ ! -s ${VIRTUAL}/limit_unknown ]; then + echo "0" > ${VIRTUAL}/limit_unknown + fi + if [ ! -s ${VIRTUAL}/user_limit ]; then + echo "200" > ${VIRTUAL}/user_limit + fi + + chmod 755 ${VIRTUAL}/* + + mkdir -p ${VIRTUAL}/usage + chmod 750 ${VIRTUAL}/usage + + for i in domains domainowners pophosts blacklist_domains whitelist_from use_rbl_domains bad_sender_hosts bad_sender_hosts_ip blacklist_senders whitelist_domains whitelist_hosts whitelist_hosts_ip whitelist_senders skip_av_domains skip_rbl_domains; do + touch ${VIRTUAL}/$i; + chmod 600 ${VIRTUAL}/$i; + done + + addUserGroup mail mail 12 12 + chown -f mail:mail ${VIRTUAL}/*; +} + + +#get setup data +doGetInfo() { + if [ ! -e ./setup.txt ]; then + ./getInfo.sh + fi +} + +getLicense() { + + if [ -e /root/.skip_get_license ]; then + echo "/root/.skip_get_license exists. Not downloading license" + return; + fi + + userid=`cat ./setup.txt | grep uid= | cut -d= -f2`; + liceid=`cat ./setup.txt | grep lid= | cut -d= -f2`; + ip=`cat ./setup.txt | grep ip= | cut -d= -f2`; + + LAN=0 + if [ -s /root/.lan ]; then + LAN=`cat /root/.lan` + fi + + if [ "$LAN" -eq 1 ]; then + $DA_SCRIPTS/getLicense.sh ${userid} ${liceid} + else + $DA_SCRIPTS/getLicense.sh ${userid} ${liceid} ${ip} + fi + + if [ $? -ne 0 ]; then + exit 1; + fi + +# wget https://www.directadmin.com/cgi-bin/licenseupdate?lid=${liceid}\&uid=${userid} -O /usr/local/directadmin/conf/license.key --bind-address=${ip} 2> /dev/null +# if [ $? -ne 0 ] +# then +# echo "Error downloading the license file"; +# exit 1; +# fi +# +# COUNT=`cat /usr/local/directadmin/conf/license.key | grep -c "* You are not allowed to run this program *"`; +# +# if [ $COUNT -ne 0 ] +# then +# echo "You are not authorized to download the license with that client id and license id. Please email sales@directadmin.com"; +# exit 1; +# fi +} + +doSetHostname() { + HN=`cat ./setup.txt | grep hostname= | cut -d= -f2`; + + ${DA_PATH}/scripts/hostname.sh ${HN} + + #/sbin/service network restart +} + +checkMD5() +{ + if [ ${OS} = "FreeBSD" ]; then + MD5SUM=/sbin/md5 + else + MD5SUM=/usr/bin/md5sum + fi + MD5_FILE=$1 + MD5_CHECK=${MD5_FILE}.md5 + + if [ ! -s "${MD5SUM}" ]; then + echo "Cannot find $MD5SUM to check $MD5_FILE"; + return; + fi + + if [ ! -s "${MD5_FILE}" ]; then + echo "Cannot find ${MD5_FILE} or it is empty"; + return; + fi + + if [ ! -s "${MD5_CHECK}" ]; then + echo "Cannot find ${MD5_CHECK} or it is empty"; + return; + fi + + echo ""; + echo -n "Checking MD5sum on $MD5_FILE ... "; + + LOCAL_MD5=`${MD5SUM} ${MD5_FILE} | cut -d\ -f1` + CHECK_MD5=`cat ${MD5_CHECK} | cut -d\ -f1` + + if [ "${LOCAL_MD5}" = "${CHECK_MD5}" ]; then + echo "Pass"; + else + echo "Failed. Consider deleting $MD5_FILE and $MD5_CHECK then try again"; + + echo ""; + echo ""; + + sleep 5; + fi +} + +getServices() { + SERVICES_FILE=${DA_SCRIPTS}/packages/services.tar.gz + + if [ -s "{$SERVICES_FILE}" ]; then + if [ -s "${SERVICES_FILE}.md5" ]; then + checkMD5 ${SERVICES_FILE} + fi + + echo "Services file already exists. Assuming its been extracted, skipping..."; + + return; + fi + + servfile=`cat ./setup.txt | grep services= | cut -d= -f2`; + + #get the md5sum + wget https://raw.githubusercontent.com/irf1404/Directadmin/master/services/${servfile}.md5 -O ${SERVICES_FILE}.md5 + if [ ! -s ${SERVICES_FILE}.md5 ]; + then + echo ""; + echo "failed to get md5 file: ${SERVICES_FILE}.md5"; + echo ""; + sleep 4; + fi + + wget https://raw.githubusercontent.com/irf1404/Directadmin/master/services/${servfile} -O $SERVICES_FILE + if [ $? -ne 0 ] + then + echo "Error downloading the services file"; + exit 1; + fi + + #we have md5, lets use it. + if [ -s ${SERVICES_FILE}.md5 ]; then + checkMD5 ${SERVICES_FILE} + fi + + echo "Extracting services file..."; + + tar xzf $SERVICES_FILE -C ${DA_SCRIPTS}/packages + if [ $? -ne 0 ] + then + echo "Error extracting services file"; + exit 1; + fi +} + +./doChecks.sh +if [ $? -ne 0 ]; then + exit 1 +fi + +doGetInfo +doSetHostname +createDAbase +copyStartupScripts +#copyCronFile #moved lower, after custombuild, march 7, 2011 +touchExim + +./fstab.sh +${DA_SCRIPTS}/cron_deny.sh + +getLicense +getServices + +if [ ! -e ${DA_PATH}/custombuild/options.conf ] && [ -e /etc/redhat-release ] && [ ! -e /etc/init.d/xinetd ] && [ -e /usr/bin/yum ]; then + yum -y install xinetd + /sbin/chkconfig xinetd on + /sbin/service xinetd start +fi + +cd ${DA_SCRIPTS} +cp -f ${DA_SCRIPTS}/redirect.php /var/www/html/redirect.php + +rpm -e --nodeps wu-ftp 2> /dev/null +rpm -e --nodeps wu-ftpd 2> /dev/null +rpm -e --nodeps anonftp 2> /dev/null +rpm -e --nodeps pure-ftpd 2> /dev/null +rpm -e --nodeps vsftpd 2> /dev/null +rpm -e --nodeps psa-proftpd 2> /dev/null +rpm -e --nodeps psa-proftpd-xinetd 2> /dev/null +rpm -e --nodeps psa-proftpd-start 2> /dev/null +rm -f /etc/xinetd.d/proftpd +rm -f /etc/xinetd.d/wu-ftpd.rpmsave +rm -f /etc/xinetd.d/wu-ftpd +rm -f /etc/xinetd.d/ftp_psa +rm -f /etc/xinetd.d/gssftp +rm -f /etc/xinetd.d/xproftpd +killall -9 pure-ftpd 2> /dev/null > /dev/null +rm -f /usr/local/sbin/pure-ftpd 2> /dev/null > /dev/null + +#while we're doing it, lets get rid of pop stuff too +rm -f /etc/xinetd.d/pop* + +#in case they it still holds port 21 +if [ -s /etc/init.d/xinetd ] && [ "${SYSTEMD}" = "no" ]; then + /sbin/service xinetd restart +fi +if [ -s /usr/lib/systemd/system/xinetd.service ] && [ "${SYSTEMD}" = "yes" ]; then + systemctl restart xinetd.service +fi + +if [ -s ${DA_SCRIPTS}/majordomo.sh ]; then + cd packages + tar xzf majordomo-*.tar.gz + cd .. + ${DA_SCRIPTS}/majordomo.sh +fi + +${DA_SCRIPTS}/sysbk.sh + + +cd ${DA_PATH}/custombuild +chmod 755 build +./build update +./build all d +if [ $? -ne 0 ]; then + copyCronFile + exit 1 +fi + +#moved here march 7, 2011 +copyCronFile + +if [ -s /var/www/html/redirect.php ]; then + chown webapps:webapps /var/www/html/redirect.php +fi + +if [ ! -e /usr/local/bin/php ]; then + echo "*******************************************" + echo "*******************************************" + echo "" + echo "Cannot find /usr/local/bin/php" + echo "Please recompile php with custombuild, eg:" + echo "cd ${DA_PATH}/custombuild" + echo "./build all d" + echo "" + echo "*******************************************" + echo "*******************************************" + + exit 1 +fi + + +cd ${DA_PATH} +./directadmin i + +cd ${DA_PATH} +./directadmin p + +perl -pi -e 's/directadmin=OFF/directadmin=ON/' ${DA_PATH}/data/admin/services.status + +echo ""; +echo "System Security Tips:"; +echo " http://help.directadmin.com/item.php?id=247"; +echo ""; + +DACONF=${DA_PATH}/conf/directadmin.conf +if [ ! -s $DACONF ]; then + echo ""; + echo "*********************************"; + echo "*"; + echo "* Cannot find $DACONF"; + echo "* Please see this guide:"; + echo "* http://help.directadmin.com/item.php?id=267"; + echo "*"; + echo "*********************************"; + exit 1; +fi + +exit 0 diff --git a/directadmin-1.62.4/scripts/ip_info.sh b/directadmin-1.62.4/scripts/ip_info.sh new file mode 100644 index 0000000..120a67c --- /dev/null +++ b/directadmin-1.62.4/scripts/ip_info.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +DIG=/usr/bin/dig +WHOIS=/usr/bin/whois + +if [ $# -ne 1 ]; then + echo "Usage:"; + echo " $0 ip"; + exit 1; +fi + +if [ ! -x "$DIG" ]; then + echo "Cannot find $DIG or it's not executable."; + exit 2; +else + $DIG -x "$1" +noshort 2>&1 +fi + +if [ -x "$WHOIS" ]; then + $WHOIS "$1" 2>&1 +fi + +exit 0; diff --git a/directadmin-1.62.4/scripts/ipswap.sh b/directadmin-1.62.4/scripts/ipswap.sh new file mode 100644 index 0000000..240ac2f --- /dev/null +++ b/directadmin-1.62.4/scripts/ipswap.sh @@ -0,0 +1,223 @@ +#!/bin/sh + +#script to change ips on a DA server. +#usage: +# $0 <oldip> <newip> + +LOG=/var/log/directadmin/ipswap.log + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 2 ] && [ $# != 3 ]; then + echo "Usage:"; + echo "$0 <oldip> <newip> [<file>]"; + echo "you gave #$#: $0 $1 $2 $3"; + exit 0; +fi + +OLD_IP=$1 +NEW_IP=$2 + +DIRECTADMIN=/usr/local/directadmin/directadmin + +HAVE_HTTPD=1 +HAVE_NGINX=0 +HAVE_DOVECOT_PROXY=0 +if [ -s ${DIRECTADMIN} ]; then + if [ "`${DIRECTADMIN} c | grep ^nginx= | cut -d= -f2`" -eq 1 ]; then + HAVE_HTTPD=0 + HAVE_NGINX=1 + fi + if [ "`${DIRECTADMIN} c | grep ^nginx_proxy= | cut -d= -f2`" -eq 1 ]; then + HAVE_HTTPD=1 + HAVE_NGINX=1 + fi + if [ "`${DIRECTADMIN} c | grep ^dovecot_proxy= | cut -d= -f2`" -eq 1 ]; then + HAVE_DOVECOT_PROXY=1 + fi +fi + +valid_ip() +{ + #very very.. very basic validation. very basic. + VIP=$1 + + if [ "$VIP" = "" ]; then + echo 0; + return; + fi + + #do not allow short-form IPv6 addresses. + IPV6_SHORT=`echo "$VIP" | grep -c ::` + if [ "${IPV6_SHORT}" -gt 0 ]; then + echo 0 + else + echo 1 + fi +} + +die_if_bad_ip() +{ + IP=$1 + V=`valid_ip "$IP"` + if [ "$V" = "0" ]; then + echo "IP '$IP' is not valid."; + exit 1; + fi +} + +die_if_bad_ip "${OLD_IP}" +die_if_bad_ip "${NEW_IP}" + +log() +{ + echo -e "$1"; + echo -e "$1" >> $LOG; +} + +swapfile() +{ + if [ ! -e $1 ]; then + log "Cannot Find $1 to change the IPs. Skipping..."; + return; + fi + + TEMP="perl -pi -e 's/(^|[\s.=\/:])${OLD_IP}([\s.>:;])/\${1}${NEW_IP}\${2}/g' $1" + eval $TEMP; + + log "$1\t: $OLD_IP -> $NEW_IP"; +} + +if [ $# = 3 ]; then + + swapfile $3; + exit 0; +fi + +IPFILE_OLD=/usr/local/directadmin/data/admin/ips/$OLD_IP +IPFILE_NEW=/usr/local/directadmin/data/admin/ips/$NEW_IP + +NEW_IS_ALREADY_SERVER=0 +if [ -s ${IPFILE_NEW} ]; then + echo "${IPFILE_NEW} already exists."; + + NEW_IS_ALREADY_SERVER=`grep -c status=server ${IPFILE_NEW}` + if [ "${NEW_IS_ALREADY_SERVER}" -gt 0 ]; then + echo "it's also the server IP, so we're not going to overwrite it if we continue."; + echo -n "Do you want to continue swapping all instances of $OLD_IP with $NEW_IP, knowing we're not going to swap the actual IP file? (y/n) : "; + + read YESNO; + if [ "$YESNO" != "y" ]; then + exit 0; + fi + fi +fi + +if [ ! -e $IPFILE_OLD ]; then + echo -n "$IPFILE_OLD does not exist. Do you want to continue anyway? (y/n) : "; + read YESNO; + if [ "$YESNO" != "y" ]; then + exit 0; + fi +else + if [ "${NEW_IS_ALREADY_SERVER}" -gt 0 ]; then + #do not touch the new file, but get rid of the old one. + rm -f $IPFILE_OLD + else + mv -f $IPFILE_OLD $IPFILE_NEW + fi +fi + +if [ "${HAVE_HTTPD}" -eq 1 ]; then + swapfile /etc/httpd/conf/httpd.conf + swapfile /etc/httpd/conf/extra/httpd-vhosts.conf + swapfile /etc/httpd/conf/ips.conf +fi +if [ "${HAVE_NGINX}" -eq 1 ]; then + swapfile /etc/nginx/nginx.conf + swapfile /etc/nginx/nginx-vhosts.conf + swapfile /etc/nginx/nginx-userdir.conf + swapfile /etc/nginx/directadmin-ips.conf + swapfile /etc/nginx/webapps.conf + swapfile /etc/nginx/webapps.ssl.conf +fi +swapfile /etc/proftpd.conf +swapfile /etc/proftpd.vhosts.conf +swapfile /etc/hosts +swapfile /usr/local/directadmin/scripts/setup.txt +swapfile /usr/local/directadmin/data/admin/ip.list +swapfile /usr/local/directadmin/data/admin/show_all_users.cache +swapfile /etc/virtual/domainips +swapfile /etc/virtual/helo_data + +ULDDU=/usr/local/directadmin/data/users + +for i in `ls $ULDDU`; do +{ + + if [ ! -d $ULDDU/$i ]; then + continue; + fi + + swapfile $ULDDU/$i/user.conf + if [ "${HAVE_HTTPD}" -eq 1 ]; then + swapfile $ULDDU/$i/httpd.conf + fi + if [ "${HAVE_NGINX}" -eq 1 ]; then + swapfile $ULDDU/$i/nginx.conf + fi + + if [ -e $ULDDU/$i/ip.list ]; then + swapfile $ULDDU/$i/ip.list + fi + + swapfile $ULDDU/$i/user_ip.list + + for j in `ls $ULDDU/$i/domains/*.conf; ls $ULDDU/$i/domains/*.ftp; ls $ULDDU/$i/domains/*.ip_list`; do + { + swapfile $j + }; + done; +}; +done; + +OS=`uname` +if [ $OS = "FreeBSD" ]; then + DB_PATH=/etc/namedb +else + if [ -e /etc/debian_version ]; then + DB_PATH=/etc/bind + else + DB_PATH=/var/named + fi +fi + +for i in `ls $DB_PATH/*.db`; do +{ + swapfile $i +}; +done; + +if [ "${HAVE_DOVECOT_PROXY}" = "1" ]; then + #swap all /etc/virtual/*/passwd files proxy_maybe=y host=1.2.3.4 + echo "action=rewrite&value=email_passwd" >> /usr/local/directadmin/data/task.queue +fi + +echo "Updating Linked IPs" +echo "action=ipswap&value=linked_ips&old=$OLD_IP&new=$NEW_IP" >> /usr/local/directadmin/data/task.queue.cb +/usr/local/directadmin/dataskq d100 --custombuild + +#this is needed to update the serial in the db files. +echo "action=rewrite&value=named" >> /usr/local/directadmin/data/task.queue +echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue +if [ "${HAVE_HTTPD}" -eq 1 ]; then + echo "action=httpd&value=restart" >> /usr/local/directadmin/data/task.queue +fi +if [ "${HAVE_NGINX}" -eq 1 ]; then + echo "action=nginx&value=restart" >> /usr/local/directadmin/data/task.queue +fi +log "\n*** Done swapping $OLD_IP to $NEW_IP ***\n"; diff --git a/directadmin-1.62.4/scripts/ipswap_reseller.sh b/directadmin-1.62.4/scripts/ipswap_reseller.sh new file mode 100644 index 0000000..7447872 --- /dev/null +++ b/directadmin-1.62.4/scripts/ipswap_reseller.sh @@ -0,0 +1,147 @@ +#!/bin/sh +#Version: 0.1 ALPHA (use at your own risk!) +#Script is used to change the IP of all Users owned by Reseller on a DA server (including the Reseller himself). +#Written by DirectAdmin and Martynas Bendorius (smtalk) +#Usage: $0 <oldip> <newip> <reseller> + +LOG=/var/log/directadmin/ipswap_reseller.log + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 1; +fi + +if [ $# != 2 ] && [ $# != 3 ] && [ $# != 4 ]; then + echo "Usage:"; + echo "$0 <oldip> <newip> <reseller>"; + echo "you gave #$#: $0 $1 $2 $3"; + echo ""; + echo "New IP must exist and be set as shared."; + exit 2; +fi + +OLD_IP=$1 +NEW_IP=$2 +RESELLER=$3 + +HAVE_HTTPD=1 +HAVE_NGINX=0 +if [ -s ${DIRECTADMIN} ]; then + if [ "`${DIRECTADMIN} c | grep ^nginx= | cut -d= -f2`" -eq 1 ]; then + HAVE_HTTPD=0 + HAVE_NGINX=1 + fi + if [ "`${DIRECTADMIN} c | grep ^nginx_proxy= | cut -d= -f2`" -eq 1 ]; then + HAVE_HTTPD=1 + HAVE_NGINX=1 + fi +fi + + +log() +{ + echo -e "$1"; + echo -e "$1" >> $LOG; +} + +swapfile() +{ + if [ ! -e $1 ]; then + log "Cannot Find $1 to change the IPs. Skipping..."; + return; + fi + + TEMP="perl -pi -e 's/(^|[\s.=\/:])${OLD_IP}([\s.>:])/\${1}${NEW_IP}\${2}/g' $1" + eval $TEMP; + + log "$1\t: $OLD_IP -> $NEW_IP"; +} + +IPFILE_OLD=/usr/local/directadmin/data/admin/ips/$OLD_IP +IPFILE_NEW=/usr/local/directadmin/data/admin/ips/$NEW_IP +if [ ! -e $IPFILE_NEW ]; then + echo -n "$IPFILE_NEW does not exist. Exiting... "; + exit 3; +fi +IP_STATUS=`grep status ${IPFILE_NEW} | cut -d= -f2` +if [ "${IP_STATUS}" != "shared" ]; then + echo "Please make the IP (${NEW_IP}) shared on reseller level." + exit 4; +fi + +ULDDU=/usr/local/directadmin/data/users +if [ ! -e ${ULDDU}/${RESELLER}/users.list ]; then + echo "Reseller ${RESELLER} does not exist. Exiting... "; + exit 5; +fi + +IP_LIST=${ULDDU}/${RESELLER}/ip.list +COUNT_IP=`grep -c ${NEW_IP} ${IP_LIST}` +if [ ${COUNT_IP} -eq 0 ]; then + echo "${NEW_IP} does not belong to ${RESELLER}. Please assign it to reseller and start the script again. Exiting." + exit 6; +fi + +OS=`uname` +if [ $OS = "FreeBSD" ]; then + DB_PATH=/etc/namedb +else + if [ -e /etc/debian_version ]; then + DB_PATH=/etc/bind + else + DB_PATH=/var/named + fi +fi + +for i in `cat ${ULDDU}/${RESELLER}/users.list && echo "${RESELLER}"`; do +{ + if [ ! -d $ULDDU/$i ]; then + continue; + fi + + swapfile $ULDDU/$i/user.conf + if [ "${HAVE_HTTPD}" -eq 1 ]; then + swapfile $ULDDU/$i/httpd.conf + fi + if [ "${HAVE_NGINX}" -eq 1 ]; then + swapfile $ULDDU/$i/nginx.conf + fi + + if [ -e $ULDDU/$i/ip.list ]; then + swapfile $ULDDU/$i/ip.list + fi + + swapfile $ULDDU/$i/user_ip.list + + for j in `ls $ULDDU/$i/domains/*.conf; ls $ULDDU/$i/domains/*.ftp; ls $ULDDU/$i/domains/*.ip_list`; do + { + swapfile $j + }; + done; + + for d in `cat ${ULDDU}/$i/domains.list`; do + { + swapfile ${DB_PATH}/$d.db + echo "action=rewrite&value=named&domain=$d" >> /usr/local/directadmin/data/task.queue + + for p in `cat ${ULDDU}/$i/domains/$d.pointers | cut -d= -f1 2>/dev/null`; do + { + swapfile ${DB_PATH}/$p.db + echo "action=rewrite&value=named&domain=$p" >> /usr/local/directadmin/data/task.queue + } + done; + }; + done; +}; +done; + +echo "action=rewrite&value=ipcount" >> /usr/local/directadmin/data/task.queue +echo "action=rewrite&value=ips" >> /usr/local/directadmin/data/task.queue +echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue +echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue +echo "Runing dataskq..." +/usr/local/directadmin/dataskq d + +log "\n*** Done swapping $OLD_IP to $NEW_IP ***\n"; +exit 0; diff --git a/directadmin-1.62.4/scripts/is_systemd.sh b/directadmin-1.62.4/scripts/is_systemd.sh new file mode 100644 index 0000000..6ff904e --- /dev/null +++ b/directadmin-1.62.4/scripts/is_systemd.sh @@ -0,0 +1,8 @@ +#!/bin/sh +SYSTEMDDIR=/etc/systemd/system +if [ -d ${SYSTEMDDIR} ] && [ -e /usr/bin/systemctl ]; then + echo "yes"; + exit 0; +fi +echo "no"; +exit 1; diff --git a/directadmin-1.62.4/scripts/majordomo.sh b/directadmin-1.62.4/scripts/majordomo.sh new file mode 100644 index 0000000..e06fba5 --- /dev/null +++ b/directadmin-1.62.4/scripts/majordomo.sh @@ -0,0 +1,83 @@ +#!/bin/sh +#Script to install majordomo + +OS=`uname` + +SERVER=http://files.directadmin.com/services/all/majordomo +ADDPATCHES=1 + +SOURCEPATH="/usr/local/directadmin/scripts/packages/majordomo-1.94.5" + +if [ ! -e ${SOURCEPATH}/Makefile ] +then + echo "The source path for majordomo does not exist. Make sure the correct path is set in majordomo.sh"; + exit 0; +fi + +/bin/mkdir -p /etc/virtual/majordomo + +MDGID=`id -g daemon` + +if [ -e /etc/debian_version ]; then + /usr/sbin/groupadd nobody 2>/dev/null + /usr/sbin/useradd -d /etc/virtual/majordomo -g $MDGID -s /bin/false majordomo 2> /dev/null +elif [ "$OS" = "FreeBSD" ]; then + /usr/sbin/pw useradd majordomo -b /etc/virtual/majordomo -g daemon -s /sbin/nologin 2> /dev/null +else + /usr/sbin/useradd -d /etc/virtual/majordomo -g $MDGID majordomo -s /bin/false -n -r 2> /dev/null +fi + +MDUID=`id -u majordomo` + +/usr/bin/perl -pi -e 's/PERL = .*/PERL = \/usr\/bin\/perl/' ${SOURCEPATH}/Makefile; +/usr/bin/perl -pi -e 's/W_HOME = .*/W_HOME = \/etc\/virtual\/majordomo/' ${SOURCEPATH}/Makefile; + +#Perl and Bash weren't getting along. MDUID wasn't showing up so I did it this way. +STR="/usr/bin/perl -pi -e 's/W_USER = .*/W_USER = ${MDUID}/' ${SOURCEPATH}/Makefile"; +eval $STR; + +STR="/usr/bin/perl -pi -e 's/W_GROUP = .*/W_GROUP = ${MDGID}/' ${SOURCEPATH}/Makefile"; +eval $STR; + +STR="/usr/bin/perl -pi -e 's/TMPDIR = .*/TMPDIR = \/tmp/' ${SOURCEPATH}/Makefile"; +eval $STR; + + +#fix REALLY-TO value in digests file +STR="/usr/bin/perl -pi -e 's/\$ARGV\[0\];/\$ARGV\[0\].\${whereami};/' ${SOURCEPATH}/digest"; +eval $STR; + +STR="/usr/bin/perl -pi -e 's#/usr/test/majordomo#/etc/virtual/majordomo#' ${SOURCEPATH}/sample.cf"; +eval $STR; + +cd ${SOURCEPATH}; + +make wrapper +make install +make install-wrapper + +/usr/bin/perl -pi -e 's#/usr/test/majordomo#/etc/virtual/majordomo#' /etc/virtual/majordomo/majordomo.cf + +if [ $ADDPATCHES -eq 0 ]; then + exit 0; +fi + +PATCH1=majordomo.patch +PATCH1_PATH=/etc/virtual/majordomo/${PATCH1} +if [ ! -s "${PATCH1_PATH}" ]; then + wget -O ${PATCH1_PATH} ${SERVER}/${PATCH1} +fi + +if [ -s "${PATCH1_PATH}" ]; then + cd /etc/virtual/majordomo + patch -p0 < majordomo.patch +else + echo "Cannot find ${PATCH1_PATH} to patch majordomo."; +fi + +#just to put up back where we were.. likely not needed. +cd ${SOURCEPATH}; + +chmod 750 /etc/virtual/majordomo + +exit 0 diff --git a/directadmin-1.62.4/scripts/move_domain.sh b/directadmin-1.62.4/scripts/move_domain.sh new file mode 100644 index 0000000..5e9ffc5 --- /dev/null +++ b/directadmin-1.62.4/scripts/move_domain.sh @@ -0,0 +1,433 @@ +#!/bin/sh +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to move domain from one user to another +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./move_domain.sh <domain> <olduser> <newuser> + +VERSION=0.3 + +OS=`uname` + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script."; + exit 0; +fi + +if [ $# != 3 ]; then + echo "Move Domain to User - v. $VERSION"; + echo ""; + echo "Usage:"; + echo "$0 <domain> <olduser> <newuser>"; + echo "you gave #$#: $0 $1 $2 $3"; + exit 0; +fi + +DOMAIN=$1 +OLD_USER=$2 +NEW_USER=$3 + +TEMP="grep -e '^$OLD_USER:' /etc/passwd | cut -d: -f6" +OLD_HOME=`eval $TEMP` +TEMP="grep -e '^$NEW_USER:' /etc/passwd | cut -d: -f6" +NEW_HOME=`eval $TEMP` + +OLD_DOMAIN_DIR=${OLD_HOME}/domains/${DOMAIN} +NEW_DOMAIN_DIR=${NEW_HOME}/domains/${DOMAIN} + +DATA_USER_OLD=/usr/local/directadmin/data/users/${OLD_USER}/ +DATA_USER_NEW=/usr/local/directadmin/data/users/${NEW_USER}/ +USER_OLD=${DATA_USER_OLD}domains.list +USER_NEW=${DATA_USER_NEW}domains.list + +APACHE_PUBLIC_HTML=`/usr/local/directadmin/directadmin c | grep apache_public_html | cut -d= -f2` + +PERL=/usr/bin/perl + +IP_SWAP=/usr/local/directadmin/scripts/ipswap.sh + +ROOT_GROUP=root +if [ "${OS}" = "FreeBSD" ]; then + ROOT_GROUP=wheel +fi + +update_email_domain_dir() +{ + #/etc/virtual/domain.com + DMNDIR=/etc/virtual/${DOMAIN} + if [ ! -e ${DMNDIR} ] && [ -e ${DMNDIR}_off ]; then + DMNDIR=${DMNDIR}_off + echo "domain ${DOMAIN} is suspended using ${DMNDIR}"; + fi + if [ ! -e ${DMNDIR} ]; then + echo "Cannot find ${DMNDIR}, aborting swap of ${DMNDIR}." + return; + fi + + #passwd (doveoct) + #aliases + #filter (home path) + #usage.cache + #majordomo/list.aliases: $OLD_USER@$DOMAIN + #majordomo/lists/*: $OLD_USER@$DOMAIN + + + #TEMP="$PERL -pi -e 's#${OLD_HOME}#${NEW_HOME}#' ${DMNDIR}/passwd" + #eval $TEMP; + + OLD_GID=`/usr/bin/id -g mail` + OLD_UID=`/usr/bin/id -u $OLD_USER` + NEW_GID=`/usr/bin/id -g mail` + NEW_UID=`/usr/bin/id -u $NEW_USER` + + #Firt find the uid/gid swap them. + TEMP="perl -pi -e 's#:${OLD_UID}:${OLD_GID}::${OLD_HOME}/#:${NEW_UID}:${NEW_GID}::${NEW_HOME}/#' ${DMNDIR}/passwd" + eval $TEMP; + + #/etc/virtual/domain.com/aliases + + TEMP="$PERL -pi -e 's/(^|\s|:)${OLD_USER}(:|\$|,)/\${1}${NEW_USER}\${2}/g' ${DMNDIR}/aliases" + eval $TEMP; + eval $TEMP; #for the case of admin:admin where there is no white space. Needs to be run twice. + + TEMP="$PERL -pi -e 's#${OLD_HOME}#${NEW_HOME}#' ${DMNDIR}/filter" + eval $TEMP; + + if [ -e ${DMNDIR}/usage.cache ]; then + TEMP="$PERL -pi -e 's/^${OLD_USER}:/${NEW_USER}/' ${DMNDIR}/usage.cache" + eval $TEMP; + fi + + OLD_EMAIL=${OLD_USER}@${DOMAIN} + NEW_EMAIL=${NEW_USER}@${DOMAIN} + + if [ -e ${DMNDIR}/majordomo ]; then + TEMP="$PERL -pi -e 's/${OLD_EMAIL}/${NEW_EMAIL}/' ${DMNDIR}/majordomo/list.aliases"; + eval $TEMP + TEMP="$PERL -pi -e 's/${OLD_EMAIL}/${NEW_EMAIL}/' ${DMNDIR}/majordomo/lists/*"; + eval $TEMP + fi +} + +update_email_settings() +{ + echo "Updating email settings." + + #/etc/virtual/domainowners + #/etc/virtual/snidomains + #/etc/virtual/domain.com(_off) (this will be large) + #/home/username/.spamassassin/user_spam/user@domain.com + #/home/username/imap/domain.com + #/var/spool/virtual/domain.com (permissions only) + #/etc/dovecot/conf/sni/domain.com.conf + + #domainowners + TEMP="$PERL -pi -e 's/^${DOMAIN}: ${OLD_USER}\$/${DOMAIN}: ${NEW_USER}/' /etc/virtual/domainowners" + eval $TEMP + + #snidomains + if [ -s /etc/virtual/snidomains ]; then + TEMP="$PERL -pi -e 's/:${OLD_USER}:${DOMAIN}\$/:${NEW_USER}:${DOMAIN}/' /etc/virtual/snidomains" + eval $TEMP + fi + + #repeat for domain pointers too. + #at this stage, the domain.com.pointers file has already been moved. + for p in `cat /usr/local/directadmin/data/users/${NEW_USER}/domains/${DOMAIN}.pointers | cut -d= -f1`; do + { + TEMP="$PERL -pi -e 's/^${p}: ${OLD_USER}\$/${p}: ${NEW_USER}/' /etc/virtual/domainowners" + eval $TEMP + }; + done; + + #/etc/virtual/domain.com + update_email_domain_dir + + #/home/username/.spamassassin/user_spam/user@domain.com + OLD_SADIR=${OLD_HOME}/.spamassassin/user_spam + NEW_SADIR=${NEW_HOME}/.spamassassin/user_spam + #if it doesnt exist, dont bother + if [ -e ${OLD_SADIR} ]; then + mkdir -p $NEW_SADIR + mv ${OLD_SADIR}/*@${DOMAIN} ${NEW_SADIR}/ + chown -R ${NEW_USER}:mail ${NEW_SADIR} + chmod 771 ${NEW_SADIR} + chmod 660 ${NEW_SADIR}/* + fi + + #/home/username/imap/domain.com + OLD_IMAP=${OLD_HOME}/imap/${DOMAIN} + NEW_IMAP=${NEW_HOME}/imap/${DOMAIN} + if [ -e ${OLD_IMAP} ]; then + if [ -e ${NEW_IMAP} ]; then + echo "$NEW_IMAP already exists.. merging as best we can."; + mv -f ${OLD_IMAP}/* ${NEW_IMAP}/ + else + if [ ! -e "${NEW_HOME}/imap" ]; then + mkdir -p ${NEW_HOME}/imap + chown ${NEW_USER}:mail ${NEW_HOME}/imap + chmod 770 ${NEW_HOME}/imap + fi + mv -f ${OLD_IMAP} ${NEW_IMAP} + fi + + chown -R ${NEW_USER}:mail ${NEW_IMAP} + chmod -R 770 ${NEW_IMAP} + fi + + #symlinks for domain pointers + for p in `cat /usr/local/directadmin/data/users/${NEW_USER}/domains/${DOMAIN}.pointers | cut -d= -f1`; do + { + ALIAS=${NEW_HOME}/imap/$p + ln -s ${DOMAIN} ${ALIAS} + chown -h ${NEW_USER}:mail ${ALIAS} + }; + done; + + #/var/spool/virtual/domain.com (permissions only) + VPV=/var/spool/virtual/${DOMAIN} + if [ -e ${VPV} ]; then + chown -R ${NEW_USER}:mail $VPV + fi + + #/etc/dovecot/conf/sni/domain.com.conf + SNI_CONF=/etc/dovecot/conf/sni/${DOMAIN}.conf + if [ -s ${SNI_CONF} ]; then + TEMP="/usr/bin/perl -pi -e 's#${DATA_USER_OLD}#${DATA_USER_NEW}#g' ${SNI_CONF}" + eval $TEMP; + fi +} + +update_ftp_settings() +{ + echo "Updating ftp settings." + + #/etc/proftpd.passwd + #/usr/local/directadmin/data/users/user/ftp.passwd + #/etc/proftpd.vhosts.conf + + #for the password files, we only chagne the user@domain.com accounts. + #the system account isn't touched. + + OLD_GID=`/usr/bin/id -g $OLD_USER` + OLD_UID=`/usr/bin/id -u $OLD_USER` + NEW_GID=`/usr/bin/id -g $NEW_USER` + NEW_UID=`/usr/bin/id -u $NEW_USER` + + #proftpd.passwd. Firt find the uid/gid and homedir matchup and swap them. + TEMP="perl -pi -e 's#:${OLD_UID}:${OLD_GID}:(domain|user|custom):${OLD_DOMAIN_DIR}#:${NEW_UID}:${NEW_GID}:\${1}:${NEW_DOMAIN_DIR}#' /etc/proftpd.passwd" + eval $TEMP; + + #proftpd.passwd ... then whatever is leftover (eg, anonymous) + TEMP="$PERL -pi -e 's#:${OLD_DOMAIN_DIR}#:${NEW_DOMAIN_DIR}#' /etc/proftpd.passwd" + eval $TEMP + + + + #ftp.passwd ... this one is messier.. + #take all accounts with /home/user/domain/doamin.com in them, and move them to the new ftp.passwd, with the new home. + + OLD_FTP=/usr/local/directadmin/data/users/${OLD_USER}/ftp.passwd + NEW_FTP=/usr/local/directadmin/data/users/${NEW_USER}/ftp.passwd + TEMP_FTP=/usr/local/directadmin/data/users/${OLD_USER}/ftp.passwd.temp + + grep ":$OLD_DOMAIN_DIR" $OLD_FTP > $TEMP_FTP + TEMP="$PERL -pi -e 's#:${OLD_DOMAIN_DIR}#:${NEW_DOMAIN_DIR}#' $TEMP_FTP" + eval $TEMP + + cat $TEMP_FTP >> $NEW_FTP + + #now, take out the old paths + grep -v ":$OLD_DOMAIN_DIR" $OLD_FTP > $TEMP_FTP + mv -f $TEMP_FTP $OLD_FTP + chown root:ftp $OLD_FTP +} + +update_da_settings() +{ + echo "Moving domain data to the ${NEW_USER} user." + mv -f ${OLD_DOMAIN_DIR} ${NEW_DOMAIN_DIR} + mv -f /usr/local/directadmin/data/users/${OLD_USER}/domains/${DOMAIN}.* /usr/local/directadmin/data/users/${NEW_USER}/domains/ + + echo "Setting ownership for ${DOMAIN} domain." + chown -R ${NEW_USER}:${NEW_USER} ${NEW_DOMAIN_DIR} + + if [ "$APACHE_PUBLIC_HTML" -eq 1 ]; then + echo "apache_public_html=1 is set, updating public_html and private_html in ${NEW_DOMAIN_DIR}"; + chmod 750 ${NEW_DOMAIN_DIR}/public_html ${NEW_DOMAIN_DIR}/private_html + chgrp apache ${NEW_DOMAIN_DIR}/public_html ${NEW_DOMAIN_DIR}/private_html + fi + + if [ -e ${NEW_DOMAIN_DIR}/stats ]; then + echo "Setting stats directory ownership for ${DOMAIN} domain."; + chown -R root:${ROOT_GROUP} ${NEW_DOMAIN_DIR}/stats + fi + + echo "Removing domain from ${OLD_USER} user." + $PERL -pi -e "s#^${DOMAIN}\n##g" ${USER_OLD} + + echo "Adding domain to ${NEW_USER} user." + echo "${DOMAIN}" >> ${USER_NEW} + $PERL -pi -e "s#/usr/local/directadmin/data/users/${OLD_USER}/#/usr/local/directadmin/data/users/${NEW_USER}/#g" /usr/local/directadmin/data/users/${NEW_USER}/domains/${DOMAIN}.* + $PERL -pi -e "s#${OLD_HOME}/#${NEW_HOME}/#g" /usr/local/directadmin/data/users/${NEW_USER}/domains/${DOMAIN}.* + + #ensure the user.conf doesn't have the old domain. No need for new User, as they'd already have a default. + USER_CONF=${DATA_USER_OLD}/user.conf + C=`grep -c "^domain=${DOMAIN}\$" $USER_CONF` + if [ "${C}" -gt 0 ]; then + #figure out a new default domain.. + DEFAULT_DOMAIN=`cat ${USER_OLD} | head -n1` + #may be filled.. may be empty. + perl -pi -e "s/^domain=${DOMAIN}\$/domain=${DEFAULT_DOMAIN}/" ${USER_CONF} + + #if the new default domain exists, reset the ~/public_html link. + PUB_LINK=${OLD_HOME}/public_html + NEW_DEF_DOMAIN_DIR=${OLD_HOME}/domains/${DEFAULT_DOMAIN}/public_html + NEW_DEF_DOMAIN_DIR_RELATIVE=./domains/${DEFAULT_DOMAIN}/public_html + if [ -h "${PUB_LINK}" ] && [ "${DEFAULT_DOMAIN}" != "" ] && [ -d "${NEW_DEF_DOMAIN_DIR}" ]; then + rm -f ${PUB_LINK} + ln -s ${NEW_DEF_DOMAIN_DIR_RELATIVE} ${PUB_LINK} + chown -h ${OLD_USER}:${OLD_USER} ${PUB_LINK} + fi + + fi + + echo "Changing domain owner." + for i in `ls /usr/local/directadmin/data/users/${NEW_USER}/domains/${DOMAIN}.conf`; do { $PERL -pi -e "s/username=${OLD_USER}/username=${NEW_USER}/g" $i; }; done; + + + #ip swapping, if needed. + #empty the domain.ip_list, except 1 IP. + USER_PATH=/usr/local/directadmin/data/users/${NEW_USER} + OLD_IP=`grep "^ip=" ${USER_PATH}/domains/${DOMAIN}.conf | cut -d= -f2` + NEW_IP=`grep "^ip=" ${USER_PATH}/user.conf | cut -d= -f2` + if [ "${OLD_IP}" != "${NEW_IP}" ]; then + echo "The old IP (${OLD_IP}) does not match the new IP (${NEW_IP}). Swapping..."; + #./ipswap.sh <oldip> <newip> [<file>] + $IP_SWAP $OLD_IP $NEW_IP ${USER_PATH}/domains/${DOMAIN}.conf + $IP_SWAP $OLD_IP $NEW_IP ${USER_PATH}/domains/${DOMAIN}.ftp + + if [ "${OS}" = "FreeBSD" ]; then + $IP_SWAP $OLD_IP $NEW_IP /etc/namedb/${DOMAIN}.db + else + if [ -e /etc/debian_version ]; then + $IP_SWAP $OLD_IP $NEW_IP /etc/bind/${DOMAIN}.db + else + $IP_SWAP $OLD_IP $NEW_IP /var/named/${DOMAIN}.db + fi + fi + + echo "${NEW_IP}" > ${USER_PATH}/domains/${DOMAIN}.ip_list + + #update the serial: + echo "action=rewrite&value=named&domain=${DOMAIN}" >> /usr/local/directadmin/data/task.queue + fi + + #Update .htaccess files in case there is a protected password directory. + PROTECTED_LIST=${NEW_DOMAIN_DIR}/.htpasswd/.protected.list + if [ -s "${PROTECTED_LIST}" ]; then + echo "Updating protected directories via ${PROTECTED_LIST}"; + for i in `cat ${PROTECTED_LIST}`; do + { + D=$NEW_HOME/$i + if [ ! -d ${D} ]; then + echo "Cannot find a directory at ${D}"; + continue; + fi + + HTA=${D}/.htaccess + if [ ! -s ${HTA} ]; then + echo "${HTA} appears to be empty."; + continue; + fi + + $PERL -pi -e "s#AuthUserFile ${OLD_HOME}/#AuthUserFile ${NEW_HOME}/#" ${HTA} + }; + done; + fi + + #complex bug: if multi-ip was used, should go into the zone and surgically remove the old ips from the zone, leaving only the NEW_IP. + + + #this is needed to update "show all users" cache. + echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue + #this is needed to rewrite /usr/local/directadmin/data/users/USERS/httpd.conf + echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue + /usr/local/directadmin/dataskq d + +} + +update_awstats() +{ + TEMP="/usr/bin/perl -pi -e 's#/home/${OLD_USER}/#/home/${NEW_USER}/#g' /home/${NEW_USER}/domains/${DOMAIN}/awstats/.data/*.conf" + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#/home/${OLD_USER}/#/home/${NEW_USER}/#g' /home/${NEW_USER}/domains/${DOMAIN}/awstats/awstats.pl" + eval $TEMP; + + #And for subdomains: + TEMP="/usr/bin/perl -pi -e 's#/home/${OLD_USER}/#/home/${NEW_USER}/#g' /home/${NEW_USER}/domains/${DOMAIN}/awstats/*/.data/*.conf" + eval $TEMP; + + TEMP="/usr/bin/perl -pi -e 's#/home/${OLD_USER}/#/home/${NEW_USER}/#g' /home/${NEW_USER}/domains/${DOMAIN}/awstats/*/awstats.pl" + eval $TEMP; +} + +doChecks() +{ + if [ ! -e ${USER_OLD} ]; then + echo "File ${USER_OLD} does not exist. Can not continue." + exit 1; + fi + + if [ "${DOMAIN}" = "" ]; then + echo "The domain is blank"; + exit 1; + fi + + if [ "${OLD_HOME}" = "" ]; then + echo "the old home is blank"; + exit 1; + fi + + if [ "${NEW_HOME}" = "" ]; then + echo "the new home is blank"; + exit 1; + fi + + if [ ! -e ${USER_NEW} ]; then + echo "File ${USER_NEW} does not exist. Can not continue." + exit 1; + fi + + if [ "`grep -wc ${DOMAIN} $USER_OLD`" = "0" ]; then + echo "Domain ${DOMAIN} is not owned by ${OLD_USER} user." + exit 1; + fi + + if [ ! -d ${OLD_DOMAIN_DIR} ]; then + echo "Direcory ${OLD_DOMAIN_DIR} does not exist. Can not continue." + exit 1; + fi + + if [ -d ${NEW_DOMAIN_DIR} ]; then + echo "Direcory ${NEW_DOMAIN_DIR} exists. Can not continue." + exit 1; + fi + + if [ ! -e $PERL ]; then + echo "$PERL does not exist."; + exit 1; + fi +} + +doChecks +update_da_settings +update_email_settings +update_ftp_settings +update_awstats + +echo "Domain has been moved to ${NEW_USER} user." + +exit 0; diff --git a/directadmin-1.62.4/scripts/move_user_to_reseller.sh b/directadmin-1.62.4/scripts/move_user_to_reseller.sh new file mode 100644 index 0000000..17e800e --- /dev/null +++ b/directadmin-1.62.4/scripts/move_user_to_reseller.sh @@ -0,0 +1,105 @@ +#!/bin/sh +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to move user from one reseller to another +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./move_user_to_reseller.sh <user> <oldreseller> <newreseller> + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 3 ]; then + echo "Usage:"; + echo "$0 <user> <oldreseller> <newreseller>"; + echo "you gave #$#: $0 $1 $2 $3"; + exit 0; +fi + +OLD_RESELLER=$2 +NEW_RESELLER=$3 + +RESELLER_OLD=/usr/local/directadmin/data/users/$2/users.list +RESELLER_NEW=/usr/local/directadmin/data/users/$3/users.list + +USERN=$1 + +if [ ! -e ${RESELLER_OLD} ]; then + echo "File ${RESELLER_OLD} does not exist. Can not continue." + exit 1; +fi + +if [ ! -e ${RESELLER_NEW} ]; then + echo "File ${RESELLER_NEW} does not exist. Can not continue." + exit 1; +fi + +if [ "`grep -wc $USERN $RESELLER_OLD`" = "0" ]; then + echo "User $USERN is not owned by $2 reseller" + exit 1; +fi + +if [ ! -e /usr/bin/perl ]; then + echo "/usr/bin/perl does not exist"; + exit 1; +fi + +isOwned() +{ + IP=$1 + IPF=/usr/local/directadmin/data/admin/ips/$IP + if [ ! -s $IPF ]; then + #good spot for an error message, but can't echo anything + echo "0"; + return; + fi + IPSTATUS=`grep status= $IPF | cut -d= -f2`; + if [ "$IPSTATUS" = "owned" ]; then + echo "1"; + else + echo "0"; + fi +} + +#ensure IPs are brought forward +for i in `cat /usr/local/directadmin/data/users/$USERN/user_ip.list`; do +{ + if [ "`isOwned $i`" = "1" ]; then + echo "$i is owned. Moving the IP to the new Reseller"; + + perl -pi -e "s#$i\n##g" /usr/local/directadmin/data/users/$OLD_RESELLER/ip.list + echo "$i" >> /usr/local/directadmin/data/users/$NEW_RESELLER/ip.list + + perl -pi -e "s#reseller=$OLD_RESELLER#reseller=$NEW_RESELLER#g" /usr/local/directadmin/data/admin/ips/$i + else + echo "$i is shared. Leaving the IP with the old Reseller"; + fi +}; +done; + + +echo "Removing user from $2 reseller" +perl -pi -e "s#$USERN\n##g" /usr/local/directadmin/data/users/$2/users.list + +echo "Adding user to $3 reseller" +echo "$USERN" >> /usr/local/directadmin/data/users/$3/users.list + +echo "Changing user owner" +for i in `ls /usr/local/directadmin/data/users/$USERN/domains/*.conf`; do { perl -pi -e "s/creator=$2/creator=$3/g" $i; }; done; + +#change the user.conf +perl -pi -e "s/creator=$2/creator=$3/" /usr/local/directadmin/data/users/$USERN/user.conf + +#this is needed to update "show all users" cache. +echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue +echo "action=rewrite&value=httpd&user=$USERN" >> /usr/local/directadmin/data/task.queue + +#messy bit that removes the user from the backup_crons.list, but only for type=reseller backups. +#the user is left in the admin backups still in the type=admin backups. +perl -pi -e "s/select[0-9]+=$USERN&(.*)(type=reseller)/\$1\$2/" /usr/local/directadmin/data/admin/backup_crons.list + +echo "User has been moved to $3" + +exit 0; diff --git a/directadmin-1.62.4/scripts/named b/directadmin-1.62.4/scripts/named new file mode 100644 index 0000000..14e3122 --- /dev/null +++ b/directadmin-1.62.4/scripts/named @@ -0,0 +1,126 @@ +#!/bin/bash +# +# named This shell script takes care of starting and stopping +# named (BIND DNS server). +# +# chkconfig: - 55 45 +# description: named (BIND) is a Domain Name Server (DNS) \ +# that is used to resolve host names to IP addresses. +# probe: true + +# Source function library. +. /etc/rc.d/init.d/functions + +# Source networking configuration. +. /etc/sysconfig/network + +# Check that networking is up. +[ "${NETWORKING}" = "no" ] && exit 0 + +[ -f /etc/sysconfig/named ] && . /etc/sysconfig/named + +[ -f /usr/sbin/named ] || exit 0 + +[ -f ${ROOTDIR}/etc/named.conf ] || exit 0 + +RETVAL=0 +prog="named" + +start() { + # Start daemons. + if [ -n "`/sbin/pidof named`" ]; then + echo -n $"$prog: already running" + return 1 + fi + echo -n $"Starting $prog: " + if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then + OPTIONS="${OPTIONS} -t ${ROOTDIR}" + fi + # Since named doesn't return proper exit codes at the moment + # (won't be fixed before 9.2), we can't use daemon here - emulate + # its functionality + base=$prog + named -u named ${OPTIONS} + RETVAL=$? + usleep 100000 + if [ -z "`/sbin/pidof named`" ]; then + # The child processes have died after fork()ing, e.g. + # because of a broken config file + RETVAL=1 + fi + [ $RETVAL -ne 0 ] && failure $"$base startup" + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/named && success $"$base startup" + echo + return $RETVAL +} +stop() { + # Stop daemons. + echo -n $"Stopping $prog: " + killproc named + RETVAL=$? + [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named + echo + return $RETVAL +} +rhstatus() { + status named + return $? +} +restart() { + stop + start +} +reload() { + #/usr/sbin/rndc reload >/dev/null 2>&1 || /usr/bin/killall -HUP named + + PID=/var/run/named/named.pid + if [ ! -e $PID ]; then + PID=/var/run/named.pid + fi + RET=0; + if [ ! -e $PID ]; then + killall -HUP named + RET=$? + else + kill -HUP `cat $PID` + RET=$? + fi + return $RET +} +probe() { + # named knows how to reload intelligently; we don't want linuxconf + # to offer to restart every time + /usr/sbin/rndc reload >/dev/null 2>&1 || echo start + return $? +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + rhstatus + ;; + restart) + restart + ;; + condrestart) + [ -f /var/lock/subsys/named ] && restart + ;; + reload) + reload + ;; + probe) + probe + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|probe}" + exit 1 +esac + +exit $? + diff --git a/directadmin-1.62.4/scripts/ncftp.sh b/directadmin-1.62.4/scripts/ncftp.sh new file mode 100644 index 0000000..47168e7 --- /dev/null +++ b/directadmin-1.62.4/scripts/ncftp.sh @@ -0,0 +1,48 @@ +#!/bin/sh + +CWD=`pwd` + +NAME=ncftp +VERSION=3.2.6 +PRIMARY=http://files.directadmin.com/services +SECONDARY=http://files3.directadmin.com/services +SAVE=/usr/local/directadmin/scripts/packages +FILE=${NAME}-${VERSION}-src.tar.gz +DIR=${NAME}-${VERSION} + +OS=`uname` + +if [ "$OS" = "FreeBSD" ]; then + WGET=/usr/local/bin/wget +else + WGET=/usr/bin/wget +fi + +if [ ! -s $SAVE/$FILE ]; then + $WGET -O $SAVE/$FILE $PRIMARY/$FILE +fi +if [ ! -s $SAVE/$FILE ]; then + $WGET -O $SAVE/$FILE $SECONDARY/$FILE +fi +if [ ! -s $SAVE/$FILE ]; then + echo "Unable to get $SAVE/$FILE" + exit 1; +fi + +cd $SAVE + +tar -xz --hard-dereference -f $FILE +tar xzf $FILE + +cd $DIR + +./configure --prefix=/usr +make +make install + +if [ "$?" -eq 0 ]; then + cd .. + rm -rf ${DIR} +fi + +cd $CWD; diff --git a/directadmin-1.62.4/scripts/php_clean.ini b/directadmin-1.62.4/scripts/php_clean.ini new file mode 100644 index 0000000..44da1d0 --- /dev/null +++ b/directadmin-1.62.4/scripts/php_clean.ini @@ -0,0 +1,4 @@ +[PHP] +safe_mode = Off +open_basedir = +disable_functions = diff --git a/directadmin-1.62.4/scripts/redirect.php b/directadmin-1.62.4/scripts/redirect.php new file mode 100644 index 0000000..8149e71 --- /dev/null +++ b/directadmin-1.62.4/scripts/redirect.php @@ -0,0 +1,3 @@ +<?php +header("Location: http://".$_SERVER['HTTP_HOST'].":2222"); +?> diff --git a/directadmin-1.62.4/scripts/removeip b/directadmin-1.62.4/scripts/removeip new file mode 100644 index 0000000..69ae864 --- /dev/null +++ b/directadmin-1.62.4/scripts/removeip @@ -0,0 +1,73 @@ +#!/bin/bash + +OS=`uname` +#remove the active ip from eth0:# +if [ "${OS}" = "FreeBSD" ]; then + ETH_DEV=dc0 +else + ETH_DEV=eth0 +fi +DACONF=/usr/local/directadmin/conf/directadmin.conf +if [ -s ${DACONF} ]; then + if grep -m1 -q '^ethernet_dev=' ${DACONF}; then + ETH_DEV=`grep -m1 '^ethernet_dev=' ${DACONF} | cut -d= -f2 | cut -d: -f1` + fi +fi + +# we need the ip to delete +if [ $# -ne "1" ] && [ $# -ne "2" ]; then + echo "Usage: $0 <ip> (<condensed_ipv6>)"; + exit 1; +fi + +if [ "${OS}" = "FreeBSD" ]; then + if /sbin/ifconfig | grep -m1 -q " $1 "; then + /sbin/ifconfig $ETH_DEV inet $1 -alias + fi +else + if ip a | grep -m1 -q " $1/"; then + #"ip" accepts IPs without netmasks, but shows a warning that the feature might not be avail in the future, this we delete IP with its mask + IP_TO_REMOVE="`ip a | grep -m1 -o \" ${1}/[0-9]*\" | awk '{print $1}'`" + ip addr del ${IP_TO_REMOVE} dev ${ETH_DEV} + + if [ "$?" -ne 0 ] && ip a | grep -m1 -q " $1/"; then + #old code, should not be needed anymore, but we fallback to it if IP is still there + IP=$1 + IPv6=0 + if [ $# -eq "2" ] && [ "$2" != "" ]; then + IP=$2 + /sbin/ifconfig $ETH_DEV del $IP/64 + + IPv6=1 + fi + + #for each eth0:#, if ifconfig eth0:# has $1 (the ip) delete eth0:# + for i in `/sbin/ifconfig | grep $ETH_DEV: | cut -d\ -f1 | cut -d: -f1,2`; do + { + NUMIP=`/sbin/ifconfig $i | grep -c "${IP} "`; + + if [ $NUMIP -gt "0" ]; + then + { + #we found the interface with the ip + + COLCOUNT=`echo $i | grep -c :` + if [ "${COLCOUNT}" -gt 0 ] && [ -e /etc/debian_version ] && [ "${IPv6}" -eq 0 ]; then + /sbin/ifconfig $i down + else + /sbin/ifconfig $i del $IP #remove from the interface + fi + + #it appears as though the ip is automatically removed from `route` + + exit 0 + } + fi + }; + done + fi + fi +fi + +exit 0 +#can't find it, it must be gone \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/rename_database.sh b/directadmin-1.62.4/scripts/rename_database.sh new file mode 100644 index 0000000..6c4760d --- /dev/null +++ b/directadmin-1.62.4/scripts/rename_database.sh @@ -0,0 +1,115 @@ +#!/bin/sh +#VERSION=2.0 +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to move user from one reseller to another +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./rename_database.sh <olddatabase> <newdatabase> + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 2 ]; then + echo "Usage:"; + echo "$0 <olddatabase> <newdatabase>"; + echo "you gave #$#: $0 $1 $2"; + exit 0; +fi + +OLDUSER_DATABASE="$1" +NEWUSER_DATABASE="$2" +OLDUSER_ESCAPED_DATABASE="`echo ${OLDUSER_DATABASE} | perl -p0 -e 's|_|\\\_|'`" +NEWUSER_ESCAPED_DATABASE="`echo ${NEWUSER_DATABASE} | perl -p0 -e 's|_|\\\_|'`" + +MYSQLDUMP=/usr/local/mysql/bin/mysqldump +if [ ! -e ${MYSQLDUMP} ]; then + MYSQLDUMP=/usr/local/bin/mysqldump +fi +if [ ! -e ${MYSQLDUMP} ]; then + MYSQLDUMP=/usr/bin/mysqldump +fi +if [ ! -e ${MYSQLDUMP} ]; then + echo "Cannot find ${MYSQLDUMP}" + exit 1 +fi + +MYSQL=/usr/local/mysql/bin/mysql +if [ ! -e ${MYSQL} ]; then + MYSQL=/usr/local/bin/mysql +fi +if [ ! -e ${MYSQL} ]; then + MYSQL=/usr/bin/mysql +fi +if [ ! -e ${MYSQL} ]; then + echo "Cannot find ${MYSQL}" + exit 1 +fi + +DEFM=--defaults-extra-file=/usr/local/directadmin/conf/my.cnf + +# If MySQL a new database does not exist, create it and copy all the data from the old database, then drop the old database +if ! ${MYSQL} ${DEFM} --skip-column-names -e "SHOW DATABASES LIKE '${NEWUSER_DATABASE}';" -s | grep -m1 -q "${NEWUSER_DATABASE}"; then + if ! ${MYSQL} ${DEFM} --skip-column-names -e "SHOW DATABASES LIKE '${OLDUSER_DATABASE}';" -s | grep -m1 -q "${OLDUSER_DATABASE}"; then + echo "Specified database name does not exist: ${OLDUSER_DATABASE}" + exit 1 + fi + #Count the number of tables in current database + OLD_TABLES_COUNT="`${MYSQL} ${DEFM} -D \"${OLDUSER_DATABASE}\" --skip-column-names -e 'SHOW TABLES;' | wc -l`" + + #Create an empty new database, \` is needed for databases having "-" in it's name, so that no math would be done by sql :) + ${MYSQL} ${DEFM} -e "CREATE DATABASE \`${NEWUSER_DATABASE}\`;" + + echo "Dumping+restoring ${OLDUSER_DATABASE} -> ${NEWUSER_DATABASE}..." + + #Dump+restore to the new database on the fly + ${MYSQLDUMP} ${DEFM} --routines "${OLDUSER_DATABASE}" | ${MYSQL} ${DEFM} -D "${NEWUSER_DATABASE}" + + #Count the number of tables in new database + NEW_TABLES_COUNT="`${MYSQL} ${DEFM} -D \"${NEWUSER_DATABASE}\" --skip-column-names -e 'SHOW TABLES;' | wc -l`" + + if echo "${OLD_TABLES_COUNT}" | grep -qE ^\-?[0-9]+$; then + COUNT1_IS_NUMERIC=true + else + COUNT1_IS_NUMERIC=false + fi + + if echo "${NEW_TABLES_COUNT}" | grep -qE ^\-?[0-9]+$; then + COUNT2_IS_NUMERIC=true + else + COUNT2_IS_NUMERIC=false + fi + + #Drop the old database if the count of tables matches + if [ ${OLD_TABLES_COUNT} -eq ${NEW_TABLES_COUNT} ] && ${COUNT1_IS_NUMERIC} && ${COUNT2_IS_NUMERIC}; then + ${MYSQL} ${DEFM} -e "DROP DATABASE \`${OLDUSER_DATABASE}\`;" + echo "Database has been renamed successfully: ${OLDUSER_DATABASE} -> ${NEWUSER_DATABASE}" + if [ `${MYSQL} ${DEFM} -e "select count(*) from mysql.db where db='${OLDUSER_ESCAPED_DATABASE}'" -s` -ge 1 ]; then + echo "Updating mysql.db..." + ${MYSQL} ${DEFM} -e "UPDATE mysql.db set db='${NEWUSER_ESCAPED_DATABASE}' WHERE db='${OLDUSER_ESCAPED_DATABASE}' OR db='${OLDUSER_DATABASE}';" + fi + if [ `${MYSQL} ${DEFM} -e "select count(*) from mysql.columns_priv where db='${OLDUSER_ESCAPED_DATABASE}'" -s` -ge 1 ]; then + echo "Updating mysql.columns_priv..." + ${MYSQL} ${DEFM} -e "UPDATE mysql.columns_priv set db='${NEWUSER_ESCAPED_DATABASE}' WHERE db='${OLDUSER_ESCAPED_DATABASE}' OR db='${OLDUSER_DATABASE}';" + fi + if [ `${MYSQL} ${DEFM} -e "select count(*) from mysql.procs_priv where db='${OLDUSER_ESCAPED_DATABASE}'" -s` -ge 1 ]; then + echo "Updating mysql.procs_priv..." + ${MYSQL} ${DEFM} -e "UPDATE mysql.procs_priv set db='${NEWUSER_ESCAPED_DATABASE}' WHERE db='${OLDUSER_ESCAPED_DATABASE}' OR db='${OLDUSER_DATABASE}';" + fi + if [ `${MYSQL} ${DEFM} -e "select count(*) from mysql.tables_priv where db='${OLDUSER_ESCAPED_DATABASE}'" -s` -ge 1 ]; then + echo "Updating mysql.tables_priv..." + ${MYSQL} ${DEFM} -e "UPDATE mysql.tables_priv set db='${NEWUSER_ESCAPED_DATABASE}' WHERE db='${OLDUSER_ESCAPED_DATABASE}' OR db='${OLDUSER_DATABASE}';" + fi + exit 0 + else + #Error and exit if the number of tables doesn't match + echo "Database ${NEWUSER_DATABASE} doesn't have as many tables as ${OLDUSER_DATABASE} after restoration. Not removing ${OLDUSER_DATABASE}. Exiting..." + exit 1 + fi +else + # If MySQL new database name already exists on the system (it shouldn't), error and exit + echo "Database ${NEWUSER_DATABASE} already exists, cannot rename the database. Exiting..." + exit 1 +fi \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/rename_database_with_user.sh b/directadmin-1.62.4/scripts/rename_database_with_user.sh new file mode 100644 index 0000000..1f7f898 --- /dev/null +++ b/directadmin-1.62.4/scripts/rename_database_with_user.sh @@ -0,0 +1,181 @@ +#!/bin/sh +#VERSION=0.1 +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to move database and it's user from one reseller to another +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./rename_database_with_user.sh <olddatabase> <newdatabase> + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 2 ]; then + echo "Usage:"; + echo "$0 <olddatabase> <newdatabase>"; + echo "you gave #$#: $0 $1 $2"; + exit 0; +fi + +OLDUSER_DATABASE="$1" +NEWUSER_DATABASE="$2" +OLDUSER_ESCAPED_DATABASE="`echo ${OLDUSER_DATABASE} | perl -p0 -e 's|_|\\\_|'`" +NEWUSER_ESCAPED_DATABASE="`echo ${NEWUSER_DATABASE} | perl -p0 -e 's|_|\\\_|'`" +OLDUSER_ESCAPED_DATABASE_MT="`echo ${OLDUSER_DATABASE} | perl -p0 -e 's|_|\\\\\\\_|'`" +NEWUSER_ESCAPED_DATABASE_MT="`echo ${NEWUSER_DATABASE} | perl -p0 -e 's|_|\\\\\\\_|'`" + +MYSQLDUMP=/usr/local/mysql/bin/mysqldump +if [ ! -e ${MYSQLDUMP} ]; then + MYSQLDUMP=/usr/local/bin/mysqldump +fi +if [ ! -e ${MYSQLDUMP} ]; then + MYSQLDUMP=/usr/bin/mysqldump +fi +if [ ! -e ${MYSQLDUMP} ]; then + echo "Cannot find ${MYSQLDUMP}" + exit 1 +fi + +MYSQL=/usr/local/mysql/bin/mysql +if [ ! -e ${MYSQL} ]; then + MYSQL=/usr/local/bin/mysql +fi +if [ ! -e ${MYSQL} ]; then + MYSQL=/usr/bin/mysql +fi +if [ ! -e ${MYSQL} ]; then + echo "Cannot find ${MYSQL}" + exit 1 +fi + +DEFM=--defaults-extra-file=/usr/local/directadmin/conf/my.cnf + +# If MySQL new database does not exist, create it and copy all the data from the old database, then drop the old database +if ! ${MYSQL} ${DEFM} --skip-column-names -e "SHOW DATABASES LIKE '${NEWUSER_DATABASE}';" -s | grep -m1 -q "${NEWUSER_DATABASE}"; then + if ! ${MYSQL} ${DEFM} --skip-column-names -e "SHOW DATABASES LIKE '${OLDUSER_DATABASE}';" -s | grep -m1 -q "${OLDUSER_DATABASE}"; then + echo "Specified database name does not exist: ${OLDUSER_DATABASE}" + exit 1 + fi + #Count the number of tables in current database + OLD_TABLES_COUNT="`${MYSQL} ${DEFM} -D \"${OLDUSER_DATABASE}\" --skip-column-names -e 'SHOW TABLES;' | wc -l`" + + #Create an empty new database, \` is needed for databases having "-" in it's name, so that no math would be done by sql :) + ${MYSQL} ${DEFM} -e "CREATE DATABASE \`${NEWUSER_DATABASE}\`;" + + echo "Dumping+restoring ${OLDUSER_DATABASE} -> ${NEWUSER_DATABASE}..." + + #Dump+restore to the new database on the fly + ${MYSQLDUMP} ${DEFM} --routines "${OLDUSER_DATABASE}" | ${MYSQL} ${DEFM} -D "${NEWUSER_DATABASE}" + + #Count the number of tables in new database + NEW_TABLES_COUNT="`${MYSQL} ${DEFM} -D \"${NEWUSER_DATABASE}\" --skip-column-names -e 'SHOW TABLES;' | wc -l`" + + if echo "${OLD_TABLES_COUNT}" | grep -qE ^\-?[0-9]+$; then + COUNT1_IS_NUMERIC=true + else + COUNT1_IS_NUMERIC=false + fi + + if echo "${NEW_TABLES_COUNT}" | grep -qE ^\-?[0-9]+$; then + COUNT2_IS_NUMERIC=true + else + COUNT2_IS_NUMERIC=false + fi + + #Drop the old database if the count of tables matches + if [ ${OLD_TABLES_COUNT} -eq ${NEW_TABLES_COUNT} ] && ${COUNT1_IS_NUMERIC} && ${COUNT2_IS_NUMERIC}; then + ${MYSQL} ${DEFM} -e "DROP DATABASE \`${OLDUSER_DATABASE}\`;" + echo "Database has been renamed successfully: ${OLDUSER_DATABASE} -> ${NEWUSER_DATABASE}" + + #User management part + OLD_USER=`echo ${OLDUSER_DATABASE} | egrep -o '^[^_]*'` + NEW_USER=`echo ${NEWUSER_DATABASE} | egrep -o '^[^_]*'` + + #default user + if [ ${OLD_USER} = ${NEW_USER} ]; then + echo "Raname in same user - no need to check base user" + else + echo "Moving to a new user, granting new user/revoking old user permissions" + if [ `${MYSQL} ${DEFM} -e "SELECT COUNT(*) FROM mysql.user WHERE User='${NEW_USER}'" -sss` -lt 1 ]; then + echo "Base new user '${NEW_USER}' does not exist, skipping base user grant management" + else + OLD_USER_HOSTS=`${MYSQL} ${DEFM} -s -r -e "SELECT Host FROM mysql.user WHERE User='${OLD_USER}'" -sss` + for OLD_USER_HOST in ${OLD_USER_HOSTS} + do + BASE_USER_GRANTS=`${MYSQL} ${DEFM} -s -r -e "SHOW GRANTS FOR '${OLD_USER}'@'${OLD_USER_HOST}'" 2>/dev/null | egrep "\\\`${OLDUSER_DATABASE}\\\`|\\\`${OLDUSER_ESCAPED_DATABASE_MT}\\\`"` + echo "${BASE_USER_GRANTS}" | while read -r GRANT + do + DO_GRANT=`echo ${GRANT} | sed "s/'${OLD_USER}'/'${NEW_USER}'/"` + DO_GRANT=`echo ${DO_GRANT} | sed "s/\\\`${OLDUSER_DATABASE}\\\`/\\\`${NEWUSER_DATABASE}\\\`/"` + DO_GRANT=`echo ${DO_GRANT} | sed "s/\\\`${OLDUSER_ESCAPED_DATABASE_MT}\\\`/\\\`${NEWUSER_DATABASE}\\\`/"` + DO_REVOKE=`echo ${GRANT} | sed "s/^GRANT /REVOKE /"` + DO_REVOKE=`echo ${DO_REVOKE} | sed "s/ TO / FROM /"` + ${MYSQL} ${DEFM} -e "${DO_GRANT}" + ${MYSQL} ${DEFM} -e "${DO_REVOKE}" + done + done + fi + fi + + #other users + OTHER_USERS=`${MYSQL} ${DEFM} -s -e "SELECT User,Host FROM (SELECT User,Db,Host FROM mysql.db UNION SELECT User,Db,Host FROM mysql.tables_priv UNION SELECT User,Db,Host FROM mysql.columns_priv UNION SELECT User,Db,Host FROM mysql.procs_priv) tb WHERE User like '${OLD_USER}_%' AND (Db='${OLDUSER_ESCAPED_DATABASE}' OR Db='${OLDUSER_DATABASE}')"` + echo "$OTHER_USERS" | while read OTHER + do + OUSER=`echo "$OTHER" | awk '{print $1}'` + OHOST=`echo "$OTHER" | awk '{print $2}'` + NUSER=`echo "$OUSER" | sed "s/${OLD_USER}_/${NEW_USER}_/"` + + OTHER_USER_GRANTS=`${MYSQL} ${DEFM} -s -r -e "SHOW GRANTS FOR '${OUSER}'@'${OHOST}'" 2>/dev/null | egrep "\\\`${OLDUSER_DATABASE}\\\`|\\\`${OLDUSER_ESCAPED_DATABASE_MT}\\\`"` + echo "${OTHER_USER_GRANTS}" | while read -r OTHER_GRANT + do + if [ "${OLD_USER}" = "${NEW_USER}" ]; then + echo "Rename in same user - no need to rename original db user" + else + if [ `${MYSQL} ${DEFM} -e "SELECT COUNT(*) FROM mysql.user WHERE User='${NUSER}' AND Host='${OHOST}'" -sss` -gt 0 ]; then + echo "'${NUSER}'@'${OHOST}' user already exists, a new one will not be created and the password won't be copied as it could be already used..." + else + echo "'${NUSER}'@'${OHOST}' user does not exist. Creating..." + RAND_PASS=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1` + ${MYSQL} ${DEFM} -e "CREATE USER '${NUSER}'@'${OHOST}' IDENTIFIED BY '${RAND_PASS}'" + PASS_GRANT=`${MYSQL} ${DEFM} -e "SHOW GRANTS FOR '${OUSER}'@'${OHOST}'" | egrep " IDENTIFIED BY PASSWORD"` + PASS_GRANT=`echo ${PASS_GRANT} | rev | cut -d' ' -f 1 | rev | sed "s/'//g"` + MYSQLVER=`${MYSQL} ${DEFM} -e "SELECT version()" | egrep -o "^[0-9]+\.[0-9]+"` + if ${MYSQL} ${DEFM} -e "SHOW CREATE USER 'da_admin'@'${OHOST}';" > /dev/null 2>&1; then + ${MYSQL} ${DEFM} -e "ALTER USER '${NUSER}'@'${OHOST}' IDENTIFIED WITH mysql_native_password AS '${PASS_GRANT}'" + else + ${MYSQL} ${DEFM} -e "SET PASSWORD FOR '${NUSER}'@'${OHOST}' = '${PASS_GRANT}'" + fi + fi + fi + + DO_OTHER_GRANT="${OTHER_GRANT}" + if [ "${OLD_USER}" != "${NEW_USER}" ]; then + DO_OTHER_GRANT=`echo ${DO_OTHER_GRANT} | sed "s/ '${OUSER}'/ '${NUSER}'/"` + fi + DO_OTHER_GRANT=`echo ${DO_OTHER_GRANT} | sed "s/\\\`${OLDUSER_DATABASE}\\\`/\\\`${NEWUSER_DATABASE}\\\`/"` + DO_OTHER_GRANT=`echo ${DO_OTHER_GRANT} | sed "s/\\\`${OLDUSER_ESCAPED_DATABASE_MT}\\\`/\\\`${NEWUSER_DATABASE}\\\`/"` + DO_OTHER_REVOKE=`echo ${OTHER_GRANT} | sed "s/^GRANT /REVOKE /"` + DO_OTHER_REVOKE=`echo ${DO_OTHER_REVOKE} | sed "s/ TO / FROM /"` + ${MYSQL} ${DEFM} -e "${DO_OTHER_GRANT}" + ${MYSQL} ${DEFM} -e "${DO_OTHER_REVOKE}" + if [ `${MYSQL} ${DEFM} -s -e "SELECT COUNT(*) FROM (SELECT User,Db,Host FROM mysql.db UNION SELECT User,Db,Host FROM mysql.tables_priv UNION SELECT User,Db,Host FROM mysql.columns_priv UNION SELECT User,Db,Host FROM mysql.procs_priv) tb WHERE User='${OUSER}' AND Db!='${OLDUSER_ESCAPED_DATABASE}' AND Db!='${OLDUSER_DATABASE}' AND Host='${OHOST}'"` -eq 0 ]; then + echo "'${OUSER}'@'${OHOST}' does not have privileges for other databases. Removing the user." + ${MYSQL} ${DEFM} -e "DROP USER '${OUSER}'@'${OHOST}'" + else + echo "'${OUSER}'@'${OHOST}' still has privileges for other databases. Not removing the user." + fi + done + done + exit 0 + else + #Error and exit if the number of tables doesn't match + echo "Database ${NEWUSER_DATABASE} doesn't have as many tables as ${OLDUSER_DATABASE} after restoration. Not removing ${OLDUSER_DATABASE}. Exiting..." + exit 1 + fi +else + # If MySQL new database name already exists on the system (it shouldn't), error and exit + echo "Database ${NEWUSER_DATABASE} already exists, cannot rename the database. Exiting..." + exit 1 +fi \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/reseller_to_user.sh b/directadmin-1.62.4/scripts/reseller_to_user.sh new file mode 100644 index 0000000..117c0fc --- /dev/null +++ b/directadmin-1.62.4/scripts/reseller_to_user.sh @@ -0,0 +1,120 @@ +#!/bin/sh +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to convert reseller to user +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./reseller_to_user.sh <user> + +if [ $UID != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 2 ]; then + echo "Usage:"; + echo " $0 <user> <reseller>"; + echo "you gave #$#: $0 $1 $2"; + echo "where:" + echo "user: name of the account to downgrade." + echo "reseller: name of the new creator of the User: eg: admin"; + exit 0; +fi + +RESELLER_LIST=${BASEDIR}/admin/reseller.list +BASEDIR=/usr/local/directadmin/data +USR=$1 +NEW_CREATOR=$2 +NEW_CREATOR_IP_LIST=${BASEDIR}/users/${NEW_CREATOR}/ip.list +RESELLER_LIST=${BASEDIR}/admin/reseller.list +USER_DATA=${BASEDIR}/users/$USR +USER_CONF=${USER_DATA}/user.conf +USER_BACKUP_CONF=${USER_DATA}/backup.conf +RESELLER_ALLOC=${USER_DATA}/reseller.allocation +RESELLER_CONF=${USER_DATA}/reseller.conf +RESELLER_USAGE=${USER_DATA}/reseller.usage + +if [ ! -d ${USER_DATA} ]; then + echo "Directory ${USER_DATA} does not exist. Can not continue." + exit 1; +fi + +if [ "`grep -wc $USR ${RESELLER_LIST}`" = "0" ]; then + echo "Reseller $USR is already user. Can not continue." + exit 1; +fi + +if [ ! -e /usr/bin/perl ]; then + echo "/usr/bin/perl does not exist."; + exit 1; +fi + +echo "Re-configuring user directory /home/$USR." +rm -rf /home/$USR/user_backups +rm -rf /home/$USR/domains/default +rm -rf /home/$USR/domains/sharedip +rm -rf /home/$USR/domains/suspended + +echo "Re-configuring DirectAdmin files." +# Changing usertype +perl -pi -e 's/usertype=reseller/usertype=user/' ${USER_CONF} + +#if any IPs are managed by this Reseller, owernship should go to new creator. +for ip in `cat ${USER_DATA}/ip.list`; do +{ + IPFILE=${BASEDIR}/admin/ips/$ip + + C=`grep -c reseller=${USR} ${IPFILE}` + if [ "$C" -gt 0 ]; then + #swap reseller to new reseller. + perl -pi -e "s/^creator=$USR\$/creator=$NEW_CREATOR/" $IPFILE + + #and add it to the new resellers list. + C=`grep -c $ip $NEW_CREATOR_IP_LIST` + if [ "$C" -eq 0 ]; then + echo $ip >> $NEW_CREATOR_IP_LIST + fi + fi +}; +done; + + +rm -f ${USER_BACKUP_CONF} +rm -f ${USER_DATA}/ip.list +rm -f ${USER_DATA}/login.hist +rm -f ${USER_DATA}/reseller.history +rm -f ${USER_DATA}/users.list +rm -f ${USER_DATA}/u_welcome.txt +rm -rf ${USER_DATA}/packages +rm -f ${USER_DATA}/packages.list +rm -f ${RESELLER_ALLOC} +rm -f ${RESELLER_CONF} +rm -f ${RESELLER_USAGE} +CREATOR=`grep "creator=" ${USER_CONF} | cut -d= -f2` +RESELLER_USERSLIST=${BASEDIR}/users/$NEW_CREATOR/users.list + +# Editing ticket.conf +if [ -e ${USER_DATA}/ticket.conf ]; then + ACTIVE="`grep 'active=' ${USER_DATA}/ticket.conf`" + HTML="`grep 'html=' ${USER_DATA}/ticket.conf`" + NEWTICKET="`grep 'newticket=' ${USER_DATA}/ticket.conf`" + perl -pi -e "s#$ACTIVE\n##g" ${USER_DATA}/ticket.conf + perl -pi -e "s#$HTML\n##g" ${USER_DATA}/ticket.conf + perl -pi -e "s#$NEWTICKET\n##g" ${USER_DATA}/ticket.conf +fi + +echo "Adding user to the $2 reseller." +echo "$USR" >> ${RESELLER_USERSLIST} + +echo "Removing user from the reseller list." +perl -pi -e "s#$USR\n##g" ${RESELLER_LIST} + +echo "Changing user owner" +perl -pi -e "s/creator=$CREATOR/creator=$NEW_CREATOR/g" ${USER_CONF} + +#this is needed to update "show all users" cache. +echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue +/usr/local/directadmin/dataskq + +echo "Reseller $USR has been converted to user." + +exit 0; diff --git a/directadmin-1.62.4/scripts/restore_roundcube.php b/directadmin-1.62.4/scripts/restore_roundcube.php new file mode 100644 index 0000000..de27c08 --- /dev/null +++ b/directadmin-1.62.4/scripts/restore_roundcube.php @@ -0,0 +1,451 @@ +#!/usr/local/bin/php -c/usr/local/directadmin/scripts/php_clean.ini +<?php + +$version = 0.1; + +/* +Restore script for the per-domain RoundCube settings. +Backup/Restore written by DirectAdmin: http://www.directadmin.com +RoundCube Webmail Client: http://roundcube.net + +This script will take an XML output (generated by backup_roundcube.php) +and restore all elements for a given User, merging them into an active roundcube database. +New IDs are generated, where applicable, so they will not be any conflicts if the IDs are differnt. +Existing accounts will be respected, and only missing data is merged in. + +See the DirectAdmin versions system for more info: +http://www.directadmin.com/features.php?id=1062 + +All variables are passed via environment, not command line options +But you can specify environmental variables... via command line options before the script (see the showHelp() function) + +RETURN VALUES +0: All is well +>1: an error worthy or reporting has occured. Message on stderr. +1: an error, most likely due to not actually having RoundCube installed or no restore data, has occured. + +*/ + +/*********************** +* Environmental variables +*/ +$domain = getenv("domain"); //for security reasons, it must match the XML values. +$system_username = getenv("username"); //only this account is allowed to be restored. +$xml_file = getenv("xml_file"); //Name of the file to restore. + +/*********************** +* Enabling debug lets you see which Email is seen, +* and what values are being restored, and shows you their respective IDs (found or set) +* Keep this set to FALSE if the dataksq is calling it, so as to not fill the stdin buffer (dataskq only reads from stderr for this script) +*/ +$is_debug = FALSE; + +/*********************** +* this restores as da_admin instead of da_roundube. It is less secure, avoid using it if possible. +*/ +$high_access_connection = FALSE; + + +/*********************** +* is the host value set within the da_roundcube.users table. +*/ +$rc_mail_host = 'localhost'; + +/*********************** +* If $high_access_restore is false, this is used for the mysql credentials. +*/ +$rc_config = "/var/www/html/roundcube/config/config.inc.php"; + +//**************************************************************** +//**************************************************************** + +if (!isset($xml_file) || $xml_file == "") + show_help(); + +if (!isset($domain) || $domain == "") + show_help(); + +if (!file_exists($xml_file)) +{ + echo_stderr("Cannot find path: $xml_file. Skipping RoundCube restore.\n"); + exit(1); +} + +if (filesize($xml_file) == 0) +{ + echo_stderr("Size of $xml_file is 0. Skipping RoundCube restore.\n"); + exit(1); +} + +//**************************************************************** +//**************************************************************** + +if ($high_access_connection) +{ + if (version_compare(PHP_VERSION, '5.3.0', '<')) + { + $mysql_conf = @parse_ini_file("/usr/local/directadmin/conf/mysql.conf", false); + } + else + { + $mysql_conf = @parse_ini_file("/usr/local/directadmin/conf/mysql.conf", false, INI_SCANNER_RAW); + } +} + +if ($high_access_connection && $mysql_conf && strlen($mysql_conf['passwd']) > 4) +{ + $mysql_conf = parse_ini_file("/usr/local/directadmin/conf/mysql.conf"); + $mysql_user = $mysql_conf['user']; + $mysql_pass = $mysql_conf['passwd']; + $mysql_host = 'localhost'; + $mysql_db = 'da_roundcube'; + + if (isset($mysql_conf['host']) && $mysql_conf['host'] != "") + $mysql_host = $mysql_conf['host']; +} +else +{ + if (!file_exists($rc_config)) + { + echo_stderr("Cannot find RoundCube config at $rc_config. Is RC installed and up to date?\n"); + exit(5); + } + + include_once($rc_config); + + if (!isset($config) || !isset($config['db_dsnw']) || $config['db_dsnw'] == '') + { + echo_stderr("Cannot find \$config['db_dsnw'] variable in $rc_config\n"); + exit(6); + } + + //$config['db_dsnw'] = 'mysql://da_roundcube:password@localhost/da_roundcube'; + + $values = explode('/', $config['db_dsnw']); + $connect = explode('@', $values[2]); + $auth = explode(':', $connect[0]); + + $mysql_user = $auth[0]; + $mysql_pass = $auth[1]; + $mysql_host = $connect[1]; + $mysql_db = $values[3]; +} + +$mysqli = new mysqli($mysql_host, $mysql_user, $mysql_pass); +if ($mysqli->connect_errno) { + echo_stderr("Failed to connect to MySQL: (".$mysqli->connect_errno.") ".$mysqli->connect_error."\n"); + exit(3); +} +$mysqli->set_charset('utf8'); + +if (!$mysqli->select_db($mysql_db)) +{ + echo_stderr("There is no $mysql_db database. Skipping RoundCube restore.\n"); + exit(1); +} + +//**************************************************************** +//**************************************************************** + +$xml = simplexml_load_file($xml_file); + +if ($xml === FALSE) +{ + echo_stderr("Error reading in XML file with with simplexml_load_file('$xml_file')\n"); + exit(4); +} + +foreach($xml->children() as $email) +{ + $username = urldecode($email->USERNAME); + + if ($username != $system_username) + { + $data = explode('@', $username); + + if ($data[1] != $domain) + { + echo_stderr($username. " is not part of domain '".$domain."': Skipping.\n"); + continue; + } + } + + $user_id = ensure_user($email); + if ($user_id == -1) + continue; + + echo_debug("username $username : $user_id\n"); + + foreach($email->INDENTITIES->children() as $identity) + { + $id_id = ensure_identity($user_id, $identity); + + if ($id_id == -1) + continue; + + $id_email = urldecode($identity->EMAIL); + echo_debug(" identity $id_email : $id_id\n"); + } + + + $groups = Array(); + + foreach($email->CONTACTS->children() as $contact) + { + //first, ensure all groups exisrt for this user_id. + foreach($contact->GROUPS->children() as $group) + { + $group_id = ensure_group($user_id, $group); + $group_name = urldecode($group->NAME); + + //save it for later. + $groups[$group_name] = $group_id; + } + + //next, ensure the contact exists, and add to contactgroupsmembers. + $contact_id = ensure_contact($user_id, $contact); + + $contact_email = urldecode($contact->EMAIL); + echo_debug(" contact $contact_email : $contact_id\n"); + + //link contact to their groups. + link_contact_to_group($contact, $contact_id, $groups); + + } +} + +$mysqli->close(); + +exit(0); + +//********************************************************************** +//********************************************************************** + +/********************************************************************** +* ensure that the contact has been assigned to their groups. +*/ +function link_contact_to_group($contact, $contact_id, $groups) +{ + global $mysqli; + + foreach($contact->GROUPS->children() as $group) + { + $group_name = urldecode($group->NAME); + $group_created = mes(urldecode($group->CREATED)); + $query = "REPLACE INTO `contactgroupmembers` (contactgroup_id, contact_id, created) VALUES (".mes($groups[$group_name]).", $contact_id, '$group_created')"; + + if (!$mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + echo_debug(" group $group_name : ".$groups[$group_name]."\n"); + } + return 1; +} + +/********************************************************************** +* ensure that the Group exists for this user_id. +*/ +function ensure_group($user_id, $group) +{ + global $mysqli; + + $group_name = mes(urldecode($group->NAME)); + + $query = "SELECT contactgroup_id FROM `contactgroups` WHERE user_id=$user_id AND name='$group_name'"; + if (!$group_ids = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + if ($group_ids->num_rows > 0) + { + $data = $group_ids->fetch_array(); + return $data['contactgroup_id']; + } + + //No group, must add it. + + $group_changed = mes(urldecode($group->CHANGED)); + + $query = "INSERT INTO `contactgroups` (user_id, changed, name) VALUES ($user_id, '$group_changed', '$group_name')"; + + if (!$groups = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + return $mysqli->insert_id; +} + + + +/********************************************************************** +* ensure that the Contact exists for this user_id. +*/ +function ensure_contact($user_id, $contact) +{ + global $mysqli; + + $contact_email = mes(urldecode($contact->EMAIL)); + $contact_name = mes(urldecode($contact->NAME)); + + $query = "SELECT contact_id FROM `contacts` WHERE user_id=$user_id AND name='$contact_name' AND email='$contact_email' LIMIT 1"; + if (!$contact_ids = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + if ($contact_ids->num_rows > 0) + { + $data = $contact_ids->fetch_array(); + return $data['contact_id']; + } + + //No contact, must add it. + + $contact_changed = mes(urldecode($contact->CHANGED)); + $contact_firstname = mes(urldecode($contact->FIRSTNAME)); + $contact_surname = mes(urldecode($contact->SURNAME)); + $contact_vcard = mes(urldecode($contact->VCARD)); + $contact_words = mes(urldecode($contact->WORDS)); + + $query = "INSERT INTO `contacts` (changed, name, email, firstname, surname, vcard, words, user_id) VALUES ('$contact_changed', '$contact_name', '$contact_email', '$contact_firstname', '$contact_surname', '$contact_vcard', '$contact_words', $user_id)"; + if (!$contact_ids = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + return $mysqli->insert_id; +} + +/********************************************************************** +* ensure that the Identity exists for this user_id. +* no need to worry about the return value +*/ +function ensure_identity($user_id, $identity) +{ + global $mysqli; + + $id_email = mes(urldecode($identity->EMAIL)); + $id_name = mes(urldecode($identity->NAME)); + + $query = "SELECT identity_id FROM `identities` WHERE user_id=$user_id AND name='$id_name' AND email='$id_email' LIMIT 1"; + if (!$ids = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + if ($ids->num_rows > 0) + { + $data = $ids->fetch_array(); + return $data['identity_id']; + } + + //No identity, must add it. + $id_changed = mes(urldecode($identity->CHANGED)); + $id_standard = mes(urldecode($identity->STANDARD)); + $id_organization = mes(urldecode($identity->ORGANIZATION)); + $id_reply_to = mes(urldecode($identity['REPLY-TO'])); + $id_bcc = mes(urldecode($identity->BCC)); + $id_signature = mes(urldecode($identity->SIGNATURE)); + $id_html_signature =mes(urldecode($identity->HTML_SIGNATURE)); + + $query = "INSERT INTO `identities` (user_id, changed, standard, name, organization, email, `reply-to`, bcc, signature, html_signature) VALUES ($user_id, '$id_changed', $id_standard, '$id_name', '$id_organization', '$id_email', '$id_reply_to', '$id_bcc', '$id_signature', $id_html_signature)"; + if (!$ids = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + return $mysqli->insert_id; +} + +/********************************************************************** +* ensure that the User exists +* yes: return user_id +* no: add user, set data, resturn user_id +*/ +function ensure_user($email) +{ + global $mysqli, $rc_mail_host; + $username = mes(urldecode($email->USERNAME)); + $query = "SELECT user_id FROM `users` WHERE username='$username' LIMIT 1"; + if (!$users = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + if ($users->num_rows > 0) + { + $data = $users->fetch_array(); + return $data['user_id']; + } + + //No User, must add it. + $created=mes(urldecode($email->CREATED)); + $last_login=mes(urldecode($email->LAST_LOGIN)); + $language=mes(urldecode($email->LANGUAGE)); + $preferences=mes(urldecode($email->PREFERENCES)); + + $query = "INSERT INTO `users` (username, mail_host, created, last_login, language, preferences) VALUES ('$username', '$rc_mail_host', '$created', '$last_login', '$language', '$preferences')"; + if (!$users = $mysqli->query($query)) + { + echo_stderr("Query error:\n".$query."\n".$mysqli->error."\n"); + return -1; + } + + return $mysqli->insert_id; +} + +//********************************************************************** + +function show_help() +{ + global $mysql_db, $version; + + echo_stderr("Roundcube $version restore script to restore Users.\n\n"); + echo_stderr("Usage:\n"); + echo_stderr(" username=username domain=domain.com xml_file=/path/to/rc.xml ".__FILE__."\n\n"); + + echo_stderr("The script will read in the XML specified by xml_file.\n"); + echo_stderr("It will insert the data into the $mysql_db database.\n"); + exit(2); +} + +function die_stderr($str) +{ + echo_stderr($str); + die(); +} + +function echo_stderr($str) +{ + $fd = fopen('php://stderr', 'w'); + fwrite($fd, $str); + fclose($fd); +} + +function echo_debug($str) +{ + global $is_debug; + + if ($is_debug) + echo $str; +} + +function mes($str) +{ + global $mysqli; + return $mysqli->real_escape_string($str); +} + +?> diff --git a/directadmin-1.62.4/scripts/reverse_ip_lookup.sh b/directadmin-1.62.4/scripts/reverse_ip_lookup.sh new file mode 100644 index 0000000..46c9885 --- /dev/null +++ b/directadmin-1.62.4/scripts/reverse_ip_lookup.sh @@ -0,0 +1,43 @@ +#!/bin/sh +DIG=/usr/bin/dig + +if [ $# -ne 1 ]; then + echo "Usage:"; + echo " $0 <ip>"; + echo ""; + echo "where <ip> can be an IPv4 or IPv6 IP address."; + exit 1; +fi + + +if [ ! -s $DIG ]; then + echo "Cannot find $DIG"; + exit 2; +fi + +if [ ! -x $DIG ]; then + echo "$DIG is not executable"; + exit 3; +fi + +IP=$1 + +if [ "$IP" = "" ]; then + echo "IP value blank is not"; +fi + +HAS_SHORT=1 +COUNT=`$DIG -h 2>&1 | grep -c '\[no\]short'` +if [ $COUNT -eq 0 ]; then + HAS_SHORT=0; +fi + +if [ "$HAS_SHORT" -eq 1 ]; then + dig -x "$IP" +short 2>&1 + RET=$? +else + dig -x "$IP" 2>&1 | grep PTR | awk '{ print $5 }' + RET=$? +fi + +exit $RET; diff --git a/directadmin-1.62.4/scripts/rotate_email_usage.sh b/directadmin-1.62.4/scripts/rotate_email_usage.sh new file mode 100644 index 0000000..7f813a9 --- /dev/null +++ b/directadmin-1.62.4/scripts/rotate_email_usage.sh @@ -0,0 +1,86 @@ +#!/bin/sh + +DIR=/etc/virtual/usage +USERS=/usr/local/directadmin/data/users + +if [ ! -d $DIR ]; then + exit 0; +fi + +#for i in `ls $DIR | grep -e '.bytes$'`; do +for i in `ls ${DIR}/*.bytes 2>/dev/null | cut -d/ -f5`; do +{ + U_NAME=`echo $i | cut -d. -f1` + #U_NAME=$i + + BF=${DIR}/${i} + + if [ ! -e ${BF} ]; then + echo "rotate_email_usage.sh: cannot find ${BF}"; + fi + + if [ -d $USERS/$U_NAME ]; then + echo "0=type=timestamp&time=`date +%s`" >> $USERS/$U_NAME/bandwidth.tally + #cat $DIR/$i >> $USERS/$U_NAME/bandwidth.tally + cat ${BF} >> $USERS/$U_NAME/bandwidth.tally + else + echo "rotate_email_usage.sh: Cannot find $USERS/$U_NAME"; + fi +}; +done; + +rm -rf $DIR/* + +#remove per-email counts: +rm -f /etc/virtual/*/usage/* + + +#dovecot.bytes entries. +EV=/etc/virtual +for i in `ls ${EV}/*/dovecot.bytes 2>/dev/null | cut -d/ -f4`; do +{ + D=${EV}/${i}; + if [ -h $D ]; then + continue; + fi + + #if it's empty, ignore it. + DB=${D}/dovecot.bytes + if [ ! -s ${DB} ]; then + continue; + fi + + USERN=`grep -e "^$i:" /etc/virtual/domainowners | cut -d\ -f2` + if [ "${USERN}" = "" ]; then + echo "$i seems to be missing from /etc/virtual/domainowners"; + continue; + fi + + DU=${USERS}/${USERN} + if [ ! -d "${DU}" ]; then + echo "Cannot find owner of $i from domainowners"; + continue; + fi + + cat ${DB} >> ${DU}/bandwidth.tally + + rm -f ${DB}; +}; +done; + + +for i in `ls ${USERS}/*/dovecot.bytes 2>/dev/null | cut -d/ -f7`; do +{ + DU=${USERS}/${i} + DB=${DU}/dovecot.bytes + if [ ! -s ${DB} ]; then + continue; + fi + + cat ${DB} >> ${DU}/bandwidth.tally + + rm -f ${DB}; +}; +done; + +exit 0; diff --git a/directadmin-1.62.4/scripts/selinux.sh b/directadmin-1.62.4/scripts/selinux.sh new file mode 100644 index 0000000..f6fb836 --- /dev/null +++ b/directadmin-1.62.4/scripts/selinux.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +setenforce 0 +if [ -e /etc/selinux/config ]; then + perl -pi -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config + perl -pi -e 's/SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config +fi +if [ -e /selinux/enforce ]; then + echo "0" > /selinux/enforce +fi + +if [ -e /usr/sbin/setenforce ]; then + /usr/sbin/setenforce 0 +fi diff --git a/directadmin-1.62.4/scripts/service_memory_usage.sh b/directadmin-1.62.4/scripts/service_memory_usage.sh new file mode 100644 index 0000000..758a713 --- /dev/null +++ b/directadmin-1.62.4/scripts/service_memory_usage.sh @@ -0,0 +1,17 @@ +#!/bin/sh + +PS=/bin/ps +AWK=/usr/bin/awk +GREP=/bin/grep +if [ ! -x $GREP ]; then + GREP=/usr/bin/grep +fi +SORT=/bin/sort +if [ ! -x $SORT ]; then + SORT=/usr/bin/sort +fi + +$PS axo comm,rss | $AWK '{arr[$1]+=$2} END {for (i in arr) {print i "=" arr[i]/1024}}' | $GREP -v '=0$' + +RET=$? +exit $RET diff --git a/directadmin-1.62.4/scripts/set_permissions.sh b/directadmin-1.62.4/scripts/set_permissions.sh new file mode 100644 index 0000000..0634ba0 --- /dev/null +++ b/directadmin-1.62.4/scripts/set_permissions.sh @@ -0,0 +1,685 @@ +#!/bin/sh + +# Script to set the file ownerships and +# permissions of all DA related files on +# the system. Should be quite useful +# for system restores, just make sure +# that the user accounts have already +# been created in the /etc/passwd, +# /etc/shadow, /etc/group files. + +OS=`uname` +ECHO_LOG=1; +SAVE_LOG=1; +LOG=/tmp/set_perm.log +ERRLOG=/tmp/set_perm.err.log + +DAPATH=/usr/local/directadmin + +RT_GRP="root"; +if [ "$OS" = "FreeBSD" ]; then + RT_GRP="wheel"; +fi + +DOVECOT=`grep -c 'dovecot=1' ${DAPATH}/conf/directadmin.conf` +DIRECTADMIN=${DAPATH}/directadmin + +HAVE_HTTPD=1 +HAVE_NGINX=0 +if [ -s ${DIRECTADMIN} ]; then + if [ "`${DIRECTADMIN} c | grep ^nginx= | cut -d= -f2`" -eq 1 ]; then + HAVE_HTTPD=0 + HAVE_NGINX=1 + fi + if [ "`${DIRECTADMIN} c | grep ^nginx_proxy= | cut -d= -f2`" -eq 1 ]; then + HAVE_HTTPD=1 + HAVE_NGINX=1 + fi +fi + +show_help() +{ + echo ""; + echo "DirectAdmin File Permission/Ownership script"; + echo ""; + echo "Usage:"; + echo " $0 all"; + echo " $0 all_with_domaindirs"; + echo ""; + echo " $0 da_files"; #don't forget /home/tmp + echo " $0 domaindirs"; + echo " $0 user_homes"; + echo " $0 mysql"; + echo " $0 email"; + echo " $0 logs"; + echo " $0 etc_configs"; + echo ""; + echo "internal:"; + echo " $0 maildir <user> <path/Maildir>"; + echo " $0 set_user_home <user>"; + echo " $0 domaindir <domainname> [<user>]; user could be skipped"; + echo ""; +} + +#writes to log file +log() +{ + if [ $SAVE_LOG -eq 1 ]; then + echo "$1" >> $LOG; + fi + if [ $ECHO_LOG -eq 1 ]; then + echo "$1"; + fi +} + +error_log() +{ + echo "Error: $1"; + echo "$1" >> $ERRLOG + log "$1" +} + +########### +# set_file /file user group 755 -R +########## +set_file() +{ + if [ -e "$1" ] || [ "$6" = "nocheck" ]; then + log "set $1 $2:$3 $4 flag $5"; + + #chown goes first. + #A 4755 file is set to 755 if chown is called after chmod. + + #if there is an asterisk, no quotes. + if echo x"$1" | grep '*' > /dev/null; then + chown $5 $2:$3 $1 + chmod $5 $4 $1 + else + chown $5 $2:$3 "$1" + chmod $5 $4 "$1" + fi + fi + +} + +########################################### +# gets a list of the DA users on the system +all_users() +{ + for i in `ls $DAPATH/data/users`; do + { + if [ -e $DAPATH/data/users/$i/user.conf ]; then + echo -n "$i "; + fi + }; + done; +} + +set_user_perm() +{ + log "set_user_perm $1"; + DIR=$DAPATH/data/users/$1 + set_file $DIR diradmin diradmin 711 + set_file $DIR/bandwidth.tally root $RT_GRP 600 + set_file $DIR/ftp.passwd root ftp 640 + set_file $DIR/crontab.conf diradmin diradmin 600 + set_file $DIR/domains.list diradmin diradmin 600 + set_file $DIR/domains diradmin diradmin 711 + set_file $DIR/httpd.conf diradmin $1 640 + set_file $DIR/nginx.conf diradmin $1 640 + set_file $DIR/openlitespeed.conf diradmin lsadmn 640 + set_file $DIR/ticket.conf diradmin diradmin 600 + set_file $DIR/tickets.list diradmin diradmin 600 + set_file $DIR/user.conf diradmin diradmin 600 + set_file $DIR/user.usage diradmin diradmin 600 + set_file $DIR/user.history diradmin diradmin 600 + set_file $DIR/user.comments diradmin diradmin 600 + set_file $DIR/user_ip.list diradmin diradmin 600 + set_file $DIR/login.hist diradmin diradmin 600 + set_file $DIR/twostep_auth_secret.txt diradmin diradmin 600 + set_file $DIR/twostep_auth_scratch_codes.list diradmin diradmin 600 + set_file $DIR/login_keys diradmin diradmin 700 + set_file $DIR/skin_customizations diradmin diradmin 711 + set_file $DIR/history diradmin diradmin 700 + set_file "$DIR/history/*" diradmin diradmin 600 '' nocheck + + + #hmm... do we want to rebuild the files?.. bit more than just "set permissions" + + for j in `cat $DIR/domains/*.conf | grep -e '^domain=' | cut -d= -f2`; do + { + COUNT=`cat $DIR/domains.list | grep -c $j` + if [ $COUNT -eq 0 ]; then + log "Found missing domain $j for user $1"; + echo $j >> $DIR/domains.list + fi + }; + done; + + set_file $DIR/domains diradmin diradmin 600 -R + set_file $DIR/domains diradmin diradmin 711 + + SAC=`/usr/local/directadmin/directadmin c |grep '^secure_access_group=' | cut -d= -f2` + SSL_PERM=640 + #if [ "${SAC}" = "" ]; then + # SAC=diradmin + # SSL_PERM=644 + #fi + SAC=mail + + set_file "$DIR/domains/*.cert" diradmin ${SAC} 640 '' nocheck + set_file "$DIR/domains/*.cacert" diradmin ${SAC} 640 '' nocheck + set_file "$DIR/domains/*.cert.combined" diradmin ${SAC} 640 '' nocheck + set_file "$DIR/domains/*.key" diradmin ${SAC} 640 '' nocheck +} + +set_reseller_perm() +{ + log "set_reseller_perm $1"; + DIR=$DAPATH/data/users/$1 + set_file $DIR/ip.list diradmin diradmin 600 + set_file $DIR/packages diradmin diradmin 600 -R + set_file $DIR/packages diradmin diradmin 700 + set_file $DIR/packages.list diradmin diradmin 600 + set_file $DIR/reseller.allocation diradmin diradmin 600 + set_file $DIR/reseller.conf diradmin diradmin 600 + set_file $DIR/reseller.usage diradmin diradmin 600 + set_file $DIR/reseller.history diradmin diradmin 600 + set_file $DIR/u_welcome.txt diradmin diradmin 600 + set_file $DIR/bandwidth.tally.cache diradmin diradmin 600 + + set_file $DIR/users.list diradmin diradmin 600 + set_file $DIR/reseller.history diradmin diradmin 600 + +} + +set_admin_perm() +{ + log "set_admin_perm" + DIR=$DAPATH/data/admin + + set_file $DIR diradmin diradmin 600 -R + set_file $DIR diradmin diradmin 700 + set_file $DIR/ip_access diradmin diradmin 700 + set_file $DIR/ips diradmin diradmin 700 + set_file $DIR/packages diradmin diradmin 700 + set_file $DIR/task_queue_processes diradmin diradmin 700 +} + +da_files() +{ + set_file /home/tmp root $RT_GRP 1777 + set_file $DAPATH diradmin diradmin 755 + set_file $DAPATH/conf diradmin diradmin 600 -R + set_file $DAPATH/conf diradmin diradmin 700 + + if [ -e $DAPATH/directadmin ]; then + $DAPATH/directadmin p + fi + + for i in `all_users`; do + { + set_user_perm $i + + if [ -e $DAPATH/data/users/$i/reseller.conf ]; then + set_reseller_perm $i + fi + }; + done; + + set_file $DAPATH/data/users diradmin diradmin 711 + + set_admin_perm; + + set_file $DAPATH/data/sessions diradmin diradmin 600 -R + set_file $DAPATH/data/sessions diradmin diradmin 700 + + set_file $DAPATH/data/tickets diradmin diradmin 700 -R + #set_file "$DAPATH/data/tickets/*" diradmin diradmin 700 + #set_file "$DAPATH/data/tickets/*/*" diradmin diradmin 700 + set_file "$DAPATH/data/tickets/*/*/*" diradmin diradmin 600 '' nocheck +} + +set_user_home() +{ + log "set_user_home $1"; + UHOME=`grep -e "^${1}:" /etc/passwd | cut -d: -f6` + + if [ "$UHOME" = "" ]; then + log "Home directory for $1 is empty. Check the /etc/passwd file, make sure the account exists"; + return; + fi + + set_file $UHOME $1 $1 711 + set_file $UHOME/.shadow $1 mail 640 + set_file $UHOME/domains $1 $1 711 + set_file "$UHOME/domains/*" $1 $1 711 '' nocheck + set_file $UHOME/domains/default $1 $1 755 + set_file $UHOME/domains/sharedip $1 $1 755 + set_file $UHOME/domains/suspended $1 $1 755 + set_file $UHOME/backups $1 $1 700 + set_file "$UHOME/backups/*" $1 $1 600 '' nocheck + set_file $UHOME/user_backups $1 $1 711 + set_file "$UHOME/user_backups/*" $1 $1 755 '' nocheck + set_file $UHOME/imap $1 mail 770 -R + set_file $UHOME/.spamassassin $1 mail 771 + set_file $UHOME/.spamassassin/spam $1 mail 660 + set_file $UHOME/.spamassassin/user_spam $1 mail 771 + set_file "$UHOME/.spamassassin/user_spam/*" mail $1 660 + + # not sure how much else we should do.. the public_html and cgi-bins + # should really be left untouched in case of any custom permission + # like being owned by apache, or 777 etc. + + #reset for secure_access_group + SAC=`grep -c secure_access_group /usr/local/directadmin/conf/directadmin.conf` + if [ "$SAC" -gt 0 ]; then + echo "action=rewrite&value=secure_access_group" >> /usr/local/directadmin/data/task.queue + fi +} + +user_homes() +{ + log "user_homes" + + set_file /home root $RT_GRP 711 + + for i in `all_users`; do + { + set_user_home $i + }; + done; + +} + +do_mysql() +{ + log "do_mysql"; + + MDIR=/var/lib/mysql + + if [ "$OS" = "FreeBSD" ]; then + if [ -e /home/mysql ]; then + MDIR=/home/mysql + else + MDIR=/usr/local/mysql/data + fi + fi + if [ -e /etc/debian_version ]; then + if [ -e /home/mysql ]; then + MDIR=/home/mysql + else + MDIR=/usr/local/mysql/data + fi + fi + + chown -R mysql:mysql $MDIR; + find $MDIR -type d -exec chmod 700 {} \; + find $MDIR -type f -exec chmod 660 {} \; + + set_file "${MDIR}*" mysql mysql 711 '' nocheck +} + +get_domain_user() +{ + if [ "$1" = "" ]; then + error_log "get_domain_user: no domain passed"; + echo ""; + return; + fi + + USERN=`grep -e "^$1:" /etc/virtual/domainowners | cut -d\ -f2` + if [ "$USERN" = "" ]; then + error_log "can't find user for $1 in /etc/virtual/domainowners"; + echo ""; + return; + fi + + echo "$USERN"; +} + +set_maildir() +{ + if [ "$2" = "" ]; then + log "***Warning empty Maildir string***"; + return; + fi + + if [ ! -e $2 ]; then + log "cannot find $2 : skipping"; + return; + fi + + user=$1; + md=$2; + + set_file $md $user mail 770 + chown -R $user:mail $md + + OLD_EL=$ECHO_LOG + ECHO_LOG=0 + + chown -R $user:mail $md; + find $md -type d -exec chmod 770 {} \; + find $md -type f -exec chmod 660 {} \; + + ECHO_LOG=$OLD_EL +} + +set_domaindir() +{ + if [ "$1" = "" ]; then + log "***Warning empty domainname string***" + show_help + return + fi + + if [ "$2" = "" ]; then + USERN=`get_domain_user $1` + if [ "$USERN" = "" ]; then + log "***Warning cannot get user for domain $1***" + return + fi + else + USERN="$2" + fi + + HOMEDIR=`getent passwd "$USERN" | cut -d: -f6`; + + DOMAINDIR="${HOMEDIR}/domains/${1}" + + if [ ! -e $DOMAINDIR ]; then + log "cannot find $DOMAINDIR : skipping"; + return; + fi + + log "Directories found, setting permissions for ${DOMAINDIR}/public_html and private_html" + + if [ -d "${DOMAINDIR}/public_html" ]; then + chown -R ${USERN}:${USERN} "${DOMAINDIR}/public_html/" + find "${DOMAINDIR}/public_html/" -type d -exec chmod 755 {} \; + find "${DOMAINDIR}/public_html/" -type f -exec chmod 644 {} \; + fi + + if [ -L "${DOMAINDIR}/private_html" ]; then + chown -h ${USERN}:${USERN} "${DOMAINDIR}/private_html" + elif [ -d "${DOMAINDIR}/private_html" ]; then + chown -R ${USERN}:${USERN} "${DOMAINDIR}/private_html/" + find "${DOMAINDIR}/private_html" -type d -exec chmod 755 {} \; + find "${DOMAINDIR}/private_html" -type f -exec chmod 644 {} \; + fi + +} + +set_domaindirs() { + for user in `ls /usr/local/directadmin/data/users`; do + { + for domain in `grep ": $user" /etc/virtual/domainowners | cut -d: -f1`; do + { + set_domaindir ${domain} ${user} + }; + done + }; + done +} + +set_dovecot() +{ + log "dovecot"; + for i in `all_users`; do + { + uhome=`grep -e "^${i}:" /etc/passwd | cut -d: -f6` + if [ "$uhome" = "" ]; then + continue; + fi + $0 maildir $i $uhome/Maildir + set_file $uhome/imap $i mail 770 + if [ -s /usr/local/directadmin/data/users/${i}/domains.list ]; then + for domain in `cat /usr/local/directadmin/data/users/${i}/domains.list`; do { + cat /etc/virtual/${domain}/passwd | cut -d: -f6 | sort | uniq | while read line; do { + if [ ! -d ${line}/domains ]; then + chown $user:mail "${line}" + chmod 770 "${line}" + fi + $0 maildir ${i} "${line}/Maildir" + } + done + } + done + fi + }; + done; +} + +email() +{ + log "email"; + + VDIR=/etc/virtual + HN=`hostname` + + set_file $VDIR mail mail 755 + + set_file $VDIR/domainowners mail mail 640 + set_file $VDIR/domains mail mail 640 + set_file $VDIR/pophosts mail mail 600 + set_file $VDIR/pophosts_user mail mail 600 + set_file $VDIR/majordomo majordomo daemon 750 + + set_file $VDIR/bad_sender_hosts mail mail 600 + set_file $VDIR/bad_sender_hosts_ip mail mail 600 + set_file $VDIR/blacklist_domains mail mail 600 + set_file $VDIR/blacklist_senders mail mail 600 + set_file $VDIR/whitelist_domains mail mail 600 + set_file $VDIR/whitelist_hosts mail mail 600 + set_file $VDIR/whitelist_hosts_ip mail mail 600 + set_file $VDIR/whitelist_senders mail mail 600 + set_file $VDIR/use_rbl_domains mail mail 600 + set_file $VDIR/skip_av_domains mail mail 600 + set_file $VDIR/skip_rbl_domains mail mail 600 + + for i in `cat /etc/virtual/domainowners | cut -d ":" -f 1`; do + { + if [ "$i" = "$HN" ]; then + continue; + fi + + if [ -d $VDIR/$i ]; then + + USERN=`get_domain_user $i`; + if [ "$USERN" = "" ]; then + USERN="mail"; + fi + + set_file $VDIR/$i mail mail 711 + DDIR=$VDIR/$i + set_file $DDIR/aliases mail mail 600 + set_file $DDIR/filter mail mail 640 + set_file $DDIR/filter.conf mail mail 600 + set_file $DDIR/passwd mail mail 600 + set_file $DDIR/quota mail mail 600 + + set_file $DDIR/dkim.private.key mail mail 600 + set_file $DDIR/dkim.public.key mail mail 600 + set_file $DDIR/dovecot.bytes mail mail 600 + + set_file $DDIR/vacation.conf mail mail 600 + set_file $DDIR/autoresponder.conf mail mail 600 + set_file $DDIR/reply mail mail 700 + set_file "$DDIR/reply/*" mail mail 600 '' nocheck + set_file $DDIR/majordomo majordomo daemon 751 + set_file $DDIR/majordomo/majordomo.cf majordomo daemon 640 + set_file $DDIR/majordomo/list.aliases majordomo mail 640 + set_file $DDIR/majordomo/private.aliases majordomo mail 640 + set_file $DDIR/majordomo/archive majordomo daemon 751 + set_file $DDIR/majordomo/digests majordomo daemon 751 + set_file $DDIR/majordomo/lists majordomo daemon 751 + chown -R majordomo:daemon $DDIR/majordomo/lists + + fi + }; + done; + + if [ "$DOVECOT" -eq 0 ]; then + VSV=/var/spool/virtual + set_file $VSV mail mail 1777 + + for i in `all_users`; do + { + set_file $VSV/$i $i mail 770 + set_file "$VSV/$i/*" $i mail 660 '' nocheck + + }; + done; + + + SPOOLM=/var/spool/mail + if [ "$OS" = "FreeBSD" ]; then + SPOOLM=/var/mail + fi + + set_file $SPOOLM mail mail 1777 + + for i in `all_users`; do + { + set_file $SPOOLM/$i $i mail 660 + }; + done; + + + fi + + set_file /var/spool/exim mail mail 750 + set_file "/var/spool/exim/*" mail mail 750 '' nocheck + #set_file "/var/spool/exim/*/*" mail mail 640 '' nocheck + chown -R mail:mail /var/spool/exim + + set_file /etc/exim.cert mail mail 644 + set_file /etc/exim.key mail mail 600 + + if [ "$DOVECOT" -eq 1 ]; then + set_dovecot; + fi + + mkdir -p /var/log/exim + set_file /var/log/exim mail mail 640 -R + set_file /var/log/exim mail mail 750 + + set_file /usr/sbin/exim root $RT_GRP 4755 +} + +logs() +{ + log "logs"; + + VL=/var/log + + if [ ! -e $VL/directadmin ]; then + error_log "$VL/directadmin didn't exists, creating it."; + mkdir -p $VL/directadmin + fi + + set_file $VL/directadmin diradmin diradmin 700 + set_file "$VL/directadmin/*" diradmin diradmin 600 '' nocheck + + + mkdir -p $VL/exim + set_file $VL/exim mail mail 755 + set_file "$VL/exim/*" mail mail 644 '' nocheck + + mkdir -p $VL/proftpd + set_file $VL/proftpd root $RT_GRP 755 + set_file "$VL/proftpd/*" root $RT_GRP 644 '' nocheck + + if [ "${HAVE_HTTPD}" -eq 1 ]; then + #http.. well it's all root, permissions don't really matter + mkdir -p /var/log/httpd/domains + chmod 710 /var/log/httpd + chmod 710 /var/log/httpd/domains + chown root:nobody /var/log/httpd/domains + fi + if [ "${HAVE_NGINX}" -eq 1 ]; then + mkdir -p /var/log/nginx/domains + chmod 710 /var/log/nginx + chmod 710 /var/log/nginx/domains + chown root:nobody /var/log/httpd/domains + fi +} + +etc_configs() +{ + log "etc_configs"; + + set_file "/etc/exim.*" root $RT_GRP 755 '' nocheck + set_file /etc/system_filter.exim root $RT_GRP 755 + + set_file /etc/proftpd.conf root $RT_GRP 644 + set_file /etc/proftpd.vhosts.conf root $RT_GRP 644 + set_file /etc/proftpd.passwd root ftp 640 + + #httpd.. again, all root.. nothing special about it. +} + +all() +{ + da_files; + user_homes; + do_mysql; + email; + logs; + etc_configs; +} + +all_with_domaindirs() { + all + set_domaindirs +} + +if [ "$1" != "maildir" ]; then + log "***********************************************"; + log "`date` : $0 $1"; +fi + +case "$1" in + all) all; + ;; + + all_with_domaindirs) all_with_domaindirs; + ;; + + da_files) da_files; + ;; + + user_homes) user_homes; + ;; + + set_user_home) set_user_home $2 + ;; + + mysql) do_mysql; + ;; + + email) email; + ;; + + logs) logs; + ;; + + etc_configs) etc_configs; + ;; + + maildir) set_maildir $2 $3; + ;; + + domaindir) set_domaindir $2 $3; + ;; + + domaindirs) set_domaindirs; + ;; + + *) show_help; + ;; + +esac + +exit 0; diff --git a/directadmin-1.62.4/scripts/squirrelmail_to_roundcube.sh b/directadmin-1.62.4/scripts/squirrelmail_to_roundcube.sh new file mode 100644 index 0000000..91ef2ff --- /dev/null +++ b/directadmin-1.62.4/scripts/squirrelmail_to_roundcube.sh @@ -0,0 +1,85 @@ +#!/bin/bash +#VERSION=0.0.1 +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to move user from one reseller to another +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./squirrelmail_to_roundcube.sh <email@domain.com> </var/www/html/squirrelmail/data/email@domain.com.abook> + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 2 ]; then + echo "Usage:"; + echo "$0 <email@domain.com> </var/www/html/squirrelmail/data/email@domain.com.abook>"; + echo "you gave #$#: $0 $1 $2"; + exit 0; +fi + +#https://newfivefour.com/unix-urlencode-urldecode-command-line-bash.html +urlencode() { + # urlencode <string> + + local length="${#1}" + for (( i = 0; i < length; i++ )); do + local c="${1:i:1}" + case $c in + [a-zA-Z0-9.~_-]) printf "$c" ;; + *) printf '%s' "$c" | xxd -p -c1 | + while read c; do printf '%%%s' "$c"; done ;; + esac + done +} + +INPUTFILE="$2" +if [ -s "${INPUTFILE}" ]; then + OUTPUTFILE="/tmp/${1}_to_roundcube.xml" + + printf "<ROUNDCUBE>\n" > "${OUTPUTFILE}" + USERNAME="`urlencode \"${1}\" | perl -p0 -e 's|%|%%|g'`" + printf "\t<EMAIL>\n" >> "${OUTPUTFILE}" + printf "\t\t<USERNAME>${USERNAME}</USERNAME>\n" >> "${OUTPUTFILE}" + printf "\t\t<INDENTITIES></INDENTITIES>\n" >> "${OUTPUTFILE}" + printf "\t\t<CONTACTS>\n" >> "${OUTPUTFILE}" + while read LINE; do { + FIRSTNAME_D="`echo \"${LINE}\" | cut -d'|' -f2`" + LASTNAME_D="`echo \"${LINE}\" | cut -d'|' -f3`" + EMAIL_D="`echo \"${LINE}\" | cut -d'|' -f4`" + INFO_D="`echo \"${LINE}\" | cut -d'|' -f5`" + DATE_D="`date '+%Y-%m-%d %H:%M:%S'`" + FIRSTNAME="`urlencode \"${FIRSTNAME_D}\" | perl -p0 -e 's|%|%%|g'`" + LASTNAME="`urlencode \"${LASTNAME_D}\" | perl -p0 -e 's|%|%%|g'`" + EMAIL="`urlencode \"${EMAIL_D}\" | perl -p0 -e 's|%|%%|g'`" + INFO="`urlencode \"${INFO_D}\" | perl -p0 -e 's|%|%%|g'`" + DATE="`urlencode \"${DATE_D}\" | perl -p0 -e 's|%|%%|g'`" + printf "\t\t\t<CONTACT>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<EMAIL>${EMAIL}</EMAIL>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<NAME></NAME>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<CHANGED>${DATE}</CHANGED>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<FIRSTNAME>${FIRSTNAME}</FIRSTNAME>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<SURNAME>${LASTNAME}</SURNAME>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<VCARD>BEGIN%%3AVCARD%%0AVERSION%%3A3.0%%0AFN%%3A${FIRSTNAME}+${LASTNAME}.%%0AEMAIL%%3BTYPE%%3DINTERNET%%3A${EMAIL}%%0AEND%%3AVCARD</VCARD>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<WORDS>${INFO}</WORDS>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t<GROUPS>\n" >> "${OUTPUTFILE}" + printf "\t\t\t\t</GROUPS>\n" >> "${OUTPUTFILE}" + printf "\t\t\t</CONTACT>\n" >> "${OUTPUTFILE}" + }; + done < "${INPUTFILE}" + printf "\t\t</CONTACTS>\n" >> "${OUTPUTFILE}" + printf "\t</EMAIL>\n" >> "${OUTPUTFILE}" + printf "</ROUNDCUBE>\n" >> "${OUTPUTFILE}" + + DOMAIN_TO_RESTORE="`echo \"${1}\" | cut -d\@ -f2`" + if [ -s /usr/local/directadmin/scripts/restore_roundcube.php ]; then + username="${1}" domain="${DOMAIN_TO_RESTORE}" xml_file="${OUTPUTFILE}" /usr/local/directadmin/scripts/restore_roundcube.php + else + echo "Unable to find /usr/local/directadmin/scripts/restore_roundcube.php for restore" + rm -f "${OUTPUTFILE}" + exit 1 + fi + + rm -f "${OUTPUTFILE}" +fi \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/startips b/directadmin-1.62.4/scripts/startips new file mode 100644 index 0000000..a860ea2 --- /dev/null +++ b/directadmin-1.62.4/scripts/startips @@ -0,0 +1,55 @@ +#!/bin/bash + +# chkconfig: 2345 11 50 +# description: Load ip's into the network device + +### BEGIN INIT INFO +# Provides: startips +# Required-Start: $local_fs $network +# Required-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: startips +# Description: script to load in fresh IPs +### END INIT INFO + +case "$1" in + stop) + exit 0 + ;; +esac + +DACONF=/usr/local/directadmin/conf/directadmin.conf +IPPATH="/usr/local/directadmin/data/admin/" +IPDIR="ips/" +IPLIST="ip.list" +ADDIP=`grep -m1 '^addip=' ${DACONF} | cut -d= -f2` +OS=`uname` + +if [ "${OS}" = "FreeBSD" ]; then + ETH_DEV=`grep -m1 '^ifconfig_' /etc/rc.conf | cut -d= -f1 | cut -d_ -f2` +else + ETH_DEV=eth0 +fi + +if grep -m1 -q '^ethernet_dev=' ${DACONF}; then + ETH_DEV=`grep -m1 '^ethernet_dev=' ${DACONF} | cut -d= -f2 | cut -d: -f1` +fi + +for i in `cat ${IPPATH}${IPLIST}`; do +{ + NETMASK=`grep -m1 '^netmask=' ${IPPATH}${IPDIR}${i} | cut -d= -f2` + if [ -z ${NETMASK} ]; then + if echo ${i} | grep -m1 -q ':'; then + NETMASK="/64" + else + NETMASK=255.255.255.0 + fi + fi + $ADDIP $i $NETMASK $ETH_DEV >/dev/null +}; +done + +echo "action=named&value=restart" >> /usr/local/directadmin/data/task.queue + +exit 0 \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/startips.service b/directadmin-1.62.4/scripts/startips.service new file mode 100644 index 0000000..a09412a --- /dev/null +++ b/directadmin-1.62.4/scripts/startips.service @@ -0,0 +1,16 @@ +# DirectAdmin control panel +# To reload systemd daemon after changes to this file: +# systemctl --system daemon-reload +[Unit] +Description=Start the additional IPs +Wants=network-online.target +After=syslog.target network.target network-online.target +Requires=network.target +Documentation=http://www.directadmin.com + +[Service] +Type=oneshot +ExecStart=/usr/local/directadmin/scripts/startips start + +[Install] +WantedBy=multi-user.target diff --git a/directadmin-1.62.4/scripts/sysbk.sh b/directadmin-1.62.4/scripts/sysbk.sh new file mode 100644 index 0000000..0fecda8 --- /dev/null +++ b/directadmin-1.62.4/scripts/sysbk.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +CWD=`pwd` + +NAME=sysbk +PRIMARY=http://files.directadmin.com/services +SECONDARY=http://files3.directadmin.com/services +SAVE=/usr/local/directadmin/scripts/packages +FILE=${NAME}.tar.gz +DIR=/usr/local + +OS=`uname` + +if [ "$OS" = "FreeBSD" ]; then + WGET=/usr/local/bin/wget +else + WGET=/usr/bin/wget +fi + +if [ ! -e $SAVE/$FILE ]; then + $WGET -O $SAVE/$FILE $PRIMARY/$FILE +fi +if [ ! -e $SAVE/$FILE ]; then + $WGET -O $SAVE/$FILE $SECONDARY/$FILE +fi +if [ ! -e $SAVE/$FILE ]; then + echo "Unable to get $SAVE/$FILE" + exit 1; +fi + +cd $DIR + +tar xzf $SAVE/$FILE + +#swap out linux files for freebsd file: +if [ "$OS" = "FreeBSD" ]; then + + FILES=$DIR/$NAME/mod/custom.files + perl -pi -e 's#/etc/shadow#/etc/master.passwd#' $FILES + + DIRS=$DIR/$NAME/mod/custom.dirs + perl -pi -e 's#/var/spool/mail#/var/mail#' $DIRS + perl -pi -e 's#/var/spool/cron#/var/cron#' $DIRS +fi + + +KEY=/root/.ssh/id_dsa +if [ ! -e $KEY ]; then + /usr/bin/ssh-keygen -t dsa -N '' -q -f $KEY +fi + +cd /usr/local/directadmin/scripts + +#if [ ! -e "/usr/bin/ncftpput" ]; then +# ./ncftp.sh +#fi + + +cd $CWD; diff --git a/directadmin-1.62.4/scripts/tlsa.sh b/directadmin-1.62.4/scripts/tlsa.sh new file mode 100644 index 0000000..3aaf922 --- /dev/null +++ b/directadmin-1.62.4/scripts/tlsa.sh @@ -0,0 +1,227 @@ +#!/bin/sh +#VERSION=0.2 +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to recreate tlsa records for domain +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./tlsa <domain> +MYUID=`/usr/bin/id -u` +if [ "${MYUID}" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +DA_BIN=/usr/local/directadmin/directadmin +TASK_QUEUE=/usr/local/directadmin/data/task.queue.cb + +if [ $# -ne 2 ]; then + echo "usage: $0 <domain> <web|mail|all>" + exit 1 +fi + +OPENSSL=/usr/bin/openssl + +run_dataskq() { + DATASKQ_OPT=$1 + /usr/local/directadmin/dataskq ${DATASKQ_OPT} --custombuild +} + +DOMAIN=$1 +TLSATYPE=$2 +case "$TLSATYPE" in + "all") + ;; + "web") + ;; + "mail") + ;; + *) + echo "usage: $0 <domain> <web|mail|all>" + exit 1 +esac + +DOMAINARR=`echo "${DOMAIN}" | perl -p0 -e "s/,/ /g"` + +FOUNDDOMAIN=0 +for TDOMAIN in ${DOMAINARR} +do + DOMAIN=${TDOMAIN} + + DOMAIN_ESCAPED="`echo ${DOMAIN} | perl -p0 -e 's#\.#\\\.#g'`" + + if grep -m1 -q "^${DOMAIN_ESCAPED}:" /etc/virtual/domainowners; then + USER=`grep -m1 "^${DOMAIN_ESCAPED}:" /etc/virtual/domainowners | cut -d' ' -f2` + HOSTNAME=0 + FOUNDDOMAIN=1 + break + elif grep -m1 -q "^${DOMAIN_ESCAPED}$" /etc/virtual/domains; then + USER="root" + if ${DA_BIN} c | grep -m1 -q "^servername=${DOMAIN_ESCAPED}\$"; then + HOSTNAME=1 + FOUNDDOMAIN=1 + break + else + echo "Domain exists in /etc/virtual/domains, but is not set as a hostname in DirectAdmin. Unable to find 'servername=${DOMAIN}' in the output of '/usr/local/directadmin/directadmin c'." + #exit 1 + fi + else + echo "Domain does not exist on the system. Unable to find ${DOMAIN} in /etc/virtual/domainowners." + #exit 1 + fi +done + +if [ ${FOUNDDOMAIN} -eq 0 ]; then + echo "no valid domain found - exiting" + exit 1 +fi + +DA_USERDIR="/usr/local/directadmin/data/users/${USER}" +DA_CONFDIR="/usr/local/directadmin/conf" + +if [ ! -d "${DA_USERDIR}" ] && [ "${HOSTNAME}" -eq 0 ]; then + echo "${DA_USERDIR} not found, exiting..." + exit 1 +elif [ ! -d "${DA_CONFDIR}" ] && [ "${HOSTNAME}" -eq 1 ]; then + echo "${DA_CONFDIR} not found, exiting..." + exit 1 +fi + +try_gen_tlsa() { + if [ ! -x /usr/local/directadmin/directadmin ]; then + echo 1 + else + if ! /usr/local/directadmin/directadmin c | grep -m1 -q '^dns_tlsa=1$'; then + echo 2 + else + if [ "${HOSTNAME}" -eq 0 ]; then + CERT="${DA_USERDIR}/domains/${DOMAIN}.cert" + else + CERT=`${DA_BIN} c |grep ^cacert= | cut -d= -f2` + fi + + if [ ! -f "${CERT}" ] && [ "$TLSATYPE" == "web" ]; then + echo 2 + else + #TLSA_HASH_SHA256=`${OPENSSL} x509 -in ${CERT} -outform DER | ${OPENSSL} sha256 | cut -d' ' -f2` + #TLSA_HASH_SHA512=`${OPENSSL} x509 -in ${CERT} -outform DER | ${OPENSSL} sha512 | cut -d' ' -f2` + #TLSA_HASH_SHA256_PUB=`${OPENSSL} x509 -in ${CERT} -noout -pubkey | ${OPENSSL} pkey -pubin -outform DER |${OPENSSL} sha256 | cut -d' ' -f2` + #TLSA_HASH_SHA512_PUB=`${OPENSSL} x509 -in ${CERT} -noout -pubkey | ${OPENSSL} pkey -pubin -outform DER |${OPENSSL} sha512 | cut -d' ' -f2` + + #CATLSA_HASH_SHA256=`${OPENSSL} x509 -in ${CACERT} -outform DER | ${OPENSSL} sha256 | cut -d' ' -f2` + #CATLSA_HASH_SHA512=`${OPENSSL} x509 -in ${CACERT} -outform DER | ${OPENSSL} sha512 | cut -d' ' -f2` + #CATLSA_HASH_SHA256_PUB=`${OPENSSL} x509 -in ${CACERT} -noout -pubkey | ${OPENSSL} pkey -pubin -outform DER |${OPENSSL} sha256 | cut -d' ' -f2` + #CATLSA_HASH_SHA512_PUB=`${OPENSSL} x509 -in ${CACERT} -noout -pubkey | ${OPENSSL} pkey -pubin -outform DER |${OPENSSL} sha512 | cut -d' ' -f2` + + GENERATED=0 + if [ "$TLSATYPE" == "web" ] || [ "$TLSATYPE" == "all" ]; then + TLSA_HASH_SHA256_PUB=`${OPENSSL} x509 -in ${CERT} -noout -pubkey | ${OPENSSL} pkey -pubin -outform DER |${OPENSSL} sha256 | cut -d' ' -f2` + DNSLIST=`openssl x509 -in ${CERT} -text -noout| grep -A1 "Subject Alternative Name"|tail -1` + for DNSN in ${DNSLIST}; do { + DNSN=`echo ${DNSN}|cut -d':' -f2| tr -d ','` + if [ "${DNSN}" == "${DOMAIN}" ]; then + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 0 1 ${TLSA_HASH_SHA256}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 0 2 ${TLSA_HASH_SHA512}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 1 1 ${TLSA_HASH_SHA256_PUB}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 1 2 ${TLSA_HASH_SHA512_PUB}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 0 1 ${CATLSA_HASH_SHA256}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 0 2 ${CATLSA_HASH_SHA512}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 1 1 ${CATLSA_HASH_SHA256_PUB}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 1 2 ${CATLSA_HASH_SHA512_PUB}" + HOST_TLSA="_443._tcp.${DNSN}." + HOST_TLSA_VAL="3 1 1 ${TLSA_HASH_SHA256_PUB}" + DOM256="_443._tcp.${DNSN}. 300 IN TLSA 3 1 1 ${TLSA_HASH_SHA256_PUB}" + echo "action=dns&do=delete&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}" >> ${TASK_QUEUE} + run_dataskq + echo "action=dns&do=add&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}&value=${HOST_TLSA_VAL}&ttl=300&named_reload=yes" >> ${TASK_QUEUE} + run_dataskq + GENERATED=1 + elif [ "${DNSN}" == "www.${DOMAIN}" ]; then + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 0 1 ${TLSA_HASH_SHA256}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 0 2 ${TLSA_HASH_SHA512}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 1 1 ${TLSA_HASH_SHA256_PUB}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 3 1 2 ${TLSA_HASH_SHA512_PUB}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 0 1 ${CATLSA_HASH_SHA256}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 0 2 ${CATLSA_HASH_SHA512}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 1 1 ${CATLSA_HASH_SHA256_PUB}" + #echo "_443._tcp.${DNSN}. 300 IN TLSA 2 1 2 ${CATLSA_HASH_SHA512_PUB}" + HOST_TLSA="_443._tcp.${DNSN}." + HOST_TLSA_VAL="3 1 1 ${TLSA_HASH_SHA256_PUB}" + DOM256="_443._tcp.${DNSN}. 300 IN TLSA 3 1 1 ${TLSA_HASH_SHA256_PUB}" + echo "action=dns&do=delete&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}" >> ${TASK_QUEUE} + run_dataskq + echo "action=dns&do=add&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}&value=${HOST_TLSA_VAL}&ttl=300&named_reload=yes" >> ${TASK_QUEUE} + run_dataskq + GENERATED=1 + fi + }; done + fi + + if [ "$TLSATYPE" == "mail" ] || [ "$TLSATYPE" == "all" ]; then + HOSTSMTPGEN=0 + TLSA_HASH_SHA256_PUBEXIM=`${OPENSSL} x509 -in /etc/exim.cert -noout -pubkey | ${OPENSSL} pkey -pubin -outform DER |${OPENSSL} sha256 | cut -d' ' -f2` + NAMEDDIR=`/usr/local/directadmin/directadmin c | grep nameddir | awk -F'=' '{print $2}'` + if [ -f ${NAMEDDIR}/${DOMAIN}.db ]; then + while read LINE; do + if echo "$LINE" | egrep "^${DOMAIN}\." |grep MX > /dev/null 2>&1; then + MXR="$LINE" + if [ $HOSTSMTPGEN -eq 0 ]; then + HOST_TLSA="_25._tcp.${DOMAIN}." + HOST_TLSA_VAL="3 1 1 ${TLSA_HASH_SHA256_PUBEXIM}" + DOM256="_25._tcp.${MXREC} 300 IN TLSA 3 1 1 ${TLSA_HASH_SHA256_PUBEXIM}" + echo "action=dns&do=delete&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}" >> ${TASK_QUEUE} + run_dataskq + echo "action=dns&do=add&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}&value=${HOST_TLSA_VAL}&ttl=300&named_reload=yes" >> ${TASK_QUEUE} + run_dataskq + GENERATED=1 + fi + MXREC="" + MXREC=`echo "$LINE"|awk '{print $NF}'` + LASTCHAR="" + LASTCHAR=`echo -n "$MXREC"|tail -c 1` + if [ "$LASTCHAR" != "." ]; then + MXREC="${MXREC}.${DOMAIN}" + fi + HOST_TLSA="_25._tcp.${MXREC}" + HOST_TLSA_VAL="3 1 1 ${TLSA_HASH_SHA256_PUBEXIM}" + DOM256="_25._tcp.${MXREC} 300 IN TLSA 3 1 1 ${TLSA_HASH_SHA256_PUBEXIM}" + echo "action=dns&do=delete&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}" >> ${TASK_QUEUE} + run_dataskq + echo "action=dns&do=add&domain=${DOMAIN}&type=TLSA&name=${HOST_TLSA}&value=${HOST_TLSA_VAL}&ttl=300&named_reload=yes" >> ${TASK_QUEUE} + run_dataskq + GENERATED=1 + fi + done < "${NAMEDDIR}/${DOMAIN}.db" + fi + fi + fi + if [ ${GENERATED} -ne 1 ]; then + echo 4 + else + echo 0 + fi + fi + fi +} + +RETTLSA=`try_gen_tlsa` + +if [ $RETTLSA -ne 0 ] +then + echo "TLSA gen failed" + case "$RETTLSA" in + 1) + echo "No directadmin binary found." + ;; + 2) + echo "TLSA not enabled in directadmin.conf" + ;; + *) + echo "Unexpected problem: no domain of specified type found, exim cert doesn't exist, or domain doesn't have MX records.." + ;; + esac + exit $RETTLSA +else + echo "TLSA gen succeeded" +fi + +exit 0 \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/update.sh b/directadmin-1.62.4/scripts/update.sh new file mode 100644 index 0000000..7a9ee65 --- /dev/null +++ b/directadmin-1.62.4/scripts/update.sh @@ -0,0 +1,177 @@ +#!/bin/sh +OS=`uname` +DA_PATH=/usr/local/directadmin +DA_SCRIPTS=${DA_PATH}/scripts +DA_TQ=${DA_PATH}/data/task.queue + +#added new options to templates +#echo 'action=rewrite&value=httpd' >> $DA_TQ + +echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue +echo "action=cache&value=safemode" >> $DA_TQ +echo "action=convert&value=cronbackups" >> $DA_TQ +echo "action=convert&value=suspendedmysql" >> $DA_TQ +echo "action=syscheck" >> $DA_TQ + +if [ ! -d /usr/local/sysbk ]; then + cd $DA_SCRIPTS + ./sysbk.sh +fi + +#https://www.directadmin.com/features.php?id=1930 +echo "action=da-popb4smtp&value=restart" >> $DA_TQ + +#grep -H "usertype=reseller" /usr/local/directadmin/data/users/*/user.conf | cut -d/ -f7 > /usr/local/directadmin/data/admin/reseller.list +#chown diradmin:diradmin /usr/local/directadmin/data/admin/reseller.list +#chmod 600 /usr/local/directadmin/data/admin/reseller.list + +if [ "${OS}" = "FreeBSD" ]; then + CONF=/etc/newsyslog.conf + if [ ! -s $CONF ]; then + perl -pi -e 's/\sN\s/\t-\t/' ${CONF} + perl -pi -e 's/\sU\s/\t-\t/' ${CONF} + + #addLog /file user:group flag pid + addLog() + { + if grep -m1 -q $1 $CONF; then + return; + fi + echo -e "$1\t$2\t600\t4\t*\t@T00\t$3\t$4" >> $CONF + } + + addLog /var/log/chrootshell.log '' - + addLog /var/log/proftpd/auth.log '' - + addLog /var/log/proftpd/xferlog.legacy '' - + addLog /var/log/proftpd/access.log '' - /var/run/proftpd.pid + addLog /var/log/pureftp.log '' - /var/run/pure-ftpd.pid + addLog /var/log/httpd/access_log apache:apache - + addLog /var/log/httpd/fpexe_log apache:apache - + addLog /var/log/httpd/suexec_log apache:apache - + addLog /var/log/suphp.log '' - + addLog /var/log/httpd/error_log apache:apache - /var/run/httpd.pid + addLog /var/log/exim/paniclog mail:mail - + addLog /var/log/exim/exim_paniclog mail:mail - + addLog /var/log/exim/rejectlog mail:mail - + addLog /var/log/exim/exim_rejectlog mail:mail - + addLog /var/log/exim/processlog mail:mail - + addLog /var/log/exim/exim_processlog mail:mail - + addLog /var/log/exim/mainlog mail:mail - /var/run/exim.pid + addLog /var/log/exim/exim_mainlog mail:mail - /var/run/exim.pid + addLog /var/log/directadmin/error.log diradmin:diradmin - + addLog /var/log/directadmin/errortaskq.log diradmin:diradmin - + addLog /var/log/directadmin/security.log diradmin:diradmin - + addLog /var/log/directadmin/system.log diradmin:diradmin - + addLog /var/log/directadmin/login.log diradmin:diradmin - + addLog /usr/local/php53/var/log/php-fpm.log '' - "/var/run/php-fpm53.pid\t30" + addLog /usr/local/php54/var/log/php-fpm.log '' - "/var/run/php-fpm54.pid\t30" + addLog /usr/local/php60/var/log/php-fpm.log '' - "/var/run/php-fpm60.pid\t30" + + addLog /var/www/html/roundcube/logs/errors webapps:webapps - + addLog /var/www/html/squirrelmail/data/squirrelmail_access_log webapps:webapps - + addLog /var/www/html/phpMyAdmin/log/auth.log webapps:webapps - + else + echo "Doesn't look like you have newsyslog installed"; + fi +fi + +if [ -e /etc/logrotate.d ]; then + if [ ! -e /etc/logrotate.d/directadmin ] && [ -e $DA_SCRIPTS/directadmin.rotate ]; then + cp $DA_SCRIPTS/directadmin.rotate /etc/logrotate.d/directadmin + fi + + if [ -e /etc/logrotate.d/directadmin ]; then + if ! grep -m1 -q 'login.log' /etc/logrotate.d/directadmin; then + cp $DA_SCRIPTS/directadmin.rotate /etc/logrotate.d/directadmin + fi + fi +fi +echo "action=addoptions" >> $DA_TQ +rm -f /usr/local/directadmin/data/skins/*/ssi_test.html 2>/dev/null +perl -pi -e 's/trusted_users = mail:majordomo:apache$/trusted_users = mail:majordomo:apache:diradmin/' /etc/exim.conf + +chmod 750 /etc/virtual/majordomo + +${DA_SCRIPTS}/cron_deny.sh +${DA_SCRIPTS}/check_named_conf.sh + +if [ -s /etc/proftpd.conf ]; then + perl -pi -e "s/userlog \"%u %b\"/userlog \"%u %b %m\"/" /etc/proftpd.conf + perl -pi -e "s/userlog \"%u %b %m\"/userlog \"%u %b %m %a\"/" /etc/proftpd.conf + + #dont restart proftpd if it not on. + HAS_PUREFTPD=`${DA_PATH}/directadmin c | grep ^pureftp= | cut -d= -f2` + if [ "${HAS_PUREFTPD}" != "1" ]; then + echo "action=proftpd&value=restart" >> /usr/local/directadmin/data/task.queue + fi +fi + +if [ -e /usr/share/spamassassin/72_active.cf ]; then + perl -pi -e 's#header FH_DATE_PAST_20XX.*#header FH_DATE_PAST_20XX Date =~ /20[2-9][0-9]/ [if-unset: 2006]#' /usr/share/spamassassin/72_active.cf +fi + +if [ -e /etc/exim.key ]; then + chown mail:mail /etc/exim.key + chmod 600 /etc/exim.key +fi + +#1.37.1 +#very important update to allow DA to listen correctly on IPv4 and IPv6 +if [ "${OS}" = "FreeBSD" ]; then + if ! grep -m1 -q 'ipv6_ipv4mapping=' /etc/rc.conf; then + echo "ipv6_ipv4mapping=\"YES\"" >> /etc/rc.conf + fi + + if ! grep -m1 -q 'net.inet6.ip6.v6only=' /etc/sysctl.conf; then + echo "net.inet6.ip6.v6only=0" >> /etc/sysctl.conf + /etc/rc.d/sysctl restart + fi + + /sbin/sysctl net.inet6.ip6.v6only=0 >/dev/null 2>&1 +fi + +UKN=/etc/virtual/limit_unknown +if [ ! -e $UKN ]; then + echo 0 > $UKN; + chown mail:mail $UKN + chown mail:mail /etc/virtual/limit +fi +UL=/etc/virtual/user_limit +if [ ! -s ${UL} ]; then + echo "0" > ${UL} + chown mail:mail ${UL} + chmod 644 ${UL} +fi + +#debian if MySQL 5.5.11+ +#april 21, 2011 +if [ -e /etc/debian_version ]; then + if [ -e /usr/local/directadmin/directadmin ]; then + COUNT=`ldd /usr/local/directadmin/directadmin | grep -c libmysqlclient.so.16` + if [ "${COUNT}" -eq 1 ]; then + if [ ! -e /usr/local/mysql/lib/libmysqlclient.so.16 ] && [ -e /usr/local/mysql/lib/libmysqlclient.so.18 ]; then + echo "*** Linking libmysqlclient.so.16 to libmysqlclient.so.18"; + ln -s libmysqlclient.so.18 /usr/local/mysql/lib/libmysqlclient.so.16 + ldconfig + fi + fi + COUNT=`ldd /usr/local/directadmin/directadmin | grep -c libmysqlclient.so.18` + if [ "${COUNT}" -eq 1 ]; then + if [ ! -e /usr/local/mysql/lib/libmysqlclient.so.18 ] && [ -e /usr/local/mysql/lib/libmysqlclient.so.16 ]; then + echo "*** Linking libmysqlclient.so.18 to libmysqlclient.so.16"; + ln -s libmysqlclient.so.16 /usr/local/mysql/lib/libmysqlclient.so.18 + ldconfig + fi + fi + fi +fi + +#DA 1.43.1 +#http://www.directadmin.com/features.php?id=1453 +echo "action=rewrite&value=filter" >> /usr/local/directadmin/data/task.queue + +#DA 1.56.2 +#https://www.directadmin.com/features.php?id=2332 +echo 'action=rewrite&value=cron_path' >> /usr/local/directadmin/data/task.queue + +exit 0 \ No newline at end of file diff --git a/directadmin-1.62.4/scripts/user_to_reseller.sh b/directadmin-1.62.4/scripts/user_to_reseller.sh new file mode 100644 index 0000000..c7416d0 --- /dev/null +++ b/directadmin-1.62.4/scripts/user_to_reseller.sh @@ -0,0 +1,167 @@ +#!/bin/sh +# This script is written by Martynas Bendorius and DirectAdmin +# It is used to convert user to reseller +# Official DirectAdmin webpage: http://www.directadmin.com +# Usage: +# ./user_to_reseller.sh <user> + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 1 ]; then + echo "Usage:"; + echo "$0 <user>"; + echo "you gave #$#: $0 $1"; + exit 0; +fi + +USERNAME=$1 + +BASEDIR=/usr/local/directadmin/data + +ADMIN_DATA=${BASEDIR}/users/admin +RESELLER_LIST=${BASEDIR}/admin/reseller.list + +USER_DATA=${BASEDIR}/users/$1 +USER_BACKUP_CONF=${USER_DATA}/backup.conf +USER_CONF=${USER_DATA}/user.conf +USER_USAGE=${USER_DATA}/user.usage + +RESELLER_ALLOC=${USER_DATA}/reseller.allocation +RESELLER_CONF=${USER_DATA}/reseller.conf +RESELLER_USAGE=${USER_DATA}/reseller.usage + +if [ ! -d ${USER_DATA} ]; then + echo "Directory ${USER_DATA} does not exist. Can not continue." + exit 1; +fi + +if [ "`grep -wc $1 ${RESELLER_LIST}`" = "1" ]; then + echo "User $1 is already reseller. Can not continue." + exit 1; +fi + +if [ ! -e /usr/bin/perl ]; then + echo "/usr/bin/perl does not exist."; + exit 1; +fi + +echo "Re-configuring user directory /home/$1." +mkdir -p /home/$1/user_backups +mkdir -p /home/$1/domains/default +mkdir -p /home/$1/domains/sharedip +mkdir -p /home/$1/domains/suspended +cp -R ${BASEDIR}/templates/default/* /home/$1/domains/default +chown -R $1:$1 /home/$1/user_backups +chown -R $1:$1 /home/$1/domains/default +chown -R $1:$1 /home/$1/domains/sharedip +chown -R $1:$1 /home/$1/domains/suspended + +SAG=`/usr/local/directadmin/directadmin c | grep secure_access_group | cut -d= -f2` +if [ "$SAG" != "" ]; then + if [ "$SAG" != '(null)' ]; then + #must be set to something, and not null, thus on. + chown $1:$1 /home/$1 + chmod 711 /home/$1 + chown $1:${SAG} /home/$1/domains + chmod 750 /home/$1/domains + fi +fi + + +echo "Re-configuring DirectAdmin files." +# Changing usertype +perl -pi -e 's/usertype=user/usertype=reseller/' ${USER_CONF} + +# Creating backup.conf +if [ ! -e ${USER_BACKUP_CONF} ]; then + echo -n "" > ${USER_BACKUP_CONF} + echo "ftp_ip=" >> ${USER_BACKUP_CONF} + echo "ftp_password=" >> ${USER_BACKUP_CONF} + echo "ftp_path=/" >> ${USER_BACKUP_CONF} + echo "ftp_username=" >> ${USER_BACKUP_CONF} + echo "local_path=" >> ${USER_BACKUP_CONF} +fi +# Creating ip.list +if [ ! -e ${USER_DATA}/ip.list ]; then + grep "ip=" ${USER_DATA}/user.conf | cut -d= -f2 > ${USER_DATA}/ip.list +fi +# Creating everything else +touch ${USER_DATA}/login.hist +touch ${USER_DATA}/reseller.history +touch ${USER_DATA}/users.list +cp -f ${ADMIN_DATA}/u_welcome.txt ${USER_DATA}/u_welcome.txt + +# Creating packages +mkdir -p ${USER_DATA}/packages +touch ${USER_DATA}/packages.list + +# Creating reseller.allocation +if [ ! -e ${RESELLER_ALLOC} ]; then + echo -n "" > ${RESELLER_ALLOC} + grep "bandwidth=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "domainptr=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "ftp=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "mysql=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "nemailf=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "nemailml=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "nemailr=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "nemails=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "nsubdomains=" ${USER_CONF} >> ${RESELLER_ALLOC} + echo "nusers=0" >> ${RESELLER_ALLOC} + grep "quota=" ${USER_CONF} >> ${RESELLER_ALLOC} + grep "vdomains=" ${USER_CONF} >> ${RESELLER_ALLOC} +fi + +# Editing ticket.conf +if [ -e ${USER_DATA}/ticket.conf ] && [ "`grep -c 'active=' ${USER_DATA}/ticket.conf`" = "0" ]; then + echo "active=yes" >> ${USER_DATA}/ticket.conf + echo 'html=Follow <a href="http://www.domain.com/support">this link</a> for a 3rd party ticket system.' >> ${USER_DATA}/ticket.conf + echo "newticket=0" >> ${USER_DATA}/ticket.conf +fi + +# Creating reseller.conf +if [ ! -e ${RESELLER_CONF} ]; then + egrep -v "account=|creator=|date_created=|docsroot=|domain=|email=|ip=|name=|skin=|suspend_at_limit=|suspended=|username=|usertype=|zoom=|language=" ${USER_CONF} > ${RESELLER_CONF} + echo "userssh=ON" >> ${RESELLER_CONF} + echo "dns=ON" >> ${RESELLER_CONF} + echo "ip=shared" >> ${RESELLER_CONF} + echo "ips=0" >> ${RESELLER_CONF} + echo "oversell=ON" >> ${RESELLER_CONF} + echo "serverip=ON" >> ${RESELLER_CONF} + echo "subject=Your account for |domain| is now ready for use." >> ${RESELLER_CONF} +fi + +# Creating reseller.usage +if [ ! -e ${RESELLER_USAGE} ]; then + egrep -v "db_quota=|email_quota=" ${USER_USAGE} > ${RESELLER_USAGE} + echo "nusers=1" >> ${RESELLER_USAGE} +fi + +CREATOR=`grep "creator=" ${USER_CONF} | cut -d= -f2` +CREATOR_USERSLIST=${BASEDIR}/users/${CREATOR}/users.list +echo "Removing user from the other reseller." +perl -pi -e "s#$1\n##g" ${CREATOR_USERSLIST} + +# Setting permissions +chmod 600 ${USER_DATA}/backup.conf ${USER_DATA}/reseller.usage ${USER_DATA}/reseller.conf ${USER_DATA}/reseller.allocation ${USER_DATA}/packages.list ${USER_DATA}/login.hist ${USER_DATA}/reseller.history ${USER_DATA}/users.list +chmod 700 ${USER_DATA}/packages +chmod 644 ${USER_DATA}/u_welcome.txt +chown -R diradmin:diradmin ${USER_DATA}/packages ${USER_DATA}/u_welcome.txt ${USER_DATA}/backup.conf ${USER_DATA}/reseller.usage ${USER_DATA}/reseller.conf ${USER_DATA}/reseller.allocation ${USER_DATA}/packages.list ${USER_DATA}/login.hist ${USER_DATA}/reseller.history ${USER_DATA}/users.list + +echo "Adding reseller to $3 reseller list" +echo "$1" >> ${RESELLER_LIST} + +echo "Changing user owner" +perl -pi -e "s/creator=$CREATOR/creator=admin/g" ${USER_CONF} + +#this is needed to update "show all users" cache. +echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue +/usr/local/directadmin/dataskq + +echo "User $1 has been converted to reseller." + +exit 0; diff --git a/install.sh b/install.sh index bf42a8e..a2ca646 100644 --- a/install.sh +++ b/install.sh @@ -481,67 +481,67 @@ if [ ! -e /etc/ld.so.conf ] || [ "`grep -c -E '/usr/local/lib$' /etc/ld.so.conf` ldconfig fi -# if [ "$OS" != "FreeBSD" ] && [ "$OS" != "debian" ]; then -# if [ "${SYSTEMD}" = "yes" ]; then -# if [ ! -s /etc/systemd/system/named.service ]; then -# if [ -s /usr/lib/systemd/system/named.service ]; then -# mv /usr/lib/systemd/system/named.service /etc/systemd/system/named.service -# else -# wget -O /etc/systemd/system/named.service ${SERVER}/custombuild/2.0/custombuild/configure/systemd/named.service -# fi -# fi -# if [ ! -s /usr/lib/systemd/system/named-setup-rndc.service ]; then -# wget -O /usr/lib/systemd/system/named-setup-rndc.service ${SERVER}/custombuild/2.0/custombuild/configure/systemd/named-setup-rndc.service -# fi +if [ "$OS" != "FreeBSD" ] && [ "$OS" != "debian" ]; then + if [ "${SYSTEMD}" = "yes" ]; then + if [ ! -s /etc/systemd/system/named.service ]; then + if [ -s /usr/lib/systemd/system/named.service ]; then + mv /usr/lib/systemd/system/named.service /etc/systemd/system/named.service + else + wget -O /etc/systemd/system/named.service ${SERVER}/services/custombuild/2.0/custombuild/configure/systemd/named.service + fi + fi + if [ ! -s /usr/lib/systemd/system/named-setup-rndc.service ]; then + wget -O /usr/lib/systemd/system/named-setup-rndc.service ${SERVER}/services/custombuild/2.0/custombuild/configure/systemd/named-setup-rndc.service + fi -# systemctl daemon-reload -# systemctl enable named.service -# else -# mv -f /etc/init.d/named /etc/init.d/named.back -# wget -O /etc/init.d/named http://www.directadmin.com/named -# chmod 755 /etc/init.d/named -# /sbin/chkconfig named reset -# fi + systemctl daemon-reload + systemctl enable named.service + else + mv -f /etc/init.d/named /etc/init.d/named.back + wget -O /etc/init.d/named http://www.directadmin.com/named + chmod 755 /etc/init.d/named + /sbin/chkconfig named reset + fi -# RNDCKEY=/etc/rndc.key + RNDCKEY=/etc/rndc.key -# if [ ! -s $RNDCKEY ]; then -# echo "Generating new key: $RNDCKEY ..."; + if [ ! -s $RNDCKEY ]; then + echo "Generating new key: $RNDCKEY ..."; -# if [ -e /dev/urandom ]; then -# /usr/sbin/rndc-confgen -a -r /dev/urandom -# else -# /usr/sbin/rndc-confgen -a -# fi + if [ -e /dev/urandom ]; then + /usr/sbin/rndc-confgen -a -r /dev/urandom + else + /usr/sbin/rndc-confgen -a + fi -# COUNT=`grep -c 'key "rndc-key"' $RNDCKEY` -# if [ "$COUNT" -eq 1 ]; then -# perl -pi -e 's/key "rndc-key"/key "rndckey"/' $RNDCKEY -# fi + COUNT=`grep -c 'key "rndc-key"' $RNDCKEY` + if [ "$COUNT" -eq 1 ]; then + perl -pi -e 's/key "rndc-key"/key "rndckey"/' $RNDCKEY + fi -# echo "Done generating new key"; -# fi + echo "Done generating new key"; + fi -# if [ ! -s $RNDCKEY ]; then -# echo "rndc-confgen failed. Using template instead."; + if [ ! -s $RNDCKEY ]; then + echo "rndc-confgen failed. Using template instead."; -# wget -O $RNDCKEY http://www.directadmin.com/rndc.key + wget -O $RNDCKEY http://www.directadmin.com/rndc.key -# if [ `cat $RNDCKEY | grep -c secret` -eq 0 ]; then -# SECRET=`/usr/sbin/rndc-confgen | grep secret | head -n 1` -# STR="perl -pi -e 's#hmac-md5;#hmac-md5;\n\t$SECRET#' $RNDCKEY;" -# eval $STR; -# fi + if [ `cat $RNDCKEY | grep -c secret` -eq 0 ]; then + SECRET=`/usr/sbin/rndc-confgen | grep secret | head -n 1` + STR="perl -pi -e 's#hmac-md5;#hmac-md5;\n\t$SECRET#' $RNDCKEY;" + eval $STR; + fi -# echo "Template installed."; -# fi + echo "Template installed."; + fi -# chown named:named ${RNDCKEY} -# fi + chown named:named ${RNDCKEY} +fi -# if [ -e /etc/sysconfig/named ]; then -# /usr/bin/perl -pi -e 's/^ROOTDIR=.*/ROOTDIR=/' /etc/sysconfig/named -# fi +if [ -e /etc/sysconfig/named ]; then + /usr/bin/perl -pi -e 's/^ROOTDIR=.*/ROOTDIR=/' /etc/sysconfig/named +fi # if [ $SSL_DEVEL -eq 0 ]; then # echo "";