diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index a515b12e9..0aad4ee42 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -2,7 +2,7 @@ Type here, e.g. CentOS 6 -### VestaCP Version: +### DevITCP Version: Type here, e.g. 3.14159 @@ -12,7 +12,7 @@ Type here, e.g. php-fpm, apache, nginx, mysql ### Steps to Reproduce: -Type here, e.g. install vesta and type rm -rf / --no-preserve-root +Type here, e.g. install devit and type rm -rf / --no-preserve-root ### Related Issues/Forum Threads: diff --git a/README.md b/README.md index b953eea6f..591bfa503 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -[Vesta Control Panel](http://vestacp.com/) +[DevIT Control Panel](http://devitcp.com/) ================================================== -Vesta is back under active development as of 25 February 2024. We are commited to open source, and will engage with the community to identify the new roadmap for Vesta. Stay tuned! +DevIT is back under active development as of 25 February 2024. We are commited to open source, and will engage with the community to identify the new roadmap for DevIT. Stay tuned! -[![Join the chat at https://gitter.im/vesta-cp/Lobby](https://badges.gitter.im/vesta-cp/Lobby.svg)](https://gitter.im/vesta-cp/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Join the chat at https://gitter.im/devit-cp/Lobby](https://badges.gitter.im/devit-cp/Lobby.svg)](https://gitter.im/devit-cp/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -* Vesta is an open source hosting control panel. -* Vesta has a clean and focused interface without the clutter. -* Vesta has the latest of very innovative technologies. +* DevIT is an open source hosting control panel. +* DevIT has a clean and focused interface without the clutter. +* DevIT has the latest of very innovative technologies. How to install (2 step) ---------------------------- @@ -18,7 +18,7 @@ ssh root@your.server Download the installation script, and run it: ```bash -curl https://vestacp.com/pub/vst-install.sh | bash +curl https://devitcp.com/pub/vst-install.sh | bash ``` How to install (3 step) @@ -31,7 +31,7 @@ ssh root@your.server Download the installation script: ```bash -curl -O https://vestacp.com/pub/vst-install.sh +curl -O https://devitcp.com/pub/vst-install.sh ``` Then run it: ```bash @@ -40,5 +40,5 @@ bash vst-install.sh License ---------------------------- -Vesta is licensed under [GPL v3 ](https://github.com/outroll/vesta/blob/master/LICENSE) license +DevIT is licensed under [GPL v3 ](https://github.com/outroll/devit/blob/master/LICENSE) license diff --git a/SECURITY.md b/SECURITY.md index c7499444a..f6249b177 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,4 +2,4 @@ ## Reporting a Vulnerability -Please report security issues to dev@vestacp.com +Please report security issues to dev@devitcp.com diff --git a/func/domain.sh b/func/domain.sh index 6bd05b910..5056177f8 100644 --- a/func/domain.sh +++ b/func/domain.sh @@ -207,11 +207,11 @@ add_web_config() { chown root:$user $conf chmod 640 $conf - if [ -z "$(grep "$conf" /etc/$1/conf.d/vesta.conf)" ]; then + if [ -z "$(grep "$conf" /etc/$1/conf.d/devit.conf)" ]; then if [ "$1" != 'nginx' ]; then - echo "Include $conf" >> /etc/$1/conf.d/vesta.conf + echo "Include $conf" >> /etc/$1/conf.d/devit.conf else - echo "include $conf;" >> /etc/$1/conf.d/vesta.conf + echo "include $conf;" >> /etc/$1/conf.d/devit.conf fi fi @@ -281,7 +281,7 @@ del_web_config() { fi if [ -e "$conf" ]; then - sed -i "\|$conf|d" /etc/$1/conf.d/vesta.conf + sed -i "\|$conf|d" /etc/$1/conf.d/devit.conf rm -f $conf else # fallback to old style configs @@ -297,7 +297,7 @@ del_web_config() { # clean-up for both config styles if there is no more domains web_domain=$(grep DOMAIN $USER_DATA/web.conf |wc -l) if [ "$web_domain" -eq '0' ]; then - sed -i "/.*\/$user\/conf\/web\//d" /etc/$1/conf.d/vesta.conf + sed -i "/.*\/$user\/conf\/web\//d" /etc/$1/conf.d/devit.conf if [ -f "$conf" ]; then rm -f $conf fi diff --git a/func/main.sh b/func/main.sh index 6f848a220..dadeb364b 100644 --- a/func/main.sh +++ b/func/main.sh @@ -1038,7 +1038,7 @@ no_symlink_chmod() { # $1 = subject # $2 = body send_email_to_admin() { - email=$(grep CONTACT /usr/local/vesta/data/users/admin/user.conf) + email=$(grep CONTACT /usr/local/devit/data/users/admin/user.conf) email=$(echo "$email" | cut -f 2 -d "'") if [ -z "$email" ]; then if [ ! -z "$NOTIFY_ADMIN_FULL_BACKUP" ]; then diff --git a/func/remote.sh b/func/remote.sh index 895e7b451..95473ad77 100644 --- a/func/remote.sh +++ b/func/remote.sh @@ -109,7 +109,7 @@ remote_dns_health_check() { echo -e "following commands:\n" >> $tmpfile echo "v-unsuspend-remote-dns-host $HOST" >> $tmpfile echo "v-sync-dns-cluster $HOST" >> $tmpfile - echo -e "\n\n--\nVesta Control Panel\n$(hostname)" >> $tmpfile + echo -e "\n\n--\nDevIT Control Panel\n$(hostname)" >> $tmpfile if [ "$1" = 'no_email' ]; then cat $tmpfile diff --git a/install/debian/7/dovecot/conf.d/10-ssl.conf b/install/debian/7/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/debian/7/dovecot/conf.d/10-ssl.conf +++ b/install/debian/7/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/debian/7/fail2ban/filter.d/vesta.conf b/install/debian/7/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/debian/7/fail2ban/filter.d/vesta.conf +++ b/install/debian/7/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/debian/7/roundcube/config.inc.php b/install/debian/7/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/debian/7/roundcube/config.inc.php +++ b/install/debian/7/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/debian/7/roundcube/vesta.php b/install/debian/7/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/debian/7/roundcube/vesta.php +++ b/install/debian/7/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/debian/7/templates/web/skel/public_html/index.html b/install/debian/7/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/debian/7/templates/web/skel/public_html/index.html +++ b/install/debian/7/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/debian/7/templates/web/skel/public_html/robots.txt b/install/debian/7/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/debian/7/templates/web/skel/public_html/robots.txt +++ b/install/debian/7/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/debian/7/templates/web/skel/public_shtml/index.html b/install/debian/7/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/debian/7/templates/web/skel/public_shtml/index.html +++ b/install/debian/7/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/debian/7/templates/web/skel/public_shtml/robots.txt b/install/debian/7/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/debian/7/templates/web/skel/public_shtml/robots.txt +++ b/install/debian/7/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/debian/8/dovecot/conf.d/10-ssl.conf b/install/debian/8/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/debian/8/dovecot/conf.d/10-ssl.conf +++ b/install/debian/8/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/debian/8/fail2ban/filter.d/vesta.conf b/install/debian/8/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/debian/8/fail2ban/filter.d/vesta.conf +++ b/install/debian/8/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/debian/8/roundcube/config.inc.php b/install/debian/8/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/debian/8/roundcube/config.inc.php +++ b/install/debian/8/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/debian/8/roundcube/vesta.php b/install/debian/8/roundcube/vesta.php index b3dd167fd..4b855ecb2 100644 --- a/install/debian/8/roundcube/vesta.php +++ b/install/debian/8/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ -class rcube_vesta_password { +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ class rcube_vesta_password { $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ class rcube_vesta_password { $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -50,7 +50,7 @@ class rcube_vesta_password { $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/debian/8/templates/web/skel/public_html/index.html b/install/debian/8/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/debian/8/templates/web/skel/public_html/index.html +++ b/install/debian/8/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/debian/8/templates/web/skel/public_html/robots.txt b/install/debian/8/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/debian/8/templates/web/skel/public_html/robots.txt +++ b/install/debian/8/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/debian/8/templates/web/skel/public_shtml/index.html b/install/debian/8/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/debian/8/templates/web/skel/public_shtml/index.html +++ b/install/debian/8/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/debian/8/templates/web/skel/public_shtml/robots.txt b/install/debian/8/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/debian/8/templates/web/skel/public_shtml/robots.txt +++ b/install/debian/8/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/debian/9/dovecot/conf.d/10-ssl.conf b/install/debian/9/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/debian/9/dovecot/conf.d/10-ssl.conf +++ b/install/debian/9/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/debian/9/fail2ban/filter.d/vesta.conf b/install/debian/9/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/debian/9/fail2ban/filter.d/vesta.conf +++ b/install/debian/9/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/debian/9/roundcube/config.inc.php b/install/debian/9/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/debian/9/roundcube/config.inc.php +++ b/install/debian/9/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/debian/9/roundcube/vesta.php b/install/debian/9/roundcube/vesta.php index b3dd167fd..4b855ecb2 100644 --- a/install/debian/9/roundcube/vesta.php +++ b/install/debian/9/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ -class rcube_vesta_password { +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ class rcube_vesta_password { $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ class rcube_vesta_password { $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -50,7 +50,7 @@ class rcube_vesta_password { $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/debian/9/templates/web/skel/public_html/index.html b/install/debian/9/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/debian/9/templates/web/skel/public_html/index.html +++ b/install/debian/9/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/debian/9/templates/web/skel/public_html/robots.txt b/install/debian/9/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/debian/9/templates/web/skel/public_html/robots.txt +++ b/install/debian/9/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/debian/9/templates/web/skel/public_shtml/index.html b/install/debian/9/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/debian/9/templates/web/skel/public_shtml/index.html +++ b/install/debian/9/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/debian/9/templates/web/skel/public_shtml/robots.txt b/install/debian/9/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/debian/9/templates/web/skel/public_shtml/robots.txt +++ b/install/debian/9/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/debian/9/vsftpd/vsftpd.conf b/install/debian/9/vsftpd/vsftpd.conf index 63aceae87..b42026604 100644 --- a/install/debian/9/vsftpd/vsftpd.conf +++ b/install/debian/9/vsftpd/vsftpd.conf @@ -35,5 +35,5 @@ require_ssl_reuse=YES ssl_ciphers=HIGH idle_session_timeout=600 data_connection_timeout=120 -rsa_cert_file=/usr/local/vesta/ssl/certificate.crt -rsa_private_key_file=/usr/local/vesta/ssl/certificate.key +rsa_cert_file=/usr/local/devit/ssl/certificate.crt +rsa_private_key_file=/usr/local/devit/ssl/certificate.key diff --git a/install/rhel/5/dovecot/dovecot.conf b/install/rhel/5/dovecot/dovecot.conf index 544d851e6..0a4a2925a 100644 --- a/install/rhel/5/dovecot/dovecot.conf +++ b/install/rhel/5/dovecot/dovecot.conf @@ -1,7 +1,7 @@ protocols = imap imaps pop3 pop3s log_path = /var/log/dovecot.log -ssl_cert_file = /usr/local/vesta/ssl/certificate.crt -ssl_key_file = /usr/local/vesta/ssl/certificate.key +ssl_cert_file = /usr/local/devit/ssl/certificate.crt +ssl_key_file = /usr/local/devit/ssl/certificate.key disable_plaintext_auth = no mail_location = maildir:%h/mail/%d/%n diff --git a/install/rhel/5/exim/exim-smarthost.conf b/install/rhel/5/exim/exim-smarthost.conf index 086ca6507..1acfaceb0 100644 --- a/install/rhel/5/exim/exim-smarthost.conf +++ b/install/rhel/5/exim/exim-smarthost.conf @@ -1,6 +1,6 @@ ###################################################################### # # -# Exim configuration file for Vesta Control Panel # +# Exim configuration file for DevIT Control Panel # # # ###################################################################### @@ -173,7 +173,7 @@ begin authenticators login: driver = plaintext public_name = LOGIN - client_send = ": user@smartrelay.vestacp.com : p4sw0rd" + client_send = ": user@smartrelay.devitcp.com : p4sw0rd" server_set_id = $auth1 dovecot_plain: @@ -200,7 +200,7 @@ smarthost: driver = manualroute domains = ! +local_domains transport = remote_smtp_auth - route_list = * smartrelay.vestacp.com + route_list = * smartrelay.devitcp.com dnslookup: driver = dnslookup @@ -289,8 +289,8 @@ remote_smtp: remote_smtp_auth: driver = smtp - hosts = smartrelay.vestacp.com - hosts_require_auth = smartrelay.vestacp.com + hosts = smartrelay.devitcp.com + hosts_require_auth = smartrelay.devitcp.com procmail: driver = pipe diff --git a/install/rhel/5/exim/exim.conf b/install/rhel/5/exim/exim.conf index c1793b910..afc4ba65b 100644 --- a/install/rhel/5/exim/exim.conf +++ b/install/rhel/5/exim/exim.conf @@ -1,6 +1,6 @@ ###################################################################### # # -# Exim configuration file for Vesta Control Panel # +# Exim configuration file for DevIT Control Panel # # # ###################################################################### @@ -30,8 +30,8 @@ av_scanner = clamd: /var/run/clamav/clamd.sock .endif tls_advertise_hosts = * -tls_certificate = /usr/local/vesta/ssl/certificate.crt -tls_privatekey = /usr/local/vesta/ssl/certificate.key +tls_certificate = /usr/local/devit/ssl/certificate.crt +tls_privatekey = /usr/local/devit/ssl/certificate.key daemon_smtp_ports = 25 : 465 : 587 : 2525 tls_on_connect_ports = 465 @@ -195,7 +195,7 @@ begin routers # driver = manualroute # domains = ! +local_domains # transport = remote_smtp -# route_list = * smartrelay.vestacp.com +# route_list = * smartrelay.devitcp.com # no_more # no_verify diff --git a/install/rhel/5/fail2ban/action.d/vesta.conf b/install/rhel/5/fail2ban/action.d/vesta.conf index 2779d9f0c..5e0dd0028 100644 --- a/install/rhel/5/fail2ban/action.d/vesta.conf +++ b/install/rhel/5/fail2ban/action.d/vesta.conf @@ -1,10 +1,10 @@ -# Fail2Ban configuration file for vesta +# Fail2Ban configuration file for devit [Definition] -actionstart = /usr/local/vesta/bin/v-add-firewall-chain -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/rhel/5/fail2ban/filter.d/vesta.conf b/install/rhel/5/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/rhel/5/fail2ban/filter.d/vesta.conf +++ b/install/rhel/5/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/rhel/5/monit/vesta-nginx.conf b/install/rhel/5/monit/vesta-nginx.conf index 1a85cac3a..4f9aa4969 100644 --- a/install/rhel/5/monit/vesta-nginx.conf +++ b/install/rhel/5/monit/vesta-nginx.conf @@ -1,3 +1,3 @@ -check process vesta-nginx with pidfile /var/run/vesta-nginx.pid - start program = "/etc/init.d/vesta start" - stop program = "/etc/init.d/vesta stop" +check process devit-nginx with pidfile /var/run/devit-nginx.pid + start program = "/etc/init.d/devit start" + stop program = "/etc/init.d/devit stop" diff --git a/install/rhel/5/monit/vesta-php.conf b/install/rhel/5/monit/vesta-php.conf index 80731189f..83c64b3ca 100644 --- a/install/rhel/5/monit/vesta-php.conf +++ b/install/rhel/5/monit/vesta-php.conf @@ -1,3 +1,3 @@ -check process vesta-php with pidfile /var/run/vesta-php.pid - start program = "/etc/init.d/vesta start" - stop program = "/etc/init.d/vesta stop" +check process devit-php with pidfile /var/run/devit-php.pid + start program = "/etc/init.d/devit start" + stop program = "/etc/init.d/devit stop" diff --git a/install/rhel/5/roundcube/config.inc.php b/install/rhel/5/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/rhel/5/roundcube/config.inc.php +++ b/install/rhel/5/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/rhel/5/roundcube/vesta.php b/install/rhel/5/roundcube/vesta.php index b8695bd17..50f32b724 100644 --- a/install/rhel/5/roundcube/vesta.php +++ b/install/rhel/5/roundcube/vesta.php @@ -1,28 +1,28 @@ + * @author Serghey Rodin */ -class rcube_vesta_password +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -34,7 +34,7 @@ class rcube_vesta_password $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -42,7 +42,7 @@ class rcube_vesta_password $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/rhel/5/templates/web/skel/public_html/index.html b/install/rhel/5/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/rhel/5/templates/web/skel/public_html/index.html +++ b/install/rhel/5/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/rhel/5/templates/web/skel/public_html/robots.txt b/install/rhel/5/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/rhel/5/templates/web/skel/public_html/robots.txt +++ b/install/rhel/5/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/rhel/5/templates/web/skel/public_shtml/index.html b/install/rhel/5/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/rhel/5/templates/web/skel/public_shtml/index.html +++ b/install/rhel/5/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/rhel/5/templates/web/skel/public_shtml/robots.txt b/install/rhel/5/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/rhel/5/templates/web/skel/public_shtml/robots.txt +++ b/install/rhel/5/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/rhel/6/dovecot/conf.d/10-ssl.conf b/install/rhel/6/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/rhel/6/dovecot/conf.d/10-ssl.conf +++ b/install/rhel/6/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/rhel/6/fail2ban/filter.d/vesta.conf b/install/rhel/6/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/rhel/6/fail2ban/filter.d/vesta.conf +++ b/install/rhel/6/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/rhel/6/roundcube/config.inc.php b/install/rhel/6/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/rhel/6/roundcube/config.inc.php +++ b/install/rhel/6/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/rhel/6/roundcube/vesta.php b/install/rhel/6/roundcube/vesta.php index 1e9523a5c..1c1361d8c 100644 --- a/install/rhel/6/roundcube/vesta.php +++ b/install/rhel/6/roundcube/vesta.php @@ -1,28 +1,28 @@ + * @author Serghey Rodin */ -class rcube_vesta_password +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -34,7 +34,7 @@ class rcube_vesta_password $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -42,7 +42,7 @@ class rcube_vesta_password $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -52,7 +52,7 @@ class rcube_vesta_password $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); diff --git a/install/rhel/6/templates/web/skel/public_html/index.html b/install/rhel/6/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/rhel/6/templates/web/skel/public_html/index.html +++ b/install/rhel/6/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/rhel/6/templates/web/skel/public_html/robots.txt b/install/rhel/6/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/rhel/6/templates/web/skel/public_html/robots.txt +++ b/install/rhel/6/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/rhel/6/templates/web/skel/public_shtml/index.html b/install/rhel/6/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/rhel/6/templates/web/skel/public_shtml/index.html +++ b/install/rhel/6/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/rhel/6/templates/web/skel/public_shtml/robots.txt b/install/rhel/6/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/rhel/6/templates/web/skel/public_shtml/robots.txt +++ b/install/rhel/6/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/rhel/7/dovecot/conf.d/10-ssl.conf b/install/rhel/7/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/rhel/7/dovecot/conf.d/10-ssl.conf +++ b/install/rhel/7/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/rhel/7/fail2ban/filter.d/vesta.conf b/install/rhel/7/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/rhel/7/fail2ban/filter.d/vesta.conf +++ b/install/rhel/7/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/rhel/7/monit/vesta-nginx.conf b/install/rhel/7/monit/vesta-nginx.conf index 8e706c99c..4daee3c15 100644 --- a/install/rhel/7/monit/vesta-nginx.conf +++ b/install/rhel/7/monit/vesta-nginx.conf @@ -1,3 +1,3 @@ -check process vesta-nginx with pidfile /var/run/vesta-nginx.pid - start program = "/usr/bin/systemctl start vesta" - stop program = "/usr/bin/systemctl stop vesta" +check process devit-nginx with pidfile /var/run/devit-nginx.pid + start program = "/usr/bin/systemctl start devit" + stop program = "/usr/bin/systemctl stop devit" diff --git a/install/rhel/7/monit/vesta-php.conf b/install/rhel/7/monit/vesta-php.conf index 3c9c32c20..0a93a7fcd 100644 --- a/install/rhel/7/monit/vesta-php.conf +++ b/install/rhel/7/monit/vesta-php.conf @@ -1,3 +1,3 @@ -check process vesta-php with pidfile /var/run/vesta-php.pid - start program = "/usr/bin/systemctl start vesta" - stop program = "/usr/bin/systemctl stop vesta" +check process devit-php with pidfile /var/run/devit-php.pid + start program = "/usr/bin/systemctl start devit" + stop program = "/usr/bin/systemctl stop devit" diff --git a/install/rhel/7/roundcube/config.inc.php b/install/rhel/7/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/rhel/7/roundcube/config.inc.php +++ b/install/rhel/7/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/rhel/7/roundcube/vesta.php b/install/rhel/7/roundcube/vesta.php index 1e9523a5c..1c1361d8c 100644 --- a/install/rhel/7/roundcube/vesta.php +++ b/install/rhel/7/roundcube/vesta.php @@ -1,28 +1,28 @@ + * @author Serghey Rodin */ -class rcube_vesta_password +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -34,7 +34,7 @@ class rcube_vesta_password $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -42,7 +42,7 @@ class rcube_vesta_password $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -52,7 +52,7 @@ class rcube_vesta_password $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); diff --git a/install/rhel/7/templates/web/skel/public_html/index.html b/install/rhel/7/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/rhel/7/templates/web/skel/public_html/index.html +++ b/install/rhel/7/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/rhel/7/templates/web/skel/public_html/robots.txt b/install/rhel/7/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/rhel/7/templates/web/skel/public_html/robots.txt +++ b/install/rhel/7/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/rhel/7/templates/web/skel/public_shtml/index.html b/install/rhel/7/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/rhel/7/templates/web/skel/public_shtml/index.html +++ b/install/rhel/7/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/rhel/7/templates/web/skel/public_shtml/robots.txt b/install/rhel/7/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/rhel/7/templates/web/skel/public_shtml/robots.txt +++ b/install/rhel/7/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/rhel/7/vsftpd/vsftpd.conf b/install/rhel/7/vsftpd/vsftpd.conf index 26efb9586..5360e1a03 100644 --- a/install/rhel/7/vsftpd/vsftpd.conf +++ b/install/rhel/7/vsftpd/vsftpd.conf @@ -33,5 +33,5 @@ require_ssl_reuse=YES ssl_ciphers=HIGH idle_session_timeout=600 data_connection_timeout=120 -rsa_cert_file=/usr/local/vesta/ssl/certificate.crt -rsa_private_key_file=/usr/local/vesta/ssl/certificate.key +rsa_cert_file=/usr/local/devit/ssl/certificate.crt +rsa_private_key_file=/usr/local/devit/ssl/certificate.key diff --git a/install/rhel/8/vsftpd/vsftpd.conf b/install/rhel/8/vsftpd/vsftpd.conf index 75e0104fe..ef31ee29d 100644 --- a/install/rhel/8/vsftpd/vsftpd.conf +++ b/install/rhel/8/vsftpd/vsftpd.conf @@ -36,5 +36,5 @@ ssl_sslv2=NO ssl_sslv3=NO force_local_data_ssl=NO force_local_logins_ssl=NO -rsa_cert_file=/usr/local/vesta/ssl/certificate.crt -rsa_private_key_file=/usr/local/vesta/ssl/certificate.key +rsa_cert_file=/usr/local/devit/ssl/certificate.crt +rsa_private_key_file=/usr/local/devit/ssl/certificate.key diff --git a/install/ubuntu/12.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/12.04/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/12.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/12.04/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/12.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/12.04/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/12.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/12.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/12.04/roundcube/config.inc.php b/install/ubuntu/12.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/12.04/roundcube/config.inc.php +++ b/install/ubuntu/12.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/12.04/roundcube/vesta.php b/install/ubuntu/12.04/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/12.04/roundcube/vesta.php +++ b/install/ubuntu/12.04/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/12.04/templates/web/skel/public_html/index.html b/install/ubuntu/12.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/12.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/12.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/12.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/12.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/12.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/12.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/12.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/12.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/12.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/12.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/12.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/12.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/12.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/12.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/12.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/12.10/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/12.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/12.10/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/12.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/12.10/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/12.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/12.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/12.10/roundcube/config.inc.php b/install/ubuntu/12.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/12.10/roundcube/config.inc.php +++ b/install/ubuntu/12.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/12.10/roundcube/vesta.php b/install/ubuntu/12.10/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/12.10/roundcube/vesta.php +++ b/install/ubuntu/12.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/12.10/templates/web/skel/public_html/index.html b/install/ubuntu/12.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/12.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/12.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/12.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/12.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/12.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/12.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/12.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/12.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/12.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/12.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/12.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/12.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/12.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/12.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/13.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/13.04/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/13.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/13.04/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/13.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/13.04/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/13.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/13.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/13.04/roundcube/config.inc.php b/install/ubuntu/13.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/13.04/roundcube/config.inc.php +++ b/install/ubuntu/13.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/13.04/roundcube/vesta.php b/install/ubuntu/13.04/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/13.04/roundcube/vesta.php +++ b/install/ubuntu/13.04/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/13.04/templates/web/skel/public_html/index.html b/install/ubuntu/13.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/13.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/13.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/13.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/13.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/13.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/13.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/13.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/13.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/13.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/13.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/13.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/13.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/13.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/13.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/13.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/13.10/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/13.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/13.10/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/13.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/13.10/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/13.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/13.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/13.10/roundcube/config.inc.php b/install/ubuntu/13.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/13.10/roundcube/config.inc.php +++ b/install/ubuntu/13.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/13.10/roundcube/vesta.php b/install/ubuntu/13.10/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/13.10/roundcube/vesta.php +++ b/install/ubuntu/13.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/13.10/templates/web/skel/public_html/index.html b/install/ubuntu/13.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/13.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/13.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/13.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/13.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/13.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/13.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/13.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/13.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/13.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/13.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/13.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/13.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/13.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/13.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/14.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/14.04/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/14.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/14.04/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/14.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/14.04/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/14.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/14.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/14.04/roundcube/config.inc.php b/install/ubuntu/14.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/14.04/roundcube/config.inc.php +++ b/install/ubuntu/14.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/14.04/roundcube/vesta.php b/install/ubuntu/14.04/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/14.04/roundcube/vesta.php +++ b/install/ubuntu/14.04/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/14.04/templates/web/skel/public_html/index.html b/install/ubuntu/14.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/14.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/14.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/14.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/14.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/14.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/14.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/14.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/14.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/14.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/14.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/14.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/14.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/14.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/14.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/14.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/14.10/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/14.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/14.10/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/14.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/14.10/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/14.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/14.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/14.10/roundcube/config.inc.php b/install/ubuntu/14.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/14.10/roundcube/config.inc.php +++ b/install/ubuntu/14.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/14.10/roundcube/vesta.php b/install/ubuntu/14.10/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/14.10/roundcube/vesta.php +++ b/install/ubuntu/14.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/14.10/templates/web/skel/public_html/index.html b/install/ubuntu/14.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/14.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/14.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/14.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/14.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/14.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/14.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/14.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/14.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/14.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/14.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/14.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/14.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/14.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/14.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/15.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/15.04/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/15.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/15.04/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/15.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/15.04/fail2ban/filter.d/vesta.conf index 36ec10019..bc19deda1 100644 --- a/install/ubuntu/15.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/15.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccessful Vesta authentication attempts +# Fail2Ban filter for unsuccessful DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/15.04/roundcube/config.inc.php b/install/ubuntu/15.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/15.04/roundcube/config.inc.php +++ b/install/ubuntu/15.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/15.04/roundcube/vesta.php b/install/ubuntu/15.04/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/15.04/roundcube/vesta.php +++ b/install/ubuntu/15.04/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/15.04/templates/web/skel/public_html/index.html b/install/ubuntu/15.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/15.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/15.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/15.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/15.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/15.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/15.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/15.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/15.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/15.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/15.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/15.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/15.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/15.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/15.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/15.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/15.10/dovecot/conf.d/10-ssl.conf index 3aaff6eec..b3d5f1b14 100644 --- a/install/ubuntu/15.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/15.10/dovecot/conf.d/10-ssl.conf @@ -1,3 +1,3 @@ ssl = yes -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/15.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/15.10/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/15.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/15.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/15.10/roundcube/config.inc.php b/install/ubuntu/15.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/15.10/roundcube/config.inc.php +++ b/install/ubuntu/15.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/15.10/roundcube/vesta.php b/install/ubuntu/15.10/roundcube/vesta.php index 8fb202a44..754aaa0e5 100644 --- a/install/ubuntu/15.10/roundcube/vesta.php +++ b/install/ubuntu/15.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ function password_save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - $fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + $fp = fsockopen('ssl://' . $devit_host, $devit_port); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/15.10/templates/web/skel/public_html/index.html b/install/ubuntu/15.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/15.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/15.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/15.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/15.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/15.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/15.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/15.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/15.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/15.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/15.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/15.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/15.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/15.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/15.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/16.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/16.04/dovecot/conf.d/10-ssl.conf index 24cbf3e26..8d517bf1e 100644 --- a/install/ubuntu/16.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/16.04/dovecot/conf.d/10-ssl.conf @@ -1,5 +1,5 @@ ssl = yes ssl_protocols = !SSLv2 !SSLv3 -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/16.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/16.04/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/16.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/16.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/16.04/roundcube/config.inc.php b/install/ubuntu/16.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/16.04/roundcube/config.inc.php +++ b/install/ubuntu/16.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/16.04/roundcube/vesta.php b/install/ubuntu/16.04/roundcube/vesta.php index b6646b2bb..8656c6794 100644 --- a/install/ubuntu/16.04/roundcube/vesta.php +++ b/install/ubuntu/16.04/roundcube/vesta.php @@ -1,27 +1,27 @@ + * @author Serghey Rodin */ -class rcube_vesta_password +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -33,7 +33,7 @@ class rcube_vesta_password $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -41,7 +41,7 @@ class rcube_vesta_password $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -50,7 +50,7 @@ class rcube_vesta_password $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/16.04/templates/web/skel/public_html/index.html b/install/ubuntu/16.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/16.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/16.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/16.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/16.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/16.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/16.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/16.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/16.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/16.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/16.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/16.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/16.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/16.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/16.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf index 24cbf3e26..8d517bf1e 100644 --- a/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/16.10/dovecot/conf.d/10-ssl.conf @@ -1,5 +1,5 @@ ssl = yes ssl_protocols = !SSLv2 !SSLv3 -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/16.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/16.10/roundcube/config.inc.php b/install/ubuntu/16.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/16.10/roundcube/config.inc.php +++ b/install/ubuntu/16.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/16.10/roundcube/vesta.php b/install/ubuntu/16.10/roundcube/vesta.php index b4a2a6b6c..30cc2c8a8 100644 --- a/install/ubuntu/16.10/roundcube/vesta.php +++ b/install/ubuntu/16.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ -class rcube_vesta_password { +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ class rcube_vesta_password { $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ class rcube_vesta_password { $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -49,7 +49,7 @@ class rcube_vesta_password { $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/16.10/templates/web/skel/public_html/index.html b/install/ubuntu/16.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/16.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/16.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/16.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/16.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/16.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/17.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/17.04/dovecot/conf.d/10-ssl.conf index 24cbf3e26..8d517bf1e 100644 --- a/install/ubuntu/17.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/17.04/dovecot/conf.d/10-ssl.conf @@ -1,5 +1,5 @@ ssl = yes ssl_protocols = !SSLv2 !SSLv3 -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/17.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/17.04/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/17.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/17.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/17.04/roundcube/config.inc.php b/install/ubuntu/17.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/17.04/roundcube/config.inc.php +++ b/install/ubuntu/17.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/17.04/roundcube/vesta.php b/install/ubuntu/17.04/roundcube/vesta.php index b6646b2bb..8656c6794 100644 --- a/install/ubuntu/17.04/roundcube/vesta.php +++ b/install/ubuntu/17.04/roundcube/vesta.php @@ -1,27 +1,27 @@ + * @author Serghey Rodin */ -class rcube_vesta_password +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -33,7 +33,7 @@ class rcube_vesta_password $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -41,7 +41,7 @@ class rcube_vesta_password $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -50,7 +50,7 @@ class rcube_vesta_password $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/17.04/templates/web/skel/public_html/index.html b/install/ubuntu/17.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/17.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/17.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/17.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/17.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/17.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/17.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/17.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/17.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/17.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/17.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/17.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/17.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/17.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/17.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/17.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/17.10/dovecot/conf.d/10-ssl.conf index 24cbf3e26..8d517bf1e 100644 --- a/install/ubuntu/17.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/17.10/dovecot/conf.d/10-ssl.conf @@ -1,5 +1,5 @@ ssl = yes ssl_protocols = !SSLv2 !SSLv3 -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/17.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/17.10/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/17.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/17.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/17.10/roundcube/config.inc.php b/install/ubuntu/17.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/17.10/roundcube/config.inc.php +++ b/install/ubuntu/17.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/17.10/roundcube/vesta.php b/install/ubuntu/17.10/roundcube/vesta.php index c271004d9..b64038dae 100644 --- a/install/ubuntu/17.10/roundcube/vesta.php +++ b/install/ubuntu/17.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ -class rcube_vesta_password { +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ class rcube_vesta_password { $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ class rcube_vesta_password { $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -49,7 +49,7 @@ class rcube_vesta_password { $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/17.10/templates/web/skel/public_html/index.html b/install/ubuntu/17.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/17.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/17.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/17.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/17.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/17.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/17.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/17.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/17.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/17.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/17.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/17.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/17.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/17.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/17.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/18.04/dovecot/conf.d/10-ssl.conf b/install/ubuntu/18.04/dovecot/conf.d/10-ssl.conf index 24cbf3e26..8d517bf1e 100644 --- a/install/ubuntu/18.04/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/18.04/dovecot/conf.d/10-ssl.conf @@ -1,5 +1,5 @@ ssl = yes ssl_protocols = !SSLv2 !SSLv3 -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/18.04/fail2ban/filter.d/vesta.conf b/install/ubuntu/18.04/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/18.04/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/18.04/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/18.04/roundcube/config.inc.php b/install/ubuntu/18.04/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/18.04/roundcube/config.inc.php +++ b/install/ubuntu/18.04/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/18.04/roundcube/vesta.php b/install/ubuntu/18.04/roundcube/vesta.php index b4a2a6b6c..30cc2c8a8 100644 --- a/install/ubuntu/18.04/roundcube/vesta.php +++ b/install/ubuntu/18.04/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ -class rcube_vesta_password { +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ class rcube_vesta_password { $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ class rcube_vesta_password { $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -49,7 +49,7 @@ class rcube_vesta_password { $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/18.04/templates/web/skel/public_html/index.html b/install/ubuntu/18.04/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/18.04/templates/web/skel/public_html/index.html +++ b/install/ubuntu/18.04/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/18.04/templates/web/skel/public_html/robots.txt b/install/ubuntu/18.04/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/18.04/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/18.04/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/18.04/templates/web/skel/public_shtml/index.html b/install/ubuntu/18.04/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/18.04/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/18.04/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/18.04/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/18.04/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/18.04/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/18.04/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/18.04/vsftpd/vsftpd.conf b/install/ubuntu/18.04/vsftpd/vsftpd.conf index 75e0104fe..ef31ee29d 100644 --- a/install/ubuntu/18.04/vsftpd/vsftpd.conf +++ b/install/ubuntu/18.04/vsftpd/vsftpd.conf @@ -36,5 +36,5 @@ ssl_sslv2=NO ssl_sslv3=NO force_local_data_ssl=NO force_local_logins_ssl=NO -rsa_cert_file=/usr/local/vesta/ssl/certificate.crt -rsa_private_key_file=/usr/local/vesta/ssl/certificate.key +rsa_cert_file=/usr/local/devit/ssl/certificate.crt +rsa_private_key_file=/usr/local/devit/ssl/certificate.key diff --git a/install/ubuntu/18.10/dovecot/conf.d/10-ssl.conf b/install/ubuntu/18.10/dovecot/conf.d/10-ssl.conf index 24cbf3e26..8d517bf1e 100644 --- a/install/ubuntu/18.10/dovecot/conf.d/10-ssl.conf +++ b/install/ubuntu/18.10/dovecot/conf.d/10-ssl.conf @@ -1,5 +1,5 @@ ssl = yes ssl_protocols = !SSLv2 !SSLv3 -ssl_cert = -actionstop = /usr/local/vesta/bin/v-delete-firewall-chain +actionstart = /usr/local/devit/bin/v-add-firewall-chain +actionstop = /usr/local/devit/bin/v-delete-firewall-chain actioncheck = iptables -n -L INPUT | grep -q 'fail2ban-[ \t]' -actionban = /usr/local/vesta/bin/v-add-firewall-ban -actionunban = /usr/local/vesta/bin/v-delete-firewall-ban +actionban = /usr/local/devit/bin/v-add-firewall-ban +actionunban = /usr/local/devit/bin/v-delete-firewall-ban diff --git a/install/ubuntu/18.10/fail2ban/filter.d/vesta.conf b/install/ubuntu/18.10/fail2ban/filter.d/vesta.conf index 69670a56e..74bf1e532 100644 --- a/install/ubuntu/18.10/fail2ban/filter.d/vesta.conf +++ b/install/ubuntu/18.10/fail2ban/filter.d/vesta.conf @@ -1,4 +1,4 @@ -# Fail2Ban filter for unsuccesfull Vesta authentication attempts +# Fail2Ban filter for unsuccesfull DevIT authentication attempts # [INCLUDES] diff --git a/install/ubuntu/18.10/roundcube/config.inc.php b/install/ubuntu/18.10/roundcube/config.inc.php index 0c82b1bc1..fc862458f 100644 --- a/install/ubuntu/18.10/roundcube/config.inc.php +++ b/install/ubuntu/18.10/roundcube/config.inc.php @@ -4,7 +4,7 @@ // ----------------------- // A driver to use for password change. Default: "sql". // See README file for list of supported driver names. -$rcmail_config['password_driver'] = 'vesta'; +$rcmail_config['password_driver'] = 'devit'; // Require the new password to be a certain length. // set to blank to allow passwords of any length @@ -26,8 +26,8 @@ $rcmail_config['password_login_exceptions'] = null; // Enable this option to use punycoded names $rcmail_config['password_idn_ascii'] = false; -// Vesta Driver options +// DevIT Driver options // ----------------------- // Control Panel host -$rcmail_config['password_vesta_host'] = 'localhost'; -$rcmail_config['password_vesta_port'] = '8083'; +$rcmail_config['password_devit_host'] = 'localhost'; +$rcmail_config['password_devit_port'] = '8083'; diff --git a/install/ubuntu/18.10/roundcube/vesta.php b/install/ubuntu/18.10/roundcube/vesta.php index b4a2a6b6c..30cc2c8a8 100644 --- a/install/ubuntu/18.10/roundcube/vesta.php +++ b/install/ubuntu/18.10/roundcube/vesta.php @@ -1,26 +1,26 @@ + * @author Serghey Rodin */ -class rcube_vesta_password { +class rcube_devit_password { function save($curpass, $passwd) { $rcmail = rcmail::get_instance(); - $vesta_host = $rcmail->config->get('password_vesta_host'); + $devit_host = $rcmail->config->get('password_devit_host'); - if (empty($vesta_host)) + if (empty($devit_host)) { - $vesta_host = 'localhost'; + $devit_host = 'localhost'; } - $vesta_port = $rcmail->config->get('password_vesta_port'); - if (empty($vesta_port)) + $devit_port = $rcmail->config->get('password_devit_port'); + if (empty($devit_port)) { - $vesta_port = '8083'; + $devit_port = '8083'; } $postvars = array( @@ -32,7 +32,7 @@ class rcube_vesta_password { $postdata = http_build_query($postvars); $send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL; - $send .= 'Host: ' . $vesta_host . PHP_EOL; + $send .= 'Host: ' . $devit_host . PHP_EOL; $send .= 'User-Agent: PHP Script' . PHP_EOL; $send .= 'Content-length: ' . strlen($postdata) . PHP_EOL; $send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL; @@ -40,7 +40,7 @@ class rcube_vesta_password { $send .= PHP_EOL; $send .= $postdata . PHP_EOL . PHP_EOL; - //$fp = fsockopen('ssl://' . $vesta_host, $vesta_port); + //$fp = fsockopen('ssl://' . $devit_host, $devit_port); $errno = ""; $errstr = ""; $context = stream_context_create(); @@ -49,7 +49,7 @@ class rcube_vesta_password { $result = stream_context_set_option($context, 'ssl', 'verify_host', false); $result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true); - $fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); + $fp = stream_socket_client('ssl://' . $devit_host . ':'.$devit_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fputs($fp, $send); $result = fread($fp, 2048); fclose($fp); diff --git a/install/ubuntu/18.10/templates/web/skel/public_html/index.html b/install/ubuntu/18.10/templates/web/skel/public_html/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/18.10/templates/web/skel/public_html/index.html +++ b/install/ubuntu/18.10/templates/web/skel/public_html/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/18.10/templates/web/skel/public_html/robots.txt b/install/ubuntu/18.10/templates/web/skel/public_html/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/18.10/templates/web/skel/public_html/robots.txt +++ b/install/ubuntu/18.10/templates/web/skel/public_html/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/18.10/templates/web/skel/public_shtml/index.html b/install/ubuntu/18.10/templates/web/skel/public_shtml/index.html index 1144ade96..64022c60b 100755 --- a/install/ubuntu/18.10/templates/web/skel/public_shtml/index.html +++ b/install/ubuntu/18.10/templates/web/skel/public_shtml/index.html @@ -18,7 +18,7 @@

%domain%

diff --git a/install/ubuntu/18.10/templates/web/skel/public_shtml/robots.txt b/install/ubuntu/18.10/templates/web/skel/public_shtml/robots.txt index 00ee83dcf..ade56f92d 100755 --- a/install/ubuntu/18.10/templates/web/skel/public_shtml/robots.txt +++ b/install/ubuntu/18.10/templates/web/skel/public_shtml/robots.txt @@ -1,3 +1,3 @@ -# vestacp autogenerated robots.txt +# devitcp autogenerated robots.txt User-agent: * Crawl-delay: 10 diff --git a/install/ubuntu/18.10/vsftpd/vsftpd.conf b/install/ubuntu/18.10/vsftpd/vsftpd.conf index 75e0104fe..ef31ee29d 100644 --- a/install/ubuntu/18.10/vsftpd/vsftpd.conf +++ b/install/ubuntu/18.10/vsftpd/vsftpd.conf @@ -36,5 +36,5 @@ ssl_sslv2=NO ssl_sslv3=NO force_local_data_ssl=NO force_local_logins_ssl=NO -rsa_cert_file=/usr/local/vesta/ssl/certificate.crt -rsa_private_key_file=/usr/local/vesta/ssl/certificate.key +rsa_cert_file=/usr/local/devit/ssl/certificate.crt +rsa_private_key_file=/usr/local/devit/ssl/certificate.key diff --git a/install/vst-install-amazon.sh b/install/vst-install-amazon.sh index 9efdc29ad..0452f6e91 100644 --- a/install/vst-install-amazon.sh +++ b/install/vst-install-amazon.sh @@ -1,22 +1,22 @@ #!/bin/bash -# Vesta Amazon installer v.05 +# DevIT Amazon installer v.05 #----------------------------------------------------------# # Variables&Functions # #----------------------------------------------------------# export PATH=$PATH:/sbin -RHOST='r.vestacp.com' -CHOST='c.vestacp.com' +RHOST='r.devitcp.com' +CHOST='c.devitcp.com' REPO='cmmnt' VERSION='rhel' -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os='rhel' release='6' codename="${os}_$release" -vestacp="$VESTA/install/$VERSION/$release" +devitcp="$VESTA/install/$VERSION/$release" # Defining software pack for all distros software="nginx httpd mod_ssl mod_ruid2 mod_fcgid mod_extract_forwarded @@ -27,8 +27,8 @@ software="nginx httpd mod_ssl mod_ruid2 mod_fcgid mod_extract_forwarded postgresql-server postgresql-contrib phpPgAdmin e2fsprogs openssh-clients ImageMagick curl mc screen ftp zip unzip flex sqlite pcre sudo bc jwhois mailx lsof tar telnet rrdtool net-tools ntp GeoIP freetype fail2ban - which vesta vesta-nginx vesta-php vim-common expect vesta-ioncube - vesta-softaculous" + which devit devit-nginx devit-php vim-common expect devit-ioncube + devit-softaculous" # Defining help function help() { @@ -55,12 +55,12 @@ help() { -s, --hostname Set hostname -u, --ssl Add LE SSL for hostname [yes|no] default: no -e, --email Set admin email - -d, --port Set Vesta port + -d, --port Set DevIT port -p, --password Set admin password -f, --force Force installation -h, --help Print this help - Example: bash $0 -e demo@vestacp.com -p p4ssw0rd --apache no --phpfpm yes" + Example: bash $0 -e demo@devitcp.com -p p4ssw0rd --apache no --phpfpm yes" exit 1 } @@ -178,7 +178,7 @@ while getopts "a:n:w:v:j:k:m:g:x:z:c:t:i:b:r:o:q:l:y:s:u:e:d:p:fh" Option; do s) servername=$OPTARG ;; # Hostname u) ssl=$OPTARG ;; # Add Let's Encrypt SSL for hostname e) email=$OPTARG ;; # Admin email - d) port=$OPTARG ;; # Vesta port + d) port=$OPTARG ;; # DevIT port p) vpass=$OPTARG ;; # Admin password f) force='yes' ;; # Force install h) help ;; # Help @@ -251,13 +251,13 @@ if [ ! -e '/usr/bin/wget' ]; then fi # Checking repository availability -wget -q "c.vestacp.com/GPG.txt" -O /dev/null -check_result $? "No access to Vesta repository" +wget -q "c.devitcp.com/GPG.txt" -O /dev/null +check_result $? "No access to DevIT repository" # Checking installed packages tmpfile=$(mktemp -p /tmp) rpm -qa > $tmpfile -for pkg in exim mysql-server httpd nginx vesta; do +for pkg in exim mysql-server httpd nginx devit; do if [ ! -z "$(grep $pkg $tmpfile)" ]; then conflicts="$pkg $conflicts" fi @@ -292,7 +292,7 @@ echo ' _| _| _|_|_| _|_| _| _|_|_|_|' echo ' _| _| _| _| _| _| _|' echo ' _| _|_|_|_| _|_|_| _| _| _|' echo -echo ' Vesta Control Panel' +echo ' DevIT Control Panel' echo -e "\n\n" echo 'The following software will be installed on your system:' @@ -389,9 +389,9 @@ if [ "$interactive" = 'yes' ]; then read -p 'Please enter admin email address: ' email fi - # Asking for Vesta port + # Asking for DevIT port if [ -z "$port" ]; then - read -p 'Please enter Vesta port number (press enter for 8083): ' port + read -p 'Please enter DevIT port number (press enter for 8083): ' port fi # Asking to set FQDN hostname @@ -476,15 +476,15 @@ echo "baseurl=http://nginx.org/packages/centos/$release/\$basearch/" >> $nrepo echo "gpgcheck=0" >> $nrepo echo "enabled=1" >> $nrepo -# Installing Vesta repository -vrepo='/etc/yum.repos.d/vesta.repo' -echo "[vesta]" > $vrepo -echo "name=Vesta - $REPO" >> $vrepo +# Installing DevIT repository +vrepo='/etc/yum.repos.d/devit.repo' +echo "[devit]" > $vrepo +echo "name=DevIT - $REPO" >> $vrepo echo "baseurl=http://$RHOST/$REPO/$release/\$basearch/" >> $vrepo echo "enabled=1" >> $vrepo echo "gpgcheck=1" >> $vrepo echo "gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA" >> $vrepo -wget c.vestacp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA +wget c.devitcp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA #----------------------------------------------------------# @@ -495,7 +495,7 @@ wget c.vestacp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA mkdir -p $vst_backups cd $vst_backups mkdir nginx httpd php php-fpm vsftpd proftpd named exim dovecot clamd \ - spamassassin mysql postgresql mongodb vesta + spamassassin mysql postgresql mongodb devit # Backup Nginx configuration service nginx stop > /dev/null 2>&1 @@ -556,10 +556,10 @@ mv /root/.my.cnf $vst_backups/mysql > /dev/null 2>&1 service postgresql stop > /dev/null 2>&1 mv /var/lib/pgsql/data $vst_backups/postgresql/ >/dev/null 2>&1 -# Backup Vesta -service vesta stop > /dev/null 2>&1 -mv $VESTA/data/* $vst_backups/vesta > /dev/null 2>&1 -mv $VESTA/conf/* $vst_backups/vesta > /dev/null 2>&1 +# Backup DevIT +service devit stop > /dev/null 2>&1 +mv $VESTA/data/* $vst_backups/devit > /dev/null 2>&1 +mv $VESTA/conf/* $vst_backups/devit > /dev/null 2>&1 #----------------------------------------------------------# @@ -626,7 +626,7 @@ if [ "$postgresql" = 'no' ]; then software=$(echo "$software" | sed -e 's/phpPgAdmin//') fi if [ "$softaculous" = 'no' ]; then - software=$(echo "$software" | sed -e 's/vesta-softaculous//') + software=$(echo "$software" | sed -e 's/devit-softaculous//') fi if [ "$iptables" = 'no' ] || [ "$fail2ban" = 'no' ]; then software=$(echo "$software" | sed -e 's/fail2ban//') @@ -660,7 +660,7 @@ check_lo_ipv6=$(/sbin/ip addr | grep 'inet6') check_rc_ipv6=$(grep 'scope global dev lo' /etc/rc.local) if [ ! -z "$check_lo_ipv6)" ] && [ -z "$check_rc_ipv6" ]; then ip addr add ::2/128 scope global dev lo - echo "# Vesta: Workraround for openssl validation func" >> /etc/rc.local + echo "# DevIT: Workraround for openssl validation func" >> /etc/rc.local echo "ip addr add ::2/128 scope global dev lo" >> /etc/rc.local chmod a+x /etc/rc.local fi @@ -707,21 +707,21 @@ fi # Installing sudo configuration mkdir -p /etc/sudoers.d -cp -f $vestacp/sudo/admin /etc/sudoers.d/ +cp -f $devitcp/sudo/admin /etc/sudoers.d/ chmod 440 /etc/sudoers.d/admin # Configuring system env -echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh -chmod 755 /etc/profile.d/vesta.sh -source /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/devit.sh +chmod 755 /etc/profile.d/devit.sh +source /etc/profile.d/devit.sh echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile -# Configuring logrotate for vesta logs -cp -f $vestacp/logrotate/vesta /etc/logrotate.d/ +# Configuring logrotate for devit logs +cp -f $devitcp/logrotate/devit /etc/logrotate.d/ -# Building directory tree and creating some blank files for vesta +# Building directory tree and creating some blank files for devit mkdir -p $VESTA/conf $VESTA/log $VESTA/ssl $VESTA/data/ips \ $VESTA/data/queue $VESTA/data/users $VESTA/data/firewall \ $VESTA/data/sessions @@ -732,103 +732,103 @@ touch $VESTA/data/queue/backup.pipe $VESTA/data/queue/disk.pipe \ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* -rm -f /var/log/vesta -ln -s $VESTA/log /var/log/vesta +rm -f /var/log/devit +ln -s $VESTA/log /var/log/devit chmod 770 $VESTA/data/sessions -# Generating vesta configuration -rm -f $VESTA/conf/vesta.conf 2>/dev/null -touch $VESTA/conf/vesta.conf -chmod 660 $VESTA/conf/vesta.conf +# Generating devit configuration +rm -f $VESTA/conf/devit.conf 2>/dev/null +touch $VESTA/conf/devit.conf +chmod 660 $VESTA/conf/devit.conf # Web stack if [ "$apache" = 'yes' ] && [ "$nginx" = 'no' ] ; then - echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='apache'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='apache'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then - echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='apache'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='8080'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "PROXY_PORT='80'" >> $VESTA/conf/vesta.conf - echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='apache'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='8080'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "PROXY_PORT='80'" >> $VESTA/conf/devit.conf + echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'no' ] && [ "$nginx" = 'yes' ]; then - echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='openssl'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='openssl'" >> $VESTA/conf/devit.conf if [ "$phpfpm" = 'yes' ]; then - echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/vesta.conf + echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/devit.conf fi - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi # FTP stack if [ "$vsftpd" = 'yes' ]; then - echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/devit.conf fi if [ "$proftpd" = 'yes' ]; then - echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/devit.conf fi # DNS stack if [ "$named" = 'yes' ]; then - echo "DNS_SYSTEM='named'" >> $VESTA/conf/vesta.conf + echo "DNS_SYSTEM='named'" >> $VESTA/conf/devit.conf fi # Mail stack if [ "$exim" = 'yes' ]; then - echo "MAIL_SYSTEM='exim'" >> $VESTA/conf/vesta.conf + echo "MAIL_SYSTEM='exim'" >> $VESTA/conf/devit.conf if [ "$clamd" = 'yes' ]; then - echo "ANTIVIRUS_SYSTEM='clamd.scan'" >> $VESTA/conf/vesta.conf + echo "ANTIVIRUS_SYSTEM='clamd.scan'" >> $VESTA/conf/devit.conf fi if [ "$spamd" = 'yes' ]; then - echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/vesta.conf + echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/devit.conf fi if [ "$dovecot" = 'yes' ]; then - echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/vesta.conf + echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/devit.conf fi fi # Cron daemon -echo "CRON_SYSTEM='crond'" >> $VESTA/conf/vesta.conf +echo "CRON_SYSTEM='crond'" >> $VESTA/conf/devit.conf # Firewall stack if [ "$iptables" = 'yes' ]; then - echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/devit.conf fi if [ "$iptables" = 'yes' ] && [ "$fail2ban" = 'yes' ]; then - echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/devit.conf fi # Disk quota if [ "$quota" = 'yes' ]; then - echo "DISK_QUOTA='yes'" >> $VESTA/conf/vesta.conf + echo "DISK_QUOTA='yes'" >> $VESTA/conf/devit.conf fi # Backups -echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/vesta.conf +echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/devit.conf # Language -echo "LANGUAGE='$lang'" >> $VESTA/conf/vesta.conf +echo "LANGUAGE='$lang'" >> $VESTA/conf/devit.conf # Version -echo "VERSION='0.9.8'" >> $VESTA/conf/vesta.conf +echo "VERSION='0.9.8'" >> $VESTA/conf/devit.conf # Installing hosting packages -cp -rf $vestacp/packages $VESTA/data/ +cp -rf $devitcp/packages $VESTA/data/ # Installing templates -cp -rf $vestacp/templates $VESTA/data/ +cp -rf $devitcp/templates $VESTA/data/ # Copying index.html to default documentroot cp $VESTA/data/templates/web/skel/public_html/index.html /var/www/html/ @@ -836,14 +836,14 @@ sed -i 's/%domain%/It worked!/g' /var/www/html/index.html # Installing firewall rules chkconfig firewalld off >/dev/null 2>&1 -cp -rf $vestacp/firewall $VESTA/data/ +cp -rf $devitcp/firewall $VESTA/data/ # Configuring server hostname $VESTA/bin/v-change-sys-hostname $servername 2>/dev/null # Generating SSL certificate $VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \ - 'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem + 'San Francisco' 'DevIT Control Panel' 'IT' > /tmp/vst.pem # Parsing certificate file crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:) @@ -865,13 +865,13 @@ rm /tmp/vst.pem if [ "$nginx" = 'yes' ]; then rm -f /etc/nginx/conf.d/*.conf - cp -f $vestacp/nginx/nginx.conf /etc/nginx/ - cp -f $vestacp/nginx/status.conf /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phppgadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/webmail.inc /etc/nginx/conf.d/ - cp -f $vestacp/logrotate/nginx /etc/logrotate.d/ - echo > /etc/nginx/conf.d/vesta.conf + cp -f $devitcp/nginx/nginx.conf /etc/nginx/ + cp -f $devitcp/nginx/status.conf /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phppgadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/webmail.inc /etc/nginx/conf.d/ + cp -f $devitcp/logrotate/nginx /etc/logrotate.d/ + echo > /etc/nginx/conf.d/devit.conf mkdir -p /var/log/nginx/domains if [ "$release" -ge 7 ]; then mkdir -p /etc/systemd/system/nginx.service.d @@ -885,7 +885,7 @@ if [ "$nginx" = 'yes' ]; then # Workaround for OpenVZ/Virtuozzo if [ "$release" -ge '7' ] && [ -e "/proc/vz/veinfo" ]; then - echo "#Vesta: workraround for networkmanager" >> /etc/rc.local + echo "#DevIT: workraround for networkmanager" >> /etc/rc.local echo "sleep 3 && service nginx restart" >> /etc/rc.local fi fi @@ -896,11 +896,11 @@ fi #----------------------------------------------------------# if [ "$apache" = 'yes' ]; then - cp -f $vestacp/httpd/httpd.conf /etc/httpd/conf/ - cp -f $vestacp/httpd/status.conf /etc/httpd/conf.d/ - cp -f $vestacp/httpd/ssl.conf /etc/httpd/conf.d/ - cp -f $vestacp/httpd/ruid2.conf /etc/httpd/conf.d/ - cp -f $vestacp/logrotate/httpd /etc/logrotate.d/ + cp -f $devitcp/httpd/httpd.conf /etc/httpd/conf/ + cp -f $devitcp/httpd/status.conf /etc/httpd/conf.d/ + cp -f $devitcp/httpd/ssl.conf /etc/httpd/conf.d/ + cp -f $devitcp/httpd/ruid2.conf /etc/httpd/conf.d/ + cp -f $devitcp/logrotate/httpd /etc/logrotate.d/ if [ $release -lt 7 ]; then cd /etc/httpd/conf.d echo "MEFaccept 127.0.0.1" >> mod_extract_forwarded.conf @@ -910,7 +910,7 @@ if [ "$apache" = 'yes' ]; then cd /etc/httpd/conf.modules.d sed -i "s/^/#/" 00-dav.conf 00-lua.conf 00-proxy.conf fi - echo > /etc/httpd/conf.d/vesta.conf + echo > /etc/httpd/conf.d/devit.conf cd /var/log/httpd touch access_log error_log suexec.log chmod 640 access_log error_log suexec.log @@ -930,7 +930,7 @@ if [ "$apache" = 'yes' ]; then # Workaround for OpenVZ/Virtuozzo if [ "$release" -ge '7' ] && [ -e "/proc/vz/veinfo" ]; then - echo "#Vesta: workraround for networkmanager" >> /etc/rc.local + echo "#DevIT: workraround for networkmanager" >> /etc/rc.local echo "sleep 2 && service httpd restart" >> /etc/rc.local fi fi @@ -941,7 +941,7 @@ fi #----------------------------------------------------------# if [ "$phpfpm" = 'yes' ]; then - cp -f $vestacp/php-fpm/www.conf /etc/php-fpm.d/ + cp -f $devitcp/php-fpm/www.conf /etc/php-fpm.d/ chkconfig php-fpm on service php-fpm start check_result $? "php-fpm start failed" @@ -970,7 +970,7 @@ done #----------------------------------------------------------# if [ "$vsftpd" = 'yes' ]; then - cp -f $vestacp/vsftpd/vsftpd.conf /etc/vsftpd/ + cp -f $devitcp/vsftpd/vsftpd.conf /etc/vsftpd/ chkconfig vsftpd on service vsftpd start check_result $? "vsftpd start failed" @@ -985,7 +985,7 @@ fi #----------------------------------------------------------# if [ "$proftpd" = 'yes' ]; then - cp -f $vestacp/proftpd/proftpd.conf /etc/ + cp -f $devitcp/proftpd/proftpd.conf /etc/ chkconfig proftpd on service proftpd start check_result $? "proftpd start failed" @@ -1016,7 +1016,7 @@ if [ "$mysql" = 'yes' ]; then service='mariadb' fi - cp -f $vestacp/$service/$mycnf /etc/my.cnf + cp -f $devitcp/$service/$mycnf /etc/my.cnf chkconfig $service on service $service start if [ "$?" -ne 0 ]; then @@ -1041,9 +1041,9 @@ if [ "$mysql" = 'yes' ]; then # Configuring phpMyAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pma/phpMyAdmin.conf /etc/httpd/conf.d/ + cp -f $devitcp/pma/phpMyAdmin.conf /etc/httpd/conf.d/ fi - cp -f $vestacp/pma/config.inc.conf /etc/phpMyAdmin/config.inc.php + cp -f $devitcp/pma/config.inc.conf /etc/phpMyAdmin/config.inc.php sed -i "s#%blowfish_secret#$blowfish_secret#g" /etc/phpMyAdmin/config.inc.php fi @@ -1058,19 +1058,19 @@ if [ "$postgresql" = 'yes' ]; then service postgresql start sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" service postgresql stop - cp -f $vestacp/postgresql/pg_hba.conf /var/lib/pgsql/data/ + cp -f $devitcp/postgresql/pg_hba.conf /var/lib/pgsql/data/ service postgresql start else service postgresql initdb - cp -f $vestacp/postgresql/pg_hba.conf /var/lib/pgsql/data/ + cp -f $devitcp/postgresql/pg_hba.conf /var/lib/pgsql/data/ service postgresql start sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" fi # Configuring phpPgAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pga/phpPgAdmin.conf /etc/httpd/conf.d/ + cp -f $devitcp/pga/phpPgAdmin.conf /etc/httpd/conf.d/ fi - cp -f $vestacp/pga/config.inc.php /etc/phpPgAdmin/ + cp -f $devitcp/pga/config.inc.php /etc/phpPgAdmin/ fi @@ -1079,7 +1079,7 @@ fi #----------------------------------------------------------# if [ "$named" = 'yes' ]; then - cp -f $vestacp/named/named.conf /etc/ + cp -f $devitcp/named/named.conf /etc/ chown root:named /etc/named.conf chmod 640 /etc/named.conf chkconfig named on @@ -1094,9 +1094,9 @@ fi if [ "$exim" = 'yes' ]; then gpasswd -a exim mail - cp -f $vestacp/exim/exim.conf /etc/exim/ - cp -f $vestacp/exim/dnsbl.conf /etc/exim/ - cp -f $vestacp/exim/spam-blocks.conf /etc/exim/ + cp -f $devitcp/exim/exim.conf /etc/exim/ + cp -f $devitcp/exim/dnsbl.conf /etc/exim/ + cp -f $devitcp/exim/spam-blocks.conf /etc/exim/ touch /etc/exim/white-blocks.conf if [ "$spamd" = 'yes' ]; then @@ -1129,8 +1129,8 @@ fi if [ "$dovecot" = 'yes' ]; then gpasswd -a dovecot mail - cp -rf $vestacp/dovecot /etc/ - cp -f $vestacp/logrotate/dovecot /etc/logrotate.d/ + cp -rf $devitcp/dovecot /etc/ + cp -f $devitcp/logrotate/dovecot /etc/logrotate.d/ chown -R root:root /etc/dovecot* chkconfig dovecot on service dovecot start @@ -1147,14 +1147,14 @@ if [ "$clamd" = 'yes' ]; then gpasswd -a clam exim gpasswd -a clam mail cp -r /etc/clamd.d $vst_backups/clamd >/dev/null 2>&1 - cp -f $vestacp/clamav/clamd.conf /etc/clamd.conf + cp -f $devitcp/clamav/clamd.conf /etc/clamd.conf ln -sf /etc/clamd.conf /etc/clamd.d/scan.conf - cp -f $vestacp/clamav/freshclam.conf /etc/ + cp -f $devitcp/clamav/freshclam.conf /etc/ mkdir -p /var/log/clamav /var/run/clamav /var/run/clamd.scan chown clam:clam /var/log/clamav /var/run/clamav /var/run/clamd.scan chown -R clam:clam /var/lib/clamav if [ "$release" -ge '7' ]; then - cp -f $vestacp/clamav/clamd.service /usr/lib/systemd/system/ + cp -f $devitcp/clamav/clamd.service /usr/lib/systemd/system/ systemctl --system daemon-reload fi /usr/bin/freshclam @@ -1192,12 +1192,12 @@ fi if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then if [ "$apache" = 'yes' ]; then - cp -f $vestacp/roundcube/roundcubemail.conf /etc/httpd/conf.d/ + cp -f $devitcp/roundcube/roundcubemail.conf /etc/httpd/conf.d/ fi - cp -f $vestacp/roundcube/main.inc.php /etc/roundcubemail/config.inc.php + cp -f $devitcp/roundcube/main.inc.php /etc/roundcubemail/config.inc.php cd /usr/share/roundcubemail/plugins/password - cp -f $vestacp/roundcube/vesta.php drivers/vesta.php - cp -f $vestacp/roundcube/config.inc.php config.inc.php + cp -f $devitcp/roundcube/devit.php drivers/devit.php + cp -f $devitcp/roundcube/config.inc.php config.inc.php sed -i "s/localhost/$servername/g" config.inc.php chmod a+r /etc/roundcubemail/* chmod -f 777 /var/log/roundcubemail @@ -1221,7 +1221,7 @@ fi #----------------------------------------------------------# if [ "$fail2ban" = 'yes' ]; then - cp -rf $vestacp/fail2ban /etc/ + cp -rf $devitcp/fail2ban /etc/ if [ "$dovecot" = 'no' ]; then fline=$(cat /etc/fail2ban/jail.local |grep -n dovecot-iptables -A 2) fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) @@ -1270,7 +1270,7 @@ if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" = 'yes' ]; then groupdel admin > /dev/null 2>&1 fi -# Adding Vesta admin account +# Adding DevIT admin account $VESTA/bin/v-add-user admin $vpass $email default System Administrator check_result $? "can't create admin user" $VESTA/bin/v-change-user-shell admin bash @@ -1288,7 +1288,7 @@ if [ "$iptables" = 'yes' ]; then fi # Get public IP -pub_ip=$(curl -s vestacp.com/what-is-my-ip/) +pub_ip=$(curl -s devitcp.com/what-is-my-ip/) if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then echo "$VESTA/bin/v-update-sys-ip" >> /etc/rc.local $VESTA/bin/v-change-sys-ip-nat $ip $pub_ip @@ -1337,30 +1337,30 @@ fi # Enabling Softaculous plugin if [ "$softaculous" = 'yes' ]; then - $VESTA/bin/v-add-vesta-softaculous + $VESTA/bin/v-add-devit-softaculous fi -# Starting Vesta service -chkconfig vesta on -service vesta start -check_result $? "vesta start failed" +# Starting DevIT service +chkconfig devit on +service devit start +check_result $? "devit start failed" chown admin:admin $VESTA/data/sessions # Adding notifications $VESTA/upd/add_notifications.sh # Adding cronjob for autoupdates -$VESTA/bin/v-add-cron-vesta-autoupdate +$VESTA/bin/v-add-cron-devit-autoupdate if [ "$port" != "8083" ]; then - echo "=== Set Vesta port: $port" - $VESTA/bin/v-change-vesta-port $port + echo "=== Set DevIT port: $port" + $VESTA/bin/v-change-devit-port $port fi -echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/vesta.conf +echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/devit.conf #----------------------------------------------------------# -# Vesta Access Info # +# DevIT Access Info # #----------------------------------------------------------# # Comparing hostname and ip @@ -1417,28 +1417,28 @@ else echo "We will not generate SSL because of this" fi echo "===" -echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/vesta.conf +echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/devit.conf fi # Sending notification to admin email echo -e "Congratulations, you have just successfully installed \ -Vesta Control Panel +DevIT Control Panel https://$ip:$port username: admin password: $vpass -We hope that you enjoy your installation of Vesta. Please \ +We hope that you enjoy your installation of DevIT. Please \ feel free to contact us anytime if you have any questions. Thank you. -- Sincerely yours -vestacp.com team +devitcp.com team " > $tmpfile send_mail="$VESTA/web/inc/mail-wrapper.php" -cat $tmpfile | $send_mail -s "Vesta Control Panel" $email +cat $tmpfile | $send_mail -s "DevIT Control Panel" $email # Congrats echo '=======================================================' diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 0f87f2309..51f05fa8f 100644 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1,22 +1,22 @@ #!/bin/bash -# Vesta Debian installer v.05 +# DevIT Debian installer v.05 #----------------------------------------------------------# # Variables&Functions # #----------------------------------------------------------# export PATH=$PATH:/sbin export DEBIAN_FRONTEND=noninteractive -RHOST='apt.vestacp.com' -CHOST='c.vestacp.com' +RHOST='apt.devitcp.com' +CHOST='c.devitcp.com' VERSION='debian' -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os='debian' release=$(cat /etc/debian_version|grep -o [0-9]|head -n1) codename="$(cat /etc/os-release |grep VERSION= |cut -f 2 -d \(|cut -f 1 -d \))" -vestacp="$VESTA/install/$VERSION/$release" +devitcp="$VESTA/install/$VERSION/$release" if [ "$release" -eq 9 ]; then software="nginx apache2 apache2-utils apache2-suexec-custom @@ -28,8 +28,8 @@ if [ "$release" -eq 9 ]; then mysql-client postgresql postgresql-contrib phppgadmin phpmyadmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php expect libmail-dkim-perl - unrar-free vim-common vesta-ioncube vesta-softaculous net-tools unzip" + bsdmainutils cron devit devit-nginx devit-php expect libmail-dkim-perl + unrar-free vim-common devit-ioncube devit-softaculous net-tools unzip" elif [ "$release" -eq 8 ]; then software="nginx apache2 apache2-utils apache2.2-common apache2-suexec-custom libapache2-mod-ruid2 @@ -41,8 +41,8 @@ elif [ "$release" -eq 8 ]; then mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php expect libmail-dkim-perl - unrar-free vim-common vesta-ioncube vesta-softaculous net-tools unzip" + bsdmainutils cron devit devit-nginx devit-php expect libmail-dkim-perl + unrar-free vim-common devit-ioncube devit-softaculous net-tools unzip" else software="nginx apache2 apache2-utils apache2.2-common apache2-suexec-custom libapache2-mod-ruid2 @@ -54,8 +54,8 @@ else mysql-client postgresql postgresql-contrib phppgadmin phpMyAdmin mc flex whois rssh git idn zip sudo bc ftp lsof ntpdate rrdtool quota e2fslibs bsdutils e2fsprogs curl imagemagick fail2ban dnsutils - bsdmainutils cron vesta vesta-nginx vesta-php expect unrar-free - vim-common vesta-ioncube vesta-softaculous net-tools unzip" + bsdmainutils cron devit devit-nginx devit-php expect unrar-free + vim-common devit-ioncube devit-softaculous net-tools unzip" fi # Defining help function @@ -83,12 +83,12 @@ help() { -s, --hostname Set hostname -u, --ssl Add LE SSL for hostname [yes|no] default: no -e, --email Set admin email - -d, --port Set Vesta port + -d, --port Set DevIT port -p, --password Set admin password -f, --force Force installation -h, --help Print this help - Example: bash $0 -e demo@vestacp.com -p p4ssw0rd --apache no --phpfpm yes" + Example: bash $0 -e demo@devitcp.com -p p4ssw0rd --apache no --phpfpm yes" exit 1 } @@ -207,7 +207,7 @@ while getopts "a:n:w:v:j:k:m:g:x:z:c:t:i:b:r:o:q:l:y:s:u:e:d:p:fh" Option; do s) servername=$OPTARG ;; # Hostname u) ssl=$OPTARG ;; # Add Let's Encrypt SSL for hostname e) email=$OPTARG ;; # Admin email - d) port=$OPTARG ;; # Vesta port + d) port=$OPTARG ;; # DevIT port p) vpass=$OPTARG ;; # Admin password f) force='yes' ;; # Force install h) help ;; # Help @@ -279,13 +279,13 @@ if [ ! -e '/usr/bin/wget' ]; then fi # Checking repository availability -wget -q "c.vestacp.com/deb_signing.key" -O /dev/null -check_result $? "No access to Vesta repository" +wget -q "c.devitcp.com/deb_signing.key" -O /dev/null +check_result $? "No access to DevIT repository" # Check installed packages tmpfile=$(mktemp -p /tmp) dpkg --get-selections > $tmpfile -for pkg in exim4 mysql-server apache2 nginx vesta; do +for pkg in exim4 mysql-server apache2 nginx devit; do if [ ! -z "$(grep $pkg $tmpfile)" ]; then conflicts="$pkg $conflicts" fi @@ -320,7 +320,7 @@ echo ' _| _| _|_|_| _|_| _| _|_|_|_|' echo ' _| _| _| _| _| _| _|' echo ' _| _|_|_|_| _|_|_| _| _| _|' echo -echo ' Vesta Control Panel' +echo ' DevIT Control Panel' echo -e "\n\n" echo 'Following software will be installed on your system:' @@ -413,9 +413,9 @@ if [ "$interactive" = 'yes' ]; then read -p 'Please enter admin email address: ' email fi - # Asking for Vesta port + # Asking for DevIT port if [ -z "$port" ]; then - read -p 'Please enter Vesta port number (press enter for 8083): ' port + read -p 'Please enter DevIT port number (press enter for 8083): ' port fi # Asking to set FQDN hostname @@ -493,8 +493,8 @@ echo "deb http://nginx.org/packages/debian/ $codename nginx" > $apt/nginx.list wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key apt-key add /tmp/nginx_signing.key -# Installing vesta repo -echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list +# Installing devit repo +echo "deb http://$RHOST/$codename/ $codename devit" > $apt/devit.list wget $CHOST/deb_signing.key -O deb_signing.key apt-key add deb_signing.key @@ -518,7 +518,7 @@ fi mkdir -p $vst_backups cd $vst_backups mkdir nginx apache2 php php5 php5-fpm vsftpd proftpd bind exim4 dovecot clamd -mkdir spamassassin mysql postgresql mongodb vesta +mkdir spamassassin mysql postgresql mongodb devit # Backing up Nginx configuration service nginx stop > /dev/null 2>&1 @@ -574,11 +574,11 @@ mv /var/lib/mysql $vst_backups/mysql/mysql_datadir > /dev/null 2>&1 cp -r /etc/mysql/* $vst_backups/mysql > /dev/null 2>&1 mv -f /root/.my.cnf $vst_backups/mysql > /dev/null 2>&1 -# Backup vesta -service vesta stop > /dev/null 2>&1 -cp -r $VESTA/* $vst_backups/vesta > /dev/null 2>&1 -apt-get -y remove vesta vesta-nginx vesta-php > /dev/null 2>&1 -apt-get -y purge vesta vesta-nginx vesta-php > /dev/null 2>&1 +# Backup devit +service devit stop > /dev/null 2>&1 +cp -r $VESTA/* $vst_backups/devit > /dev/null 2>&1 +apt-get -y remove devit devit-nginx devit-php > /dev/null 2>&1 +apt-get -y purge devit devit-nginx devit-php > /dev/null 2>&1 rm -rf $VESTA > /dev/null 2>&1 @@ -649,7 +649,7 @@ if [ "$postgresql" = 'no' ]; then software=$(echo "$software" | sed -e 's/phppgadmin//') fi if [ "$softaculous" = 'no' ]; then - software=$(echo "$software" | sed -e 's/vesta-softaculous//') + software=$(echo "$software" | sed -e 's/devit-softaculous//') fi if [ "$iptables" = 'no' ] || [ "$fail2ban" = 'no' ]; then software=$(echo "$software" | sed -e 's/fail2ban//') @@ -715,21 +715,21 @@ chmod 755 /usr/bin/rssh # Installing sudo configuration mkdir -p /etc/sudoers.d -cp -f $vestacp/sudo/admin /etc/sudoers.d/ +cp -f $devitcp/sudo/admin /etc/sudoers.d/ chmod 440 /etc/sudoers.d/admin # Configuring system env -echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh -chmod 755 /etc/profile.d/vesta.sh -source /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/devit.sh +chmod 755 /etc/profile.d/devit.sh +source /etc/profile.d/devit.sh echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile -# Configuring logrotate for Vesta logs -cp -f $vestacp/logrotate/vesta /etc/logrotate.d/ +# Configuring logrotate for DevIT logs +cp -f $devitcp/logrotate/devit /etc/logrotate.d/ -# Building directory tree and creating some blank files for vesta +# Building directory tree and creating some blank files for devit mkdir -p $VESTA/conf $VESTA/log $VESTA/ssl $VESTA/data/ips \ $VESTA/data/queue $VESTA/data/users $VESTA/data/firewall \ $VESTA/data/sessions @@ -740,123 +740,123 @@ touch $VESTA/data/queue/backup.pipe $VESTA/data/queue/disk.pipe \ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* -rm -f /var/log/vesta -ln -s $VESTA/log /var/log/vesta +rm -f /var/log/devit +ln -s $VESTA/log /var/log/devit chmod 770 $VESTA/data/sessions -# Generating vesta configuration -rm -f $VESTA/conf/vesta.conf 2>/dev/null -touch $VESTA/conf/vesta.conf -chmod 660 $VESTA/conf/vesta.conf +# Generating devit configuration +rm -f $VESTA/conf/devit.conf 2>/dev/null +touch $VESTA/conf/devit.conf +chmod 660 $VESTA/conf/devit.conf # WEB stack if [ "$apache" = 'yes' ] && [ "$nginx" = 'no' ] ; then - echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then - echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='8080'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "PROXY_PORT='80'" >> $VESTA/conf/vesta.conf - echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='8080'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "PROXY_PORT='80'" >> $VESTA/conf/devit.conf + echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'no' ] && [ "$nginx" = 'yes' ]; then - echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='openssl'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='openssl'" >> $VESTA/conf/devit.conf if [ "$release" -eq 9 ]; then if [ "$phpfpm" = 'yes' ]; then - echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/vesta.conf + echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/devit.conf fi else if [ "$phpfpm" = 'yes' ]; then - echo "WEB_BACKEND='php5-fpm'" >> $VESTA/conf/vesta.conf + echo "WEB_BACKEND='php5-fpm'" >> $VESTA/conf/devit.conf fi fi - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi # FTP stack if [ "$vsftpd" = 'yes' ]; then - echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/devit.conf fi if [ "$proftpd" = 'yes' ]; then - echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/devit.conf fi # DNS stack if [ "$named" = 'yes' ]; then - echo "DNS_SYSTEM='bind9'" >> $VESTA/conf/vesta.conf + echo "DNS_SYSTEM='bind9'" >> $VESTA/conf/devit.conf fi # Mail stack if [ "$exim" = 'yes' ]; then - echo "MAIL_SYSTEM='exim4'" >> $VESTA/conf/vesta.conf + echo "MAIL_SYSTEM='exim4'" >> $VESTA/conf/devit.conf if [ "$clamd" = 'yes' ]; then - echo "ANTIVIRUS_SYSTEM='clamav-daemon'" >> $VESTA/conf/vesta.conf + echo "ANTIVIRUS_SYSTEM='clamav-daemon'" >> $VESTA/conf/devit.conf fi if [ "$spamd" = 'yes' ]; then - echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/vesta.conf + echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/devit.conf fi if [ "$dovecot" = 'yes' ]; then - echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/vesta.conf + echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/devit.conf fi fi # CRON daemon -echo "CRON_SYSTEM='cron'" >> $VESTA/conf/vesta.conf +echo "CRON_SYSTEM='cron'" >> $VESTA/conf/devit.conf # Firewall stack if [ "$iptables" = 'yes' ]; then - echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/devit.conf fi if [ "$iptables" = 'yes' ] && [ "$fail2ban" = 'yes' ]; then - echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/devit.conf fi # Disk quota if [ "$quota" = 'yes' ]; then - echo "DISK_QUOTA='yes'" >> $VESTA/conf/vesta.conf + echo "DISK_QUOTA='yes'" >> $VESTA/conf/devit.conf fi # Backups -echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/vesta.conf +echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/devit.conf # Language -echo "LANGUAGE='$lang'" >> $VESTA/conf/vesta.conf +echo "LANGUAGE='$lang'" >> $VESTA/conf/devit.conf # Version -echo "VERSION='0.9.8'" >> $VESTA/conf/vesta.conf +echo "VERSION='0.9.8'" >> $VESTA/conf/devit.conf # Installing hosting packages -cp -rf $vestacp/packages $VESTA/data/ +cp -rf $devitcp/packages $VESTA/data/ # Installing templates -cp -rf $vestacp/templates $VESTA/data/ +cp -rf $devitcp/templates $VESTA/data/ # Copying index.html to default documentroot cp $VESTA/data/templates/web/skel/public_html/index.html /var/www/ sed -i 's/%domain%/It worked!/g' /var/www/index.html # Installing firewall rules -cp -rf $vestacp/firewall $VESTA/data/ +cp -rf $devitcp/firewall $VESTA/data/ # Configuring server hostname $VESTA/bin/v-change-sys-hostname $servername 2>/dev/null # Generating SSL certificate $VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \ - 'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem + 'San Francisco' 'DevIT Control Panel' 'IT' > /tmp/vst.pem # Parsing certificate file crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:) @@ -878,13 +878,13 @@ rm /tmp/vst.pem if [ "$nginx" = 'yes' ]; then rm -f /etc/nginx/conf.d/*.conf - cp -f $vestacp/nginx/nginx.conf /etc/nginx/ - cp -f $vestacp/nginx/status.conf /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phppgadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/webmail.inc /etc/nginx/conf.d/ - cp -f $vestacp/logrotate/nginx /etc/logrotate.d/ - echo > /etc/nginx/conf.d/vesta.conf + cp -f $devitcp/nginx/nginx.conf /etc/nginx/ + cp -f $devitcp/nginx/status.conf /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phppgadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/webmail.inc /etc/nginx/conf.d/ + cp -f $devitcp/logrotate/nginx /etc/logrotate.d/ + echo > /etc/nginx/conf.d/devit.conf mkdir -p /var/log/nginx/domains update-rc.d nginx defaults service nginx start @@ -897,9 +897,9 @@ fi #----------------------------------------------------------# if [ "$apache" = 'yes' ]; then - cp -f $vestacp/apache2/apache2.conf /etc/apache2/ - cp -f $vestacp/apache2/status.conf /etc/apache2/mods-enabled/ - cp -f $vestacp/logrotate/apache2 /etc/logrotate.d/ + cp -f $devitcp/apache2/apache2.conf /etc/apache2/ + cp -f $devitcp/apache2/status.conf /etc/apache2/mods-enabled/ + cp -f $devitcp/logrotate/apache2 /etc/logrotate.d/ a2enmod rewrite a2enmod suexec a2enmod ssl @@ -907,7 +907,7 @@ if [ "$apache" = 'yes' ]; then a2enmod ruid2 a2enmod headers mkdir -p /etc/apache2/conf.d - echo > /etc/apache2/conf.d/vesta.conf + echo > /etc/apache2/conf.d/devit.conf echo "# Server control panel by VESTA" > /etc/apache2/sites-available/default echo "# Server control panel by VESTA" > /etc/apache2/sites-available/default-ssl echo "# Server control panel by VESTA" > /etc/apache2/ports.conf @@ -932,12 +932,12 @@ fi if [ "$phpfpm" = 'yes' ]; then if [ "$release" -eq 9 ]; then - cp -f $vestacp/php-fpm/www.conf /etc/php/7.0/fpm/pool.d/www.conf + cp -f $devitcp/php-fpm/www.conf /etc/php/7.0/fpm/pool.d/www.conf update-rc.d php7.0-fpm defaults service php7.0-fpm start check_result $? "php-fpm start failed" else - cp -f $vestacp/php5-fpm/www.conf /etc/php5/fpm/pool.d/www.conf + cp -f $devitcp/php5-fpm/www.conf /etc/php5/fpm/pool.d/www.conf update-rc.d php5-fpm defaults service php5-fpm start check_result $? "php-fpm start failed" @@ -964,7 +964,7 @@ done #----------------------------------------------------------# if [ "$vsftpd" = 'yes' ]; then - cp -f $vestacp/vsftpd/vsftpd.conf /etc/ + cp -f $devitcp/vsftpd/vsftpd.conf /etc/ update-rc.d vsftpd defaults service vsftpd start check_result $? "vsftpd start failed" @@ -980,7 +980,7 @@ fi if [ "$proftpd" = 'yes' ]; then echo "127.0.0.1 $servername" >> /etc/hosts - cp -f $vestacp/proftpd/proftpd.conf /etc/proftpd/ + cp -f $devitcp/proftpd/proftpd.conf /etc/proftpd/ update-rc.d proftpd defaults service proftpd start check_result $? "proftpd start failed" @@ -1001,7 +1001,7 @@ if [ "$mysql" = 'yes' ]; then fi # MySQL configuration - cp -f $vestacp/mysql/$mycnf /etc/mysql/my.cnf + cp -f $devitcp/mysql/$mycnf /etc/mysql/my.cnf mysql_install_db update-rc.d mysql defaults service mysql start @@ -1020,10 +1020,10 @@ if [ "$mysql" = 'yes' ]; then # Configuring phpMyAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pma/apache.conf /etc/phpmyadmin/ + cp -f $devitcp/pma/apache.conf /etc/phpmyadmin/ ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf fi - cp -f $vestacp/pma/config.inc.php /etc/phpmyadmin/ + cp -f $devitcp/pma/config.inc.php /etc/phpmyadmin/ chmod 777 /var/lib/phpmyadmin/tmp fi @@ -1033,15 +1033,15 @@ fi if [ "$postgresql" = 'yes' ]; then ppass=$(gen_pass) - cp -f $vestacp/postgresql/pg_hba.conf /etc/postgresql/*/main/ + cp -f $devitcp/postgresql/pg_hba.conf /etc/postgresql/*/main/ service postgresql restart sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" # Configuring phpPgAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pga/phppgadmin.conf /etc/apache2/conf.d/ + cp -f $devitcp/pga/phppgadmin.conf /etc/apache2/conf.d/ fi - cp -f $vestacp/pga/config.inc.php /etc/phppgadmin/ + cp -f $devitcp/pga/config.inc.php /etc/phppgadmin/ fi @@ -1050,7 +1050,7 @@ fi #----------------------------------------------------------# if [ "$named" = 'yes' ]; then - cp -f $vestacp/bind/named.conf /etc/bind/ + cp -f $devitcp/bind/named.conf /etc/bind/ sed -i "s%listen-on%//listen%" /etc/bind/named.conf.options chown root:bind /etc/bind/named.conf chmod 640 /etc/bind/named.conf @@ -1071,9 +1071,9 @@ fi if [ "$exim" = 'yes' ]; then gpasswd -a Debian-exim mail - cp -f $vestacp/exim/exim4.conf.template /etc/exim4/ - cp -f $vestacp/exim/dnsbl.conf /etc/exim4/ - cp -f $vestacp/exim/spam-blocks.conf /etc/exim4/ + cp -f $devitcp/exim/exim4.conf.template /etc/exim4/ + cp -f $devitcp/exim/dnsbl.conf /etc/exim4/ + cp -f $devitcp/exim/spam-blocks.conf /etc/exim4/ touch /etc/exim4/white-blocks.conf if [ "$spamd" = 'yes' ]; then @@ -1106,8 +1106,8 @@ fi if [ "$dovecot" = 'yes' ]; then gpasswd -a dovecot mail - cp -rf $vestacp/dovecot /etc/ - cp -f $vestacp/logrotate/dovecot /etc/logrotate.d/ + cp -rf $devitcp/dovecot /etc/ + cp -f $devitcp/logrotate/dovecot /etc/logrotate.d/ chown -R root:root /etc/dovecot* if [ "$release" -eq 9 ]; then sed -i "s#namespace inbox {#namespace inbox {\n inbox = yes#" /etc/dovecot/conf.d/15-mailboxes.conf @@ -1125,7 +1125,7 @@ fi if [ "$clamd" = 'yes' ]; then gpasswd -a clamav mail gpasswd -a clamav Debian-exim - cp -f $vestacp/clamav/clamd.conf /etc/clamav/ + cp -f $devitcp/clamav/clamd.conf /etc/clamav/ /usr/bin/freshclam update-rc.d clamav-daemon defaults if [ ! -d "/var/run/clamav" ]; then @@ -1166,18 +1166,18 @@ fi if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then if [ "$apache" = 'yes' ]; then - cp -f $vestacp/roundcube/apache.conf /etc/roundcube/ + cp -f $devitcp/roundcube/apache.conf /etc/roundcube/ ln -s /etc/roundcube/apache.conf /etc/apache2/conf.d/roundcube.conf fi - cp -f $vestacp/roundcube/main.inc.php /etc/roundcube/ - cp -f $vestacp/roundcube/db.inc.php /etc/roundcube/ + cp -f $devitcp/roundcube/main.inc.php /etc/roundcube/ + cp -f $devitcp/roundcube/db.inc.php /etc/roundcube/ chmod 640 /etc/roundcube/debian-db-roundcube.php chmod 640 /etc/roundcube/config.inc.php chown root:www-data /etc/roundcube/debian-db-roundcube.php chown root:www-data /etc/roundcube/config.inc.php - cp -f $vestacp/roundcube/vesta.php \ + cp -f $devitcp/roundcube/devit.php \ /usr/share/roundcube/plugins/password/drivers/ - cp -f $vestacp/roundcube/config.inc.php /etc/roundcube/plugins/password/ + cp -f $devitcp/roundcube/config.inc.php /etc/roundcube/plugins/password/ r="$(gen_pass)" mysql -e "CREATE DATABASE roundcube" mysql -e "GRANT ALL ON roundcube.* @@ -1197,7 +1197,7 @@ if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then fi if [ "$release" -eq 8 ]; then # RoundCube tinyMCE fix - tinymceFixArchiveURL=$vestacp/roundcube/roundcube-tinymce.tar.gz + tinymceFixArchiveURL=$devitcp/roundcube/roundcube-tinymce.tar.gz tinymceParentFolder=/usr/share/roundcube/program/js tinymceFolder=$tinymceParentFolder/tinymce tinymceBadJS=$tinymceFolder/tiny_mce.js @@ -1228,7 +1228,7 @@ fi #----------------------------------------------------------# if [ "$fail2ban" = 'yes' ]; then - cp -rf $vestacp/fail2ban /etc/ + cp -rf $devitcp/fail2ban /etc/ if [ "$dovecot" = 'no' ]; then fline=$(cat /etc/fail2ban/jail.local |grep -n dovecot-iptables -A 2) fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) @@ -1270,7 +1270,7 @@ if [ ! -z "$(grep ^admin: /etc/group)" ]; then groupdel admin > /dev/null 2>&1 fi -# Adding vesta account +# Adding devit account $VESTA/bin/v-add-user admin $vpass $email default System Administrator check_result $? "can't create admin user" $VESTA/bin/v-change-user-shell admin bash @@ -1297,7 +1297,7 @@ if [ "$iptables" = 'yes' ]; then fi # Get public ip -pub_ip=$(curl -s vestacp.com/what-is-my-ip/) +pub_ip=$(curl -s devitcp.com/what-is-my-ip/) if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then $VESTA/bin/v-change-sys-ip-nat $ip $pub_ip @@ -1367,30 +1367,30 @@ fi # Enabling softaculous plugin if [ "$softaculous" = 'yes' ]; then - $VESTA/bin/v-add-vesta-softaculous + $VESTA/bin/v-add-devit-softaculous fi -# Starting vesta service -update-rc.d vesta defaults -service vesta start -check_result $? "vesta start failed" +# Starting devit service +update-rc.d devit defaults +service devit start +check_result $? "devit start failed" chown admin:admin $VESTA/data/sessions # Adding notifications $VESTA/upd/add_notifications.sh # Adding cronjob for autoupdates -$VESTA/bin/v-add-cron-vesta-autoupdate +$VESTA/bin/v-add-cron-devit-autoupdate if [ "$port" != "8083" ]; then - echo "=== Set Vesta port: $port" - $VESTA/bin/v-change-vesta-port $port + echo "=== Set DevIT port: $port" + $VESTA/bin/v-change-devit-port $port fi -echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/vesta.conf +echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/devit.conf #----------------------------------------------------------# -# Vesta Access Info # +# DevIT Access Info # #----------------------------------------------------------# # Comparing hostname and ip @@ -1447,28 +1447,28 @@ else echo "We will not generate SSL because of this" fi echo "===" -echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/vesta.conf +echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/devit.conf fi # Sending notification to admin email echo -e "Congratulations, you have just successfully installed \ -Vesta Control Panel +DevIT Control Panel https://$ip:$port username: admin password: $vpass -We hope that you enjoy your installation of Vesta. Please \ +We hope that you enjoy your installation of DevIT. Please \ feel free to contact us anytime if you have any questions. Thank you. -- Sincerely yours -vestacp.com team +devitcp.com team " > $tmpfile send_mail="$VESTA/web/inc/mail-wrapper.php" -cat $tmpfile | $send_mail -s "Vesta Control Panel" $email +cat $tmpfile | $send_mail -s "DevIT Control Panel" $email # Congrats echo '=======================================================' diff --git a/install/vst-install-rhel.sh b/install/vst-install-rhel.sh index 140317182..c1a248e6d 100755 --- a/install/vst-install-rhel.sh +++ b/install/vst-install-rhel.sh @@ -1,22 +1,22 @@ #!/bin/bash -# Vesta RHEL/CentOS installer v.05 +# DevIT RHEL/CentOS installer v.05 #----------------------------------------------------------# # Variables&Functions # #----------------------------------------------------------# export PATH=$PATH:/sbin -RHOST='r.vestacp.com' -CHOST='c.vestacp.com' +RHOST='r.devitcp.com' +CHOST='c.devitcp.com' REPO='cmmnt' VERSION='rhel' -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os=$(cut -f 1 -d ' ' /etc/redhat-release) release=$(grep -o "[0-9]" /etc/redhat-release |head -n1) codename="${os}_$release" -vestacp="$VESTA/install/$VERSION/$release" +devitcp="$VESTA/install/$VERSION/$release" # Defining software pack for all distros software="nginx awstats bc bind bind-libs bind-utils clamav-server clamav-update @@ -27,8 +27,8 @@ software="nginx awstats bc bind bind-libs bind-utils clamav-server clamav-update php-mcrypt phpMyAdmin php-mysql php-pdo phpPgAdmin php-pgsql php-soap php-tidy php-xml php-xmlrpc postgresql postgresql-contrib postgresql-server proftpd roundcubemail rrdtool rsyslog screen - spamassassin sqlite sudo tar telnet unzip vesta vesta-ioncube vesta-nginx - vesta-php vesta-softaculous vim-common vsftpd webalizer which zip" + spamassassin sqlite sudo tar telnet unzip devit devit-ioncube devit-nginx + devit-php devit-softaculous vim-common vsftpd webalizer which zip" # Fix for old releases if [ "$release" -lt 7 ]; then @@ -64,12 +64,12 @@ help() { -s, --hostname Set hostname -u, --ssl Add LE SSL for hostname [yes|no] default: no -e, --email Set admin email - -d, --port Set Vesta port + -d, --port Set DevIT port -p, --password Set admin password -f, --force Force installation -h, --help Print this help - Example: bash $0 -e demo@vestacp.com -p p4ssw0rd --apache no --phpfpm yes" + Example: bash $0 -e demo@devitcp.com -p p4ssw0rd --apache no --phpfpm yes" exit 1 } @@ -185,7 +185,7 @@ while getopts "a:n:w:v:j:k:m:g:x:z:c:t:i:b:r:o:q:l:y:s:u:e:d:p:fh" Option; do s) servername=$OPTARG ;; # Hostname u) ssl=$OPTARG ;; # Add Let's Encrypt SSL for hostname e) email=$OPTARG ;; # Admin email - d) port=$OPTARG ;; # Vesta port + d) port=$OPTARG ;; # DevIT port p) vpass=$OPTARG ;; # Admin password f) force='yes' ;; # Force install h) help ;; # Help @@ -258,13 +258,13 @@ if [ ! -e '/usr/bin/wget' ]; then fi # Checking repository availability -wget -q "c.vestacp.com/GPG.txt" -O /dev/null -check_result $? "No access to Vesta repository" +wget -q "c.devitcp.com/GPG.txt" -O /dev/null +check_result $? "No access to DevIT repository" # Checking installed packages tmpfile=$(mktemp -p /tmp) rpm -qa > $tmpfile -for pkg in exim mysql-server httpd nginx vesta; do +for pkg in exim mysql-server httpd nginx devit; do if [ ! -z "$(grep $pkg $tmpfile)" ]; then conflicts="$pkg $conflicts" fi @@ -299,7 +299,7 @@ echo ' _| _| _|_|_| _|_| _| _|_|_|_|' echo ' _| _| _| _| _| _| _|' echo ' _| _|_|_|_| _|_|_| _| _| _|' echo -echo ' Vesta Control Panel' +echo ' DevIT Control Panel' echo -e "\n\n" echo 'The following software will be installed on your system:' @@ -396,9 +396,9 @@ if [ "$interactive" = 'yes' ]; then read -p 'Please enter admin email address: ' email fi - # Asking for Vesta port + # Asking for DevIT port if [ -z "$port" ]; then - read -p 'Please enter Vesta port number (press enter for 8083): ' port + read -p 'Please enter DevIT port number (press enter for 8083): ' port fi # Asking to set FQDN hostname @@ -490,15 +490,15 @@ echo "baseurl=http://nginx.org/packages/centos/$release/\$basearch/" >> $nrepo echo "gpgcheck=0" >> $nrepo echo "enabled=1" >> $nrepo -# Installing Vesta repository -vrepo='/etc/yum.repos.d/vesta.repo' -echo "[vesta]" > $vrepo -echo "name=Vesta - $REPO" >> $vrepo +# Installing DevIT repository +vrepo='/etc/yum.repos.d/devit.repo' +echo "[devit]" > $vrepo +echo "name=DevIT - $REPO" >> $vrepo echo "baseurl=http://$RHOST/$REPO/$release/\$basearch/" >> $vrepo echo "enabled=1" >> $vrepo echo "gpgcheck=1" >> $vrepo echo "gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA" >> $vrepo -wget c.vestacp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA +wget c.devitcp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA #----------------------------------------------------------# @@ -509,7 +509,7 @@ wget c.vestacp.com/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA mkdir -p $vst_backups cd $vst_backups mkdir nginx httpd php php-fpm vsftpd proftpd named exim dovecot clamd \ - spamassassin mysql postgresql mongodb vesta + spamassassin mysql postgresql mongodb devit # Backup Nginx configuration service nginx stop > /dev/null 2>&1 @@ -570,10 +570,10 @@ mv /root/.my.cnf $vst_backups/mysql > /dev/null 2>&1 service postgresql stop > /dev/null 2>&1 mv /var/lib/pgsql/data $vst_backups/postgresql/ >/dev/null 2>&1 -# Backup Vesta -service vesta stop > /dev/null 2>&1 -mv $VESTA/data/* $vst_backups/vesta > /dev/null 2>&1 -mv $VESTA/conf/* $vst_backups/vesta > /dev/null 2>&1 +# Backup DevIT +service devit stop > /dev/null 2>&1 +mv $VESTA/data/* $vst_backups/devit > /dev/null 2>&1 +mv $VESTA/conf/* $vst_backups/devit > /dev/null 2>&1 #----------------------------------------------------------# @@ -640,7 +640,7 @@ if [ "$postgresql" = 'no' ]; then software=$(echo "$software" | sed -e 's/phpPgAdmin//') fi if [ "$softaculous" = 'no' ]; then - software=$(echo "$software" | sed -e 's/vesta-softaculous//') + software=$(echo "$software" | sed -e 's/devit-softaculous//') fi if [ "$iptables" = 'no' ] || [ "$fail2ban" = 'no' ]; then software=$(echo "$software" | sed -e 's/fail2ban//') @@ -656,10 +656,10 @@ yum install -y $software if [ $? -ne 0 ]; then if [ "$remi" = 'yes' ]; then yum -y --disablerepo=* \ - --enablerepo="*base,*updates,nginx,epel,vesta,remi*" \ + --enablerepo="*base,*updates,nginx,epel,devit,remi*" \ install $software else - yum -y --disablerepo=* --enablerepo="*base,*updates,nginx,epel,vesta" \ + yum -y --disablerepo=* --enablerepo="*base,*updates,nginx,epel,devit" \ install $software fi fi @@ -678,7 +678,7 @@ check_lo_ipv6=$(/sbin/ip addr | grep 'inet6') check_rc_ipv6=$(grep 'scope global dev lo' /etc/rc.local) if [ ! -z "$check_lo_ipv6)" ] && [ -z "$check_rc_ipv6" ]; then ip addr add ::2/128 scope global dev lo - echo "# Vesta: Workraround for openssl validation func" >> /etc/rc.local + echo "# DevIT: Workraround for openssl validation func" >> /etc/rc.local echo "ip addr add ::2/128 scope global dev lo" >> /etc/rc.local chmod a+x /etc/rc.local fi @@ -731,21 +731,21 @@ fi # Installing sudo configuration mkdir -p /etc/sudoers.d -cp -f $vestacp/sudo/admin /etc/sudoers.d/ +cp -f $devitcp/sudo/admin /etc/sudoers.d/ chmod 440 /etc/sudoers.d/admin # Configuring system env -echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh -chmod 755 /etc/profile.d/vesta.sh -source /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/devit.sh +chmod 755 /etc/profile.d/devit.sh +source /etc/profile.d/devit.sh echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile -# Configuring logrotate for vesta logs -cp -f $vestacp/logrotate/vesta /etc/logrotate.d/ +# Configuring logrotate for devit logs +cp -f $devitcp/logrotate/devit /etc/logrotate.d/ -# Building directory tree and creating some blank files for Vesta +# Building directory tree and creating some blank files for DevIT mkdir -p $VESTA/conf $VESTA/log $VESTA/ssl $VESTA/data/ips \ $VESTA/data/queue $VESTA/data/users $VESTA/data/firewall \ $VESTA/data/sessions @@ -756,117 +756,117 @@ touch $VESTA/data/queue/backup.pipe $VESTA/data/queue/disk.pipe \ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* -rm -f /var/log/vesta -ln -s $VESTA/log /var/log/vesta +rm -f /var/log/devit +ln -s $VESTA/log /var/log/devit chmod 770 $VESTA/data/sessions -# Generating Vesta configuration -rm -f $VESTA/conf/vesta.conf 2>/dev/null -touch $VESTA/conf/vesta.conf -chmod 660 $VESTA/conf/vesta.conf +# Generating DevIT configuration +rm -f $VESTA/conf/devit.conf 2>/dev/null +touch $VESTA/conf/devit.conf +chmod 660 $VESTA/conf/devit.conf # Web stack if [ "$apache" = 'yes' ] && [ "$nginx" = 'no' ] ; then - echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='apache'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='apache'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then - echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='apache'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='8080'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "PROXY_PORT='80'" >> $VESTA/conf/vesta.conf - echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='httpd'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='apache'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='8080'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "PROXY_PORT='80'" >> $VESTA/conf/devit.conf + echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'no' ] && [ "$nginx" = 'yes' ]; then - echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='openssl'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='openssl'" >> $VESTA/conf/devit.conf if [ "$phpfpm" = 'yes' ]; then - echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/vesta.conf + echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/devit.conf fi - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi # FTP stack if [ "$vsftpd" = 'yes' ]; then - echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/devit.conf fi if [ "$proftpd" = 'yes' ]; then - echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/devit.conf fi # DNS stack if [ "$named" = 'yes' ]; then - echo "DNS_SYSTEM='named'" >> $VESTA/conf/vesta.conf + echo "DNS_SYSTEM='named'" >> $VESTA/conf/devit.conf fi # Mail stack if [ "$exim" = 'yes' ]; then - echo "MAIL_SYSTEM='exim'" >> $VESTA/conf/vesta.conf + echo "MAIL_SYSTEM='exim'" >> $VESTA/conf/devit.conf if [ "$clamd" = 'yes' ]; then - echo "ANTIVIRUS_SYSTEM='clamav'" >> $VESTA/conf/vesta.conf + echo "ANTIVIRUS_SYSTEM='clamav'" >> $VESTA/conf/devit.conf fi if [ "$spamd" = 'yes' ]; then - echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/vesta.conf + echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/devit.conf fi if [ "$dovecot" = 'yes' ]; then - echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/vesta.conf + echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/devit.conf fi fi # Cron daemon -echo "CRON_SYSTEM='crond'" >> $VESTA/conf/vesta.conf +echo "CRON_SYSTEM='crond'" >> $VESTA/conf/devit.conf # Firewall stack if [ "$iptables" = 'yes' ]; then - echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/devit.conf fi if [ "$iptables" = 'yes' ] && [ "$fail2ban" = 'yes' ]; then - echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/devit.conf fi # Disk quota if [ "$quota" = 'yes' ]; then - echo "DISK_QUOTA='yes'" >> $VESTA/conf/vesta.conf + echo "DISK_QUOTA='yes'" >> $VESTA/conf/devit.conf fi # Backups -echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/vesta.conf +echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/devit.conf # Language -echo "LANGUAGE='$lang'" >> $VESTA/conf/vesta.conf +echo "LANGUAGE='$lang'" >> $VESTA/conf/devit.conf # Version -echo "VERSION='0.9.8'" >> $VESTA/conf/vesta.conf +echo "VERSION='0.9.8'" >> $VESTA/conf/devit.conf # Installing hosting packages -cp -rf $vestacp/packages $VESTA/data/ +cp -rf $devitcp/packages $VESTA/data/ # Installing templates -cp -rf $vestacp/templates $VESTA/data/ +cp -rf $devitcp/templates $VESTA/data/ # Copying index.html to default documentroot cp $VESTA/data/templates/web/skel/public_html/index.html /var/www/html/ sed -i 's/%domain%/It worked!/g' /var/www/html/index.html # Installing firewall rules -cp -rf $vestacp/firewall $VESTA/data/ +cp -rf $devitcp/firewall $VESTA/data/ # Configuring server hostname $VESTA/bin/v-change-sys-hostname $servername 2>/dev/null # Generating SSL certificate $VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \ - 'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem + 'San Francisco' 'DevIT Control Panel' 'IT' > /tmp/vst.pem # Parsing certificate file crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:) @@ -887,13 +887,13 @@ rm /tmp/vst.pem if [ "$nginx" = 'yes' ]; then rm -f /etc/nginx/conf.d/*.conf - cp -f $vestacp/nginx/nginx.conf /etc/nginx/ - cp -f $vestacp/nginx/status.conf /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phppgadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/webmail.inc /etc/nginx/conf.d/ - cp -f $vestacp/logrotate/nginx /etc/logrotate.d/ - echo > /etc/nginx/conf.d/vesta.conf + cp -f $devitcp/nginx/nginx.conf /etc/nginx/ + cp -f $devitcp/nginx/status.conf /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phppgadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/webmail.inc /etc/nginx/conf.d/ + cp -f $devitcp/logrotate/nginx /etc/logrotate.d/ + echo > /etc/nginx/conf.d/devit.conf mkdir -p /var/log/nginx/domains if [ "$release" -ge '7' ]; then mkdir -p /etc/systemd/system/nginx.service.d @@ -907,7 +907,7 @@ if [ "$nginx" = 'yes' ]; then # Workaround for OpenVZ/Virtuozzo if [ "$release" -ge '7' ] && [ -e "/proc/vz/veinfo" ]; then - echo "#Vesta: workraround for networkmanager" >> /etc/rc.local + echo "#DevIT: workraround for networkmanager" >> /etc/rc.local echo "sleep 3 && service nginx restart" >> /etc/rc.local fi fi @@ -918,11 +918,11 @@ fi #----------------------------------------------------------# if [ "$apache" = 'yes' ]; then - cp -f $vestacp/httpd/httpd.conf /etc/httpd/conf/ - cp -f $vestacp/httpd/status.conf /etc/httpd/conf.d/ - cp -f $vestacp/httpd/ssl.conf /etc/httpd/conf.d/ - cp -f $vestacp/httpd/ruid2.conf /etc/httpd/conf.d/ - cp -f $vestacp/logrotate/httpd /etc/logrotate.d/ + cp -f $devitcp/httpd/httpd.conf /etc/httpd/conf/ + cp -f $devitcp/httpd/status.conf /etc/httpd/conf.d/ + cp -f $devitcp/httpd/ssl.conf /etc/httpd/conf.d/ + cp -f $devitcp/httpd/ruid2.conf /etc/httpd/conf.d/ + cp -f $devitcp/logrotate/httpd /etc/logrotate.d/ if [ $release -lt 7 ]; then cd /etc/httpd/conf.d echo "MEFaccept 127.0.0.1" >> mod_extract_forwarded.conf @@ -932,7 +932,7 @@ if [ "$apache" = 'yes' ]; then cd /etc/httpd/conf.modules.d sed -i "s/^/#/" 00-dav.conf 00-lua.conf 00-proxy.conf fi - echo > /etc/httpd/conf.d/vesta.conf + echo > /etc/httpd/conf.d/devit.conf cd /var/log/httpd touch access_log error_log suexec.log chmod 640 access_log error_log suexec.log @@ -952,7 +952,7 @@ if [ "$apache" = 'yes' ]; then # Workaround for OpenVZ/Virtuozzo if [ "$release" -ge '7' ] && [ -e "/proc/vz/veinfo" ]; then - echo "#Vesta: workraround for networkmanager" >> /etc/rc.local + echo "#DevIT: workraround for networkmanager" >> /etc/rc.local echo "sleep 2 && service httpd restart" >> /etc/rc.local fi fi @@ -963,7 +963,7 @@ fi #----------------------------------------------------------# if [ "$phpfpm" = 'yes' ]; then - cp -f $vestacp/php-fpm/www.conf /etc/php-fpm.d/ + cp -f $devitcp/php-fpm/www.conf /etc/php-fpm.d/ chkconfig php-fpm on service php-fpm start check_result $? "php-fpm start failed" @@ -992,7 +992,7 @@ done #----------------------------------------------------------# if [ "$vsftpd" = 'yes' ]; then - cp -f $vestacp/vsftpd/vsftpd.conf /etc/vsftpd/ + cp -f $devitcp/vsftpd/vsftpd.conf /etc/vsftpd/ chkconfig vsftpd on service vsftpd start check_result $? "vsftpd start failed" @@ -1004,7 +1004,7 @@ fi #----------------------------------------------------------# if [ "$proftpd" = 'yes' ]; then - cp -f $vestacp/proftpd/proftpd.conf /etc/ + cp -f $devitcp/proftpd/proftpd.conf /etc/ chkconfig proftpd on service proftpd start check_result $? "proftpd start failed" @@ -1035,7 +1035,7 @@ if [ "$mysql" = 'yes' ]; then service='mariadb' fi - cp -f $vestacp/$service/$mycnf /etc/my.cnf + cp -f $devitcp/$service/$mycnf /etc/my.cnf chkconfig $service on service $service start if [ "$?" -ne 0 ]; then @@ -1060,13 +1060,13 @@ if [ "$mysql" = 'yes' ]; then # Configuring phpMyAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pma/phpMyAdmin.conf /etc/httpd/conf.d/ + cp -f $devitcp/pma/phpMyAdmin.conf /etc/httpd/conf.d/ fi mysql < /usr/share/phpMyAdmin/sql/create_tables.sql p=$(gen_pass) mysql -e "GRANT ALL ON phpmyadmin.* TO phpmyadmin@localhost IDENTIFIED BY '$p'" - cp -f $vestacp/pma/config.inc.conf /etc/phpMyAdmin/config.inc.php + cp -f $devitcp/pma/config.inc.conf /etc/phpMyAdmin/config.inc.php sed -i "s/%blowfish_secret%/$(gen_pass 32)/g" /etc/phpMyAdmin/config.inc.php sed -i "s/%phpmyadmin_pass%/$p/g" /etc/phpMyAdmin/config.inc.php chmod 777 /var/lib/phpMyAdmin/temp @@ -1084,19 +1084,19 @@ if [ "$postgresql" = 'yes' ]; then service postgresql start sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" service postgresql stop - cp -f $vestacp/postgresql/pg_hba.conf /var/lib/pgsql/data/ + cp -f $devitcp/postgresql/pg_hba.conf /var/lib/pgsql/data/ service postgresql start else service postgresql initdb - cp -f $vestacp/postgresql/pg_hba.conf /var/lib/pgsql/data/ + cp -f $devitcp/postgresql/pg_hba.conf /var/lib/pgsql/data/ service postgresql start sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" fi # Configuring phpPgAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pga/phpPgAdmin.conf /etc/httpd/conf.d/ + cp -f $devitcp/pga/phpPgAdmin.conf /etc/httpd/conf.d/ fi - cp -f $vestacp/pga/config.inc.php /etc/phpPgAdmin/ + cp -f $devitcp/pga/config.inc.php /etc/phpPgAdmin/ fi @@ -1105,7 +1105,7 @@ fi #----------------------------------------------------------# if [ "$named" = 'yes' ]; then - cp -f $vestacp/named/named.conf /etc/ + cp -f $devitcp/named/named.conf /etc/ chown root:named /etc/named.conf chmod 640 /etc/named.conf chkconfig named on @@ -1120,9 +1120,9 @@ fi if [ "$exim" = 'yes' ]; then gpasswd -a exim mail - cp -f $vestacp/exim/exim.conf /etc/exim/ - cp -f $vestacp/exim/dnsbl.conf /etc/exim/ - cp -f $vestacp/exim/spam-blocks.conf /etc/exim/ + cp -f $devitcp/exim/exim.conf /etc/exim/ + cp -f $devitcp/exim/dnsbl.conf /etc/exim/ + cp -f $devitcp/exim/spam-blocks.conf /etc/exim/ touch /etc/exim/white-blocks.conf if [ "$spamd" = 'yes' ]; then @@ -1155,8 +1155,8 @@ fi if [ "$dovecot" = 'yes' ]; then gpasswd -a dovecot mail - cp -rf $vestacp/dovecot /etc/ - cp -f $vestacp/logrotate/dovecot /etc/logrotate.d/ + cp -rf $devitcp/dovecot /etc/ + cp -f $devitcp/logrotate/dovecot /etc/logrotate.d/ chown -R root:root /etc/dovecot* if [ "$release" -eq 7 ]; then sed -i "s#namespace inbox {#namespace inbox {\n inbox = yes#" /etc/dovecot/conf.d/15-mailboxes.conf @@ -1175,13 +1175,13 @@ if [ "$clamd" = 'yes' ]; then useradd clam -s /sbin/nologin -d /var/lib/clamav 2>/dev/null gpasswd -a clam exim gpasswd -a clam mail - cp -f $vestacp/clamav/clamd.conf /etc/ - cp -f $vestacp/clamav/freshclam.conf /etc/ + cp -f $devitcp/clamav/clamd.conf /etc/ + cp -f $devitcp/clamav/freshclam.conf /etc/ mkdir -p /var/log/clamav /var/run/clamav chown clam:clam /var/log/clamav /var/run/clamav chown -R clam:clam /var/lib/clamav if [ "$release" -ge '7' ]; then - cp -f $vestacp/clamav/clamd.service /usr/lib/systemd/system/ + cp -f $devitcp/clamav/clamd.service /usr/lib/systemd/system/ systemctl --system daemon-reload fi /usr/bin/freshclam @@ -1219,12 +1219,12 @@ fi if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then if [ "$apache" = 'yes' ]; then - cp -f $vestacp/roundcube/roundcubemail.conf /etc/httpd/conf.d/ + cp -f $devitcp/roundcube/roundcubemail.conf /etc/httpd/conf.d/ fi - cp -f $vestacp/roundcube/main.inc.php /etc/roundcubemail/config.inc.php + cp -f $devitcp/roundcube/main.inc.php /etc/roundcubemail/config.inc.php cd /usr/share/roundcubemail/plugins/password - cp -f $vestacp/roundcube/vesta.php drivers/vesta.php - cp -f $vestacp/roundcube/config.inc.php config.inc.php + cp -f $devitcp/roundcube/devit.php drivers/devit.php + cp -f $devitcp/roundcube/config.inc.php config.inc.php sed -i "s/localhost/$servername/g" config.inc.php chmod a+r /etc/roundcubemail/* chmod -f 777 /var/log/roundcubemail @@ -1248,7 +1248,7 @@ fi #----------------------------------------------------------# if [ "$fail2ban" = 'yes' ]; then - cp -rf $vestacp/fail2ban /etc/ + cp -rf $devitcp/fail2ban /etc/ if [ "$dovecot" = 'no' ]; then fline=$(cat /etc/fail2ban/jail.local |grep -n dovecot-iptables -A 2) fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) @@ -1297,7 +1297,7 @@ if [ ! -z "$(grep ^admin: /etc/group)" ] && [ "$force" = 'yes' ]; then groupdel admin > /dev/null 2>&1 fi -# Adding Vesta admin account +# Adding DevIT admin account $VESTA/bin/v-add-user admin $vpass $email default System Administrator check_result $? "can't create admin user" $VESTA/bin/v-change-user-shell admin bash @@ -1316,7 +1316,7 @@ if [ "$iptables" = 'yes' ]; then fi # Get public IP -pub_ip=$(curl -s vestacp.com/what-is-my-ip/) +pub_ip=$(curl -s devitcp.com/what-is-my-ip/) if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then echo "$VESTA/bin/v-update-sys-ip" >> /etc/rc.local $VESTA/bin/v-change-sys-ip-nat $ip $pub_ip @@ -1365,30 +1365,30 @@ fi # Enabling Softaculous plugin if [ "$softaculous" = 'yes' ]; then - $VESTA/bin/v-add-vesta-softaculous + $VESTA/bin/v-add-devit-softaculous fi -# Starting Vesta service -chkconfig vesta on -service vesta start -check_result $? "vesta start failed" +# Starting DevIT service +chkconfig devit on +service devit start +check_result $? "devit start failed" chown admin:admin $VESTA/data/sessions # Adding notifications $VESTA/upd/add_notifications.sh # Adding cronjob for autoupdates -$VESTA/bin/v-add-cron-vesta-autoupdate +$VESTA/bin/v-add-cron-devit-autoupdate if [ "$port" != "8083" ]; then - echo "=== Set Vesta port: $port" - $VESTA/bin/v-change-vesta-port $port + echo "=== Set DevIT port: $port" + $VESTA/bin/v-change-devit-port $port fi -echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/vesta.conf +echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/devit.conf #----------------------------------------------------------# -# Vesta Access Info # +# DevIT Access Info # #----------------------------------------------------------# # Comparing hostname and ip @@ -1445,28 +1445,28 @@ else echo "We will not generate SSL because of this" fi echo "===" -echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/vesta.conf +echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/devit.conf fi # Sending notification to admin email echo -e "Congratulations, you have just successfully installed \ -Vesta Control Panel +DevIT Control Panel https://$ip:$port username: admin password: $vpass -We hope that you enjoy your installation of Vesta. Please \ +We hope that you enjoy your installation of DevIT. Please \ feel free to contact us anytime if you have any questions. Thank you. -- Sincerely yours -vestacp.com team +devitcp.com team " > $tmpfile send_mail="$VESTA/web/inc/mail-wrapper.php" -cat $tmpfile | $send_mail -s "Vesta Control Panel" $email +cat $tmpfile | $send_mail -s "DevIT Control Panel" $email # Congrats echo '=======================================================' diff --git a/install/vst-install-ubuntu.sh b/install/vst-install-ubuntu.sh index 872c9b505..558a03754 100755 --- a/install/vst-install-ubuntu.sh +++ b/install/vst-install-ubuntu.sh @@ -1,22 +1,22 @@ #!/bin/bash -# Vesta Ubuntu installer v.05 +# DevIT Ubuntu installer v.05 #----------------------------------------------------------# # Variables&Functions # #----------------------------------------------------------# export PATH=$PATH:/sbin export DEBIAN_FRONTEND=noninteractive -RHOST='apt.vestacp.com' -CHOST='c.vestacp.com' +RHOST='apt.devitcp.com' +CHOST='c.devitcp.com' VERSION='ubuntu' -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' memory=$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9]) arch=$(uname -i) os='ubuntu' release="$(lsb_release -s -r)" codename="$(lsb_release -s -c)" -vestacp="$VESTA/install/$VERSION/$release" +devitcp="$VESTA/install/$VERSION/$release" # Defining software pack for all distros software="nginx apache2 apache2.2-common apache2-suexec-custom apache2-utils @@ -28,13 +28,13 @@ software="nginx apache2 apache2.2-common apache2-suexec-custom apache2-utils ntpdate php-cgi php-common php-curl php-fpm phpmyadmin php-mysql phppgadmin php-pgsql postgresql postgresql-contrib proftpd-basic quota roundcube-core roundcube-mysql roundcube-plugins rrdtool rssh spamassassin - sudo vesta vesta-ioncube vesta-nginx vesta-php vesta-softaculous + sudo devit devit-ioncube devit-nginx devit-php devit-softaculous vim-common vsftpd webalizer whois zip net-tools" # Fix for old releases if [[ ${release:0:2} -lt 16 ]]; then software=$(echo "$software" |sed -e "s/php /php5 /g") - software=$(echo "$software" |sed -e "s/vesta-php5 /vesta-php /g") + software=$(echo "$software" |sed -e "s/devit-php5 /devit-php /g") software=$(echo "$software" |sed -e "s/php-/php5-/g") fi @@ -63,12 +63,12 @@ help() { -s, --hostname Set hostname -u, --ssl Add LE SSL for hostname [yes|no] default: no -e, --email Set admin email - -d, --port Set Vesta port + -d, --port Set DevIT port -p, --password Set admin password -f, --force Force installation -h, --help Print this help - Example: bash $0 -e demo@vestacp.com -p p4ssw0rd --apache no --phpfpm yes" + Example: bash $0 -e demo@devitcp.com -p p4ssw0rd --apache no --phpfpm yes" exit 1 } @@ -187,7 +187,7 @@ while getopts "a:n:w:v:j:k:m:g:x:z:c:t:i:b:r:o:q:l:y:s:u:e:d:p:fh" Option; do s) servername=$OPTARG ;; # Hostname u) ssl=$OPTARG ;; # Add Let's Encrypt SSL for hostname e) email=$OPTARG ;; # Admin email - d) port=$OPTARG ;; # Vesta port + d) port=$OPTARG ;; # DevIT port p) vpass=$OPTARG ;; # Admin password f) force='yes' ;; # Force install h) help ;; # Help @@ -259,8 +259,8 @@ if [ ! -e '/usr/bin/wget' ]; then fi # Checking repository availability -wget -q "c.vestacp.com/deb_signing.key" -O /dev/null -check_result $? "No access to Vesta repository" +wget -q "c.devitcp.com/deb_signing.key" -O /dev/null +check_result $? "No access to DevIT repository" # Checking installed packages tmpfile=$(mktemp -p /tmp) @@ -277,7 +277,7 @@ if [ -z "$gnupg_exist" ]; then check_result $? "apt-get install failed" fi # Checking conflicts -for pkg in exim4 mysql-server apache2 nginx vesta; do +for pkg in exim4 mysql-server apache2 nginx devit; do if [ ! -z "$(grep $pkg $tmpfile)" ]; then conflicts="$pkg $conflicts" fi @@ -312,7 +312,7 @@ echo ' _| _| _|_|_| _|_| _| _|_|_|_|' echo ' _| _| _| _| _| _| _|' echo ' _| _|_|_|_| _|_|_| _| _| _|' echo -echo ' Vesta Control Panel' +echo ' DevIT Control Panel' echo -e "\n\n" echo 'The following software will be installed on your system:' @@ -405,9 +405,9 @@ if [ "$interactive" = 'yes' ]; then read -p 'Please enter admin email address: ' email fi - # Asking for Vesta port + # Asking for DevIT port if [ -z "$port" ]; then - read -p 'Please enter Vesta port number (press enter for 8083): ' port + read -p 'Please enter DevIT port number (press enter for 8083): ' port fi # Asking to set FQDN hostname @@ -493,8 +493,8 @@ echo "deb http://nginx.org/packages/mainline/ubuntu/ $codename nginx" \ wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key apt-key add /tmp/nginx_signing.key -# Installing vesta repo -echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list +# Installing devit repo +echo "deb http://$RHOST/$codename/ $codename devit" > $apt/devit.list wget $CHOST/deb_signing.key -O deb_signing.key apt-key add deb_signing.key @@ -507,7 +507,7 @@ apt-key add deb_signing.key mkdir -p $vst_backups cd $vst_backups mkdir nginx apache2 php vsftpd proftpd bind exim4 dovecot clamd -mkdir spamassassin mysql postgresql mongodb vesta +mkdir spamassassin mysql postgresql mongodb devit # Backup nginx configuration service nginx stop > /dev/null 2>&1 @@ -567,11 +567,11 @@ if [ "$release" = '16.04' ] && [ -e '/etc/init.d/mysql' ]; then mysqld --initialize-insecure fi -# Backup Vesta -service vesta stop > /dev/null 2>&1 -cp -r $VESTA/* $vst_backups/vesta > /dev/null 2>&1 -apt-get -y remove vesta vesta-nginx vesta-php > /dev/null 2>&1 -apt-get -y purge vesta vesta-nginx vesta-php > /dev/null 2>&1 +# Backup DevIT +service devit stop > /dev/null 2>&1 +cp -r $VESTA/* $vst_backups/devit > /dev/null 2>&1 +apt-get -y remove devit devit-nginx devit-php > /dev/null 2>&1 +apt-get -y purge devit devit-nginx devit-php > /dev/null 2>&1 rm -rf $VESTA > /dev/null 2>&1 @@ -651,7 +651,7 @@ if [ "$postgresql" = 'no' ]; then software=$(echo "$software" | sed -e 's/phppgadmin//') fi if [ "$softaculous" = 'no' ]; then - software=$(echo "$software" | sed -e 's/vesta-softaculous//') + software=$(echo "$software" | sed -e 's/devit-softaculous//') fi if [ "$iptables" = 'no' ] || [ "$fail2ban" = 'no' ]; then software=$(echo "$software" | sed -e 's/fail2ban//') @@ -713,27 +713,27 @@ chmod 755 /usr/bin/rssh #----------------------------------------------------------# -# Configure Vesta # +# Configure DevIT # #----------------------------------------------------------# # Installing sudo configuration mkdir -p /etc/sudoers.d -cp -f $vestacp/sudo/admin /etc/sudoers.d/ +cp -f $devitcp/sudo/admin /etc/sudoers.d/ chmod 440 /etc/sudoers.d/admin -sed -i "s/%admin.*ALL=(ALL).*/# sudo is limited to vesta scripts/" /etc/sudoers +sed -i "s/%admin.*ALL=(ALL).*/# sudo is limited to devit scripts/" /etc/sudoers # Configuring system env -echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh -chmod 755 /etc/profile.d/vesta.sh -source /etc/profile.d/vesta.sh +echo "export VESTA='$VESTA'" > /etc/profile.d/devit.sh +chmod 755 /etc/profile.d/devit.sh +source /etc/profile.d/devit.sh echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile echo 'export PATH' >> /root/.bash_profile source /root/.bash_profile -# Configuring logrotate for Vesta logs -cp -f $vestacp/logrotate/vesta /etc/logrotate.d/ +# Configuring logrotate for DevIT logs +cp -f $devitcp/logrotate/devit /etc/logrotate.d/ -# Building directory tree and creating some blank files for Vesta +# Building directory tree and creating some blank files for DevIT mkdir -p $VESTA/conf $VESTA/log $VESTA/ssl $VESTA/data/ips \ $VESTA/data/queue $VESTA/data/users $VESTA/data/firewall \ $VESTA/data/sessions @@ -744,117 +744,117 @@ touch $VESTA/data/queue/backup.pipe $VESTA/data/queue/disk.pipe \ chmod 750 $VESTA/conf $VESTA/data/users $VESTA/data/ips $VESTA/log chmod -R 750 $VESTA/data/queue chmod 660 $VESTA/log/* -rm -f /var/log/vesta -ln -s $VESTA/log /var/log/vesta +rm -f /var/log/devit +ln -s $VESTA/log /var/log/devit chmod 770 $VESTA/data/sessions -# Generating Vesta configuration -rm -f $VESTA/conf/vesta.conf 2>/dev/null -touch $VESTA/conf/vesta.conf -chmod 660 $VESTA/conf/vesta.conf +# Generating DevIT configuration +rm -f $VESTA/conf/devit.conf 2>/dev/null +touch $VESTA/conf/devit.conf +chmod 660 $VESTA/conf/devit.conf # Web stack if [ "$apache" = 'yes' ] && [ "$nginx" = 'no' ] ; then - echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'yes' ] && [ "$nginx" = 'yes' ] ; then - echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/vesta.conf - echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='8080'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/vesta.conf - echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "PROXY_PORT='80'" >> $VESTA/conf/vesta.conf - echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='apache2'" >> $VESTA/conf/devit.conf + echo "WEB_RGROUPS='www-data'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='8080'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='8443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='mod_ssl'" >> $VESTA/conf/devit.conf + echo "PROXY_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "PROXY_PORT='80'" >> $VESTA/conf/devit.conf + echo "PROXY_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi if [ "$apache" = 'no' ] && [ "$nginx" = 'yes' ]; then - echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/vesta.conf - echo "WEB_PORT='80'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL_PORT='443'" >> $VESTA/conf/vesta.conf - echo "WEB_SSL='openssl'" >> $VESTA/conf/vesta.conf + echo "WEB_SYSTEM='nginx'" >> $VESTA/conf/devit.conf + echo "WEB_PORT='80'" >> $VESTA/conf/devit.conf + echo "WEB_SSL_PORT='443'" >> $VESTA/conf/devit.conf + echo "WEB_SSL='openssl'" >> $VESTA/conf/devit.conf if [ "$phpfpm" = 'yes' ]; then - echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/vesta.conf + echo "WEB_BACKEND='php-fpm'" >> $VESTA/conf/devit.conf fi - echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/vesta.conf + echo "STATS_SYSTEM='webalizer,awstats'" >> $VESTA/conf/devit.conf fi # FTP stack if [ "$vsftpd" = 'yes' ]; then - echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='vsftpd'" >> $VESTA/conf/devit.conf fi if [ "$proftpd" = 'yes' ]; then - echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/vesta.conf + echo "FTP_SYSTEM='proftpd'" >> $VESTA/conf/devit.conf fi # DNS stack if [ "$named" = 'yes' ]; then - echo "DNS_SYSTEM='bind9'" >> $VESTA/conf/vesta.conf + echo "DNS_SYSTEM='bind9'" >> $VESTA/conf/devit.conf fi # Mail stack if [ "$exim" = 'yes' ]; then - echo "MAIL_SYSTEM='exim4'" >> $VESTA/conf/vesta.conf + echo "MAIL_SYSTEM='exim4'" >> $VESTA/conf/devit.conf if [ "$clamd" = 'yes' ]; then - echo "ANTIVIRUS_SYSTEM='clamav-daemon'" >> $VESTA/conf/vesta.conf + echo "ANTIVIRUS_SYSTEM='clamav-daemon'" >> $VESTA/conf/devit.conf fi if [ "$spamd" = 'yes' ]; then - echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/vesta.conf + echo "ANTISPAM_SYSTEM='spamassassin'" >> $VESTA/conf/devit.conf fi if [ "$dovecot" = 'yes' ]; then - echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/vesta.conf + echo "IMAP_SYSTEM='dovecot'" >> $VESTA/conf/devit.conf fi fi # Cron daemon -echo "CRON_SYSTEM='cron'" >> $VESTA/conf/vesta.conf +echo "CRON_SYSTEM='cron'" >> $VESTA/conf/devit.conf # Firewall stack if [ "$iptables" = 'yes' ]; then - echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_SYSTEM='iptables'" >> $VESTA/conf/devit.conf fi if [ "$iptables" = 'yes' ] && [ "$fail2ban" = 'yes' ]; then - echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/vesta.conf + echo "FIREWALL_EXTENSION='fail2ban'" >> $VESTA/conf/devit.conf fi # Disk quota if [ "$quota" = 'yes' ]; then - echo "DISK_QUOTA='yes'" >> $VESTA/conf/vesta.conf + echo "DISK_QUOTA='yes'" >> $VESTA/conf/devit.conf fi # Backups -echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/vesta.conf +echo "BACKUP_SYSTEM='local'" >> $VESTA/conf/devit.conf # Language -echo "LANGUAGE='$lang'" >> $VESTA/conf/vesta.conf +echo "LANGUAGE='$lang'" >> $VESTA/conf/devit.conf # Version -echo "VERSION='0.9.8'" >> $VESTA/conf/vesta.conf +echo "VERSION='0.9.8'" >> $VESTA/conf/devit.conf # Installing hosting packages -cp -rf $vestacp/packages $VESTA/data/ +cp -rf $devitcp/packages $VESTA/data/ # Installing templates -cp -rf $vestacp/templates $VESTA/data/ +cp -rf $devitcp/templates $VESTA/data/ # Copying index.html to default documentroot cp $VESTA/data/templates/web/skel/public_html/index.html /var/www/ sed -i 's/%domain%/It worked!/g' /var/www/index.html # Installing firewall rules -cp -rf $vestacp/firewall $VESTA/data/ +cp -rf $devitcp/firewall $VESTA/data/ # Configuring server hostname $VESTA/bin/v-change-sys-hostname $servername 2>/dev/null # Generating SSL certificate $VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \ - 'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem + 'San Francisco' 'DevIT Control Panel' 'IT' > /tmp/vst.pem # Parsing certificate file crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:) @@ -881,13 +881,13 @@ fi if [ "$nginx" = 'yes' ]; then rm -f /etc/nginx/conf.d/*.conf - cp -f $vestacp/nginx/nginx.conf /etc/nginx/ - cp -f $vestacp/nginx/status.conf /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/phppgadmin.inc /etc/nginx/conf.d/ - cp -f $vestacp/nginx/webmail.inc /etc/nginx/conf.d/ - cp -f $vestacp/logrotate/nginx /etc/logrotate.d/ - echo > /etc/nginx/conf.d/vesta.conf + cp -f $devitcp/nginx/nginx.conf /etc/nginx/ + cp -f $devitcp/nginx/status.conf /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phpmyadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/phppgadmin.inc /etc/nginx/conf.d/ + cp -f $devitcp/nginx/webmail.inc /etc/nginx/conf.d/ + cp -f $devitcp/logrotate/nginx /etc/logrotate.d/ + echo > /etc/nginx/conf.d/devit.conf mkdir -p /var/log/nginx/domains update-rc.d nginx defaults service nginx start @@ -900,16 +900,16 @@ fi #----------------------------------------------------------# if [ "$apache" = 'yes' ]; then - cp -f $vestacp/apache2/apache2.conf /etc/apache2/ - cp -f $vestacp/apache2/status.conf /etc/apache2/mods-enabled/ - cp -f $vestacp/logrotate/apache2 /etc/logrotate.d/ + cp -f $devitcp/apache2/apache2.conf /etc/apache2/ + cp -f $devitcp/apache2/status.conf /etc/apache2/mods-enabled/ + cp -f $devitcp/logrotate/apache2 /etc/logrotate.d/ a2enmod rewrite a2enmod suexec a2enmod ssl a2enmod actions a2enmod ruid2 mkdir -p /etc/apache2/conf.d - echo > /etc/apache2/conf.d/vesta.conf + echo > /etc/apache2/conf.d/devit.conf echo "# Server control panel by VESTA" > /etc/apache2/sites-available/default echo "# Server control panel by VESTA" > /etc/apache2/sites-available/default-ssl echo "# Server control panel by VESTA" > /etc/apache2/ports.conf @@ -934,7 +934,7 @@ fi if [ "$phpfpm" = 'yes' ]; then pool=$(find /etc/php* -type d \( -name "pool.d" -o -name "*fpm.d" \)) - cp -f $vestacp/php-fpm/www.conf $pool/ + cp -f $devitcp/php-fpm/www.conf $pool/ php_fpm=$(ls /etc/init.d/php*-fpm* |cut -f 4 -d /) ln -s /etc/init.d/$php_fpm /etc/init.d/php-fpm > /dev/null 2>&1 update-rc.d $php_fpm defaults @@ -962,7 +962,7 @@ done #----------------------------------------------------------# if [ "$vsftpd" = 'yes' ]; then - cp -f $vestacp/vsftpd/vsftpd.conf /etc/ + cp -f $devitcp/vsftpd/vsftpd.conf /etc/ touch /var/log/vsftpd.log chown root:adm /var/log/vsftpd.log chmod 640 /var/log/vsftpd.log @@ -982,7 +982,7 @@ fi if [ "$proftpd" = 'yes' ]; then echo "127.0.0.1 $servername" >> /etc/hosts - cp -f $vestacp/proftpd/proftpd.conf /etc/proftpd/ + cp -f $devitcp/proftpd/proftpd.conf /etc/proftpd/ update-rc.d proftpd defaults service proftpd start check_result $? "proftpd start failed" @@ -1003,7 +1003,7 @@ if [ "$mysql" = 'yes' ]; then fi # Configuring MySQL/MariaDB - cp -f $vestacp/mysql/$mycnf /etc/mysql/my.cnf + cp -f $devitcp/mysql/$mycnf /etc/mysql/my.cnf if [ "$release" != '16.04' ]; then mysql_install_db fi @@ -1029,7 +1029,7 @@ if [ "$mysql" = 'yes' ]; then # Configuring phpMyAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pma/apache.conf /etc/phpmyadmin/ + cp -f $devitcp/pma/apache.conf /etc/phpmyadmin/ ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf fi if [[ ${release:0:2} -ge 18 ]]; then @@ -1038,7 +1038,7 @@ if [ "$mysql" = 'yes' ]; then mysql -e "GRANT ALL ON phpmyadmin.* TO phpmyadmin@localhost IDENTIFIED BY '$p'" else - cp -f $vestacp/pma/config.inc.php /etc/phpmyadmin/ + cp -f $devitcp/pma/config.inc.php /etc/phpmyadmin/ fi chmod 777 /var/lib/phpmyadmin/tmp fi @@ -1050,15 +1050,15 @@ fi if [ "$postgresql" = 'yes' ]; then ppass=$(gen_pass) - cp -f $vestacp/postgresql/pg_hba.conf /etc/postgresql/*/main/ + cp -f $devitcp/postgresql/pg_hba.conf /etc/postgresql/*/main/ service postgresql restart sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$ppass'" # Configuring phpPgAdmin if [ "$apache" = 'yes' ]; then - cp -f $vestacp/pga/phppgadmin.conf /etc/apache2/conf.d/ + cp -f $devitcp/pga/phppgadmin.conf /etc/apache2/conf.d/ fi - cp -f $vestacp/pga/config.inc.php /etc/phppgadmin/ + cp -f $devitcp/pga/config.inc.php /etc/phppgadmin/ fi @@ -1067,7 +1067,7 @@ fi #----------------------------------------------------------# if [ "$named" = 'yes' ]; then - cp -f $vestacp/bind/named.conf /etc/bind/ + cp -f $devitcp/bind/named.conf /etc/bind/ sed -i "s%listen-on%//listen%" /etc/bind/named.conf.options chown root:bind /etc/bind/named.conf chmod 640 /etc/bind/named.conf @@ -1093,9 +1093,9 @@ fi if [ "$exim" = 'yes' ]; then gpasswd -a Debian-exim mail - cp -f $vestacp/exim/exim4.conf.template /etc/exim4/ - cp -f $vestacp/exim/dnsbl.conf /etc/exim4/ - cp -f $vestacp/exim/spam-blocks.conf /etc/exim4/ + cp -f $devitcp/exim/exim4.conf.template /etc/exim4/ + cp -f $devitcp/exim/dnsbl.conf /etc/exim4/ + cp -f $devitcp/exim/spam-blocks.conf /etc/exim4/ touch /etc/exim4/white-blocks.conf if [ "$spamd" = 'yes' ]; then @@ -1129,7 +1129,7 @@ fi if [ "$dovecot" = 'yes' ]; then gpasswd -a dovecot mail if [[ ${release:0:2} -ge 18 ]]; then - cp -r /usr/local/vesta/install/debian/9/dovecot /etc/ + cp -r /usr/local/devit/install/debian/9/dovecot /etc/ if [ -z "$(grep yes /etc/dovecot/conf.d/10-mail.conf)" ]; then echo "namespace inbox {" >> /etc/dovecot/conf.d/10-mail.conf echo " inbox = yes" >> /etc/dovecot/conf.d/10-mail.conf @@ -1138,9 +1138,9 @@ if [ "$dovecot" = 'yes' ]; then echo "mbox_write_locks = fcntl" >> /etc/dovecot/conf.d/10-mail.conf fi else - cp -rf $vestacp/dovecot /etc/ + cp -rf $devitcp/dovecot /etc/ fi - cp -f $vestacp/logrotate/dovecot /etc/logrotate.d/ + cp -f $devitcp/logrotate/dovecot /etc/logrotate.d/ chown -R root:root /etc/dovecot* update-rc.d dovecot defaults service dovecot start @@ -1155,7 +1155,7 @@ fi if [ "$clamd" = 'yes' ]; then gpasswd -a clamav mail gpasswd -a clamav Debian-exim - cp -f $vestacp/clamav/clamd.conf /etc/clamav/ + cp -f $devitcp/clamav/clamd.conf /etc/clamav/ /usr/bin/freshclam update-rc.d clamav-daemon defaults service clamav-daemon start @@ -1185,7 +1185,7 @@ fi if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then if [ "$apache" = 'yes' ]; then - cp -f $vestacp/roundcube/apache.conf /etc/roundcube/ + cp -f $devitcp/roundcube/apache.conf /etc/roundcube/ ln -s /etc/roundcube/apache.conf /etc/apache2/conf.d/roundcube.conf fi @@ -1196,8 +1196,8 @@ if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then sed -i "s/^);/'password');/" /etc/roundcube/config.inc.php else r="$(gen_pass)" - cp -f $vestacp/roundcube/main.inc.php /etc/roundcube/ - cp -f $vestacp/roundcube/db.inc.php /etc/roundcube/ + cp -f $devitcp/roundcube/main.inc.php /etc/roundcube/ + cp -f $devitcp/roundcube/db.inc.php /etc/roundcube/ sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php fi @@ -1209,9 +1209,9 @@ if [ "$exim" = 'yes' ] && [ "$mysql" = 'yes' ]; then chown root:www-data /etc/roundcube/debian-db-roundcube.php fi - cp -f $vestacp/roundcube/vesta.php \ + cp -f $devitcp/roundcube/devit.php \ /usr/share/roundcube/plugins/password/drivers/ - cp -f $vestacp/roundcube/config.inc.php /etc/roundcube/plugins/password/ + cp -f $devitcp/roundcube/config.inc.php /etc/roundcube/plugins/password/ mysql -e "CREATE DATABASE roundcube" mysql -e "GRANT ALL ON roundcube.* @@ -1240,7 +1240,7 @@ fi #----------------------------------------------------------# if [ "$fail2ban" = 'yes' ]; then - cp -rf $vestacp/fail2ban /etc/ + cp -rf $devitcp/fail2ban /etc/ if [ "$dovecot" = 'no' ]; then fline=$(cat /etc/fail2ban/jail.local |grep -n dovecot-iptables -A 2) fline=$(echo "$fline" |grep enabled |tail -n1 |cut -f 1 -d -) @@ -1282,7 +1282,7 @@ if [ ! -z "$(grep ^admin: /etc/group)" ]; then groupdel admin > /dev/null 2>&1 fi -# Adding Vesta admin account +# Adding DevIT admin account $VESTA/bin/v-add-user admin $vpass $email default System Administrator check_result $? "can't create admin user" $VESTA/bin/v-change-user-shell admin bash @@ -1300,7 +1300,7 @@ if [ "$iptables" = 'yes' ]; then fi # Get public IP -pub_ip=$(curl -s vestacp.com/what-is-my-ip/) +pub_ip=$(curl -s devitcp.com/what-is-my-ip/) if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then echo "$VESTA/bin/v-update-sys-ip" >> /etc/rc.local $VESTA/bin/v-change-sys-ip-nat $ip $pub_ip @@ -1349,31 +1349,31 @@ fi # Enabling softaculous plugin if [ "$softaculous" = 'yes' ]; then - $VESTA/bin/v-add-vesta-softaculous + $VESTA/bin/v-add-devit-softaculous fi -# Starting Vesta service -update-rc.d vesta defaults -service vesta start -check_result $? "vesta start failed" +# Starting DevIT service +update-rc.d devit defaults +service devit start +check_result $? "devit start failed" chown admin:admin $VESTA/data/sessions # Adding notifications $VESTA/upd/add_notifications.sh # Adding cronjob for autoupdates -$VESTA/bin/v-add-cron-vesta-autoupdate +$VESTA/bin/v-add-cron-devit-autoupdate if [ "$port" != "8083" ]; then - echo "=== Set Vesta port: $port" - $VESTA/bin/v-change-vesta-port $port + echo "=== Set DevIT port: $port" + $VESTA/bin/v-change-devit-port $port fi -echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/vesta.conf +echo "NOTIFY_ADMIN_FULL_BACKUP='$email'" >> $VESTA/conf/devit.conf #----------------------------------------------------------# -# Vesta Access Info # +# DevIT Access Info # #----------------------------------------------------------# # Comparing hostname and ip @@ -1430,28 +1430,28 @@ else echo "We will not generate SSL because of this" fi echo "===" -echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/vesta.conf +echo "UPDATE_HOSTNAME_SSL='yes'" >> $VESTA/conf/devit.conf fi # Sending notification to admin email echo -e "Congratulations, you have just successfully installed \ -Vesta Control Panel +DevIT Control Panel https://$ip:$port username: admin password: $vpass -We hope that you enjoy your installation of Vesta. Please \ +We hope that you enjoy your installation of DevIT. Please \ feel free to contact us anytime if you have any questions. Thank you. -- Sincerely yours -vestacp.com team +devitcp.com team " > $tmpfile send_mail="$VESTA/web/inc/mail-wrapper.php" -cat $tmpfile | $send_mail -s "Vesta Control Panel" $email +cat $tmpfile | $send_mail -s "DevIT Control Panel" $email # Congrats echo '=======================================================' diff --git a/install/vst-install.sh b/install/vst-install.sh index aa9ecbf62..60a19471d 100755 --- a/install/vst-install.sh +++ b/install/vst-install.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Vesta installation wrapper -# http://vestacp.com +# DevIT installation wrapper +# http://devitcp.com # # Currently Supported Operating Systems: @@ -48,7 +48,7 @@ esac # Check wget if [ -e '/usr/bin/wget' ]; then - wget http://vestacp.com/pub/vst-install-$type.sh -O vst-install-$type.sh + wget http://devitcp.com/pub/vst-install-$type.sh -O vst-install-$type.sh if [ "$?" -eq '0' ]; then bash vst-install-$type.sh $* exit @@ -60,7 +60,7 @@ fi # Check curl if [ -e '/usr/bin/curl' ]; then - curl -O http://vestacp.com/pub/vst-install-$type.sh + curl -O http://devitcp.com/pub/vst-install-$type.sh if [ "$?" -eq '0' ]; then bash vst-install-$type.sh $* exit diff --git a/rebrand.sh b/rebrand.sh new file mode 100644 index 000000000..00c40b8d9 --- /dev/null +++ b/rebrand.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Check que tu es bien dans le dossier git +if [ ! -d .git ]; then + echo "Error: Ce script doit être lancé dans la racine du repo git" + exit 1 +fi + +# 1. Remplacement "devit" par "devit" (minuscules) +echo "Remplacement de 'devit' par 'devit'..." +find . -type f \( -name "*.sh" -o -name "*.php" -o -name "*.pl" -o -name "*.conf" -o -name "*.py" -o -name "*.js" -o -name "*.css" -o -name "*.html" -o -name "*.txt" -o -name "*.md" -o -name "*.xml" \) -exec sed -i 's/devit/devit/g' {} + + +git add . +git commit -m "rebrand: remplacer toutes les occurrences 'devit' par 'devit'" + +# 2. Remplacement "Vesta" par "DevIT" (majuscules) +echo "Remplacement de 'Vesta' par 'DevIT'..." +find . -type f \( -name "*.sh" -o -name "*.php" -o -name "*.pl" -o -name "*.conf" -o -name "*.py" -o -name "*.js" -o -name "*.css" -o -name "*.html" -o -name "*.txt" -o -name "*.md" -o -name "*.xml" \) -exec sed -i 's/Vesta/DevIT/g' {} + + +git add . +git commit -m "rebrand: remplacer toutes les occurrences 'Vesta' par 'DevIT'" + +echo "Rebranding terminé avec succès ! 🚀" \ No newline at end of file diff --git a/src/bash_coding_style.txt b/src/bash_coding_style.txt index e8fed9dc4..649e84e79 100644 --- a/src/bash_coding_style.txt +++ b/src/bash_coding_style.txt @@ -63,7 +63,7 @@ Contents: chown root bar chgrp sys bar - Each script have 4 logical part Variables, Verifications, Action and Vesta. + Each script have 4 logical part Variables, Verifications, Action and DevIT. Such parts should be devided by following frames. #----------------------------------------------------------# # Variable&Function # @@ -134,7 +134,7 @@ Contents: ------------------------------------------------ BASH CODING STYLE - skid@vestacp.com + skid@devitcp.com 2011.12.28 ------------------------------------------------ diff --git a/src/react/public/index.html b/src/react/public/index.html index 745e5e138..3755b8f0b 100755 --- a/src/react/public/index.html +++ b/src/react/public/index.html @@ -7,7 +7,7 @@ - Vesta + DevIT diff --git a/src/react/src/ControlPanelService/Updates.js b/src/react/src/ControlPanelService/Updates.js index be5478e4c..20710583f 100644 --- a/src/react/src/ControlPanelService/Updates.js +++ b/src/react/src/ControlPanelService/Updates.js @@ -19,7 +19,7 @@ export const bulkAction = (action, updates) => { formData.append("pkg[]", update); }); - return axios.post(BASE_URL + '/api/v1/bulk/vesta/', formData); + return axios.post(BASE_URL + '/api/v1/bulk/devit/', formData); }; export const handleAction = uri => { diff --git a/src/rpm/conf/ioncube.sh b/src/rpm/conf/ioncube.sh index 410ea47e5..02ae5f6c9 100755 --- a/src/rpm/conf/ioncube.sh +++ b/src/rpm/conf/ioncube.sh @@ -1,9 +1,9 @@ #!/bin/bash action=${1-add} -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' ioncube="ioncube_loader_lin_5.6.so" -php='/usr/local/vesta/php/lib/php.ini' +php='/usr/local/devit/php/lib/php.ini' if [ ! -e "$php" ]; then exit @@ -16,12 +16,12 @@ fi if [ "$action" = 'add' ]; then if [ -z "$(grep $ioncube $php |grep -v ';')" ]; then echo "zend_extension = '$VESTA/ioncube/$ioncube'" >> $php - /etc/init.d/vesta restart + /etc/init.d/devit restart fi else if [ ! -z "$(grep $ioncube $php |grep -v ';')" ]; then sed -i "/$ioncube/d" $php - /etc/init.d/vesta restart + /etc/init.d/devit restart fi fi diff --git a/src/rpm/conf/nginx.conf b/src/rpm/conf/nginx.conf index 0a427f07e..09ed7c631 100644 --- a/src/rpm/conf/nginx.conf +++ b/src/rpm/conf/nginx.conf @@ -1,7 +1,7 @@ user admin; worker_processes 1; -error_log /usr/local/vesta/log/nginx-error.log; -pid /var/run/vesta-nginx.pid; +error_log /usr/local/devit/log/nginx-error.log; +pid /var/run/devit-nginx.pid; events { worker_connections 128; @@ -33,7 +33,7 @@ http { '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; log_format bytes '$body_bytes_sent'; - access_log /usr/local/vesta/log/nginx-access.log main; + access_log /usr/local/devit/log/nginx-access.log main; # SSL PCI Compliance @@ -44,7 +44,7 @@ http { # Mime settings - include /usr/local/vesta/nginx/conf/mime.types; + include /usr/local/devit/nginx/conf/mime.types; default_type application/octet-stream; @@ -80,15 +80,15 @@ http { server { listen 8083; server_name _; - root /usr/local/vesta/web; + root /usr/local/devit/web; charset utf-8; # Fix error "The plain HTTP request was sent to HTTPS port" error_page 497 https://$host:$server_port$request_uri; ssl on; - ssl_certificate /usr/local/vesta/ssl/certificate.crt; - ssl_certificate_key /usr/local/vesta/ssl/certificate.key; + ssl_certificate /usr/local/devit/ssl/certificate.crt; + ssl_certificate_key /usr/local/devit/ssl/certificate.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; @@ -117,10 +117,10 @@ http { } location ~ \.php$ { - include /usr/local/vesta/nginx/conf/fastcgi_params; - fastcgi_param SCRIPT_FILENAME /usr/local/vesta/web/$fastcgi_script_name; + include /usr/local/devit/nginx/conf/fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/local/devit/web/$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; - fastcgi_pass unix:/var/run/vesta-php.sock; + fastcgi_pass unix:/var/run/devit-php.sock; fastcgi_intercept_errors on; break; } diff --git a/src/rpm/conf/php-fpm.conf b/src/rpm/conf/php-fpm.conf index d9a047959..c6fe873a5 100755 --- a/src/rpm/conf/php-fpm.conf +++ b/src/rpm/conf/php-fpm.conf @@ -1,11 +1,11 @@ [global] -pid = /var/run/vesta-php.pid +pid = /var/run/devit-php.pid daemonize = yes [www] user = admin group = admin -listen = /var/run/vesta-php.sock +listen = /var/run/devit-php.sock listen.owner = admin listen.group = admin listen.mode = 0660 @@ -24,11 +24,11 @@ env[TEMP] = /tmp env[VESTA] = $VESTA env[LANG] = en_US.UTF-8 php_flag[display_errors] = off -php_admin_value[error_log] = /usr/local/vesta/log/fpm-php.log +php_admin_value[error_log] = /usr/local/devit/log/fpm-php.log php_admin_flag[log_errors] = on php_admin_value[memory_limit] = 256M php_admin_value[post_max_size] = 512M php_admin_value[upload_max_filesize] = 512M php_admin_value[max_execution_time] = 600 php_admin_value[max_input_time] = 600 -php_admin_value[session.save_path] = /usr/local/vesta/data/sessions +php_admin_value[session.save_path] = /usr/local/devit/data/sessions diff --git a/test/test_actions.sh b/test/test_actions.sh index aeb4d204e..47295fd2f 100755 --- a/test/test_actions.sh +++ b/test/test_actions.sh @@ -1,7 +1,7 @@ #!/bin/bash # Define some variables -source /etc/profile.d/vesta.sh +source /etc/profile.d/devit.sh V_BIN="$VESTA/bin" V_TEST="$VESTA/test" @@ -49,7 +49,7 @@ tmpfile=$(mktemp -p /tmp ) # User # #----------------------------------------------------------# # Add user -cmd="v_add_user $user $user $user@vestacp.com default Super Test" +cmd="v_add_user $user $user $user@devitcp.com default Super Test" $cmd > $tmpfile 2>> $tmpfile echo_result "USER: Adding new user $user" "$?" "$tmpfile" "$cmd" @@ -59,7 +59,7 @@ $cmd > $tmpfile 2>> $tmpfile echo_result "USER: Changing password" "$?" "$tmpfile" "$cmd" # Change user contact -cmd="v_change_user_contact $user tester@vestacp.com" +cmd="v_change_user_contact $user tester@devitcp.com" $cmd > $tmpfile 2>> $tmpfile echo_result "USER: Changing email" "$?" "$tmpfile" "$cmd" @@ -167,7 +167,7 @@ echo_result "IP: Adding ip 198.18.0.125" "$?" "$tmpfile" "$cmd" #----------------------------------------------------------# # Add web domain -domain="test-$(random 4).vestacp.com" +domain="test-$(random 4).devitcp.com" cmd="v_add_web_domain $user $domain 198.18.0.125" $cmd > $tmpfile 2>> $tmpfile echo_result "WEB: Adding domain $domain on 198.18.0.125" "$?" "$tmpfile" "$cmd" diff --git a/test/test_json_listing.sh b/test/test_json_listing.sh index 16d175640..6f63f1eb2 100755 --- a/test/test_json_listing.sh +++ b/test/test_json_listing.sh @@ -1,13 +1,13 @@ #!/bin/bash -source /etc/profile.d/vesta.sh +source /etc/profile.d/devit.sh V_BIN="$VESTA/bin" V_TEST="$VESTA/test" commands='v_list_cron_jobs admin json v_list_databases admin json -v_list_database admin admin_vesta json +v_list_database admin admin_devit json v_list_database_server mysql localhost json v_list_database_servers mysql json v_list_dns_domains admin json @@ -25,7 +25,7 @@ v_list_user_ns admin json v_list_user_packages json v_list_users json v_list_web_domains admin json -v_list_web_domain admin default.vesta.domain json +v_list_web_domain admin default.devit.domain json v_list_web_templates admin json v_list_web_templates_nginx admin json' diff --git a/upd/add_firewall.sh b/upd/add_firewall.sh index 2e027c50a..fdc5330fa 100755 --- a/upd/add_firewall.sh +++ b/upd/add_firewall.sh @@ -1,6 +1,6 @@ #!/bin/bash -source /etc/profile.d/vesta.sh +source /etc/profile.d/devit.sh if [ ! -e "$VESTA/data/firewall" ]; then mkdir -p $VESTA/data/firewall chmod 770 $VESTA/data/firewall @@ -9,9 +9,9 @@ if [ ! -e "$VESTA/data/firewall" ]; then $VESTA/data/firewall/ chmod 660 $VESTA/data/firewall/* - source $VESTA/conf/vesta.conf + source $VESTA/conf/devit.conf if [ -z "$FIREWALL_SYSTEM" ]; then echo "FIREWALL_SYSTEM='iptables'" \ - >> $VESTA/conf/vesta.conf + >> $VESTA/conf/devit.conf fi fi diff --git a/upd/add_fwd_only.sh b/upd/add_fwd_only.sh index 80cc3a58a..2a5000414 100755 --- a/upd/add_fwd_only.sh +++ b/upd/add_fwd_only.sh @@ -41,6 +41,6 @@ if [ -e "/etc/exim4/exim4.conf.template" ]; then fi # Restart mail server -/usr/local/vesta/bin/v-restart-mail > /dev/null 2>&1 +/usr/local/devit/bin/v-restart-mail > /dev/null 2>&1 exit diff --git a/upd/add_notifications.sh b/upd/add_notifications.sh index eb85a2403..6980d6b1a 100755 --- a/upd/add_notifications.sh +++ b/upd/add_notifications.sh @@ -1,8 +1,8 @@ #!/bin/bash # Add notifications -rm -f /usr/local/vesta/data/users/admin/notifications.conf -/usr/local/vesta/bin/v-add-user-notification admin "File Manager" "Browse, copy, edit, view, and retrieve all your web domain files using a fully featured File Manager. Plugin is available for purchase." 'filemanager' -/usr/local/vesta/bin/v-add-user-notification admin "Chroot SFTP" "If you want to have SFTP accounts that will be used only to transfer files (and not to SSH), you can purchase and enable SFTP Chroot" -/usr/local/vesta/bin/v-add-user-notification admin "Softaculous" "Softaculous is one of the best Auto Installers and it is finally available" -/usr/local/vesta/bin/v-add-user-notification admin "Release 1.0.0-1" "This release brings a new UI that is much more pleasant to use. We've also fixed a dozen bugs and added support for the new Linux Distros. For more information please check release notes" +rm -f /usr/local/devit/data/users/admin/notifications.conf +/usr/local/devit/bin/v-add-user-notification admin "File Manager" "Browse, copy, edit, view, and retrieve all your web domain files using a fully featured File Manager. Plugin is available for purchase." 'filemanager' +/usr/local/devit/bin/v-add-user-notification admin "Chroot SFTP" "If you want to have SFTP accounts that will be used only to transfer files (and not to SSH), you can purchase and enable SFTP Chroot" +/usr/local/devit/bin/v-add-user-notification admin "Softaculous" "Softaculous is one of the best Auto Installers and it is finally available" +/usr/local/devit/bin/v-add-user-notification admin "Release 1.0.0-1" "This release brings a new UI that is much more pleasant to use. We've also fixed a dozen bugs and added support for the new Linux Distros. For more information please check release notes" diff --git a/upd/add_sudo.sh b/upd/add_sudo.sh index 439e35150..cebf47374 100755 --- a/upd/add_sudo.sh +++ b/upd/add_sudo.sh @@ -6,14 +6,14 @@ if [ ! -e '/etc/sudoers.d/admin' ]; then mkdir /etc/sudoers.d chmod 750 /etc/sudoers.d fi - echo '# Created by vesta update-trigger' > /etc/sudoers.d/admin + echo '# Created by devit update-trigger' > /etc/sudoers.d/admin echo 'Defaults env_keep="VESTA"' >> /etc/sudoers.d/admin echo 'Defaults:admin !syslog' >> /etc/sudoers.d/admin echo 'Defaults:admin !requiretty' >> /etc/sudoers.d/admin echo 'Defaults:root !requiretty' >> /etc/sudoers.d/admin echo '' >> /etc/sudoers.d/admin echo 'admin ALL=(ALL) ALL' >> /etc/sudoers.d/admin - echo 'admin ALL=NOPASSWD:/usr/local/vesta/bin/*' >> /etc/sudoers.d/admin + echo 'admin ALL=NOPASSWD:/usr/local/devit/bin/*' >> /etc/sudoers.d/admin chmod 440 /etc/sudoers.d/admin if [ -z "$(grep /etc/sudoers.d /etc/sudoers)" ]; then diff --git a/upd/convert_templates.sh b/upd/convert_templates.sh index f531a5d13..3b3e4ef64 100755 --- a/upd/convert_templates.sh +++ b/upd/convert_templates.sh @@ -1,23 +1,23 @@ #!/bin/bash # Check version -source /usr/local/vesta/conf/vesta.conf +source /usr/local/devit/conf/devit.conf if [ "$VERSION" != '0.9.7' ]; then exit fi # Rename web system service -sed -i "s/apache/httpd/g" /usr/local/vesta/conf/vesta.conf +sed -i "s/apache/httpd/g" /usr/local/devit/conf/devit.conf # Rename dns system service -sed -i "s/bind/named/g" /usr/local/vesta/conf/vesta.conf +sed -i "s/bind/named/g" /usr/local/devit/conf/devit.conf # Rename nginx config -mv /etc/nginx/conf.d/vesta_users.conf /etc/nginx/conf.d/vesta.conf 2>/dev/null -rm -f /etc/nginx/conf.d/vesta_ip.conf 2>/dev/null +mv /etc/nginx/conf.d/devit_users.conf /etc/nginx/conf.d/devit.conf 2>/dev/null +rm -f /etc/nginx/conf.d/devit_ip.conf 2>/dev/null # Update user packages -PKG=/usr/local/vesta/data/packages +PKG=/usr/local/devit/data/packages for package in $(ls $PKG); do default=$(grep "^TEMPLATE='" $PKG/$package | cut -f2 -d \') if [ ! -z "$default" ]; then @@ -29,7 +29,7 @@ for package in $(ls $PKG); do done # Update users -USR=/usr/local/vesta/data/users +USR=/usr/local/devit/data/users for user in $(ls $USR); do default=$(grep "^TEMPLATE='" $USR/$user/user.conf | cut -f2 -d \') if [ ! -z "$default" ]; then @@ -41,10 +41,10 @@ for user in $(ls $USR); do done # Rename NGINX to PROXY key -sed -i "s/NGINX/PROXY/g" /usr/local/vesta/data/users/*/web.conf +sed -i "s/NGINX/PROXY/g" /usr/local/devit/data/users/*/web.conf # Check template structure -TPL='/usr/local/vesta/data/templates/web' +TPL='/usr/local/devit/data/templates/web' if [ -e "$TPL/apache" ]; then mv $TPL/apache $TPL/httpd fi @@ -104,7 +104,7 @@ if [ -e "$TPL/webalizer.tpl" ]; then fi # Update proxy ip configuration -for ip in $(ls /usr/local/vesta/data/ips); do +for ip in $(ls /usr/local/devit/data/ips); do cat $TPL/nginx/proxy_ip.tpl |\ sed -e "s/%ip%/$ip/g" \ -e "s/%web_port%/8080/g" \ @@ -117,6 +117,6 @@ sed -i '/Symlinks protection/d' /etc/nginx/nginx.conf sed -i '/disable_symlinks.*/d' /etc/nginx/nginx.conf # Update version -sed -i 's/0.9.7/0.9.8/' /usr/local/vesta/conf/vesta.conf +sed -i 's/0.9.7/0.9.8/' /usr/local/devit/conf/devit.conf exit diff --git a/upd/convert_webip.sh b/upd/convert_webip.sh index 2df378e02..d04a2996e 100755 --- a/upd/convert_webip.sh +++ b/upd/convert_webip.sh @@ -1,21 +1,21 @@ #!/bin/bash -# Include vesta.conf -source /usr/local/vesta/conf/vesta.conf +# Include devit.conf +source /usr/local/devit/conf/devit.conf # Check if old scheme is in use -check_oldip=$(grep "^Listen" /etc/$WEB_SYSTEM/conf.d/vesta.conf) +check_oldip=$(grep "^Listen" /etc/$WEB_SYSTEM/conf.d/devit.conf) if [ -z "$check_oldip" ]; then exit fi -# Remove old ip definitions from vesta.conf -sed -i "/^Listen/d" /etc/$WEB_SYSTEM/conf.d/vesta.conf -sed -i "/^NameVirtualHost/d" /etc/$WEB_SYSTEM/conf.d/vesta.conf -sed -i "/^$/d" /etc/$WEB_SYSTEM/conf.d/vesta.conf +# Remove old ip definitions from devit.conf +sed -i "/^Listen/d" /etc/$WEB_SYSTEM/conf.d/devit.conf +sed -i "/^NameVirtualHost/d" /etc/$WEB_SYSTEM/conf.d/devit.conf +sed -i "/^$/d" /etc/$WEB_SYSTEM/conf.d/devit.conf # Create new ip configs -for ip in $(ls /usr/local/vesta/data/ips); do +for ip in $(ls /usr/local/devit/data/ips); do web_conf="/etc/$WEB_SYSTEM/conf.d/$ip.conf" if [ "$WEB_SYSTEM" = 'httpd' ] || [ "$WEB_SYSTEM" = 'apache2' ]; then @@ -30,6 +30,6 @@ for ip in $(ls /usr/local/vesta/data/ips); do done # Restart web server -/usr/local/vesta/bin/v-restart-web +/usr/local/devit/bin/v-restart-web exit diff --git a/upd/fix_dhcprenew.sh b/upd/fix_dhcprenew.sh index 08e76f69d..12afed255 100755 --- a/upd/fix_dhcprenew.sh +++ b/upd/fix_dhcprenew.sh @@ -4,17 +4,17 @@ if [ -e "/usr/bin/dhcprenew" ]; then mv /usr/bin/dhcprenew /usr/bin/dhcprenew.disabled # Notify admin via control panel - rm /usr/local/vesta/data/users/admin/notifications.conf - touch /usr/local/vesta/data/users/admin/notifications.conf - /usr/local/vesta/bin/v-add-user-notification admin \ - "Security Check" "Your server was compromised please contact us at info@vestacp.com to get help." + rm /usr/local/devit/data/users/admin/notifications.conf + touch /usr/local/devit/data/users/admin/notifications.conf + /usr/local/devit/bin/v-add-user-notification admin \ + "Security Check" "Your server was compromised please contact us at info@devitcp.com to get help." # Send email notification - send_mail="/usr/local/vesta/web/inc/mail-wrapper.php" - email=$(grep CONTACT /usr/local/vesta/data/users/admin/user.conf |cut -f2 -d \') + send_mail="/usr/local/devit/web/inc/mail-wrapper.php" + email=$(grep CONTACT /usr/local/devit/data/users/admin/user.conf |cut -f2 -d \') if [ ! -z "$email" ]; then - echo "Your server $(hostname) was compromised please contact us at info@vestacp.com to get help." |\ - $send_mail -s "SECURITY CHECK: Vesta Control Panel" $email + echo "Your server $(hostname) was compromised please contact us at info@devitcp.com to get help." |\ + $send_mail -s "SECURITY CHECK: DevIT Control Panel" $email fi fi diff --git a/upd/fix_nginx_auth.sh b/upd/fix_nginx_auth.sh index 2579e693f..06a52cbc4 100755 --- a/upd/fix_nginx_auth.sh +++ b/upd/fix_nginx_auth.sh @@ -1,7 +1,7 @@ #!/bin/bash -source /etc/profile.d/vesta.sh -source /usr/local/vesta/conf/vesta.conf +source /etc/profile.d/devit.sh +source /usr/local/devit/conf/devit.conf sed -i "s|web/%domain%/stats/auth.*|conf/web/%domain%.auth;|" \ $VESTA/data/templates/web/nginx/*/*tpl >/dev/null 2>&1 diff --git a/upd/fix_sessions.sh b/upd/fix_sessions.sh index faad94911..1b2f57afe 100755 --- a/upd/fix_sessions.sh +++ b/upd/fix_sessions.sh @@ -1,8 +1,8 @@ #!/bin/bash -# Fix vesta session save path +# Fix devit session save path # Defining vars -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' cmd1="$VESTA/upd/fix_sessions.sh" cmd2="$VESTA/bin/fix_sessions.sh" cron="$VESTA/data/users/admin/cron.conf" diff --git a/upd/fix_vesta_ssl_permissions.sh b/upd/fix_vesta_ssl_permissions.sh index 931a1195d..b419e691a 100755 --- a/upd/fix_vesta_ssl_permissions.sh +++ b/upd/fix_vesta_ssl_permissions.sh @@ -1,4 +1,4 @@ #!/bin/bash -chown root:mail /usr/local/vesta/ssl/* >/dev/null 2>&1 -chmod 660 /usr/local/vesta/ssl/* >/dev/null 2>&1 +chown root:mail /usr/local/devit/ssl/* >/dev/null 2>&1 +chmod 660 /usr/local/devit/ssl/* >/dev/null 2>&1 diff --git a/upd/limit_sudo.sh b/upd/limit_sudo.sh index 225721514..22d3f1d13 100755 --- a/upd/limit_sudo.sh +++ b/upd/limit_sudo.sh @@ -1,8 +1,8 @@ #!/bin/bash if [ -e "/etc/sudoers.d/admin" ]; then - sed -i "s/admin.*ALL=(ALL).*/# sudo is limited to vesta scripts/" \ + sed -i "s/admin.*ALL=(ALL).*/# sudo is limited to devit scripts/" \ /etc/sudoers.d/admin fi -sed -i "s/%admin.*ALL=(ALL).*/# sudo is limited to vesta scripts/" /etc/sudoers +sed -i "s/%admin.*ALL=(ALL).*/# sudo is limited to devit scripts/" /etc/sudoers diff --git a/upd/switch_rpath.sh b/upd/switch_rpath.sh index 0872924ea..863a71ea6 100755 --- a/upd/switch_rpath.sh +++ b/upd/switch_rpath.sh @@ -27,7 +27,7 @@ rm -f /etc/apache2/mods-enabled/rpaf.conf conf="/etc/apache2/mods-enabled/remoteip.conf" echo "" > $conf echo " RemoteIPHeader X-Real-IP" >> $conf -for ip in $(ls /usr/local/vesta/data/ips); do +for ip in $(ls /usr/local/devit/data/ips); do echo " RemoteIPInternalProxy $ip" >> $conf done echo "" >> $conf diff --git a/upd/upgrade-centos-v16-to-v17.sh b/upd/upgrade-centos-v16-to-v17.sh index ae54345cf..fefd09775 100755 --- a/upd/upgrade-centos-v16-to-v17.sh +++ b/upd/upgrade-centos-v16-to-v17.sh @@ -1,29 +1,29 @@ #!/bin/bash -RHOST='r.vestacp.com' -CHOST='c.vestacp.com' +RHOST='r.devitcp.com' +CHOST='c.devitcp.com' REPO='cmmnt' VERSION='rhel' -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' os=$(cut -f 1 -d ' ' /etc/redhat-release) release=$(grep -o "[0-9]" /etc/redhat-release |head -n1) codename="${os}_$release" -vestacp="http://$CHOST/$VERSION/$release" +devitcp="http://$CHOST/$VERSION/$release" servername=$(hostname -f) # PATH fix -if [ ! -f "/etc/profile.d/vesta.sh" ]; then - echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh +if [ ! -f "/etc/profile.d/devit.sh" ]; then + echo "export VESTA='$VESTA'" > /etc/profile.d/devit.sh fi -if [ $( grep -ic "vesta" /root/.bash_profile ) -eq 0 ]; then +if [ $( grep -ic "devit" /root/.bash_profile ) -eq 0 ]; then echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile fi -# Linking /var/log/vesta -if [ ! -L "/var/log/vesta" ]; then - ln -s $VESTA/log /var/log/vesta +# Linking /var/log/devit +if [ ! -L "/var/log/devit" ]; then + ln -s $VESTA/log /var/log/devit fi @@ -31,7 +31,7 @@ fi yum -y install expect > /dev/null 2>&1 -# Roundcube Vesta password driver - changing password_vesta_host (in config) to server hostname +# Roundcube DevIT password driver - changing password_devit_host (in config) to server hostname if [ -f "/usr/share/roundcubemail/plugins/password/config.inc.php" ]; then sed -i "s/localhost/$servername/g" /usr/share/roundcubemail/plugins/password/config.inc.php fi @@ -39,13 +39,13 @@ fi # Workaround for OpenVZ/Virtuozzo if [ "$release" -eq '7' ] && [ -e "/proc/vz/veinfo" ]; then - if [ $( grep -ic "Vesta: workraround for networkmanager" /etc/rc.local ) -eq 0 ]; then + if [ $( grep -ic "DevIT: workraround for networkmanager" /etc/rc.local ) -eq 0 ]; then if [ -f "/etc/nginx/nginx.conf" ] ; then - echo "#Vesta: workraround for networkmanager" >> /etc/rc.local + echo "#DevIT: workraround for networkmanager" >> /etc/rc.local echo "sleep 3 && service nginx restart" >> /etc/rc.local fi if [ -f "/etc/httpd/conf/httpd.conf" ] ; then - echo "#Vesta: workraround for networkmanager" >> /etc/rc.local + echo "#DevIT: workraround for networkmanager" >> /etc/rc.local echo "sleep 2 && service httpd restart" >> /etc/rc.local fi fi @@ -87,7 +87,7 @@ fi # Fixing empty NAT ip ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/) -pub_ip=$(curl -s vestacp.com/what-is-my-ip/) +pub_ip=$(curl -s devitcp.com/what-is-my-ip/) file="$VESTA/data/ips/$ip" if [ -f "$file" ] && [ $( grep -ic "NAT=''" $file ) -eq 1 ]; then if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then @@ -96,4 +96,4 @@ if [ -f "$file" ] && [ $( grep -ic "NAT=''" $file ) -eq 1 ]; then fi # Dovecot logrorate script -wget $vestacp/logrotate/dovecot -O /etc/logrotate.d/dovecot +wget $devitcp/logrotate/dovecot -O /etc/logrotate.d/dovecot diff --git a/upd/upgrade-debian-v16-to-v17.sh b/upd/upgrade-debian-v16-to-v17.sh index 2cc16f575..57ce49520 100755 --- a/upd/upgrade-debian-v16-to-v17.sh +++ b/upd/upgrade-debian-v16-to-v17.sh @@ -1,35 +1,35 @@ #!/bin/bash -CHOST='c.vestacp.com' +CHOST='c.devitcp.com' VERSION='debian' -VESTA='/usr/local/vesta' +VESTA='/usr/local/devit' os='debian' release=$(cat /etc/debian_version|grep -o [0-9]|head -n1) codename="$(cat /etc/os-release |grep VERSION= |cut -f 2 -d \(|cut -f 1 -d \))" -vestacp="http://$CHOST/$VERSION/$release" +devitcp="http://$CHOST/$VERSION/$release" servername=$(hostname -f) apt-get update > /dev/null 2>&1 # PATH fix -if [ ! -f "/etc/profile.d/vesta.sh" ]; then - echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh +if [ ! -f "/etc/profile.d/devit.sh" ]; then + echo "export VESTA='$VESTA'" > /etc/profile.d/devit.sh fi -if [ $( grep -ic "vesta" /root/.bash_profile ) -eq 0 ]; then +if [ $( grep -ic "devit" /root/.bash_profile ) -eq 0 ]; then echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile fi -# Linking /var/log/vesta -if [ ! -L "/var/log/vesta" ]; then - ln -s $VESTA/log /var/log/vesta +# Linking /var/log/devit +if [ ! -L "/var/log/devit" ]; then + ln -s $VESTA/log /var/log/devit fi if [ -f "/etc/roundcube/plugins/password/config.inc.php" ]; then - # Roundcube Vesta password driver - changing password_vesta_host (in config) to server hostname + # Roundcube DevIT password driver - changing password_devit_host (in config) to server hostname sed -i "s/localhost/$servername/g" /etc/roundcube/plugins/password/config.inc.php # Roundcube log permission fix @@ -64,7 +64,7 @@ fi # RoundCube tinyMCE fix if [ "$release" -eq '8' ]; then - tinymceFixArchiveURL=$vestacp/roundcube/roundcube-tinymce.tar.gz + tinymceFixArchiveURL=$devitcp/roundcube/roundcube-tinymce.tar.gz tinymceParentFolder=/usr/share/roundcube/program/js tinymceFolder=$tinymceParentFolder/tinymce tinymceBadJS=$tinymceFolder/tiny_mce.js @@ -88,7 +88,7 @@ fi # Fixing empty NAT ip ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/) -pub_ip=$(curl -s vestacp.com/what-is-my-ip/) +pub_ip=$(curl -s devitcp.com/what-is-my-ip/) file="$VESTA/data/ips/$ip" if [ -f "$file" ] && [ $( grep -ic "NAT=''" $file ) -eq 1 ]; then if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then @@ -134,4 +134,4 @@ if [ -f "/lib/systemd/system/clamav-daemon.service" ]; then fi # Dovecot logrorate script -wget $vestacp/logrotate/dovecot -O /etc/logrotate.d/dovecot +wget $devitcp/logrotate/dovecot -O /etc/logrotate.d/dovecot diff --git a/web/api/index.php b/web/api/index.php index 80f72b99e..8841d0498 100644 --- a/web/api/index.php +++ b/web/api/index.php @@ -1,5 +1,5 @@ ', $output); if (empty($_SESSION['error_msg'])) { - $_SESSION['error_msg'] = __('Error: vesta did not return any output.'); + $_SESSION['error_msg'] = __('Error: devit did not return any output.'); } if ($return_var == 4) { $_SESSION['error_msg'] = __('RESTORE_EXISTS'); diff --git a/web/api/v1/bulk/vesta/index.php b/web/api/v1/bulk/vesta/index.php index 63b273384..81aad9fe2 100644 --- a/web/api/v1/bulk/vesta/index.php +++ b/web/api/v1/bulk/vesta/index.php @@ -18,7 +18,7 @@ $action = $_POST['action']; if ($_SESSION['user'] == 'admin') { switch ($action) { - case 'update': $cmd='v-update-sys-vesta'; + case 'update': $cmd='v-update-sys-devit'; break; default: exit; } diff --git a/web/api/v1/delete/cron/autoupdate/index.php b/web/api/v1/delete/cron/autoupdate/index.php index f26de9987..e9f08d5b7 100644 --- a/web/api/v1/delete/cron/autoupdate/index.php +++ b/web/api/v1/delete/cron/autoupdate/index.php @@ -15,7 +15,7 @@ if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { } if ($_SESSION['user'] == 'admin') { - exec (VESTA_CMD."v-delete-cron-vesta-autoupdate", $output, $return_var); + exec (VESTA_CMD."v-delete-cron-devit-autoupdate", $output, $return_var); $message = __('Autoupdate has been successfully disabled'); unset($output); } diff --git a/web/api/v1/edit/server/index.php b/web/api/v1/edit/server/index.php index 77a443255..7cbfe97a8 100644 --- a/web/api/v1/edit/server/index.php +++ b/web/api/v1/edit/server/index.php @@ -86,11 +86,11 @@ foreach ($backup_types as $backup_type) { // List ssl web domains exec (VESTA_CMD."v-search-ssl-certificates json", $output, $return_var); $v_ssl_domains = json_decode(implode('', $output), true); -//$v_vesta_certificate +//$v_devit_certificate unset($output); // List ssl certificate info -exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var); +exec (VESTA_CMD."v-list-sys-devit-ssl json", $output, $return_var); $v_sys_ssl_str = json_decode(implode('', $output), true); unset($output); $v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT']; @@ -425,7 +425,7 @@ if (!empty($_POST['save'])) { // Delete WEB Domain SSL certificate if ((!isset($_POST['v_web_ssl_domain_checkbox'])) && (!empty($_SESSION['VESTA_CERTIFICATE'])) && (empty($_SESSION['error_msg']))) { unset($_SESSION['VESTA_CERTIFICATE']); - exec (VESTA_CMD."v-delete-sys-vesta-ssl", $output, $return_var); + exec (VESTA_CMD."v-delete-sys-devit-ssl", $output, $return_var); check_return_code($return_var,$output); unset($output); } @@ -437,7 +437,7 @@ if (!empty($_POST['save'])) { $v_web_ssl_str = explode(":", $_POST['v_web_ssl_domain']); $v_web_ssl_user = escapeshellarg($v_web_ssl_str[0]); $v_web_ssl_domain = escapeshellarg($v_web_ssl_str[1]); - exec (VESTA_CMD."v-add-sys-vesta-ssl ".$v_web_ssl_user." ".$v_web_ssl_domain, $output, $return_var); + exec (VESTA_CMD."v-add-sys-devit-ssl ".$v_web_ssl_user." ".$v_web_ssl_domain, $output, $return_var); check_return_code($return_var,$output); unset($output); @@ -445,7 +445,7 @@ if (!empty($_POST['save'])) { $_SESSION['VESTA_CERTIFICATE'] = $_POST['v_web_ssl_domain']; // List SSL certificate info - exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var); + exec (VESTA_CMD."v-list-sys-devit-ssl json", $output, $return_var); $v_sys_ssl_str = json_decode(implode('', $output), true); unset($output); $v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT']; @@ -485,13 +485,13 @@ if (!empty($_POST['save'])) { fclose($fp); } - exec (VESTA_CMD."v-change-sys-vesta-ssl ".$tmpdir, $output, $return_var); + exec (VESTA_CMD."v-change-sys-devit-ssl ".$tmpdir, $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { // List ssl certificate info - exec (VESTA_CMD."v-list-sys-vesta-ssl json", $output, $return_var); + exec (VESTA_CMD."v-list-sys-devit-ssl json", $output, $return_var); $v_sys_ssl_str = json_decode(implode('', $output), true); unset($output); $v_sys_ssl_crt = $v_sys_ssl_str['VESTA']['CRT']; @@ -518,7 +518,7 @@ if (!empty($_POST['save'])) { if($_SESSION['SFTPJAIL_KEY'] != $_POST['v_sftp_licence'] && $_POST['v_sftp'] == 'yes'){ $module = 'sftpjail'; $licence_key = escapeshellarg($_POST['v_sftp_licence']); - exec (VESTA_CMD."v-activate-vesta-license ".$module." ".$licence_key, $output, $return_var); + exec (VESTA_CMD."v-activate-devit-license ".$module." ".$licence_key, $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { @@ -533,7 +533,7 @@ if (!empty($_POST['save'])) { if($_POST['v_sftp'] == 'cancel' && $_SESSION['SFTPJAIL_KEY']){ $module = 'sftpjail'; $licence_key = escapeshellarg($_SESSION['SFTPJAIL_KEY']); - exec (VESTA_CMD."v-deactivate-vesta-license ".$module." ".$licence_key, $output, $return_var); + exec (VESTA_CMD."v-deactivate-devit-license ".$module." ".$licence_key, $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { @@ -548,7 +548,7 @@ if (!empty($_POST['save'])) { if($_SESSION['FILEMANAGER_KEY'] != $_POST['v_filemanager_licence'] && $_POST['v_filemanager'] == 'yes'){ $module = 'filemanager'; $licence_key = escapeshellarg($_POST['v_filemanager_licence']); - exec (VESTA_CMD."v-activate-vesta-license ".$module." ".$licence_key, $output, $return_var); + exec (VESTA_CMD."v-activate-devit-license ".$module." ".$licence_key, $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { @@ -563,7 +563,7 @@ if (!empty($_POST['save'])) { if($_POST['v_filemanager'] == 'cancel' && $_SESSION['FILEMANAGER_KEY']){ $module = 'filemanager'; $licence_key = escapeshellarg($_SESSION['FILEMANAGER_KEY']); - exec (VESTA_CMD."v-deactivate-vesta-license ".$module." ".$licence_key, $output, $return_var); + exec (VESTA_CMD."v-deactivate-devit-license ".$module." ".$licence_key, $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { @@ -576,7 +576,7 @@ if (!empty($_POST['save'])) { // activating softaculous if (empty($_SESSION['error_msg'])) { if($_SESSION['SOFTACULOUS'] != $_POST['v_softaculous'] && $_POST['v_softaculous'] == 'yes'){ - exec (VESTA_CMD."v-add-vesta-softaculous WEB", $output, $return_var); + exec (VESTA_CMD."v-add-devit-softaculous WEB", $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { @@ -589,7 +589,7 @@ if (!empty($_POST['save'])) { // disable softaculous if (empty($_SESSION['error_msg'])) { if($_SESSION['SOFTACULOUS'] != $_POST['v_softaculous'] && $_POST['v_softaculous'] == 'no'){ - exec (VESTA_CMD."v-delete-vesta-softaculous", $output, $return_var); + exec (VESTA_CMD."v-delete-devit-softaculous", $output, $return_var); check_return_code($return_var,$output); unset($output); if (empty($_SESSION['error_msg'])) { @@ -601,7 +601,7 @@ if (!empty($_POST['save'])) { // Change port if ((!empty($_POST['port'])) && ($port != $_POST['port'])) { - exec (VESTA_CMD."v-change-vesta-port ".escapeshellarg($_POST['port']), $output, $return_var); + exec (VESTA_CMD."v-change-devit-port ".escapeshellarg($_POST['port']), $output, $return_var); check_return_code($return_var,$output); unset($output); $port = $_POST['port']; @@ -657,7 +657,7 @@ $result = array( 'sftp_licence_key' => $_GET['sftp_licence_key'], 'licence_key' => $_GET['sftp_licence_key'] != '' ? $_GET['sftp_licence_key'] : $_SESSION['SFTPJAIL_KEY'], 'fm_licence_key_option' => $_GET['filemanager_licence_key'] != '' ? $_GET['filemanager_licence_key'] : $_SESSION['FILEMANAGER_KEY'], - 'vesta_certificate' => $_SESSION['VESTA_CERTIFICATE'], + 'devit_certificate' => $_SESSION['VESTA_CERTIFICATE'], 'yes_no_options' => [ __('no'), __('yes') ], 'dns_cluster_options' => [ __('no'), __('yes') ], 'postgre_sql_options' => [ __('no'), __('yes') ], diff --git a/web/api/v1/edit/server/test.php b/web/api/v1/edit/server/test.php index a76682b4a..f950a3428 100644 --- a/web/api/v1/edit/server/test.php +++ b/web/api/v1/edit/server/test.php @@ -8,7 +8,7 @@ header('Content-Type: application/json'); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); // Change port -exec (VESTA_CMD."v-change-vesta-port ".escapeshellarg('8087'), $output, $return_var); +exec (VESTA_CMD."v-change-devit-port ".escapeshellarg('8087'), $output, $return_var); check_return_code($return_var,$output); unset($output); diff --git a/web/api/v1/index.php b/web/api/v1/index.php index 80f72b99e..8841d0498 100644 --- a/web/api/v1/index.php +++ b/web/api/v1/index.php @@ -1,5 +1,5 @@ 0 ) { diff --git a/web/api/v1/schedule/backup/index.php b/web/api/v1/schedule/backup/index.php index 6e334918e..5efcc9a49 100644 --- a/web/api/v1/schedule/backup/index.php +++ b/web/api/v1/schedule/backup/index.php @@ -13,7 +13,7 @@ if ($return_var == 0) { } else { $_SESSION['error_msg'] = implode('
', $output); if (empty($_SESSION['error_msg'])) { - $_SESSION['error_msg'] = __('Error: vesta did not return any output.'); + $_SESSION['error_msg'] = __('Error: devit did not return any output.'); } if ($return_var == 4) { diff --git a/web/api/v1/schedule/restore/index.php b/web/api/v1/schedule/restore/index.php index 6816fefb0..6c43110f2 100644 --- a/web/api/v1/schedule/restore/index.php +++ b/web/api/v1/schedule/restore/index.php @@ -35,7 +35,7 @@ if ($return_var == 0) { } else { $_SESSION['error_msg'] = implode('
', $output); if (empty($_SESSION['error_msg'])) { - $_SESSION['error_msg'] = __('Error: vesta did not return any output.'); + $_SESSION['error_msg'] = __('Error: devit did not return any output.'); } if ($return_var == 4) { $_SESSION['error_msg'] = __('RESTORE_EXISTS'); diff --git a/web/api/v1/unsuspend/dns/index.php b/web/api/v1/unsuspend/dns/index.php index daf9a9911..4f3fcc044 100644 --- a/web/api/v1/unsuspend/dns/index.php +++ b/web/api/v1/unsuspend/dns/index.php @@ -28,7 +28,7 @@ if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) { exec (VESTA_CMD."v-unsuspend-dns-domain ".$v_username." ".$v_domain, $output, $return_var); if ($return_var != 0) { $error = implode('
', $output); - if (empty($error)) $error = __('Error: vesta did not return any output.'); + if (empty($error)) $error = __('Error: devit did not return any output.'); $_SESSION['error_msg'] = $error; } unset($output); @@ -42,7 +42,7 @@ if ((!empty($_GET['domain'])) && (!empty($_GET['record_id']))) { exec (VESTA_CMD."v-unsuspend-dns-record ".$v_username." ".$v_domain." ".$v_record_id, $output, $return_var); if ($return_var != 0) { $error = implode('
', $output); - if (empty($error)) $error = __('Error: vesta did not return any output.'); + if (empty($error)) $error = __('Error: devit did not return any output.'); $_SESSION['error_msg'] = $error; } unset($output); diff --git a/web/api/v1/unsuspend/mail/index.php b/web/api/v1/unsuspend/mail/index.php index 3f7f6ad42..ffc666da6 100644 --- a/web/api/v1/unsuspend/mail/index.php +++ b/web/api/v1/unsuspend/mail/index.php @@ -28,7 +28,7 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) { exec (VESTA_CMD."v-unsuspend-mail-domain ".$v_username." ".$v_domain, $output, $return_var); if ($return_var != 0) { $error = implode('
', $output); - if (empty($error)) $error = __('Error: vesta did not return any output.'); + if (empty($error)) $error = __('Error: devit did not return any output.'); $_SESSION['error_msg'] = $error; } unset($output); @@ -42,7 +42,7 @@ if ((!empty($_GET['domain'])) && (!empty($_GET['account']))) { exec (VESTA_CMD."v-unsuspend-mail-account ".$v_username." ".$v_domain." ".$v_account, $output, $return_var); if ($return_var != 0) { $error = implode('
', $output); - if (empty($error)) $error = __('Error: vesta did not return any output.'); + if (empty($error)) $error = __('Error: devit did not return any output.'); $_SESSION['error_msg'] = $error; } unset($output); diff --git a/web/api/v1/update/vesta/index.php b/web/api/v1/update/vesta/index.php index 7a0e4b203..a3d587266 100644 --- a/web/api/v1/update/vesta/index.php +++ b/web/api/v1/update/vesta/index.php @@ -14,7 +14,7 @@ if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) { if ($_SESSION['user'] == 'admin') { if (!empty($_GET['pkg'])) { $v_pkg = escapeshellarg($_GET['pkg']); - exec (VESTA_CMD."v-update-sys-vesta ".$v_pkg, $output, $return_var); + exec (VESTA_CMD."v-update-sys-devit ".$v_pkg, $output, $return_var); } if ($return_var != 0) { diff --git a/web/css/styles.min.css b/web/css/styles.min.css index 302f9c011..137418b05 100644 --- a/web/css/styles.min.css +++ b/web/css/styles.min.css @@ -2923,15 +2923,15 @@ a.button.cancel { .login a.error { color: #BE5ABF; } -.vestacp { +.devitcp { color: #505050; font-size: 10px; text-align: right; } -.vestacp:hover { +.devitcp:hover { color: #2c9491; } -.vestacp:active { +.devitcp:active { color: #ff6701; } .login-bottom { diff --git a/web/error/404/index.html b/web/error/404/index.html index 7a2cf3fa4..00b882230 100644 --- a/web/error/404/index.html +++ b/web/error/404/index.html @@ -18,7 +18,7 @@

Page Not Found

- +
Try start again from main page or go back to previous page
diff --git a/web/error/index.html b/web/error/index.html index 522b81967..a259bb20e 100644 --- a/web/error/index.html +++ b/web/error/index.html @@ -17,8 +17,8 @@ -

Internal vesta error

- +

Internal devit error

+
Try start again from home page or go back to previous page
diff --git a/web/hotkeys.html b/web/hotkeys.html index 899272c21..04816fdc0 100644 --- a/web/hotkeys.html +++ b/web/hotkeys.html @@ -17,7 +17,7 @@ body { font-family: Arial; } -Vesta Keyboard Shortcuts +DevIT Keyboard Shortcuts

Keyboard Shortcuts

diff --git a/web/inc/i18n/ar.php b/web/inc/i18n/ar.php index e50cfec72..9873045c1 100644 --- a/web/inc/i18n/ar.php +++ b/web/inc/i18n/ar.php @@ -1,7 +1,7 @@ 'لاستثناء جميع الوظائف المجدولة استخدم *', 'USER_EXCLUSIONS' => 'اكتب اسم المجلد, واحد في كل سطر. لاستثناء جميع المجلدات استخدم *', - 'Welcome to Vesta Control Panel' => 'Vesta أهلا بكم في لوحة تحكم', - 'MAIL_FROM' => 'Vesta لوحة تحكم ', + 'Welcome to DevIT Control Panel' => 'DevIT أهلا بكم في لوحة تحكم', + 'MAIL_FROM' => 'DevIT لوحة تحكم ', 'GREETINGS_GORDON_FREEMAN' => "مرحبا, %s %s,\n", 'GREETINGS' => "مرحبا,\n", - 'ACCOUNT_READY' => "تم انشاء حسابك بنجاح وهو جاهز للاستخدام.\n\nhttps://%s/login/\nاسم المستخدم: %s\nكلمة المرور: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "تم انشاء حسابك بنجاح وهو جاهز للاستخدام.\n\nhttps://%s/login/\nاسم المستخدم: %s\nكلمة المرور: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'معلومات اعتماد الدخول لبروتوكول نقل الملفات', - 'FTP_ACCOUNT_READY' => "تم إنشاء حساب بروتوكول نقل الملفات وهو جاهز للاستخدام.\n\nاسم المضيف: %s\nاسم المستخدم: %s_%s\nكلمة المرور: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "تم إنشاء حساب بروتوكول نقل الملفات وهو جاهز للاستخدام.\n\nاسم المضيف: %s\nاسم المستخدم: %s_%s\nكلمة المرور: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'معلومات اعتماد قاعدة البيانات', - 'DATABASE_READY' => "تم انشاء قاعدة البيانات بنجاح.\n\nقاعدة البيانات: %s\nاسم المستخدم: %s\nكلمة المرور: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "تم انشاء قاعدة البيانات بنجاح.\n\nقاعدة البيانات: %s\nاسم المستخدم: %s\nكلمة المرور: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'نسيت كلمة المرور', 'Confirm' => 'تأكيد', @@ -532,7 +532,7 @@ $LANG['ar'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'لقد تم إرسال كود إعادة تعيين كلمة المرور لعنوان بريدك الإلكتروني
', 'MAIL_RESET_SUBJECT' => 'تم إعادة تعيين كلمة المرور %s', - 'PASSWORD_RESET_REQUEST' => "لإعادة تعيين كلمة مرور لوحة التحكم , برجاء اتباع الرابط التالي link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, بامكانك أيضا اتباع الرابط التالي https://%s/reset/?action=code&user=%s وادخال كود إعادة التعيين التالي code:\n%s\n\n إذا لم تطلب إعادة تعيين كلمة المرور, برجاء تجاهل هذه الرسالة وتقبل اعتذارنا.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "لإعادة تعيين كلمة مرور لوحة التحكم , برجاء اتباع الرابط التالي link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, بامكانك أيضا اتباع الرابط التالي https://%s/reset/?action=code&user=%s وادخال كود إعادة التعيين التالي code:\n%s\n\n إذا لم تطلب إعادة تعيين كلمة المرور, برجاء تجاهل هذه الرسالة وتقبل اعتذارنا.\n\n--\nDevIT Control Panel\n", 'Jan' => 'كانون الثاني', 'Feb' => 'شباط', @@ -576,7 +576,7 @@ $LANG['ar'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'نظام تخصيص حجوم الملفات (Quota)', - 'Vesta Control Panel Plugins' => 'إضافات لوحة التحكم فيستا', + 'DevIT Control Panel Plugins' => 'إضافات لوحة التحكم فيستا', 'preview' => 'معاينة', 'Reseller Role' => 'ميزة الريسيلر', 'Web Config Editor' => 'محرر إعدادات الويب', @@ -737,7 +737,7 @@ $LANG['ar'] = array( 'webalizer' => 'محلل الويب webalizer', 'awstats' => 'احصائيات الويب awstats', - 'Vesta SSL' => 'فيستا SSL', + 'DevIT SSL' => 'فيستا SSL', 'SUBJECT' => 'العنوان', 'ALIASES' => 'الاسم المستعار', 'NOT_BEFORE' => 'ليس_قبل', diff --git a/web/inc/i18n/az.php b/web/inc/i18n/az.php index 715043a0a..2b60461e6 100644 --- a/web/inc/i18n/az.php +++ b/web/inc/i18n/az.php @@ -1,6 +1,6 @@ 'Hər sətrə bir verilənlər bazası əlavə edin. Hamısı üçün * istifadə edin. ', 'CRON_EXCLUSIONS' => 'Bütün zamanlanmış tapşırıqları xaric etmək üçün * istifadə edin', 'USER_EXCLUSIONS' => 'Hər sətrə bir qovluq əlavə edin. Bütün versiyaları xaric etmək üçün * istifadə edin', - 'Welcome to Vesta Control Panel' => 'Vesta nəzarət panelinə xoş gəldiniz', - 'MAIL_FROM' => 'Vesta Nəzarət Paneli ', + 'Welcome to DevIT Control Panel' => 'DevIT nəzarət panelinə xoş gəldiniz', + 'MAIL_FROM' => 'DevIT Nəzarət Paneli ', 'GREETINGS_GORDON_FREEMAN' => "Hər vaxtınız xeyir, %s %s,\n", 'GREETINGS' => "Hər vaxtınız xeyir,\n", - 'ACCOUNT_READY' => "Hesabınız uğurla yaradıldı və istifadəyə hazırdır.\n\nhttps://%s/login/\nİstifadəçi adı: %s\nŞifrə: %s\n\n--\nVesta Nəzarət Paneli\n", + 'ACCOUNT_READY' => "Hesabınız uğurla yaradıldı və istifadəyə hazırdır.\n\nhttps://%s/login/\nİstifadəçi adı: %s\nŞifrə: %s\n\n--\nDevIT Nəzarət Paneli\n", 'FTP login credentials' => 'FTP giriş məlumatları', - 'FTP_ACCOUNT_READY' => "FTP hesabı uğurla yaradıldı və istifadə hazırdır.\n\nHostname: %s\nİstifadəçi adı: %s_%s\nŞifrə: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP hesabı uğurla yaradıldı və istifadə hazırdır.\n\nHostname: %s\nİstifadəçi adı: %s_%s\nŞifrə: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Veritabanı Bilgileri', - 'DATABASE_READY' => "Verilənlər bazası yaradıldı.\n\Verilənlər bazsı: %s\nİstifadəçi: %s\Şifrə: %s\n%s\n\n--\nVesta Nəzarət Paneli\n", + 'DATABASE_READY' => "Verilənlər bazası yaradıldı.\n\Verilənlər bazsı: %s\nİstifadəçi: %s\Şifrə: %s\n%s\n\n--\nDevIT Nəzarət Paneli\n", 'forgot password' => 'Şifrəmi unutdum', 'Confirm' => 'Təstiqlə', 'New Password' => 'Yeni şifrə', @@ -514,7 +514,7 @@ $LANG['az'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Şifrə sıfırlama kodu e-poçt ünvanınıza göndərildi.
', 'MAIL_RESET_SUBJECT' => 'Şifrə sıfırlama - %s', - 'PASSWORD_RESET_REQUEST' => "Şifrənizi sıfırlamaq üçün lütfən linki izləyin:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\Alternativ olaraq https://%s/reset/?action=code&user=%s linkinə klik edib davamına bu reset kodunuzu daxil edə bilərsiniz:\n%s\n\nƏgər şifrə sıfırlama istəyiniz olmayıbsa lütfən mesajı yox sayın və üzrümüzü qəbul edin.\n\n--\nVesta Nəzarət Mərkəzi\n", + 'PASSWORD_RESET_REQUEST' => "Şifrənizi sıfırlamaq üçün lütfən linki izləyin:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\Alternativ olaraq https://%s/reset/?action=code&user=%s linkinə klik edib davamına bu reset kodunuzu daxil edə bilərsiniz:\n%s\n\nƏgər şifrə sıfırlama istəyiniz olmayıbsa lütfən mesajı yox sayın və üzrümüzü qəbul edin.\n\n--\nDevIT Nəzarət Mərkəzi\n", 'Jan' => 'Yan', 'Feb' => 'Fev', 'Mar' => 'Mar', @@ -556,7 +556,7 @@ $LANG['az'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FaylSistemi disk kvotası', - 'Vesta Control Panel Plugins' => 'Vesta Nəzarət Paneli əlavələri', + 'DevIT Control Panel Plugins' => 'DevIT Nəzarət Paneli əlavələri', 'preview' => 'Ön görünüş', 'Reseller Role' => 'Reseller rolu', 'Web Config Editor' => 'Veb Konfiqurasiya redaktoru', @@ -708,7 +708,7 @@ $LANG['az'] = array( 'Generate' => 'Yaratmaq', 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'MÖVZU', 'ALIASES' => 'LƏQƏBLƏR', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/bg.php b/web/inc/i18n/bg.php index 642e6cfae..33d58a8f1 100644 --- a/web/inc/i18n/bg.php +++ b/web/inc/i18n/bg.php @@ -1,6 +1,6 @@ 'За да изключите всички задачи, използвайте *', 'USER_EXCLUSIONS' => 'Въведете име на директория, по едно на ред. За да изключите всички директории, използвайте *', - 'Welcome to Vesta Control Panel' => 'Добре дошли във Контролния панел на Vesta', - 'MAIL_FROM' => 'Контролният панел на Vesta ', + 'Welcome to DevIT Control Panel' => 'Добре дошли във Контролния панел на DevIT', + 'MAIL_FROM' => 'Контролният панел на DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Здравейте, %s %s,\n", 'GREETINGS' => "Здравейте,\n", - 'ACCOUNT_READY' => "Акаунтът ви беше създаден успешно и вече е готов за употреба.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Акаунтът ви беше създаден успешно и вече е готов за употреба.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'Данни за FTP вход', - 'FTP_ACCOUNT_READY' => "FTP акаунтът ви беше създаден успешно и вече е готов за употреба.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP акаунтът ви беше създаден успешно и вече е готов за употреба.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Информация за база дснни', - 'DATABASE_READY' => "Базата данни беше създадена успешно.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Базата данни беше създадена успешно.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'забравена парола', 'Confirm' => 'Потвърди', @@ -525,7 +525,7 @@ $LANG['bg'] = array( 'RESET_NOTICE' => '', // should we add something here? I don't think it's needed. 'RESET_CODE_SENT' => 'Кодът за възстановяване на паролата беше изпратен успешно на вашия email
', 'MAIL_RESET_SUBJECT' => 'Паролата е възстановена на %s', - 'PASSWORD_RESET_REQUEST' => "За да възстановите паролата за контролния панел, моля използвайте следния линк:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s and enter the following reset code:\n%s\n\nIf you did not request password reset, please ignore this message and accept our apologies.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "За да възстановите паролата за контролния панел, моля използвайте следния линк:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s and enter the following reset code:\n%s\n\nIf you did not request password reset, please ignore this message and accept our apologies.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Януари', 'Feb' => 'Февруари', @@ -569,7 +569,7 @@ $LANG['bg'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Квота на файловата система на диска', - 'Vesta Control Panel Plugins' => 'Допълнения за контролния панел на Vesta', + 'DevIT Control Panel Plugins' => 'Допълнения за контролния панел на DevIT', 'preview' => 'преглед', 'Reseller Role' => 'Reseller роля', 'Web Config Editor' => 'Web Config редактор', @@ -731,7 +731,7 @@ $LANG['bg'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/bs.php b/web/inc/i18n/bs.php index 4e2f32e1a..20ae67a74 100644 --- a/web/inc/i18n/bs.php +++ b/web/inc/i18n/bs.php @@ -1,6 +1,6 @@ * */ @@ -510,17 +510,17 @@ $LANG['bs'] = array( 'CRON_EXCLUSIONS' => 'To exclude all jobs use *', 'USER_EXCLUSIONS' => 'Type directory name, one per line. To exlude all dirs use *', - 'Welcome to Vesta Control Panel' => 'Dobrodošli u Vesta kontrolni panel', - 'MAIL_FROM' => 'Vesta kontrolni panel ', + 'Welcome to DevIT Control Panel' => 'Dobrodošli u DevIT kontrolni panel', + 'MAIL_FROM' => 'DevIT kontrolni panel ', 'GREETINGS_GORDON_FREEMAN' => "Đe si, %s %s,\n", 'GREETINGS' => "Đe si, šta ima,\n", - 'ACCOUNT_READY' => "Vaš račun je uspješno kreiran i spreman je za upotrebu.\n\nhttps://%s/login/\nKorisničko ime: %s\nŠifra: %s\n\n--\nVesta kontrolni panel\n", + 'ACCOUNT_READY' => "Vaš račun je uspješno kreiran i spreman je za upotrebu.\n\nhttps://%s/login/\nKorisničko ime: %s\nŠifra: %s\n\n--\nDevIT kontrolni panel\n", 'FTP login credentials' => 'FTP podaci', - 'FTP_ACCOUNT_READY' => "FTP račun je uspješno kreiran. Koristite sljedeće podatke kako biste ga ispravno koristili:\n\nHostname: %s\nKorisničko ime: %s_%s\nŠifra: %s\n\n--\nVesta kontrolni panel\n", + 'FTP_ACCOUNT_READY' => "FTP račun je uspješno kreiran. Koristite sljedeće podatke kako biste ga ispravno koristili:\n\nHostname: %s\nKorisničko ime: %s_%s\nŠifra: %s\n\n--\nDevIT kontrolni panel\n", 'Database Credentials' => 'Podaci baze podataka', - 'DATABASE_READY' => "Baza podataka je supješno kreirana. Koristite sljedeće podatke kako biste ispravno bazu koristili:\n\nDatabase: %s\nKorisničko ime: %s\nŠifra: %s\n%s\n\n--\nVesta kontrolni panel\n", + 'DATABASE_READY' => "Baza podataka je supješno kreirana. Koristite sljedeće podatke kako biste ispravno bazu koristili:\n\nDatabase: %s\nKorisničko ime: %s\nŠifra: %s\n%s\n\n--\nDevIT kontrolni panel\n", 'forgot password' => 'zaboravljena šifra', 'Confirm' => 'Potvrditi', @@ -531,7 +531,7 @@ $LANG['bs'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Kod resetovane šifre je poslan na vašu mail adresu
', 'MAIL_RESET_SUBJECT' => 'Šifra je resetovan %s', - 'PASSWORD_RESET_REQUEST' => "Za resetovanje šifre slijedite link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nIli, možete ići na https://%s/reset/?action=code&user=%s i unijeti kod:\n%s\n\nAko niste resetovali šifru, ignorišite ovu poruku i prihvatite naše izvinjenje.\n\n--\nVesta kontrolni panel\n", + 'PASSWORD_RESET_REQUEST' => "Za resetovanje šifre slijedite link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nIli, možete ići na https://%s/reset/?action=code&user=%s i unijeti kod:\n%s\n\nAko niste resetovali šifru, ignorišite ovu poruku i prihvatite naše izvinjenje.\n\n--\nDevIT kontrolni panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -575,7 +575,7 @@ $LANG['bs'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta kontrolni panel Plugini', + 'DevIT Control Panel Plugins' => 'DevIT kontrolni panel Plugini', 'preview' => 'pregled', 'Reseller Role' => 'Reseller uloga', 'Web Config Editor' => 'Web Config Editor', @@ -736,7 +736,7 @@ $LANG['bs'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/cn.php b/web/inc/i18n/cn.php index d7729b9a4..170295295 100644 --- a/web/inc/i18n/cn.php +++ b/web/inc/i18n/cn.php @@ -1,7 +1,7 @@ 'CPU', 'Memory' => '内存', 'Uptime' => '已运行时间', - 'core package' => 'Vesta 核心系统', - 'php interpreter' => 'Vesta PHP解释器', - 'internal web server' => 'Vesta Web服务', + 'core package' => 'DevIT 核心系统', + 'php interpreter' => 'DevIT PHP解释器', + 'internal web server' => 'DevIT Web服务', 'Version' => '版本', 'Release' => '发行版本', 'Architecture' => '架构', @@ -406,7 +406,7 @@ $LANG['cn'] = array( 'ICMP' => 'ICMP', 'SSH' => 'SSH', 'FTP' => 'FTP', - 'VESTA' => 'Vesta', + 'VESTA' => 'DevIT', 'Add one more Name Server' => '增加一个DNS服务器', 'web domain' => '网站域名', @@ -521,17 +521,17 @@ $LANG['cn'] = array( 'CRON_EXCLUSIONS' => '要排除所有任务请使用 *', 'USER_EXCLUSIONS' => '输入目录名称,每行一个。要排除所有目录请使用 *', - 'Welcome to Vesta Control Panel' => '欢迎来到 Vesta 管理系统', - 'MAIL_FROM' => 'Vesta 管理系统 ', + 'Welcome to DevIT Control Panel' => '欢迎来到 DevIT 管理系统', + 'MAIL_FROM' => 'DevIT 管理系统 ', 'GREETINGS_GORDON_FREEMAN' => "您好,%s %s,\n\n", 'GREETINGS' => "您好,\n\n", - 'ACCOUNT_READY' => "您的账户已创建成功,并可以开始使用了!\n\nhttps://%s/login/\n用户名称: %s\n密码: %s\n\n--\nVesta 管理系统\n", + 'ACCOUNT_READY' => "您的账户已创建成功,并可以开始使用了!\n\nhttps://%s/login/\n用户名称: %s\n密码: %s\n\n--\nDevIT 管理系统\n", 'FTP login credentials' => 'FTP 登录信息', - 'FTP_ACCOUNT_READY' => "FTP 账户已创建成功,并可以开始使用了!\n\n主机名称: %s\n用户名称: %s_%s\n密码: %s\n\n--\nVesta 管理系统\n", + 'FTP_ACCOUNT_READY' => "FTP 账户已创建成功,并可以开始使用了!\n\n主机名称: %s\n用户名称: %s_%s\n密码: %s\n\n--\nDevIT 管理系统\n", 'Database Credentials' => '数据库登录信息', - 'DATABASE_READY' => "数据库已添加成功!\n\n数据库名称: %s\n用户名称: %s\n密码: %s\n%s\n\n--\nVesta 管理系统\n", + 'DATABASE_READY' => "数据库已添加成功!\n\n数据库名称: %s\n用户名称: %s\n密码: %s\n%s\n\n--\nDevIT 管理系统\n", 'forgot password' => '忘记密码', 'Confirm' => '确认', @@ -542,7 +542,7 @@ $LANG['cn'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => '重置代码已发送到您的邮箱
', 'MAIL_RESET_SUBJECT' => '重置密码在 %s', - 'PASSWORD_RESET_REQUEST' => '重置密码请点击链接:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s\n输入重置代码:\n%s\n\n如果您没有要求重置密码,请忽略此邮件\n\n--\nVesta 管理系统\n', + 'PASSWORD_RESET_REQUEST' => '重置密码请点击链接:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s\n输入重置代码:\n%s\n\n如果您没有要求重置密码,请忽略此邮件\n\n--\nDevIT 管理系统\n', 'Jan' => '01月', 'Feb' => '02月', @@ -586,7 +586,7 @@ $LANG['cn'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => '磁盘配额', - 'Vesta Control Panel Plugins' => 'Vesta 插件', + 'DevIT Control Panel Plugins' => 'DevIT 插件', 'preview' => '预览', 'Reseller Role' => '作为经销商', 'Web Config Editor' => '网络配置编辑器', @@ -747,7 +747,7 @@ $LANG['cn'] = array( 'webalizer' => 'Webalizer', 'awstats' => 'AWStats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => '使用者', 'ALIASES' => '可选名称', 'NOT_BEFORE' => '有效期自', diff --git a/web/inc/i18n/cz.php b/web/inc/i18n/cz.php index 9a0cac798..e47b8257a 100644 --- a/web/inc/i18n/cz.php +++ b/web/inc/i18n/cz.php @@ -1,6 +1,6 @@ * */ @@ -511,17 +511,17 @@ $LANG['cz'] = array( 'CRON_EXCLUSIONS' => 'To exclude all jobs use *', 'USER_EXCLUSIONS' => 'Type directory name, one per line. To exlude all dirs use *', - 'Welcome to Vesta Control Panel' => 'Vítejte na Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Vítejte na DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Ahoj!, %s %s,\n", 'GREETINGS' => "Ahoj!,\n", - 'ACCOUNT_READY' => "Váš účet byl vytvořen a je připraven k použití.\n\nhttps://%s/login/\nUživatelské jméno: %s\nHeslo: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Váš účet byl vytvořen a je připraven k použití.\n\nhttps://%s/login/\nUživatelské jméno: %s\nHeslo: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTP přihlašovací údaje', - 'FTP_ACCOUNT_READY' => "FTP účet byl vytvořen a je připraven k použití.\n\nHostname: %s\nUživatelské jméno: %s_%s\nHeslo: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP účet byl vytvořen a je připraven k použití.\n\nHostname: %s\nUživatelské jméno: %s_%s\nHeslo: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Databáze přihlašovací údaje', - 'DATABASE_READY' => "Databáze byla úspěšně vytvořena.\n\nDatabase: %s\nUživatelské jméno: %s\nHeslo: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Databáze byla úspěšně vytvořena.\n\nDatabase: %s\nUživatelské jméno: %s\nHeslo: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'zapomenuté heslo', 'Confirm' => 'Potvrdit', @@ -532,7 +532,7 @@ $LANG['cz'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Resetování hesla. Kód byl odeslán na vaši e-mailovou adresu
', 'MAIL_RESET_SUBJECT' => 'Obnovení hesla na %s', - 'PASSWORD_RESET_REQUEST' => "Chcete-li obnovit heslo ovládacího panelu, prosím následujte tento odkaz:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nPřípadně, můžete se obrátit na https://%s/reset/?action=code&user=%s a zadejte následující resetovací kód:\n%s\n\nPokud jste si nevyžádali resetování hesla, prosím, tuto zprávu ignorovat a přijmout naši omluvu.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Chcete-li obnovit heslo ovládacího panelu, prosím následujte tento odkaz:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nPřípadně, můžete se obrátit na https://%s/reset/?action=code&user=%s a zadejte následující resetovací kód:\n%s\n\nPokud jste si nevyžádali resetování hesla, prosím, tuto zprávu ignorovat a přijmout naši omluvu.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -576,7 +576,7 @@ $LANG['cz'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -737,7 +737,7 @@ $LANG['cz'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/da.php b/web/inc/i18n/da.php index 6e0fab72a..d0ac2ad1c 100644 --- a/web/inc/i18n/da.php +++ b/web/inc/i18n/da.php @@ -1,9 +1,9 @@ 'For at udelukke alle opgaver, brug *', 'USER_EXCLUSIONS' => 'Indtast mappenavn, et per linie. For at udelukke alle mapper, brug *', - 'Welcome to Vesta Control Panel' => 'Velkommen til Vesta Kontrolpanel', - 'MAIL_FROM' => 'Vesta Kontrolpanel ', + 'Welcome to DevIT Control Panel' => 'Velkommen til DevIT Kontrolpanel', + 'MAIL_FROM' => 'DevIT Kontrolpanel ', 'GREETINGS_GORDON_FREEMAN' => "Hej, %s %s,\n", 'GREETINGS' => "Hej,\n", - 'ACCOUNT_READY' => "Din konto er oprettet og er klar til brug.\n\nhttps://%s/login/\nBrugernavn: %s\nAdgangskode: %s\n\n--\nVesta Kontrolpanel\n", + 'ACCOUNT_READY' => "Din konto er oprettet og er klar til brug.\n\nhttps://%s/login/\nBrugernavn: %s\nAdgangskode: %s\n\n--\nDevIT Kontrolpanel\n", 'FTP login credentials' => 'FTP login oplysninger', - 'FTP_ACCOUNT_READY' => "FTP konto blev oprettet og er klar til brug.\n\nHost: %s\nBrugernavn: %s_%s\nAdgangskode: %s\n\n--\nVesta Kontrolpanel\n", + 'FTP_ACCOUNT_READY' => "FTP konto blev oprettet og er klar til brug.\n\nHost: %s\nBrugernavn: %s_%s\nAdgangskode: %s\n\n--\nDevIT Kontrolpanel\n", 'Database Credentials' => 'Databaseoplysninger', - 'DATABASE_READY' => "Database has been created successfully.\n\nDatabase: %s\nBruger: %s\nAdgangskode: %s\n%s\n\n--\nVesta Kontrolpanel\n", + 'DATABASE_READY' => "Database has been created successfully.\n\nDatabase: %s\nBruger: %s\nAdgangskode: %s\n%s\n\n--\nDevIT Kontrolpanel\n", 'forgot password' => 'glemt adgangskode', 'Confirm' => 'Bekræft', @@ -533,7 +533,7 @@ $LANG['da'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Kode til at nultille adgangskode er blevet sendt til din email-adresse
', 'MAIL_RESET_SUBJECT' => 'Adgangskode Nulstillet %s', - 'PASSWORD_RESET_REQUEST' => "Følg dette link for at nulstille din adgangskode:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativt, kan du også gå til https://%s/reset/?action=code&user=%s og indtast følgende nulstillingskode:\n%s\n\nHvis du ikke selv har bedt om at få nulstillet din adgangskode, bedes du ignorere denne besked - vi beklager.\n\n--\nVesta Kontrolpanel\n", + 'PASSWORD_RESET_REQUEST' => "Følg dette link for at nulstille din adgangskode:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativt, kan du også gå til https://%s/reset/?action=code&user=%s og indtast følgende nulstillingskode:\n%s\n\nHvis du ikke selv har bedt om at få nulstillet din adgangskode, bedes du ignorere denne besked - vi beklager.\n\n--\nDevIT Kontrolpanel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -577,7 +577,7 @@ $LANG['da'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FilSystem Disk Quota ', - 'Vesta Control Panel Plugins' => 'Vesta Kontrolpanel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Kontrolpanel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Forhandlerrolle', 'Web Config Editor' => 'Web Config Editor', @@ -738,7 +738,7 @@ $LANG['da'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/de.php b/web/inc/i18n/de.php index 17d1101fb..db151cc11 100644 --- a/web/inc/i18n/de.php +++ b/web/inc/i18n/de.php @@ -1,6 +1,6 @@ "'*' um alle Cron Jobs auszuschließen", 'USER_EXCLUSIONS' => "Pro Zeile einen Verzeichnisnamen eingeben. '*' um alle Verzeichnisse auszuschließen", - 'Welcome to Vesta Control Panel' => 'Willkommen im Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Willkommen im DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Hallo, %s %s,\n", 'GREETINGS' => "Hallo,\n", - 'ACCOUNT_READY' => "Ihr Account wurde erfolgreich erstellt.\n\nhttps://%s/login/\nBenutzername: %s\nPasswort: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Ihr Account wurde erfolgreich erstellt.\n\nhttps://%s/login/\nBenutzername: %s\nPasswort: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTP Anmeldeinformationen', - 'FTP_ACCOUNT_READY' => "FTP Account erfolgreich erstellt.\n\nHostname: %s\nBenutzername: %s_%s\nPasswort: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP Account erfolgreich erstellt.\n\nHostname: %s\nBenutzername: %s_%s\nPasswort: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Datenbank Anmeldeinformationen', - 'DATABASE_READY' => "Datenbank wurde erfolgreich erstellt.\n\nDatenbank: %s\nBenutzername: %s\nPasswort: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Datenbank wurde erfolgreich erstellt.\n\nDatenbank: %s\nBenutzername: %s\nPasswort: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'Passwort vergessen', 'Confirm' => 'Bestätigen', @@ -531,7 +531,7 @@ $LANG['de'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Passwort Rücksetz-Code wurde an Ihre Adresse gesandt
', 'MAIL_RESET_SUBJECT' => 'Passwort Reset für %s', - 'PASSWORD_RESET_REQUEST' => "Zum Zurücksetzen Ihres Passwortes, besuchen Sie bitte folgenden Link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativ, können Sie auf https://%s/reset/?action=code&user=%s gehen und dort folgenden Reset Code eingeben:\n%s\n\nWenn Sie Ihr Passwort nicht zurücksetzen wollten, ignorieren Sie diese Nachricht und entschuldigen Sie uns die Unannehmlichkeiten.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Zum Zurücksetzen Ihres Passwortes, besuchen Sie bitte folgenden Link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativ, können Sie auf https://%s/reset/?action=code&user=%s gehen und dort folgenden Reset Code eingeben:\n%s\n\nWenn Sie Ihr Passwort nicht zurücksetzen wollten, ignorieren Sie diese Nachricht und entschuldigen Sie uns die Unannehmlichkeiten.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -575,7 +575,7 @@ $LANG['de'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Dateisystem Nutzungskontingent', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'vorschau', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -736,7 +736,7 @@ $LANG['de'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/el.php b/web/inc/i18n/el.php index bef890864..e69672d7f 100644 --- a/web/inc/i18n/el.php +++ b/web/inc/i18n/el.php @@ -1,6 +1,6 @@ 'Για να εξαιρέσετε όλα τα jobs χρησιμοποιήστε *', 'USER_EXCLUSIONS' => 'Πληκτρολογήστε το όνομα καταλόγου, ένα ανά σειρά. Για να εξαιρέσετε όλους τους καταλόγους χρησιμοποιήστε *', - 'Welcome to Vesta Control Panel' => 'Καλωσήρθατε στον Πίνακα Ελέγχου Vesta', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Καλωσήρθατε στον Πίνακα Ελέγχου DevIT', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Γειά, %s %s,\n", 'GREETINGS' => "Γειά,\n", - 'ACCOUNT_READY' => "Ο λογαριασμός σας δημιουργήθηκε και είναι έτοιμος για χρήση.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Ο λογαριασμός σας δημιουργήθηκε και είναι έτοιμος για χρήση.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'Διαπιστευτήρια εισόδου FTP', - 'FTP_ACCOUNT_READY' => "Ο λογαριασμός FTP δημιουργήθηκε και είναι έτοιμος για χρήση.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "Ο λογαριασμός FTP δημιουργήθηκε και είναι έτοιμος για χρήση.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Διαπιστευτήρια Βάσης Δεδομένων', - 'DATABASE_READY' => "Η βάση δεδομένων δημιουργήθηκε επιτυχώς.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Η βάση δεδομένων δημιουργήθηκε επιτυχώς.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'ξέχασα τον κωδικό πρόσβασης', 'Confirm' => 'Επιβεβαίωση', @@ -533,7 +533,7 @@ $LANG['el'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Ο κωδικός επαναφοράς του κωδικού πρόσβασης έχει αποσταλεί στη διεύθυνση ταχυδρομείου σας
', 'MAIL_RESET_SUBJECT' => 'Επαναφορά κωδικού πρόσβασης στο %s', - 'PASSWORD_RESET_REQUEST' => "Για να επαναφέρετε τον κωδικό πρόσβασης του πίνακα ελέγχου σας, παρακαλώ ακολουθήστε το link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nΕναλλακτικά, πλοηγηθείτε στη διεύθυνση https://%s/reset/?action=code&user=%s και εισάγετε τον ακόλουθο κωδικό επαναφοράς:\n%s\n\nΕάν δεν ζητήσατε επαναφορά κωδικού πρόσβασης, παρακαλούμε αγνοείστε το παρόν μήνυμα και δεχθείτε τη συγγνώμη μας.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Για να επαναφέρετε τον κωδικό πρόσβασης του πίνακα ελέγχου σας, παρακαλώ ακολουθήστε το link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nΕναλλακτικά, πλοηγηθείτε στη διεύθυνση https://%s/reset/?action=code&user=%s και εισάγετε τον ακόλουθο κωδικό επαναφοράς:\n%s\n\nΕάν δεν ζητήσατε επαναφορά κωδικού πρόσβασης, παρακαλούμε αγνοείστε το παρόν μήνυμα και δεχθείτε τη συγγνώμη μας.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Ιαν', 'Feb' => 'Φεβ', @@ -577,7 +577,7 @@ $LANG['el'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -738,7 +738,7 @@ $LANG['el'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/en.php b/web/inc/i18n/en.php index d7ae290de..0529f020f 100644 --- a/web/inc/i18n/en.php +++ b/web/inc/i18n/en.php @@ -1,7 +1,7 @@ 'To exclude all jobs use *', 'USER_EXCLUSIONS' => 'Type directory name, one per line. To exlude all dirs use *', - 'Welcome to Vesta Control Panel' => 'Welcome to Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Welcome to DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Hello, %s %s,\n", 'GREETINGS' => "Hello,\n", - 'ACCOUNT_READY' => "Your account has been created and is ready for use.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Your account has been created and is ready for use.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTP login credentials', - 'FTP_ACCOUNT_READY' => "FTP account has been created and is ready for use.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP account has been created and is ready for use.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Database Credentials', - 'DATABASE_READY' => "Database has been created successfully.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Database has been created successfully.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'forgot password', 'Confirm' => 'Confirm', @@ -531,7 +531,7 @@ $LANG['en'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Password reset code has been sent to your email address
', 'MAIL_RESET_SUBJECT' => 'Password Reset at %s', - 'PASSWORD_RESET_REQUEST' => "To reset your control panel password, please follow this link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s and enter the following reset code:\n%s\n\nIf you did not request password reset, please ignore this message and accept our apologies.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "To reset your control panel password, please follow this link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s and enter the following reset code:\n%s\n\nIf you did not request password reset, please ignore this message and accept our apologies.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -575,7 +575,7 @@ $LANG['en'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -736,7 +736,7 @@ $LANG['en'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/es.php b/web/inc/i18n/es.php index 6e5ce3523..14e13765b 100644 --- a/web/inc/i18n/es.php +++ b/web/inc/i18n/es.php @@ -1,6 +1,6 @@ Omar Gonzalez - ogonzale@alumnos.inf.utfsm.cl @@ -518,17 +518,17 @@ $LANG['es'] = array( 'CRON_EXCLUSIONS' => 'Para excluir todas las tareas programadas utilice *', 'USER_EXCLUSIONS' => 'Ingrese el nombre del directorio, uno por línea. Para excluir todos los directorios utilice *', - 'Welcome to Vesta Control Panel' => 'Bienvenido al Panel de Control Vesta', - 'MAIL_FROM' => 'Panel de Control Vesta ', + 'Welcome to DevIT Control Panel' => 'Bienvenido al Panel de Control DevIT', + 'MAIL_FROM' => 'Panel de Control DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Hola, %s %s,\n", 'GREETINGS' => "Hola,\n", - 'ACCOUNT_READY' => "Su cuenta ha sido creada con éxito y ya puede hacer uso de ella en:\n\nhttps://%s/login/\nNombre de usuario: %s\nContraseña: %s\n\n--\nPanel de Control Vesta\n", + 'ACCOUNT_READY' => "Su cuenta ha sido creada con éxito y ya puede hacer uso de ella en:\n\nhttps://%s/login/\nNombre de usuario: %s\nContraseña: %s\n\n--\nPanel de Control DevIT\n", 'FTP login credentials' => 'Datos de acceso a FTP', - 'FTP_ACCOUNT_READY' => "La cuenta FTP ha sido creada con éxito y ya puede hacer uso de ella.\n\nNombre del servidor: %s\nNombre de usuario: %s_%s\nContraseña: %s\n\n--\nPanel de Control Vesta\n", + 'FTP_ACCOUNT_READY' => "La cuenta FTP ha sido creada con éxito y ya puede hacer uso de ella.\n\nNombre del servidor: %s\nNombre de usuario: %s_%s\nContraseña: %s\n\n--\nPanel de Control DevIT\n", 'Database Credentials' => 'Datos de acceso a la Base de Datos', - 'DATABASE_READY' => "La Base de Datos ha sido creada exitosamente.\n\nBase de Datos: %s\nNombre de usuario: %s\nContraseña: %s\n%s\n\n--\nPanel de Control Vesta\n", + 'DATABASE_READY' => "La Base de Datos ha sido creada exitosamente.\n\nBase de Datos: %s\nNombre de usuario: %s\nContraseña: %s\n%s\n\n--\nPanel de Control DevIT\n", 'forgot password' => '¿olvidó su contraseña?', 'Confirm' => 'Confirmar', @@ -539,7 +539,7 @@ $LANG['es'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'El código de restablecimiento de contraseña ha sido enviado a su correo
', 'MAIL_RESET_SUBJECT' => 'Restablecimiento de Contraseña en %s', - 'PASSWORD_RESET_REQUEST' => "Para restablecer su contraseña del panel de control, por favor ingrese a éste link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativamente, puede dirigirse a https://%s/reset/?action=code&user=%s e ingresar el siguiente código de restablecimiento:\n%s\n\nSi usted no ha solicitado un restablecimiento de contraseña, por favor ignore este mensaje y acepte nuestras disculpas.\n\n--\nPanel de Control Vesta\n", + 'PASSWORD_RESET_REQUEST' => "Para restablecer su contraseña del panel de control, por favor ingrese a éste link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativamente, puede dirigirse a https://%s/reset/?action=code&user=%s e ingresar el siguiente código de restablecimiento:\n%s\n\nSi usted no ha solicitado un restablecimiento de contraseña, por favor ignore este mensaje y acepte nuestras disculpas.\n\n--\nPanel de Control DevIT\n", 'Jan' => 'Ene', 'Feb' => 'Feb', @@ -583,7 +583,7 @@ $LANG['es'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem - Cuota del disco', - 'Vesta Control Panel Plugins' => 'Plugins de Vesta Control Panel', + 'DevIT Control Panel Plugins' => 'Plugins de DevIT Control Panel', 'preview' => 'previsualizar', 'Reseller Role' => 'Rol de Revendedor', 'Web Config Editor' => 'Editor de Configuración Web', @@ -744,7 +744,7 @@ $LANG['es'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'EMITIDO PARA', 'ALIASES' => 'ALIAS', 'NOT_BEFORE' => 'VÁLIDO DESDE', diff --git a/web/inc/i18n/fa.php b/web/inc/i18n/fa.php index 8355691aa..75ee4fc07 100644 --- a/web/inc/i18n/fa.php +++ b/web/inc/i18n/fa.php @@ -1,7 +1,7 @@ 'نام كامل پایگاه داده را در خطی جداگانه بنویسید.برای دربرگیری تمامی پایگاه های داده از * استفاده كنید.', 'CRON_EXCLUSIONS' => 'برای دربرگیری تمامی كار ها از * استفاده كنید', 'USER_EXCLUSIONS' => 'نام هر پوشه را در خطی جداگانه بنویسید.برای دربرگیری تمام پوشه ها از * استفاده كنید.', - 'Welcome to Vesta Control Panel' => 'به کنترل پنل وستا خوش آمدید', + 'Welcome to DevIT Control Panel' => 'به کنترل پنل وستا خوش آمدید', 'MAIL_FROM' => 'كنترل پنل وستا ', 'GREETINGS_GORDON_FREEMAN' => "درود, %s %s,\n", 'GREETINGS' => "درود,\n", @@ -559,7 +559,7 @@ $LANG['fa'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'سهمیه فایل سیستم دیسك ', - 'Vesta Control Panel Plugins' => 'افزونه های كنترل پنل وستا', + 'DevIT Control Panel Plugins' => 'افزونه های كنترل پنل وستا', 'preview' => 'پیش نمایش', 'Reseller Role' => 'نقش فروشنده', 'Web Config Editor' => 'ویرایشگر پیكربند وب', @@ -711,7 +711,7 @@ $LANG['fa'] = array( 'Generate' => 'آفریدن', 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'وستا SSL', + 'DevIT SSL' => 'وستا SSL', 'SUBJECT' => 'موضوع', 'ALIASES' => 'نام های مستعار', 'NOT_BEFORE' => 'جز_پیش از', diff --git a/web/inc/i18n/fi.php b/web/inc/i18n/fi.php index 951f8da3e..e0ee5b416 100644 --- a/web/inc/i18n/fi.php +++ b/web/inc/i18n/fi.php @@ -1,6 +1,6 @@ "Ohittaaksesi kaikki tehtävät käytä '*'", 'USER_EXCLUSIONS' => "Syötä kansion nimi, yksi per rivi. Ohittaaksesi kaikki tietokannat syötä '*'", - 'Welcome to Vesta Control Panel' => 'Tervetuloa Vesta-hallintapaneeliin', - 'MAIL_FROM' => 'Vesta-hallintapaneeli ', + 'Welcome to DevIT Control Panel' => 'Tervetuloa DevIT-hallintapaneeliin', + 'MAIL_FROM' => 'DevIT-hallintapaneeli ', 'GREETINGS_GORDON_FREEMAN' => "Morjens, %s %s,\n", 'GREETINGS' => "Morjen,s\n", - 'ACCOUNT_READY' => "Käyttätilisi on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nhttps://%s/login/\nKäyttäjä: %s\nSalasana: %s\n\n--\nVesta-hallintapaneeli\n", + 'ACCOUNT_READY' => "Käyttätilisi on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nhttps://%s/login/\nKäyttäjä: %s\nSalasana: %s\n\n--\nDevIT-hallintapaneeli\n", 'FTP login credentials' => 'FTP-tilitiedot', - 'FTP_ACCOUNT_READY' => "FTP-tili on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nHostname: %s\nKäyttäjä: %s_%s\nSalasana: %s\n\n--\nVesta-hallintapaneeli\n", + 'FTP_ACCOUNT_READY' => "FTP-tili on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nHostname: %s\nKäyttäjä: %s_%s\nSalasana: %s\n\n--\nDevIT-hallintapaneeli\n", 'Database Credentials' => 'Tietokannan-tilitiedot', - 'DATABASE_READY' => "Tietokanta on luotu onnistuneesti.\n\nTietokanta: %s\nKäyttäjä: %s\nSalasana: %s\n%s\n\n--\nVesta-hallintapaneeli\n", + 'DATABASE_READY' => "Tietokanta on luotu onnistuneesti.\n\nTietokanta: %s\nKäyttäjä: %s\nSalasana: %s\n%s\n\n--\nDevIT-hallintapaneeli\n", 'forgot password' => 'unohditko salasanan?', 'Confirm' => 'Hyväksy', @@ -533,7 +533,7 @@ $LANG['fi'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Salasanan nollauskoodi on lähetetty sähköpostiisi
', 'MAIL_RESET_SUBJECT' => 'Salana vaihdettiin %s', - 'PASSWORD_RESET_REQUEST' => "Nollataksesi hallintapaneelin salasanan, seuraa tätä linkkiä:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nVaihtoehtoisesti voit mennä https://%s/reset/?action=code&user=%s ja syöttää nollauskoodin:\n%s\n\nJos et varta vasten pyytänyt tätä salasananvaihtoa, mene paniikkiin ja ota yhteyttä ylläpitoon.\n\n--\nVesta-hallintapaneeli\n", + 'PASSWORD_RESET_REQUEST' => "Nollataksesi hallintapaneelin salasanan, seuraa tätä linkkiä:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nVaihtoehtoisesti voit mennä https://%s/reset/?action=code&user=%s ja syöttää nollauskoodin:\n%s\n\nJos et varta vasten pyytänyt tätä salasananvaihtoa, mene paniikkiin ja ota yhteyttä ylläpitoon.\n\n--\nDevIT-hallintapaneeli\n", 'Jan' => 'Tam', 'Feb' => 'Hel', @@ -577,7 +577,7 @@ $LANG['fi'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Levykiintiö', - 'Vesta Control Panel Plugins' => 'Vesta Hallintapaneeli Lisäosat', + 'DevIT Control Panel Plugins' => 'DevIT Hallintapaneeli Lisäosat', 'preview' => 'esikatselu', 'Reseller Role' => 'Jälleenmyyjän Rooli', 'Web Config Editor' => 'Web-määrityseditori', @@ -738,7 +738,7 @@ $LANG['fi'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/fr.php b/web/inc/i18n/fr.php index 4e2e3144a..ec4dd38c6 100644 --- a/web/inc/i18n/fr.php +++ b/web/inc/i18n/fr.php @@ -1,6 +1,6 @@ 'Pour explure toutes les tâches utilisez *.', 'USER_EXCLUSIONS' => 'Entrez les noms de répertoires, un par ligne. Pour exclure tous les répertoires utilisez *.', - 'Welcome to Vesta Control Panel' => "Bienvenue sur l'interface d'administration Vesta CP", - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => "Bienvenue sur l'interface d'administration DevIT CP", + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Bonjour, %s %s,\n", 'GREETINGS' => "Bonjour,\n", - 'ACCOUNT_READY' => "Votre compte a été créé avec succès et est prêt à l'emploi.\n\nhttps://%s/login/\nUtilisateur : %s\nMot de Passe : %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Votre compte a été créé avec succès et est prêt à l'emploi.\n\nhttps://%s/login/\nUtilisateur : %s\nMot de Passe : %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'Identifiants de connexion FTP', - 'FTP_ACCOUNT_READY' => "Le compte FTP a été créé avec succès et est prêt à l'emploi.\n\nHôte : %s\nUtilisateur : %s_%s\nMot de Passe : %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "Le compte FTP a été créé avec succès et est prêt à l'emploi.\n\nHôte : %s\nUtilisateur : %s_%s\nMot de Passe : %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Identifiants de connexion à la Base de Données', - 'DATABASE_READY' => "La base de données a été créée avec succès et est prête à l'emploi.\n\nBase de Données : %s\nUtilisateur : %s\nMot de Passe: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "La base de données a été créée avec succès et est prête à l'emploi.\n\nBase de Données : %s\nUtilisateur : %s\nMot de Passe: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'mot de passe oublié', 'Confirm' => 'Confirmer', @@ -531,7 +531,7 @@ $LANG['fr'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Un Code de Réinitialisation de votre mot de passe a été envoyé à votre adresse email
', 'MAIL_RESET_SUBJECT' => 'Réinitialisation du mot de passe de %s', - 'PASSWORD_RESET_REQUEST' => "Pour réinitialiser votre mot de passe, veuillez suivre le lien suivant :\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nSinon, vous pouvez suivre https://%s/reset/?action=code&user=%s et entrer le code de réinitialisation suivant :\n%s\n\nSi vous n'avez pas demandé la réinitialisation de votre mot de passe, veuillez ignorer ce message. Nous vous prions de nous excuser pour la gène occasionnée.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Pour réinitialiser votre mot de passe, veuillez suivre le lien suivant :\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nSinon, vous pouvez suivre https://%s/reset/?action=code&user=%s et entrer le code de réinitialisation suivant :\n%s\n\nSi vous n'avez pas demandé la réinitialisation de votre mot de passe, veuillez ignorer ce message. Nous vous prions de nous excuser pour la gène occasionnée.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Jan', 'Feb' => 'Fev', @@ -575,7 +575,7 @@ $LANG['fr'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Quota du Système de Fichiers', - 'Vesta Control Panel Plugins' => 'Plugins Vesta Control Panel', + 'DevIT Control Panel Plugins' => 'Plugins DevIT Control Panel', 'preview' => 'prévisualisation', 'Reseller Role' => 'Rôle Revendeur', 'Web Config Editor' => 'Web Config Editor', @@ -736,7 +736,7 @@ $LANG['fr'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/hu.php b/web/inc/i18n/hu.php index 1c37f93f4..45b6e77a6 100644 --- a/web/inc/i18n/hu.php +++ b/web/inc/i18n/hu.php @@ -1,6 +1,6 @@ 'Az összes job kihagyásához használj ', 'USER_EXCLUSIONS' => 'Írd be a könyvtár nevét, soronként egyet. Az összes kihagyásához használj ', - 'Welcome to Vesta Control Panel' => 'Üdvözli a Vesta Control Panel!', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Üdvözli a DevIT Control Panel!', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Üdv, %s %s,\n", 'GREETINGS' => "Üdv,\n", 'ACCOUNT_READY' => "A fiókod létrejött és készen áll a használatra.\n\nhttps://%s/login/\nFelhasználónév: %s\nJelszó: %s\n\n--\nKezelőfelület\n", @@ -579,7 +579,7 @@ $LANG['hu'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Fájlrendszer kvóta', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Pluginek', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Pluginek', 'preview' => 'előnézet', 'Reseller Role' => 'Viszonteladói jogosultságok', 'Web Config Editor' => 'Web konfiguráció szerkesztő', @@ -740,7 +740,7 @@ $LANG['hu'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/id.php b/web/inc/i18n/id.php index dd870f0d4..613aa9d7b 100644 --- a/web/inc/i18n/id.php +++ b/web/inc/i18n/id.php @@ -1,6 +1,6 @@ 'Untuk pengecualian semua JOBS gunakan *', 'USER_EXCLUSIONS' => 'Ketik nama direktori, satu direktori per baris. Untuk pengecualian semua direktori gunakan karakter *', - 'Welcome to Vesta Control Panel' => 'Selamat datang di Panel Kontrol Vesta', - 'MAIL_FROM' => 'Panel Kontrol Vesta ', + 'Welcome to DevIT Control Panel' => 'Selamat datang di Panel Kontrol DevIT', + 'MAIL_FROM' => 'Panel Kontrol DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Hai, %s %s,\n", 'GREETINGS' => "Hai,\n", - 'ACCOUNT_READY' => "Akun telah dibuat dan siap digunakan.\n\nhttps://%s/login/\nNama pengguna: %s\nKata sandi: %s\n\n--\nPanel Kontrol Vesta\n", + 'ACCOUNT_READY' => "Akun telah dibuat dan siap digunakan.\n\nhttps://%s/login/\nNama pengguna: %s\nKata sandi: %s\n\n--\nPanel Kontrol DevIT\n", 'FTP login credentials' => 'Kredensial untuk masuk FTP', - 'FTP_ACCOUNT_READY' => "Akun FTP telah dibuat dan siap digunakan.\n\nHostname: %s\nNama pengguna: %s_%s\nKata sandi: %s\n\n--\nPanel Kontrol Vesta\n", + 'FTP_ACCOUNT_READY' => "Akun FTP telah dibuat dan siap digunakan.\n\nHostname: %s\nNama pengguna: %s_%s\nKata sandi: %s\n\n--\nPanel Kontrol DevIT\n", 'Database Credentials' => 'Kredensial Basis Data', - 'DATABASE_READY' => "Basis data telah berhasil dibuat.\n\nBasis data: %s\nNama pengguna: %s\nKata sandi: %s\n%s\n\n--\nPanel Kontrol Vesta\n", + 'DATABASE_READY' => "Basis data telah berhasil dibuat.\n\nBasis data: %s\nNama pengguna: %s\nKata sandi: %s\n%s\n\n--\nPanel Kontrol DevIT\n", 'forgot password' => 'lupa kata sandi', 'Confirm' => 'Konfirmasi', @@ -532,7 +532,7 @@ $LANG['id'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Kode kata sandi untuk me-reset sudah dikirim ke surel
', 'MAIL_RESET_SUBJECT' => 'Kata sandi di-reset pada %s', - 'PASSWORD_RESET_REQUEST' => "Untuk me-reset kata sandi, silahkan klik tautan ini:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\natau ke https://%s/reset/?action=code&user=%s lalu masukan kode reset-nya:\n%s\n\nJika anda tidak meminta untuk me-reset kata sandi, silahkan abaikan pesan ini.\n\n--\nPanel Kontrol Vesta\n", + 'PASSWORD_RESET_REQUEST' => "Untuk me-reset kata sandi, silahkan klik tautan ini:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\natau ke https://%s/reset/?action=code&user=%s lalu masukan kode reset-nya:\n%s\n\nJika anda tidak meminta untuk me-reset kata sandi, silahkan abaikan pesan ini.\n\n--\nPanel Kontrol DevIT\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -576,7 +576,7 @@ $LANG['id'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Kuota Diska FileSystem', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'pratinjau', 'Reseller Role' => 'Aturan Reseller', 'Web Config Editor' => 'Web Config Editor', @@ -737,7 +737,7 @@ $LANG['id'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/it.php b/web/inc/i18n/it.php index 1e104c51a..bbb006ab0 100644 --- a/web/inc/i18n/it.php +++ b/web/inc/i18n/it.php @@ -1,6 +1,6 @@ 'Per escludere tutti i cron job usa *', 'USER_EXCLUSIONS' => 'Scrivi un nome di directory per riga. Per escludere tutte le directory usa *', - 'Welcome to Vesta Control Panel' => 'Benvenuto nel Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Benvenuto nel DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Ciao, %s %s,\n", 'GREETINGS' => "Ciao,\n", - 'ACCOUNT_READY' => "Il tuo account è stato creato ed è pronto per l'utilizzo.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Il tuo account è stato creato ed è pronto per l'utilizzo.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'Credenziali login FTP', - 'FTP_ACCOUNT_READY' => "L'account FTP è stato creato ed è pronto per l'uso.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "L'account FTP è stato creato ed è pronto per l'uso.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Credenziali Database', - 'DATABASE_READY' => "Il database è stato creato con successo.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Il database è stato creato con successo.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'password dimenticata', 'Confirm' => 'Conferma', @@ -532,7 +532,7 @@ $LANG['it'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Il codice di reset per la tua password ti è stato inviato per email
', 'MAIL_RESET_SUBJECT' => 'Password Reset per %s', - 'PASSWORD_RESET_REQUEST' => "Per fare il reset della password per il pannello di controllo clicca sul link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativamente puoi andare su https://%s/reset/?action=code&user=%s e inserire questo codice di reset:\n%s\n\nSe non hai richiesto il reset della tua password, ignora questa email.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Per fare il reset della password per il pannello di controllo clicca sul link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativamente puoi andare su https://%s/reset/?action=code&user=%s e inserire questo codice di reset:\n%s\n\nSe non hai richiesto il reset della tua password, ignora questa email.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -576,7 +576,7 @@ $LANG['it'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -737,7 +737,7 @@ $LANG['it'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/ja.php b/web/inc/i18n/ja.php index a592fd7bf..00269c5eb 100644 --- a/web/inc/i18n/ja.php +++ b/web/inc/i18n/ja.php @@ -1,6 +1,6 @@ 'すべてのジョブを除外するには*を使用してください', 'USER_EXCLUSIONS' => 'ディレクトリ名を一行ずつ入力してください すべてのディレクトリを除外するには*を使用してください', - 'Welcome to Vesta Control Panel' => 'Vesta Control Panel にようこそ', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'DevIT Control Panel にようこそ', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "こんにちは、 %s %s さん\n", 'GREETINGS' => "こんにちは\n", - 'ACCOUNT_READY' => "アカウントは正常に作成され、使用する準備ができました\n\nhttps://%s/login/\nユーザー名: %s\nパスワード: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "アカウントは正常に作成され、使用する準備ができました\n\nhttps://%s/login/\nユーザー名: %s\nパスワード: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTPアカウント情報', - 'FTP_ACCOUNT_READY' => "FTPアカウントは正常に作成され、使用する準備ができました\n\nホスト名: %s\nユーザー名: %s_%s\nパスワード: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTPアカウントは正常に作成され、使用する準備ができました\n\nホスト名: %s\nユーザー名: %s_%s\nパスワード: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'データベースアカウント情報', - 'DATABASE_READY' => "データベースは正常に作成されました\n\nデータベース名: %s\nユーザー名: %s\nパスワード: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "データベースは正常に作成されました\n\nデータベース名: %s\nユーザー名: %s\nパスワード: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'パスワードを忘れた場合', 'Confirm' => '確認', @@ -531,7 +531,7 @@ $LANG['ja'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => '登録されたメールアドレスにパスワードのリセットコードが送信されました
', 'MAIL_RESET_SUBJECT' => '%s のパスワードのリセット', - 'PASSWORD_RESET_REQUEST' => "コントロールパネルのパスワードをリセットするには、以下のリンクの手順に従ってください\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nもしくは、次のリンク( https://%s/reset/?action=code&user=%s )で以下のリセットコードを入力することもできます\n%s\n\nもしパスワードのリセットを要求していない場合は、このメールを無視してください\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "コントロールパネルのパスワードをリセットするには、以下のリンクの手順に従ってください\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nもしくは、次のリンク( https://%s/reset/?action=code&user=%s )で以下のリセットコードを入力することもできます\n%s\n\nもしパスワードのリセットを要求していない場合は、このメールを無視してください\n\n--\nDevIT Control Panel\n", 'Jan' => '1月', 'Feb' => '2月', @@ -575,7 +575,7 @@ $LANG['ja'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'ディスク容量制限', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel プラグイン', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel プラグイン', 'preview' => 'プレビュー', 'Reseller Role' => 'リセラーの役割', 'Web Config Editor' => 'ウェブ設定エディタ', @@ -736,7 +736,7 @@ $LANG['ja'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => '所有者', 'ALIASES' => 'エイリアス', 'NOT_BEFORE' => '開始時刻', diff --git a/web/inc/i18n/ka.php b/web/inc/i18n/ka.php index c6ccc32a8..0f4cec0ab 100644 --- a/web/inc/i18n/ka.php +++ b/web/inc/i18n/ka.php @@ -1,6 +1,6 @@ 'ყველა დავალების გამოსატოვებლად გამოიყენეთ *', 'USER_EXCLUSIONS' => 'აკრიფეთ კატალოგის სახელი, თითო ერთ ხაზზე. ყველა კატალოგის გამოსატოვებლად გამოიყენეთ *', - 'Welcome to Vesta Control Panel' => 'მოგესალმებათ Vesta მართვის პანელი', - 'MAIL_FROM' => 'Vesta მართვის პანელი ', + 'Welcome to DevIT Control Panel' => 'მოგესალმებათ DevIT მართვის პანელი', + 'MAIL_FROM' => 'DevIT მართვის პანელი ', 'GREETINGS_GORDON_FREEMAN' => "გამარჯობა, %s %s,\n", 'GREETINGS' => "გამარჯობა,\n", - 'ACCOUNT_READY' => "თქვენი ანგარიში შექმნილია და მისი გამოყენება უკვე შესაძლებელია.\n\nhttps://%s/login/\nმომხმარებელი: %s\nპაროლი: %s\n\n--\nVesta მართვის პანელი\n", + 'ACCOUNT_READY' => "თქვენი ანგარიში შექმნილია და მისი გამოყენება უკვე შესაძლებელია.\n\nhttps://%s/login/\nმომხმარებელი: %s\nპაროლი: %s\n\n--\nDevIT მართვის პანელი\n", 'FTP login credentials' => 'FTP ანგარიშის მონაცემები', - 'FTP_ACCOUNT_READY' => "FTP ანგარიში შექმნილია და მისი გამოყენება უკვე შესაძლებელია.\n\nჰოსტნეიმი: %s\nმომხმარებელი: %s_%s\nპაროლი: %s\n\n--\nVesta მართვის პანელი\n", + 'FTP_ACCOUNT_READY' => "FTP ანგარიში შექმნილია და მისი გამოყენება უკვე შესაძლებელია.\n\nჰოსტნეიმი: %s\nმომხმარებელი: %s_%s\nპაროლი: %s\n\n--\nDevIT მართვის პანელი\n", 'Database Credentials' => 'ბაზის მონაცემები', - 'DATABASE_READY' => "ბაზა წარმატებით შეიქმნა.\n\nბაზა: %s\nმომხმარებელი: %s\nპაროლი: %s\n%s\n\n--\nVesta მართვის პანელი\n", + 'DATABASE_READY' => "ბაზა წარმატებით შეიქმნა.\n\nბაზა: %s\nმომხმარებელი: %s\nპაროლი: %s\n%s\n\n--\nDevIT მართვის პანელი\n", 'forgot password' => 'დაგავიწყდათ პაროლი', 'Confirm' => 'დამოწმება', @@ -531,7 +531,7 @@ $LANG['ka'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'პაროლის ჩამოსაყრელი კოდი გაგზავნილია თქვენს ელფოსტაზე
', 'MAIL_RESET_SUBJECT' => 'პაროლის აღდგენა: %s', - 'PASSWORD_RESET_REQUEST' => "პაროლის აღდგენისთვის, გადაით შემდეგ ბმულზე:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, ასევე შეგიძლიათ გადახვიდეთ ბმულზე https://%s/reset/?action=code&user=%s და შეიყვანოთ :\n%s\n\nთუ თქვენ არ მოგითხოვიათ პაროლის ჩამოყრა, ყურადღება არ მიაქციოტ ამ შეტყობინებას და მიიღეთ ჩვენგან ბოდიში.\n\n--\nVesta მართვის პანელი\n", + 'PASSWORD_RESET_REQUEST' => "პაროლის აღდგენისთვის, გადაით შემდეგ ბმულზე:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, ასევე შეგიძლიათ გადახვიდეთ ბმულზე https://%s/reset/?action=code&user=%s და შეიყვანოთ :\n%s\n\nთუ თქვენ არ მოგითხოვიათ პაროლის ჩამოყრა, ყურადღება არ მიაქციოტ ამ შეტყობინებას და მიიღეთ ჩვენგან ბოდიში.\n\n--\nDevIT მართვის პანელი\n", 'Jan' => 'იან', 'Feb' => 'თებ', @@ -575,7 +575,7 @@ $LANG['ka'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'ფაილური სისტემის დისკის კვოტა', - 'Vesta Control Panel Plugins' => 'Vesta მართვის პანელის ჩადგმები', + 'DevIT Control Panel Plugins' => 'DevIT მართვის პანელის ჩადგმები', 'preview' => 'გადახედვა', 'Reseller Role' => 'გადამყიდველის როლი', 'Web Config Editor' => 'ვების კონფიგურაციის რედაქტორი', @@ -736,7 +736,7 @@ $LANG['ka'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/ko.php b/web/inc/i18n/ko.php index 1b09de256..66c799520 100644 --- a/web/inc/i18n/ko.php +++ b/web/inc/i18n/ko.php @@ -1,6 +1,6 @@ '모든 작업을 예외처리 하기 위해서는 *를 사용하세요', 'USER_EXCLUSIONS' => '전체 폴더 이름을 한줄에 하나씩 입력해주세요. 모든 폴더를 예외처리 하기 위해서는 *를 사용하세요', - 'Welcome to Vesta Control Panel' => 'Vesta 제어판에 오신 것을 환영합니다', - 'MAIL_FROM' => 'Vesta 제어판 ', + 'Welcome to DevIT Control Panel' => 'DevIT 제어판에 오신 것을 환영합니다', + 'MAIL_FROM' => 'DevIT 제어판 ', 'GREETINGS_GORDON_FREEMAN' => "%s %s님 안녕하세요,\n", 'GREETINGS' => "안녕하세요,\n", - 'ACCOUNT_READY' => "계정이 생성되었으며 사용 준비가 되었습니다.\n\nhttps://%s/login/\n사용자명: %s\n비밀번호: %s\n\n--\nVesta 제어판\n", + 'ACCOUNT_READY' => "계정이 생성되었으며 사용 준비가 되었습니다.\n\nhttps://%s/login/\n사용자명: %s\n비밀번호: %s\n\n--\nDevIT 제어판\n", 'FTP login credentials' => 'FTP 로그인 정보', - 'FTP_ACCOUNT_READY' => "FTP 계정이 생성되었으며 사용 준비가 되었습니다.\n\nhttps://%s/login/\n사용자명: %s\n비밀번호: %s\n\n--\nVesta 제어판\n", + 'FTP_ACCOUNT_READY' => "FTP 계정이 생성되었으며 사용 준비가 되었습니다.\n\nhttps://%s/login/\n사용자명: %s\n비밀번호: %s\n\n--\nDevIT 제어판\n", 'Database Credentials' => '데이터베이스 정보', - 'DATABASE_READY' => "데이터베이스가 성공적으로 생성되었습니다.\n\데이터베이스: %s\n사용자: %s\n비밀번호: %s\n\n--\nVesta 제어판\n", + 'DATABASE_READY' => "데이터베이스가 성공적으로 생성되었습니다.\n\데이터베이스: %s\n사용자: %s\n비밀번호: %s\n\n--\nDevIT 제어판\n", 'forgot password' => '비밀번호 잊음', 'Confirm' => '확인', @@ -531,7 +531,7 @@ $LANG['ko'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => '비밀번호 초기화 코드가 이메일 주소로 전송되었습니다
', 'MAIL_RESET_SUBJECT' => '%s에서의 비밀번호 초기화', - 'PASSWORD_RESET_REQUEST' => "제어판 비밀번호를 초기화 하기 위해서, 다음의 링크로 접속해주세요:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n또는, 다음의 주소로 간 뒤 https://%s/reset/?action=code&user=%s 다음의 초기화 코드를 입력해주세요:\n%s\n\n만약 비밀번호 초기화를 요청하지 않으셨다면, 이 메시지를 무시해주세요.\n\n--\nVesta 제어판\n", + 'PASSWORD_RESET_REQUEST' => "제어판 비밀번호를 초기화 하기 위해서, 다음의 링크로 접속해주세요:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n또는, 다음의 주소로 간 뒤 https://%s/reset/?action=code&user=%s 다음의 초기화 코드를 입력해주세요:\n%s\n\n만약 비밀번호 초기화를 요청하지 않으셨다면, 이 메시지를 무시해주세요.\n\n--\nDevIT 제어판\n", 'Jan' => '1월', 'Feb' => '2월', @@ -575,7 +575,7 @@ $LANG['ko'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => '파일 시스템 디스크 할당량', - 'Vesta Control Panel Plugins' => 'Vesta 제어판 플러그인', + 'DevIT Control Panel Plugins' => 'DevIT 제어판 플러그인', 'preview' => '미리보기', 'Reseller Role' => '리셀러 역할', 'Web Config Editor' => '웹 구성 편집기', @@ -736,7 +736,7 @@ $LANG['ko'] = array( 'webalizer' => 'Webalizer', 'awstats' => 'Awstats', - 'Vesta SSL' => 'Vesta 인증서', + 'DevIT SSL' => 'DevIT 인증서', 'SUBJECT' => '주체', 'ALIASES' => '별칭', 'NOT_BEFORE' => '유효 기간(시작)', diff --git a/web/inc/i18n/nl.php b/web/inc/i18n/nl.php index b5d68ec44..ea2dec778 100644 --- a/web/inc/i18n/nl.php +++ b/web/inc/i18n/nl.php @@ -1,6 +1,6 @@ 'Type mapnaam, één per mijn. Om alle mappen uit te sluiten gebruik *', - 'Welcome to Vesta Control Panel' => 'Welkom bij het Vesta Controlepaneel', - 'MAIL_FROM' => 'Vesta Controlepaneel ', + 'Welcome to DevIT Control Panel' => 'Welkom bij het DevIT Controlepaneel', + 'MAIL_FROM' => 'DevIT Controlepaneel ', 'GREETINGS_GORDON_FREEMAN' => "Hallo %s %s,\n", 'GREETINGS' => "Hallo,\n", - 'ACCOUNT_READY' => "Uw account is aangemaakt en klaar voor gebruik.\n\nhttps://%s/login/\nGebruikersnaam: %s\nWachtwoord: %s\n\n--\nVesta Controlepaneel\n", + 'ACCOUNT_READY' => "Uw account is aangemaakt en klaar voor gebruik.\n\nhttps://%s/login/\nGebruikersnaam: %s\nWachtwoord: %s\n\n--\nDevIT Controlepaneel\n", 'FTP login credentials' => 'FTP inloggegevens', - 'FTP_ACCOUNT_READY' => "Het FTP account is aangemaakt en klaar voor gebruik.\n\nHostnaam: %s\nGebruikersnaam: %s_%s\nWachtwoord: %s\n\n--\nVesta Controlepaneel\n", + 'FTP_ACCOUNT_READY' => "Het FTP account is aangemaakt en klaar voor gebruik.\n\nHostnaam: %s\nGebruikersnaam: %s_%s\nWachtwoord: %s\n\n--\nDevIT Controlepaneel\n", 'Database Credentials' => 'Database gegevens', - 'DATABASE_READY' => "De database is succesvol aangemaakt en klaar voor gebruik.\n\nDatabase: %s\nGebruiker: %s\nWachtwoord: %s\n%s\n\n--\nVesta Controlepaneel\n", + 'DATABASE_READY' => "De database is succesvol aangemaakt en klaar voor gebruik.\n\nDatabase: %s\nGebruiker: %s\nWachtwoord: %s\n%s\n\n--\nDevIT Controlepaneel\n", 'forgot password' => 'Wachtwoord vergeten', 'Confirm' => 'Bevestig', @@ -535,7 +535,7 @@ $LANG['nl'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Wachtwoord herstelcode is naar uw e-mailadres gestuurd
', 'MAIL_RESET_SUBJECT' => 'Wachtwoordherstel voor %s', - 'PASSWORD_RESET_REQUEST' => "Om uw wachtwoord te herstellen klikt u op de link hieronder.\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nWanneer bovenstaande link niet werkt kunt u ook naar de volgende pagina gaan https://%s/reset/?action=code&user=%s en hier uw wachtwoord herstelcode invullen:\n%s\n\nAls u geen wachtwoord herstelcode heeft aangevraagd, kunt u dit bericht negeren.\n\n--\nVesta Controlepaneel\n", + 'PASSWORD_RESET_REQUEST' => "Om uw wachtwoord te herstellen klikt u op de link hieronder.\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nWanneer bovenstaande link niet werkt kunt u ook naar de volgende pagina gaan https://%s/reset/?action=code&user=%s en hier uw wachtwoord herstelcode invullen:\n%s\n\nAls u geen wachtwoord herstelcode heeft aangevraagd, kunt u dit bericht negeren.\n\n--\nDevIT Controlepaneel\n", 'Jan' => 'jan', 'Feb' => 'feb', @@ -579,7 +579,7 @@ $LANG['nl'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Bestandssysteem Schijf Quotum', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'Voorbeeld', 'Reseller Role' => 'Verkoper Rol', 'Web Config Editor' => 'Web Configuratie Bewerker', @@ -740,7 +740,7 @@ $LANG['nl'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'ONDERWERP', 'ALIASES' => 'ALIASEN', 'NOT_BEFORE' => 'NIET_VOOR', diff --git a/web/inc/i18n/no.php b/web/inc/i18n/no.php index fe026f390..a2bc7e7fe 100644 --- a/web/inc/i18n/no.php +++ b/web/inc/i18n/no.php @@ -1,6 +1,6 @@ 'Hvis du vil utelate alle jobbene bruk *', 'USER_EXCLUSIONS' => 'Skriv inn katalognavn, ett per linje. Hvis du vil utelate alle kataloger bruk *', - 'Welcome to Vesta Control Panel' => 'Velkommen til Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Velkommen til DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Hei, %s %s,\n", 'GREETINGS' => "Hei,\n", - 'ACCOUNT_READY' => "Kontoen er opprettet og klar for bruk.\n\nhttps://%s/login/\nBrukernavn: %s\nPassord: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Kontoen er opprettet og klar for bruk.\n\nhttps://%s/login/\nBrukernavn: %s\nPassord: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FPT påloggingsinformasjon', - 'FTP_ACCOUNT_READY' => "FTP kontoen er opprettet og klar for bruk.\n\nHostname: %s\nBrukernavn: %s_%s\nPassord: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP kontoen er opprettet og klar for bruk.\n\nHostname: %s\nBrukernavn: %s_%s\nPassord: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Database påloggingsinformasjon', - 'DATABASE_READY' => "Databasen er opprettet.\n\nDatabase: %s\nBruker: %s\nPassord: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Databasen er opprettet.\n\nDatabase: %s\nBruker: %s\nPassord: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'glemt passord', 'Confirm' => 'Bekkreft', @@ -532,7 +532,7 @@ $LANG['no'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Passord tilbakestillingskode er blitt sendt til din e-postadresse
', 'MAIL_RESET_SUBJECT' => 'Passord tilbakestilt %s', - 'PASSWORD_RESET_REQUEST' => "For å tilbakestille kontroll panel passordet kan du følge denne linken:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativt, kan du gå til https://%s/reset/?action=code&user=%s og oppgi følgende tilbakestillingskode:\n%s\n\nHvis du ikke har bedt om tilbakestilling av passord, kan du ignorere denne meldingen.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "For å tilbakestille kontroll panel passordet kan du følge denne linken:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativt, kan du gå til https://%s/reset/?action=code&user=%s og oppgi følgende tilbakestillingskode:\n%s\n\nHvis du ikke har bedt om tilbakestilling av passord, kan du ignorere denne meldingen.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -576,7 +576,7 @@ $LANG['no'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -737,7 +737,7 @@ $LANG['no'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/pl.php b/web/inc/i18n/pl.php index e649a22cd..e051acfc1 100644 --- a/web/inc/i18n/pl.php +++ b/web/inc/i18n/pl.php @@ -1,6 +1,6 @@ * Michal Slepko */ @@ -511,17 +511,17 @@ $LANG['pl'] = array( 'CRON_EXCLUSIONS' => 'W celu wyłączenia wszystkich zadań wpisz *.', 'USER_EXCLUSIONS' => 'Wpisz nazwy folderów, po jednej w linijce. W celu wyłączenia wszystkich folderów użyj *.', - 'Welcome to Vesta Control Panel' => 'Witaj w Panelu Vesta', - 'MAIL_FROM' => 'Panel Vesta ', + 'Welcome to DevIT Control Panel' => 'Witaj w Panelu DevIT', + 'MAIL_FROM' => 'Panel DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Witaj, %s %s,\n", 'GREETINGS' => "Witaj,\n", - 'ACCOUNT_READY' => "Twoje konto zostało założone i jest gotowe do użytku.\n\nhttps://%s/login/\nNazwa użytkownika: %s\nHasło: %s\n\n--\nPanel Vesta\n", + 'ACCOUNT_READY' => "Twoje konto zostało założone i jest gotowe do użytku.\n\nhttps://%s/login/\nNazwa użytkownika: %s\nHasło: %s\n\n--\nPanel DevIT\n", 'FTP login credentials' => 'Dane FTP', - 'FTP_ACCOUNT_READY' => "Konto FTP zostało założone i jest gotowe do użytku.\n\nNazwa hosta: %s\nNazwa użytkownika: %s_%s\nHasło: %s\n\n--\nPanel Vesta\n", + 'FTP_ACCOUNT_READY' => "Konto FTP zostało założone i jest gotowe do użytku.\n\nNazwa hosta: %s\nNazwa użytkownika: %s_%s\nHasło: %s\n\n--\nPanel DevIT\n", 'Database Credentials' => 'Dane bazy danych', - 'DATABASE_READY' => "Założono bazę danych.\n\nNazwa bazy danych: %s\nNazwa użytkownika: %s\nHasło: %s\n%s\n\n--\nPanel Vesta\n", + 'DATABASE_READY' => "Założono bazę danych.\n\nNazwa bazy danych: %s\nNazwa użytkownika: %s\nHasło: %s\n%s\n\n--\nPanel DevIT\n", 'forgot password' => 'zapomniane hasło', 'Confirm' => 'Potwierdź', @@ -532,7 +532,7 @@ $LANG['pl'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Kod resetu hasła został wysłany na twój adres email
', 'MAIL_RESET_SUBJECT' => 'Zresetowano hasło o %s', - 'PASSWORD_RESET_REQUEST' => "W celu zresetowanie hasła do panelu, proszę przejść na stronę:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatywnie możesz przejść na stronę https://%s/reset/?action=code&user=%s i wpisać poniższy kod:\n%s\n\nJeżeli nie prosiłeś o reset hasła proszę zignorować tą wiadomość i przyjąć nasze przeprosiny.\n\n--\nPanel Vesta\n", + 'PASSWORD_RESET_REQUEST' => "W celu zresetowanie hasła do panelu, proszę przejść na stronę:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatywnie możesz przejść na stronę https://%s/reset/?action=code&user=%s i wpisać poniższy kod:\n%s\n\nJeżeli nie prosiłeś o reset hasła proszę zignorować tą wiadomość i przyjąć nasze przeprosiny.\n\n--\nPanel DevIT\n", 'Jan' => 'Sty', 'Feb' => 'Lut', @@ -576,7 +576,7 @@ $LANG['pl'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Quota systemu plików', - 'Vesta Control Panel Plugins' => 'Pluginy panelu Vesta', + 'DevIT Control Panel Plugins' => 'Pluginy panelu DevIT', 'preview' => 'podląd', 'Reseller Role' => 'Rola Resellera', 'Web Config Editor' => 'Edytor konfiguracji Web', @@ -737,7 +737,7 @@ $LANG['pl'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/pt-BR.php b/web/inc/i18n/pt-BR.php index 303ae53fe..8674a21ae 100644 --- a/web/inc/i18n/pt-BR.php +++ b/web/inc/i18n/pt-BR.php @@ -1,6 +1,6 @@ 'Para excluir todas as tarefas *', 'USER_EXCLUSIONS' => 'Digite o nome do diretório, um por linha. Para excluir todos os diretórios use *', - 'Welcome to Vesta Control Panel' => 'Bem vindo ao Painel de Controle Vesta', - 'MAIL_FROM' => 'Painel de Controle Vesta ', + 'Welcome to DevIT Control Panel' => 'Bem vindo ao Painel de Controle DevIT', + 'MAIL_FROM' => 'Painel de Controle DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Olá, %s %s,\n", 'GREETINGS' => "Olá,\n", - 'ACCOUNT_READY' => "Sua conta foi criada e está pronta para uso.\n\nhttps://%s/login/\nUsuário: %s\nSenha: %s\n\n--\nPainel de Controle Vesta\n", + 'ACCOUNT_READY' => "Sua conta foi criada e está pronta para uso.\n\nhttps://%s/login/\nUsuário: %s\nSenha: %s\n\n--\nPainel de Controle DevIT\n", 'FTP login credentials' => 'Credenciais de acesso ao FTP', - 'FTP_ACCOUNT_READY' => "A conta FTP foi criada e está pronta pra uso.\n\nServidor: %s\nUsuário: %s_%s\nSenha: %s\n\n--\nPainel de Controle Vesta\n", + 'FTP_ACCOUNT_READY' => "A conta FTP foi criada e está pronta pra uso.\n\nServidor: %s\nUsuário: %s_%s\nSenha: %s\n\n--\nPainel de Controle DevIT\n", 'Database Credentials' => 'Credenciais de acesso ao Banco de Dados', - 'DATABASE_READY' => "Banco de dados criado com sucesso.\n\nBanco de dados: %s\nUsuário: %s\nSenha: %s\n%s\n\n--\nPainel de Controle Vesta\n", + 'DATABASE_READY' => "Banco de dados criado com sucesso.\n\nBanco de dados: %s\nUsuário: %s\nSenha: %s\n%s\n\n--\nPainel de Controle DevIT\n", 'forgot password' => 'esqueci minha senha', 'Confirm' => 'Confirmar', @@ -531,7 +531,7 @@ $LANG['pt-BR'] = array( 'RESET_NOTICE' => 'Redefinir', 'RESET_CODE_SENT' => 'O código de redefinição de senha foi enviado para o seu e-mail
', 'MAIL_RESET_SUBJECT' => 'Senha Redefinida em %s', - 'PASSWORD_RESET_REQUEST' => "Para redefinir sua senha do Painel de Controle, por favor utilize o link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nComo alternativa, você pode visitar https://%s/reset/?action=code&user=%s e digitar o seguinte código de redefinição:\n%s\n\nSe você não solicitou uma redefinição de senha, por favor ignore esse mensagem e aceite nossas desculpas.\n\n--\nPainel de Controle Vesta\n", + 'PASSWORD_RESET_REQUEST' => "Para redefinir sua senha do Painel de Controle, por favor utilize o link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nComo alternativa, você pode visitar https://%s/reset/?action=code&user=%s e digitar o seguinte código de redefinição:\n%s\n\nSe você não solicitou uma redefinição de senha, por favor ignore esse mensagem e aceite nossas desculpas.\n\n--\nPainel de Controle DevIT\n", 'Jan' => 'Jan', 'Feb' => 'Fev', @@ -575,7 +575,7 @@ $LANG['pt-BR'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Cota de Disco', - 'Vesta Control Panel Plugins' => 'Plugins do Painel de Controle Vesta', + 'DevIT Control Panel Plugins' => 'Plugins do Painel de Controle DevIT', 'preview' => 'pré-visualizar', 'Reseller Role' => 'Regra de Revendedor', 'Web Config Editor' => 'Editor de Configuração Web', @@ -736,7 +736,7 @@ $LANG['pt-BR'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'ASSUNTO', 'ALIASES' => 'APELIDOS', 'NOT_BEFORE' => 'NAO_ANTES', diff --git a/web/inc/i18n/pt.php b/web/inc/i18n/pt.php index 02d3bf513..3ce1df4cb 100644 --- a/web/inc/i18n/pt.php +++ b/web/inc/i18n/pt.php @@ -1,6 +1,6 @@ 'Para excluir todas as tarefas *', 'USER_EXCLUSIONS' => 'Digite o nome do diretório, um por linha. Para excluir todos os diretórios use *', - 'Welcome to Vesta Control Panel' => 'Bem vindo ao Painel de Controle Vesta', - 'MAIL_FROM' => 'Painel de Controle Vesta ', + 'Welcome to DevIT Control Panel' => 'Bem vindo ao Painel de Controle DevIT', + 'MAIL_FROM' => 'Painel de Controle DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Olá, %s %s,\n", 'GREETINGS' => "Olá,\n", - 'ACCOUNT_READY' => "Sua conta foi criada e está pronta para uso.\n\nhttps://%s/login/\nUsuário: %s\nSenha: %s\n\n--\nPainel de Controle Vesta\n", + 'ACCOUNT_READY' => "Sua conta foi criada e está pronta para uso.\n\nhttps://%s/login/\nUsuário: %s\nSenha: %s\n\n--\nPainel de Controle DevIT\n", 'FTP login credentials' => 'Credenciais de acesso ao FTP', - 'FTP_ACCOUNT_READY' => "A conta FTP foi criada e está pronta pra uso.\n\nServidor: %s\nUsuário: %s_%s\nSenha: %s\n\n--\nPainel de Controle Vesta\n", + 'FTP_ACCOUNT_READY' => "A conta FTP foi criada e está pronta pra uso.\n\nServidor: %s\nUsuário: %s_%s\nSenha: %s\n\n--\nPainel de Controle DevIT\n", 'Database Credentials' => 'Credenciais de acesso ao Banco de Dados', - 'DATABASE_READY' => "Banco de dados Criado com Sucesso.\n\nBanco de dados: %s\nUsuário: %s\nSenha: %s\n%s\n\n--\nPainel de Controle Vesta\n", + 'DATABASE_READY' => "Banco de dados Criado com Sucesso.\n\nBanco de dados: %s\nUsuário: %s\nSenha: %s\n%s\n\n--\nPainel de Controle DevIT\n", 'forgot password' => 'esqueci minha senha', 'Confirm' => 'Confirmar', @@ -531,7 +531,7 @@ $LANG['pt'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'O código de redefinição de senha foi enviado para o seu email
', 'MAIL_RESET_SUBJECT' => 'Senha Redefinida em %s', - 'PASSWORD_RESET_REQUEST' => "Para redefinir sua senha do Painel de Controle, por favor use o seguinte link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nComo alternativa, você pode visitar https://%s/reset/?action=code&user=%s e digitar o seguinte código de redefinição:\n%s\n\nSe você não solicitou uma redefinição de senha, por favor ignore esse mensagem e aceite nossas desculpas.\n\n--\nPainel de Controle Vesta\n", + 'PASSWORD_RESET_REQUEST' => "Para redefinir sua senha do Painel de Controle, por favor use o seguinte link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nComo alternativa, você pode visitar https://%s/reset/?action=code&user=%s e digitar o seguinte código de redefinição:\n%s\n\nSe você não solicitou uma redefinição de senha, por favor ignore esse mensagem e aceite nossas desculpas.\n\n--\nPainel de Controle DevIT\n", 'Jan' => 'Jan', 'Feb' => 'Fev', @@ -575,7 +575,7 @@ $LANG['pt'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Cota de Disco', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'pré-visualizar', 'Reseller Role' => 'Regra de Revendedor', 'Web Config Editor' => 'Editor de Configuração Web', @@ -736,7 +736,7 @@ $LANG['pt'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/ro.php b/web/inc/i18n/ro.php index 5b70f5d55..c88412cbc 100644 --- a/web/inc/i18n/ro.php +++ b/web/inc/i18n/ro.php @@ -1,7 +1,7 @@ 'Pentru a exclude toate sarcinile bagă *', 'USER_EXCLUSIONS' => 'Adauga câte o directoria pe linie. Pentru a exclude toate bagă *', - 'Welcome to Vesta Control Panel' => 'Bine ați venit la panoul de control Vesta', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Bine ați venit la panoul de control DevIT', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Salut, %s %s,\n", 'GREETINGS' => "Salut,\n", - 'ACCOUNT_READY' => "Contul dvs este gata.\n\nhttps://%s/login/\nUtilizator: %s\nParolă: %s\n\n--\nPanoul de control Vesta\n", + 'ACCOUNT_READY' => "Contul dvs este gata.\n\nhttps://%s/login/\nUtilizator: %s\nParolă: %s\n\n--\nPanoul de control DevIT\n", 'FTP login credentials' => 'Datele de autentificare FTP', - 'FTP_ACCOUNT_READY' => "Contul FTP dvs. este gata.\n\nHost: %s\nUtilizator: %s_%s\nParolă: %s\n\n--\nPanoul de control Vesta\n", + 'FTP_ACCOUNT_READY' => "Contul FTP dvs. este gata.\n\nHost: %s\nUtilizator: %s_%s\nParolă: %s\n\n--\nPanoul de control DevIT\n", 'Database Credentials' => 'Datele de autentificare BD', - 'DATABASE_READY' => "Baza de date a fost creată și este gata pentru utilizare.\n\nBD: %s\nUtilizator: %s\nParolă: %s\n%s\n\n--\nPanoul de control Vesta\n", + 'DATABASE_READY' => "Baza de date a fost creată și este gata pentru utilizare.\n\nBD: %s\nUtilizator: %s\nParolă: %s\n%s\n\n--\nPanoul de control DevIT\n", 'forgot password' => 'Am uitat parola', 'Confirm' => 'Confirmă', @@ -533,7 +533,7 @@ $LANG['ro'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Codul de resetare a fost trimis la email-ul dvs..
', 'MAIL_RESET_SUBJECT' => 'Schimbarea parolei %s', - 'PASSWORD_RESET_REQUEST'=>"Pentru schimbarea parolei, vă rugăm faceți clic aici:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n\n\nDacă nu ați solicitat o procedură de resetarea parolei, vă rugăm să ignorați această scrisoare.\n\n--\nPanoul de control Vesta\n", + 'PASSWORD_RESET_REQUEST'=>"Pentru schimbarea parolei, vă rugăm faceți clic aici:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n\n\nDacă nu ați solicitat o procedură de resetarea parolei, vă rugăm să ignorați această scrisoare.\n\n--\nPanoul de control DevIT\n", 'Jan' => 'Ian', 'Feb' => 'Feb', @@ -577,7 +577,7 @@ $LANG['ro'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Plugin-uri panoul de control Vesta', + 'DevIT Control Panel Plugins' => 'Plugin-uri panoul de control DevIT', 'preview' => 'previzualizare', 'Reseller Role' => 'Rol de distribuitor', 'Web Config Editor' => 'Editor configurare Web', @@ -738,7 +738,7 @@ $LANG['ro'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'Subiect', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/ru.php b/web/inc/i18n/ru.php index 3ff08aa4a..14939b168 100644 --- a/web/inc/i18n/ru.php +++ b/web/inc/i18n/ru.php @@ -1,8 +1,8 @@ 'Для того чтобы исключить все задания, используйте *', 'USER_EXCLUSIONS' => 'Укажите папки по одной в строке. Для того чтобы исключить все, используйте *', - 'Welcome to Vesta Control Panel' => 'Добро пожаловать в панель управления Vesta', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Добро пожаловать в панель управления DevIT', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Здравствуйте, %s %s,\n", 'GREETINGS' => "Здравствуйте,\n", - 'ACCOUNT_READY' => "Ваш аккаунт успешно создан и готов к использованию.\n\nhttps://%s/login/\nИмя пользователя: %s\nПароль: %s\n\n--\nПанель управления Vesta\n", + 'ACCOUNT_READY' => "Ваш аккаунт успешно создан и готов к использованию.\n\nhttps://%s/login/\nИмя пользователя: %s\nПароль: %s\n\n--\nПанель управления DevIT\n", 'FTP login credentials' => 'Данные для доступа к FTP', - 'FTP_ACCOUNT_READY' => "FTP аккаунт успешно создан и готов к использованию.\n\nХост: %s\nИмя пользователя: %s_%s\nПароль: %s\n\n--\nПанель управления Vesta\n", + 'FTP_ACCOUNT_READY' => "FTP аккаунт успешно создан и готов к использованию.\n\nХост: %s\nИмя пользователя: %s_%s\nПароль: %s\n\n--\nПанель управления DevIT\n", 'Database Credentials' => 'Данные для доступа к БД', - 'DATABASE_READY' => "База данных создана успешно.\n\nБаза данных: %s\nПользователь: %s\nПароль: %s\n%s\n\n--\nПанель управления Vesta\n", + 'DATABASE_READY' => "База данных создана успешно.\n\nБаза данных: %s\nПользователь: %s\nПароль: %s\n%s\n\n--\nПанель управления DevIT\n", 'forgot password' => 'напомнить', 'Confirm' => 'Подтвердить', @@ -533,7 +533,7 @@ $LANG['ru'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Код для восстановления пароля был выслан на ваш электронный адрес.
', 'MAIL_RESET_SUBJECT' => 'Восстановление пароля %s', - 'PASSWORD_RESET_REQUEST'=>"Чтобы восстановить пароль, пройдите по ссылке:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nВы также можете октрыть страницу https://%s/reset/?action=code&user=%s и вручную ввести код для восстановления:\n%s\n\nЕсли вы не запрашивали процедуру восстановления пароля, пожалуйста проигнорируйте это письмо и примите наши извинения.\n\n--\nПанель управления Vesta\n", + 'PASSWORD_RESET_REQUEST'=>"Чтобы восстановить пароль, пройдите по ссылке:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nВы также можете октрыть страницу https://%s/reset/?action=code&user=%s и вручную ввести код для восстановления:\n%s\n\nЕсли вы не запрашивали процедуру восстановления пароля, пожалуйста проигнорируйте это письмо и примите наши извинения.\n\n--\nПанель управления DevIT\n", 'Jan' => 'Янв', 'Feb' => 'Фев', @@ -577,7 +577,7 @@ $LANG['ru'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Дисковая квота файловой системы', - 'Vesta Control Panel Plugins' => 'Плагины Vesta Control Panel', + 'DevIT Control Panel Plugins' => 'Плагины DevIT Control Panel', 'preview' => 'предпросмотр', 'Reseller Role' => 'Реселлер', 'Web Config Editor' => 'Веб Редактор Конфигов', @@ -738,7 +738,7 @@ $LANG['ru'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'ОБЪЕКТ', 'ALIASES' => 'АЛИАСЫ', 'NOT_BEFORE' => 'НЕДОСТУПЕН ДО', diff --git a/web/inc/i18n/se.php b/web/inc/i18n/se.php index 96c5af9c6..2a6423e56 100644 --- a/web/inc/i18n/se.php +++ b/web/inc/i18n/se.php @@ -1,6 +1,6 @@ 'För att utesluta alla cronuppdrag, använd *', 'USER_EXCLUSIONS' => 'Ange katalognamn, ett per rad. För att utesluta alla kataloger, använd *', - 'Welcome to Vesta Control Panel' => 'Välkommen till Kontrollpanelen Vesta', - 'MAIL_FROM' => 'Kontrollpanelen Vesta ', + 'Welcome to DevIT Control Panel' => 'Välkommen till Kontrollpanelen DevIT', + 'MAIL_FROM' => 'Kontrollpanelen DevIT ', 'GREETINGS_GORDON_FREEMAN' => "Hejsan, %s %s,\n", 'GREETINGS' => "Hej,\n", - 'ACCOUNT_READY' => "Ditt konto har skapats och är nu redo att användas.\n\nhttps://%s/login/\nAnvändarnamn: %s\nLösenord: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Ditt konto har skapats och är nu redo att användas.\n\nhttps://%s/login/\nAnvändarnamn: %s\nLösenord: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTP-inloggningsinformation', - 'FTP_ACCOUNT_READY' => "FTP-kontot har skapats och är nu redo att användas.\n\nDatornamn: %s\nAnvändarnamn: %s_%s\nLösenord: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP-kontot har skapats och är nu redo att användas.\n\nDatornamn: %s\nAnvändarnamn: %s_%s\nLösenord: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Databasinformation', - 'DATABASE_READY' => "Databas framgångsrikt skapad.\n\nDatabas: %s\nAnvändarnamn: %s\nLösenord: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Databas framgångsrikt skapad.\n\nDatabas: %s\nAnvändarnamn: %s\nLösenord: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'Glömt lösenordet', 'Confirm' => 'Bekräfta', @@ -531,7 +531,7 @@ $LANG['se'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Koden för lösenordsåterställning har skickats till din emailadress
', 'MAIL_RESET_SUBJECT' => 'Lösenord återställt %s', - 'PASSWORD_RESET_REQUEST' => "För att återställa lösenordet till kontrollpanelen, vänligen följ denna länk:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nEller så kan du gåt till https://%s/reset/?action=code&user=%s och ange följande återställningskod:\n%s\n\nOm du inte har begärt lösenordsåterställning, var god ignorera detta meddelande och acceptera vår ödmjuka ursäkt.\n\n--\nKontrollpanelen Vesta\n", + 'PASSWORD_RESET_REQUEST' => "För att återställa lösenordet till kontrollpanelen, vänligen följ denna länk:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nEller så kan du gåt till https://%s/reset/?action=code&user=%s och ange följande återställningskod:\n%s\n\nOm du inte har begärt lösenordsåterställning, var god ignorera detta meddelande och acceptera vår ödmjuka ursäkt.\n\n--\nKontrollpanelen DevIT\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -575,7 +575,7 @@ $LANG['se'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'preview', 'Reseller Role' => 'Reseller Role', 'Web Config Editor' => 'Web Config Editor', @@ -736,7 +736,7 @@ $LANG['se'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/sr.php b/web/inc/i18n/sr.php index 2b91b293e..6c4cadd62 100644 --- a/web/inc/i18n/sr.php +++ b/web/inc/i18n/sr.php @@ -1,6 +1,6 @@ 'Da bi izuzeo sve cron-job-ove unesi zvezdicu *', 'USER_EXCLUSIONS' => 'Unesi direktorijume, po jedan u svakoj liniji. Da bi izuzeo sve direktorijume unesi zvezdicu *', - 'Welcome to Vesta Control Panel' => 'Dobrodošli u Vesta kontrolni panel', - 'MAIL_FROM' => 'Vesta kontrolni panel ', + 'Welcome to DevIT Control Panel' => 'Dobrodošli u DevIT kontrolni panel', + 'MAIL_FROM' => 'DevIT kontrolni panel ', 'GREETINGS_GORDON_FREEMAN' => "Poštovani %s %s,\n", 'GREETINGS' => "Poštovani,\n", - 'ACCOUNT_READY' => "Vaš hosting nalog je kreiran i spreman za korišćenje.\n\nhttps://%s/login/\nKorisničko ime: %s\nŠifra: %s\n\n--\nVesta kontrolni panel\n", + 'ACCOUNT_READY' => "Vaš hosting nalog je kreiran i spreman za korišćenje.\n\nhttps://%s/login/\nKorisničko ime: %s\nŠifra: %s\n\n--\nDevIT kontrolni panel\n", 'FTP login credentials' => 'FTP podaci', - 'FTP_ACCOUNT_READY' => "FTP nalog je kreiran. Koristite sledeće podatke kako biste se ulogovali:\n\nHostname: %s\nKorisničko ime: %s_%s\nŠifra: %s\n\n--\nVesta kontrolni panel\n", + 'FTP_ACCOUNT_READY' => "FTP nalog je kreiran. Koristite sledeće podatke kako biste se ulogovali:\n\nHostname: %s\nKorisničko ime: %s_%s\nŠifra: %s\n\n--\nDevIT kontrolni panel\n", 'Database Credentials' => 'Podaci baze podataka', - 'DATABASE_READY' => "Baza podataka je kreirana. Koristite sledeće podatke kako biste se ulogovali:\n\nDatabase: %s\nKorisničko ime: %s\nŠifra: %s\n%s\n\n--\nVesta kontrolni panel\n", + 'DATABASE_READY' => "Baza podataka je kreirana. Koristite sledeće podatke kako biste se ulogovali:\n\nDatabase: %s\nKorisničko ime: %s\nŠifra: %s\n%s\n\n--\nDevIT kontrolni panel\n", 'forgot password' => 'zaboravljena šifra', 'Confirm' => 'Potvrditi', @@ -531,7 +531,7 @@ $LANG['sr'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Kod resetovane šifre je poslat na vašu email adresu
', 'MAIL_RESET_SUBJECT' => 'Šifra je resetovana %s', - 'PASSWORD_RESET_REQUEST' => "Za resetovanje šifre sledite link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nIli, možete ići na https://%s/reset/?action=code&user=%s i uneti kod:\n%s\n\nAko niste tražili resetovanje šifre, ignorišite ovu poruku i prihvatite naše izvinjenje.\n\n--\nVesta kontrolni panel\n", + 'PASSWORD_RESET_REQUEST' => "Za resetovanje šifre sledite link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nIli, možete ići na https://%s/reset/?action=code&user=%s i uneti kod:\n%s\n\nAko niste tražili resetovanje šifre, ignorišite ovu poruku i prihvatite naše izvinjenje.\n\n--\nDevIT kontrolni panel\n", 'Jan' => 'Jan', 'Feb' => 'Feb', @@ -575,7 +575,7 @@ $LANG['sr'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'FileSystem Disk Quota', - 'Vesta Control Panel Plugins' => 'Plugin-ovi', + 'DevIT Control Panel Plugins' => 'Plugin-ovi', 'preview' => 'pregled', 'Reseller Role' => 'Reseller uloga', 'Web Config Editor' => 'Web Config Editor', @@ -615,7 +615,7 @@ $LANG['sr'] = array( 'No file selected' => 'Niste selektovali nijedan fajl', 'No file or folder selected' => 'Niste selektovali nijedan fajl niti direktorijum', 'File type not supported' => 'Ovaj format fajla (file type) nije podržan', - 'Directory download not available in current version' => 'Downloadovanje direktorijuma nije moguće u trenutnoj verziji VestaCP. Zapakujte folder pa onda download-ujte tu arhivu', + 'Directory download not available in current version' => 'Downloadovanje direktorijuma nije moguće u trenutnoj verziji DevITCP. Zapakujte folder pa onda download-ujte tu arhivu', 'Directory not available' => 'Direktorijum nije dostupan', 'Done' => 'Završeno', 'Close' => 'Zatvoriti', @@ -736,7 +736,7 @@ $LANG['sr'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/th.php b/web/inc/i18n/th.php index 2878192ff..92106ab4f 100644 --- a/web/inc/i18n/th.php +++ b/web/inc/i18n/th.php @@ -1,6 +1,6 @@ 'หากต้องการยกเว้นงานทั้งหมด ให้ใช้ *', 'USER_EXCLUSIONS' => 'พิมพ์ชื่อไดเร็กทอรี่หนึ่งรายการต่อบรรทัด หรือเพื่อไม่ให้ใช้ไดเร็กทอรี่ทั้งหมด ให้ใช้ *', - 'Welcome to Vesta Control Panel' => 'ยินดีต้อนรับสู่ Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'ยินดีต้อนรับสู่ DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "สวัสดี, %s %s,\n", 'GREETINGS' => "สวัสดี,\n", - 'ACCOUNT_READY' => "บัญชีของคุณได้รับการสร้างและพร้อมใช้งานแล้ว\n\nhttps://%s/login/\nชื่อผู้ใช้: %s\nรหัสผ่าน: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "บัญชีของคุณได้รับการสร้างและพร้อมใช้งานแล้ว\n\nhttps://%s/login/\nชื่อผู้ใช้: %s\nรหัสผ่าน: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'ข้อมูลการเข้าสู่ระบบ FTP', - 'FTP_ACCOUNT_READY' => "มีการสร้างบัญชี FTP และพร้อมใช้งานแล้ว\n\nโฮสต์: %s\nชื่อผู้ใช้: %s_%s\nรหัสผ่าน: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "มีการสร้างบัญชี FTP และพร้อมใช้งานแล้ว\n\nโฮสต์: %s\nชื่อผู้ใช้: %s_%s\nรหัสผ่าน: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'ข้อมูลการใช้งานฐานข้อมูล', - 'DATABASE_READY' => "สร้างฐานข้อมูลเรียบร้อยแล้ว\n\nDatabase: %s\nชื่อ: %s\nรหัสผ่าน: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "สร้างฐานข้อมูลเรียบร้อยแล้ว\n\nDatabase: %s\nชื่อ: %s\nรหัสผ่าน: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'ลืมรหัสผ่าน', 'Confirm' => 'ยืนยัน', @@ -534,7 +534,7 @@ $LANG['th'] = array( 'RESET_NOTICE' => 'แจ้งการ', 'RESET_CODE_SENT' => 'รหัสสำหรับรีเซ็ตรหัสผ่านถูกส่งไปยังที่อยู่อีเมลของคุณแล้ว
', 'MAIL_RESET_SUBJECT' => 'ตั้งค่ารหัสผ่านใหม่ที่ %s', - 'PASSWORD_RESET_REQUEST' => "หากต้องการรีเซ็ตรหัสผ่านของแผงควบคุมโปรดไปที่ลิงก์นี้:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, คุณอาจจะไปที่ https://%s/reset/?action=code&user=%s และใส่รหัสรีเซ็ตดังต่อไปนี้:\n%s\n\nหากคุณไม่ได้ขอรหัสผ่านใหม่โปรดละเว้นข้อความนี้และยอมรับคำขอโทษของเรา\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "หากต้องการรีเซ็ตรหัสผ่านของแผงควบคุมโปรดไปที่ลิงก์นี้:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, คุณอาจจะไปที่ https://%s/reset/?action=code&user=%s และใส่รหัสรีเซ็ตดังต่อไปนี้:\n%s\n\nหากคุณไม่ได้ขอรหัสผ่านใหม่โปรดละเว้นข้อความนี้และยอมรับคำขอโทษของเรา\n\n--\nDevIT Control Panel\n", 'Jan' => 'ม.ค.', 'Feb' => 'ก.พ.', @@ -578,7 +578,7 @@ $LANG['th'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'โควต้าการเก็บข้อมูลในระบบ', - 'Vesta Control Panel Plugins' => 'ปลั๊กอิน Vesta Control Panel', + 'DevIT Control Panel Plugins' => 'ปลั๊กอิน DevIT Control Panel', 'preview' => 'ดูตัวอย่าง', 'Reseller Role' => 'บทบาท Reseller', 'Web Config Editor' => 'เครื่องมือแก้ไขการตั้งค่าเว็บ', @@ -739,7 +739,7 @@ $LANG['th'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/tr.php b/web/inc/i18n/tr.php index a7fadc43d..80557b80c 100644 --- a/web/inc/i18n/tr.php +++ b/web/inc/i18n/tr.php @@ -1,7 +1,7 @@ 'Tüm zamanlanmış görevleri hariç tutmak için * kullanın', 'USER_EXCLUSIONS' => 'Her satıra bir klasör adı yazın. Tüm dizinleri hariç tutmak için * kullanın', - 'Welcome to Vesta Control Panel' => 'Vesta Kontrol Paneline Hoşgeldiniz', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'DevIT Kontrol Paneline Hoşgeldiniz', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Merhaba, %s %s,\n", 'GREETINGS' => "Merhaba,\n", - 'ACCOUNT_READY' => "Hesabınız başarıyla oluşturuldu ve kullanıma hazır.\n\nhttps://%s/login/\nKullanıcı adı: %s\nŞifre: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Hesabınız başarıyla oluşturuldu ve kullanıma hazır.\n\nhttps://%s/login/\nKullanıcı adı: %s\nŞifre: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTP giriş bilgileri', - 'FTP_ACCOUNT_READY' => "FTP hesabı başarıyla oluşturuldu ve kullanıma hazır.\n\nHostname: %s\nKullanıcı adı: %s_%s\nŞifre: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP hesabı başarıyla oluşturuldu ve kullanıma hazır.\n\nHostname: %s\nKullanıcı adı: %s_%s\nŞifre: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Veritabanı Bilgileri', - 'DATABASE_READY' => "Veritabanı başarıyla oluşturuldu.\n\nVeritabanı: %s\nKullanıcı: %s\nŞifre: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Veritabanı başarıyla oluşturuldu.\n\nVeritabanı: %s\nKullanıcı: %s\nŞifre: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'şifremi unuttum', 'Confirm' => 'Onayla', @@ -532,7 +532,7 @@ $LANG['tr'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Şifre sıfırlama kodu e-posta adresinize gönderildi.
', 'MAIL_RESET_SUBJECT' => 'Şifre Sıfırlama - %s', - 'PASSWORD_RESET_REQUEST' => "Şifrenizi sıfırlamak için lütfen linki takip edin:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatif olarak https://%s/reset/?action=code&user=%s linkine tıklayıp devamında şu reset kodunuzu gerekli alana girebilirsiniz:\n%s\n\nEğer şifre sıfırlama isteğinde bulunmadıysanız lütfen bu mesajı görmezden gelin ve özrümüzü kabul edin.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Şifrenizi sıfırlamak için lütfen linki takip edin:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatif olarak https://%s/reset/?action=code&user=%s linkine tıklayıp devamında şu reset kodunuzu gerekli alana girebilirsiniz:\n%s\n\nEğer şifre sıfırlama isteğinde bulunmadıysanız lütfen bu mesajı görmezden gelin ve özrümüzü kabul edin.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Oca', 'Feb' => 'Şub', @@ -576,7 +576,7 @@ $LANG['tr'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'DosyaSistemi Disk Kotası', - 'Vesta Control Panel Plugins' => 'Vesta Kontrol Paneli Eklentileri', + 'DevIT Control Panel Plugins' => 'DevIT Kontrol Paneli Eklentileri', 'preview' => 'önizleme', 'Reseller Role' => 'Bayi Rolü', 'Web Config Editor' => 'Web Yapılandırma Editörü', @@ -737,7 +737,7 @@ $LANG['tr'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'SUBJECT', 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/tw.php b/web/inc/i18n/tw.php index 163bee624..5f26d26ec 100644 --- a/web/inc/i18n/tw.php +++ b/web/inc/i18n/tw.php @@ -1,6 +1,6 @@ '要排除備份所有任務排程請使用*', 'USER_EXCLUSIONS' => '輸入要排除備份的資料夾名稱,每行一個資料夾。如要排除備份所有資料夾請使用*', - 'Welcome to Vesta Control Panel' => '歡迎來到 Vesta 管理系統', - 'MAIL_FROM' => 'Vesta 管理系統 ', + 'Welcome to DevIT Control Panel' => '歡迎來到 DevIT 管理系統', + 'MAIL_FROM' => 'DevIT 管理系統 ', 'GREETINGS_GORDON_FREEMAN' => "您好, %s %s,\n", 'GREETINGS' => "您好,\n", - 'ACCOUNT_READY' => "您的帳號已成功建立,並可以開始使用了!\n\nhttps://%s/login/\n使用者名稱:%s\n密碼:%s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "您的帳號已成功建立,並可以開始使用了!\n\nhttps://%s/login/\n使用者名稱:%s\n密碼:%s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'FTP 登入資料', - 'FTP_ACCOUNT_READY' => "FTP 帳號已成功建立,並可以開始使用了!\n\n主機名稱:%s\n使用者名稱:%s_%s\n密碼:%s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "FTP 帳號已成功建立,並可以開始使用了!\n\n主機名稱:%s\n使用者名稱:%s_%s\n密碼:%s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => '資料庫 登入資料', - 'DATABASE_READY' => "資料庫已加入成功!\n\n資料庫名稱:%s\n使用者名稱:%s\n密碼:%s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "資料庫已加入成功!\n\n資料庫名稱:%s\n使用者名稱:%s\n密碼:%s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => '忘記密碼', 'Confirm' => '確認', @@ -533,7 +533,7 @@ $LANG['tw'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => '密碼重設代碼已傳送到您的信箱
', 'MAIL_RESET_SUBJECT' => '密碼重設在 %s', - 'PASSWORD_RESET_REQUEST' => "重設密碼請點擊連結:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s 輸入密碼重設代碼:\n%s\n\n如果您沒有要求重設密碼,請忽略此郵件\n\n—\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "重設密碼請點擊連結:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n或者您可以到 https://%s/reset/?action=code&user=%s 輸入密碼重設代碼:\n%s\n\n如果您沒有要求重設密碼,請忽略此郵件\n\n—\nDevIT Control Panel\n", 'Jan' => '一月', 'Feb' => '二月', @@ -577,7 +577,7 @@ $LANG['tw'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => '檔案系統硬碟配額', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel 外掛', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel 外掛', 'preview' => '預覽', 'Reseller Role' => '經銷商權限', 'Web Config Editor' => '網站設定編輯器', @@ -738,7 +738,7 @@ $LANG['tw'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta 後台 SSL', + 'DevIT SSL' => 'DevIT 後台 SSL', 'SUBJECT' => '主體名稱', 'ALIASES' => '主體別名', 'NOT_BEFORE' => '有效期自', diff --git a/web/inc/i18n/ua.php b/web/inc/i18n/ua.php index 136cc73f8..64342c598 100644 --- a/web/inc/i18n/ua.php +++ b/web/inc/i18n/ua.php @@ -1,6 +1,6 @@ 'Для того, щоб виключити всі завдання, використовуйте *', 'USER_EXCLUSIONS' => 'Вкажіть теки по одній на рядок. Для того, щоб виключити всі, використовуйте *', - 'Welcome to Vesta Control Panel' => 'Вітаємо в панелі керування Vesta', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Вітаємо в панелі керування DevIT', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Вітаємо, %s %s,\n", 'GREETINGS' => "Вітаємо,\n", - 'ACCOUNT_READY' => "Ваш аккаунт успішно створено і готовий до використання.\n\nhttps://%s/login/\nІм'я користувача: %s\nПароль: %s\n\n--\nПанель керування Vesta\n", + 'ACCOUNT_READY' => "Ваш аккаунт успішно створено і готовий до використання.\n\nhttps://%s/login/\nІм'я користувача: %s\nПароль: %s\n\n--\nПанель керування DevIT\n", 'FTP login credentials' => 'Дані доступу до FTP', - 'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створено і готовий до використання.\n\nХост: %s\nІм'я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування Vesta\n", + 'FTP_ACCOUNT_READY' => "FTP аккаунт успішно створено і готовий до використання.\n\nХост: %s\nІм'я користувача: %s_%s\nПароль: %s\n\n--\nПанель керування DevIT\n", 'Database Credentials' => 'Дані доступу до БД', - 'DATABASE_READY' => "База даних успішно створена.\n\nБаза даних: %s\nКористувач: %s\nПароль: %s\n%s\n\n--\nПанель керування Vesta\n", + 'DATABASE_READY' => "База даних успішно створена.\n\nБаза даних: %s\nКористувач: %s\nПароль: %s\n%s\n\n--\nПанель керування DevIT\n", 'forgot password' => 'нагадати пароль', 'Confirm' => 'Підтвердити', @@ -532,7 +532,7 @@ $LANG['ua'] = array( 'RESET_NOTICE' => 'Скинути сповіщення', 'RESET_CODE_SENT' => 'Код для відновлення паролю успішно відправлено на вашу електронну пошту.
', 'MAIL_RESET_SUBJECT' => 'Відновлення паролю %s', - 'PASSWORD_RESET_REQUEST'=>"Щоб відновити пароль, будь-ласка, перейдіть за посиланням :\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nТакож ви можете відкрити сторінку https://%s/reset/?action=code&user=%s і вручну ввести код для відновлення:\n%s\n\nЯкщо ви не виконували процедуру відновлення паролю, будь ласка, проігноруйте цей лист і прийміть наші вибачення.\n\n--\nПанель керування Vesta\n", + 'PASSWORD_RESET_REQUEST'=>"Щоб відновити пароль, будь-ласка, перейдіть за посиланням :\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nТакож ви можете відкрити сторінку https://%s/reset/?action=code&user=%s і вручну ввести код для відновлення:\n%s\n\nЯкщо ви не виконували процедуру відновлення паролю, будь ласка, проігноруйте цей лист і прийміть наші вибачення.\n\n--\nПанель керування DevIT\n", 'Jan' => 'Січ', 'Feb' => 'Лют', @@ -576,7 +576,7 @@ $LANG['ua'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Дискова квота файлової системи', - 'Vesta Control Panel Plugins' => 'Плагіни Vesta Control Panel', + 'DevIT Control Panel Plugins' => 'Плагіни DevIT Control Panel', 'preview' => "прев'ю", 'Reseller Role' => 'Реселлер', 'Web Config Editor' => 'Редактор Web конфігів', @@ -737,7 +737,7 @@ $LANG['ua'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => "ОБ'ЄКТ", 'ALIASES' => 'АЛІАСИ', 'NOT_BEFORE' => 'НЕДОСТУПНИЙ ДО', diff --git a/web/inc/i18n/ur.php b/web/inc/i18n/ur.php index 2c95e8217..219b19677 100644 --- a/web/inc/i18n/ur.php +++ b/web/inc/i18n/ur.php @@ -1,6 +1,6 @@ 'ICMP', 'SSH' => 'SSH', 'FTP' => 'FTP', - 'VESTA' => 'Vesta کی', + 'VESTA' => 'DevIT کی', 'Add one more Name Server' => 'ایک اور نام سرور شامل کریں', 'web domain' => 'ویب ڈومین', @@ -509,17 +509,17 @@ $LANG['ur'] = array( 'CRON_EXCLUSIONS' => 'تمام ملازمتوں کا استعمال کرتے خارج کرنے کے *', 'USER_EXCLUSIONS' => 'قسم ڈائریکٹری کا نام ہے، ایک فی لائن. تمام dirs استعمال کرتے exlude کرنے *', - 'Welcome to Vesta Control Panel' => 'Vesta کی کنٹرول پینل میں خوش آمدید', - 'MAIL_FROM' => ' Vesta کی کنٹرول پینل ', + 'Welcome to DevIT Control Panel' => 'DevIT کی کنٹرول پینل میں خوش آمدید', + 'MAIL_FROM' => ' DevIT کی کنٹرول پینل ', 'GREETINGS_GORDON_FREEMAN' => "ہیلو, %s %s,\n", 'GREETINGS' => "ہیلو,\n", - 'ACCOUNT_READY' => "\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n .آپ کا اکاؤنٹ بنا دیا گیا ہے اور استعمال کے لئے تیار ہے", + 'ACCOUNT_READY' => "\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nDevIT Control Panel\n .آپ کا اکاؤنٹ بنا دیا گیا ہے اور استعمال کے لئے تیار ہے", 'FTP login credentials' => 'FTP لاگ ان کی اسناد', - 'FTP_ACCOUNT_READY' => "\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n .اکاؤنٹ بنا دیا گیا ہے اور استعمال کے لئے تیار ہے FTP", + 'FTP_ACCOUNT_READY' => "\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nDevIT Control Panel\n .اکاؤنٹ بنا دیا گیا ہے اور استعمال کے لئے تیار ہے FTP", 'Database Credentials' => 'ڈیٹا بیس کی اسناد', - 'DATABASE_READY' => "\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n .ڈیٹا بیس کی کامیابی کے ساتھ بن گیا ہے.", + 'DATABASE_READY' => "\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nDevIT Control Panel\n .ڈیٹا بیس کی کامیابی کے ساتھ بن گیا ہے.", 'forgot password' => 'پاسورڈ بھول گے', 'Confirm' => 'تصدیق کریں', @@ -530,7 +530,7 @@ $LANG['ur'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => '
پاس ورڈ دوبارہ ترتیب دینے کا کوڈ آپ کے ای میل ایڈریس پر بھیج دیا گیا ہے', 'MAIL_RESET_SUBJECT' => '%s میں پاس ورڈ ری سیٹ', - 'PASSWORD_RESET_REQUEST' => "\n\n--\nVesta Control Panel\n آپ کا پاس ورڈ دوبارہ ترتیب دینے کی درخواست نہیں کی ہے تو، یہ پیغام نظرانداز اور ہماری معذرت قبول کریں. \n%s\n\n :اور مندرجہ ذیل ری سیٹ کوڈ درج کریں: https://%s/reset/?action=code&user=%s آپ کے لئے جا سکتے ہیں متبادل طور پر \nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n : اپنے کنٹرول پینل پاس ورڈ ری سیٹ کرنے کے لئے، اس لنک کی پیروی کریں", + 'PASSWORD_RESET_REQUEST' => "\n\n--\nDevIT Control Panel\n آپ کا پاس ورڈ دوبارہ ترتیب دینے کی درخواست نہیں کی ہے تو، یہ پیغام نظرانداز اور ہماری معذرت قبول کریں. \n%s\n\n :اور مندرجہ ذیل ری سیٹ کوڈ درج کریں: https://%s/reset/?action=code&user=%s آپ کے لئے جا سکتے ہیں متبادل طور پر \nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\n : اپنے کنٹرول پینل پاس ورڈ ری سیٹ کرنے کے لئے، اس لنک کی پیروی کریں", 'Jan' => 'جان', 'Feb' => 'فروری', @@ -574,7 +574,7 @@ $LANG['ur'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'فائل سسٹم ڈسک کوٹہ', - 'Vesta Control Panel Plugins' => 'Vesta کی کنٹرول پینل پلگ انز', + 'DevIT Control Panel Plugins' => 'DevIT کی کنٹرول پینل پلگ انز', 'preview' => 'پیش نظارہ', 'Reseller Role' => 'ری سیلر کردار', 'Web Config Editor' => 'ویب تشکیل ایڈیٹر', @@ -735,7 +735,7 @@ $LANG['ur'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta کی SSL', + 'DevIT SSL' => 'DevIT کی SSL', 'SUBJECT' => 'مضمون', 'ALIASES' => 'عرفیتیں', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/i18n/uz.php b/web/inc/i18n/uz.php index 1b3e3df20..a8260389a 100644 --- a/web/inc/i18n/uz.php +++ b/web/inc/i18n/uz.php @@ -1,6 +1,6 @@ 'Для того чтобы исключить все задания, используйте * ', 'USER_EXCLUSIONS' => 'Укажите папки по одной в строке.Для того чтобы исключить все, используйте * ', - 'Welcome to Vesta Control Panel' => "Vesta boshqaruv paneliga xush kelibsiz", - 'MAIL_FROM' => 'Vesta Control Panel < noreply@%s > ', + 'Welcome to DevIT Control Panel' => "DevIT boshqaruv paneliga xush kelibsiz", + 'MAIL_FROM' => 'DevIT Control Panel < noreply@%s > ', 'GREETINGS_GORDON_FREEMAN' => "Salom %s %s,\n", 'GREETINGS' => "Salom,\n", - 'ACCOUNT_READY' => "Hisob muvaffaqiyatli yaratildi va foydalanishga tayyor.\n\nhttps://%s/login/\nFoydalanuvchi nomi: %s\nParol: %s\n\n--\nVesta boshqaruv paneli\n", + 'ACCOUNT_READY' => "Hisob muvaffaqiyatli yaratildi va foydalanishga tayyor.\n\nhttps://%s/login/\nFoydalanuvchi nomi: %s\nParol: %s\n\n--\nDevIT boshqaruv paneli\n", 'FTP login credentials' => "FTP kirish ma'lumotlari", - 'FTP_ACCOUNT_READY' => "FTP hisobi muvaffaqiyatli yaratildi va foydalanishga tayyor.\n\nXost: %s\nFoydalanuvchi nomi: %s_%s\nParol: %s\n\n--\nVesta boshqaruv paneli\n", + 'FTP_ACCOUNT_READY' => "FTP hisobi muvaffaqiyatli yaratildi va foydalanishga tayyor.\n\nXost: %s\nFoydalanuvchi nomi: %s_%s\nParol: %s\n\n--\nDevIT boshqaruv paneli\n", 'Database Credentials' => "Ma'lumotlar bazasiga kirish uchun ma'lumotlar", - 'DATABASE_READY' => "Ma'lumotlar bazasi muvaffaqiyatli yaratildi.\n\nMa'lumotlar bazasi: %s\nFoydalanuvchi: %s\nParol: %s\n%s\n\n--\nVesta boshqaruv paneli\n", + 'DATABASE_READY' => "Ma'lumotlar bazasi muvaffaqiyatli yaratildi.\n\nMa'lumotlar bazasi: %s\nFoydalanuvchi: %s\nParol: %s\n%s\n\n--\nDevIT boshqaruv paneli\n", 'forgot password' => 'eslatmoq', 'Confirm' => 'Tasdiqlang', @@ -537,7 +537,7 @@ $LANG['uz'] = [ 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Parolni tiklash kodi elektron pochta manzilingizga yuborildi..
', 'MAIL_RESET_SUBJECT' => ' % s parolni tiklash', - 'PASSWORD_RESET_REQUEST' => "Boshqaruv paneli parolini tiklash uchun quyidagi havolaga oʻting:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nBoʻlmasa, https://%s/reset/ sahifasiga oʻting. ?action=code&user=%s va quyidagi tiklash kodini kiriting:\n%s\n\nAgar siz parolni tiklashni soʻramagan boʻlsangiz, ushbu xabarga eʼtibor bermang va uzrimizni qabul qiling.\n\n--\nVesta boshqaruv paneli\n", + 'PASSWORD_RESET_REQUEST' => "Boshqaruv paneli parolini tiklash uchun quyidagi havolaga oʻting:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nBoʻlmasa, https://%s/reset/ sahifasiga oʻting. ?action=code&user=%s va quyidagi tiklash kodini kiriting:\n%s\n\nAgar siz parolni tiklashni soʻramagan boʻlsangiz, ushbu xabarga eʼtibor bermang va uzrimizni qabul qiling.\n\n--\nDevIT boshqaruv paneli\n", 'Jan' => 'Yan', 'Feb' => 'Fev', @@ -581,7 +581,7 @@ $LANG['uz'] = [ 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => "Fayl tizimi disk kvotasi", - 'Vesta Control Panel Plugins' => 'Плагины Vesta Control Panel', + 'DevIT Control Panel Plugins' => 'Плагины DevIT Control Panel', 'preview' => "oldindan ko'rish", 'Reseller Role' => 'Sotuvchi roli', 'Web Config Editor' => "Veb konfiguratsiya muharriri", @@ -743,7 +743,7 @@ $LANG['uz'] = [ 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => "OB'YEKT", 'ALIASES' => 'ALIASES', 'NOT_BEFORE' => 'НЕДОСТУПЕН ДО', diff --git a/web/inc/i18n/vi.php b/web/inc/i18n/vi.php index 2de145b40..b9fa271de 100644 --- a/web/inc/i18n/vi.php +++ b/web/inc/i18n/vi.php @@ -1,6 +1,6 @@ 'Để loại bỏ tất cả tiến trình, sử dụng ký tự *', 'USER_EXCLUSIONS' => 'Điền tên thư mục, mỗi thư mục một dòng. Để loại bỏ tất cả thư mục, sử dụng ký tự *', - 'Welcome to Vesta Control Panel' => 'Chào mừng bạn đến Vesta Control Panel', - 'MAIL_FROM' => 'Vesta Control Panel ', + 'Welcome to DevIT Control Panel' => 'Chào mừng bạn đến DevIT Control Panel', + 'MAIL_FROM' => 'DevIT Control Panel ', 'GREETINGS_GORDON_FREEMAN' => "Xin chào, %s %s,\n", 'GREETINGS' => "Hello,\n", - 'ACCOUNT_READY' => "Tài khoản của bạn đã được tạo thành công và sẵn sàng để sử dụng.\n\nhttps://%s/login/\nTên đăng nhập: %s\nMật khẩu: %s\n\n--\nVesta Control Panel\n", + 'ACCOUNT_READY' => "Tài khoản của bạn đã được tạo thành công và sẵn sàng để sử dụng.\n\nhttps://%s/login/\nTên đăng nhập: %s\nMật khẩu: %s\n\n--\nDevIT Control Panel\n", 'FTP login credentials' => 'Thông tin đăng nhập FTP', - 'FTP_ACCOUNT_READY' => "Tài khoản FTP của bạn đã được tạo thành công và sẵn sàng để sử dụng.\n\nHostname: %s\nTên đăng nhập: %s_%s\nMật khẩu: %s\n\n--\nVesta Control Panel\n", + 'FTP_ACCOUNT_READY' => "Tài khoản FTP của bạn đã được tạo thành công và sẵn sàng để sử dụng.\n\nHostname: %s\nTên đăng nhập: %s_%s\nMật khẩu: %s\n\n--\nDevIT Control Panel\n", 'Database Credentials' => 'Thông tin CSDL', - 'DATABASE_READY' => "Tạo thành công CSDL.\n\nTên cơ sở dữ liệu: %s\nNgười dùng: %s\nMật khẩu: %s\n%s\n\n--\nVesta Control Panel\n", + 'DATABASE_READY' => "Tạo thành công CSDL.\n\nTên cơ sở dữ liệu: %s\nNgười dùng: %s\nMật khẩu: %s\n%s\n\n--\nDevIT Control Panel\n", 'forgot password' => 'Quên mật khẩu', 'Confirm' => 'Xác nhận', @@ -534,7 +534,7 @@ $LANG['vi'] = array( 'RESET_NOTICE' => '', 'RESET_CODE_SENT' => 'Mã thiết lập lại mật khẩu đã được gửi đến địa chỉ email
', 'MAIL_RESET_SUBJECT' => 'Khôi phục mật khẩu tại %s', - 'PASSWORD_RESET_REQUEST' => "Để thiết lập lại mật khẩu quản trị, vui lòng truy cập vào địa chỉ:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s và nhập mã sau:\n%s\n\nNếu bạn không thực hiện khôi phục mật khẩu, vui lòng bỏ qua email này.\n\n--\nVesta Control Panel\n", + 'PASSWORD_RESET_REQUEST' => "Để thiết lập lại mật khẩu quản trị, vui lòng truy cập vào địa chỉ:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, you may go to https://%s/reset/?action=code&user=%s và nhập mã sau:\n%s\n\nNếu bạn không thực hiện khôi phục mật khẩu, vui lòng bỏ qua email này.\n\n--\nDevIT Control Panel\n", 'Jan' => 'Tháng 1', 'Feb' => 'Tháng 2', @@ -578,7 +578,7 @@ $LANG['vi'] = array( 'sftp' => 'SFTP', 'SFTP Chroot' => 'SFTP Chroot', 'FileSystem Disk Quota' => 'Hạn mức dung lượng đĩa hệ thống', - 'Vesta Control Panel Plugins' => 'Vesta Control Panel Plugins', + 'DevIT Control Panel Plugins' => 'DevIT Control Panel Plugins', 'preview' => 'xem trước', 'Reseller Role' => 'Vai trò đại lý', 'Web Config Editor' => 'Chỉnh sửa cấu hình web', @@ -738,7 +738,7 @@ $LANG['vi'] = array( 'webalizer' => 'webalizer', 'awstats' => 'awstats', - 'Vesta SSL' => 'Vesta SSL', + 'DevIT SSL' => 'DevIT SSL', 'SUBJECT' => 'CHỦ ĐỀ', 'ALIASES' => 'ÁNH XẠ', 'NOT_BEFORE' => 'NOT_BEFORE', diff --git a/web/inc/mail-wrapper.php b/web/inc/mail-wrapper.php index 4281aaad1..1da694ad1 100755 --- a/web/inc/mail-wrapper.php +++ b/web/inc/mail-wrapper.php @@ -1,4 +1,4 @@ -#!/usr/local/vesta/php/bin/php +#!/usr/local/devit/php/bin/php '; +$from = 'DevIT Control Panel '; $to = $argv[3]."\n"; $subject = $argv[2]."\n"; $mailtext = file_get_contents("php://stdin"); diff --git a/web/inc/main.php b/web/inc/main.php index 036702d72..f2108f9d4 100644 --- a/web/inc/main.php +++ b/web/inc/main.php @@ -2,7 +2,7 @@ session_start(); -define('VESTA_CMD', '/usr/bin/sudo /usr/local/vesta/bin/'); +define('VESTA_CMD', '/usr/bin/sudo /usr/local/devit/bin/'); define('JS_LATEST_UPDATE', '1491697868'); $i = 0; diff --git a/web/js/events.js b/web/js/events.js index 196fa857c..80850d6cd 100644 --- a/web/js/events.js +++ b/web/js/events.js @@ -1,5 +1,5 @@ // Init kinda namespace object -var VE = { // Vesta Events object +var VE = { // DevIT Events object core: {}, // core functions navigation: { state: { diff --git a/web/static/index.html b/web/static/index.html index 427a1a185..8f1e27fd4 100644 --- a/web/static/index.html +++ b/web/static/index.html @@ -1 +1 @@ -Vesta
\ No newline at end of file +DevIT
\ No newline at end of file diff --git a/web/static/js/2.7cb4195c.chunk.js b/web/static/js/2.7cb4195c.chunk.js index acb81058f..7a3b57d2a 100644 --- a/web/static/js/2.7cb4195c.chunk.js +++ b/web/static/js/2.7cb4195c.chunk.js @@ -1,3 +1,3 @@ /*! For license information please see 2.7cb4195c.chunk.js.LICENSE.txt */ -(this["webpackJsonpreact-control-panel"]=this["webpackJsonpreact-control-panel"]||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(97)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(15);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function F(e,t){return e===t}function z(e){var t=void 0===e?{}:e,n=t.connectHOC,r=void 0===n?S:n,i=t.mapStateToPropsFactories,o=void 0===i?D:i,a=t.mapDispatchToPropsFactories,s=void 0===a?L:a,l=t.mergePropsFactories,c=void 0===l?P:l,u=t.selectorFactory,p=void 0===u?R:u;return function(e,t,n,i){void 0===i&&(i={});var a=i,l=a.pure,u=void 0===l||l,h=a.areStatesEqual,m=void 0===h?F:h,g=a.areOwnPropsEqual,v=void 0===g?T:g,y=a.areStatePropsEqual,b=void 0===y?T:y,w=a.areMergedPropsEqual,x=void 0===w?T:w,_=Object(d.a)(a,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),k=q(e,o,"mapStateToProps"),S=q(t,s,"mapDispatchToProps"),E=q(n,c,"mergeProps");return r(p,Object(f.a)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:k,initMapDispatchToProps:S,initMergeProps:E,pure:u,areStatesEqual:m,areOwnPropsEqual:v,areStatePropsEqual:b,areMergedPropsEqual:x},_))}}var H=z();function B(){return Object(r.useContext)(o)}function U(e){void 0===e&&(e=o);var t=e===o?B:function(){return Object(r.useContext)(e)};return function(){return t().store}}var W=U();function V(e){void 0===e&&(e=o);var t=e===o?W:U(e);return function(){return t().dispatch}}var Y=V(),$=function(e,t){return e===t};function X(e){void 0===e&&(e=o);var t=e===o?B:function(){return Object(r.useContext)(e)};return function(e,n){void 0===n&&(n=$);var i=t(),o=function(e,t,n,i){var o,a=Object(r.useReducer)((function(e){return e+1}),0)[1],s=Object(r.useMemo)((function(){return new c(n,i)}),[n,i]),l=Object(r.useRef)(),u=Object(r.useRef)(),f=Object(r.useRef)(),d=Object(r.useRef)(),p=n.getState();try{o=e!==u.current||p!==f.current||l.current?e(p):d.current}catch(h){throw l.current&&(h.message+="\nThe error may be correlated with this previous error:\n"+l.current.stack+"\n\n"),h}return g((function(){u.current=e,f.current=p,d.current=o,l.current=void 0})),g((function(){function e(){try{var e=u.current(n.getState());if(t(e,d.current))return;d.current=e}catch(h){l.current=h}a()}return s.onStateChange=e,s.trySubscribe(),e(),function(){return s.tryUnsubscribe()}}),[n,s]),o}(e,n,i.store,i.subscription);return Object(r.useDebugValue)(o),o}}var G,K=X(),Q=n(31);G=Q.unstable_batchedUpdates,a=G},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(34);function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(l){i=!0,o=l}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}}(e,t)||Object(r.a)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,n){"use strict";n.d(t,"a",(function(){return y}));var r=n(42),i=n(7),o=n.n(i),a=n(0),s=n.n(a);function l(e){return(l="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 c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function d(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0||!Array.isArray(t)&&t?c({},e,t):{}}function y(e){var t=e.icon,n=e.mask,i=e.symbol,o=e.className,a=e.title,s=g(t),l=v("classes",[].concat(d(function(e){var t,n=e.spin,r=e.pulse,i=e.fixedWidth,o=e.inverse,a=e.border,s=e.listItem,l=e.flip,u=e.size,f=e.rotation,d=e.pull,p=(c(t={"fa-spin":n,"fa-pulse":r,"fa-fw":i,"fa-inverse":o,"fa-border":a,"fa-li":s,"fa-flip-horizontal":"horizontal"===l||"both"===l,"fa-flip-vertical":"vertical"===l||"both"===l},"fa-".concat(u),"undefined"!==typeof u&&null!==u),c(t,"fa-rotate-".concat(f),"undefined"!==typeof f&&null!==f),c(t,"fa-pull-".concat(d),"undefined"!==typeof d&&null!==d),c(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(p).map((function(e){return p[e]?e:null})).filter((function(e){return e}))}(e)),d(o.split(" ")))),f=v("transform","string"===typeof e.transform?r.c.transform(e.transform):e.transform),p=v("mask",g(n)),h=Object(r.a)(s,u({},l,f,p,{symbol:i,title:a}));if(!h)return function(){var e;!m&&console&&"function"===typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",s),null;var w=h.abstract,x={};return Object.keys(e).forEach((function(t){y.defaultProps.hasOwnProperty(t)||(x[t]=e[t])})),b(w[0],x)}y.displayName="FontAwesomeIcon",y.propTypes={border:o.a.bool,className:o.a.string,mask:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),fixedWidth:o.a.bool,inverse:o.a.bool,flip:o.a.oneOf(["horizontal","vertical","both"]),icon:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),listItem:o.a.bool,pull:o.a.oneOf(["right","left"]),pulse:o.a.bool,rotation:o.a.oneOf([90,180,270]),size:o.a.oneOf(["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:o.a.bool,symbol:o.a.oneOfType([o.a.bool,o.a.string]),title:o.a.string,transform:o.a.oneOfType([o.a.string,o.a.object]),swapOpacity:o.a.bool},y.defaultProps={border:!1,className:"",mask:null,fixedWidth:!1,inverse:!1,flip:null,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,symbol:!1,title:"",transform:null,swapOpacity:!1};var b=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"===typeof n)return n;var i=(n.children||[]).map((function(n){return e(t,n)})),o=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=h(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[p(t)]=r}return e}),{attrs:{}}),a=r.style,s=void 0===a?{}:a,l=f(r,["style"]);return o.attrs.style=u({},o.attrs.style,s),t.apply(void 0,[n.tag,u({},o.attrs,l)].concat(d(i)))}.bind(null,s.a.createElement)},function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return v}));var r=n(16),i=n(21),o=n(0),a=n.n(o),s=n(23),l=(n(7),n(14)),c=n(18),u=n(22),f=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},H=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t},B=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===t?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},U=function(e){var t=X(e,g.TITLE),n=X(e,M);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var r=X(e,A);return t||r||void 0},W=function(e){return X(e,D)||function(){}},V=function(e,t){return t.filter((function(t){return"undefined"!==typeof t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return F({},e,t)}),{})},Y=function(e,t){return t.filter((function(e){return"undefined"!==typeof e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),i=0;i=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},G=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout((function(){G(t)}),0)}}(),K=function(e){return clearTimeout(e)},Q="undefined"!==typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||G:e.requestAnimationFrame||G,J="undefined"!==typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||K:e.cancelAnimationFrame||K,Z=function(e){return console&&"function"===typeof console.warn&&console.warn(e)},ee=null,te=function(e,t){var n=e.baseTag,r=e.bodyAttributes,i=e.htmlAttributes,o=e.linkTags,a=e.metaTags,s=e.noscriptTags,l=e.onChangeClientState,c=e.scriptTags,u=e.styleTags,f=e.title,d=e.titleAttributes;ie(g.BODY,r),ie(g.HTML,i),re(f,d);var p={baseTag:oe(g.BASE,n),linkTags:oe(g.LINK,o),metaTags:oe(g.META,a),noscriptTags:oe(g.NOSCRIPT,s),scriptTags:oe(g.SCRIPT,c),styleTags:oe(g.STYLE,u)},h={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(h[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,h,m)},ne=function(e){return Array.isArray(e)?e.join(""):e},re=function(e,t){"undefined"!==typeof e&&document.title!==e&&(document.title=ne(e)),ie(g.TITLE,t)},ie=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-react-helmet"),i=r?r.split(","):[],o=[].concat(i),a=Object.keys(t),s=0;s=0;f--)n.removeAttribute(o[f]);i.length===o.length?n.removeAttribute("data-react-helmet"):n.getAttribute("data-react-helmet")!==a.join(",")&&n.setAttribute("data-react-helmet",a.join(","))}},oe=function(e,t){var n=document.head||document.querySelector(g.HEAD),r=n.querySelectorAll(e+"[data-react-helmet]"),i=Array.prototype.slice.call(r),o=[],a=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===x)n.innerHTML=t.innerHTML;else if(r===y)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var s="undefined"===typeof t[r]?"":t[r];n.setAttribute(r,s)}n.setAttribute("data-react-helmet","true"),i.some((function(e,t){return a=t,n.isEqualNode(e)}))?i.splice(a,1):o.push(n)})),i.forEach((function(e){return e.parentNode.removeChild(e)})),o.forEach((function(e){return n.appendChild(e)})),{oldTags:i,newTags:o}},ae=function(e){return Object.keys(e).reduce((function(t,n){var r="undefined"!==typeof e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},se=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[O[n]||n]=e[n],t}),t)},le=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return function(e,t,n){var r,i=((r={key:t})["data-react-helmet"]=!0,r),o=se(n,i);return[u.a.createElement(g.TITLE,o,t)]}(0,t.title,t.titleAttributes)},toString:function(){return function(e,t,n,r){var i=ae(n),o=ne(t);return i?"<"+e+' data-react-helmet="true" '+i+">"+B(o,r)+"":"<"+e+' data-react-helmet="true">'+B(o,r)+""}(e,t.title,t.titleAttributes,n)}};case p:case h:return{toComponent:function(){return se(t)},toString:function(){return ae(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var r,i=((r={key:n})["data-react-helmet"]=!0,r);return Object.keys(t).forEach((function(e){var n=O[e]||e;if(n===x||n===y){var r=t.innerHTML||t.cssText;i.dangerouslySetInnerHTML={__html:r}}else i[n]=t[e]})),u.a.createElement(e,i)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var i=Object.keys(r).filter((function(e){return!(e===x||e===y)})).reduce((function(e,t){var i="undefined"===typeof r[t]?t:t+'="'+B(r[t],n)+'"';return e?e+" "+i:i}),""),o=r.innerHTML||r.cssText||"",a=-1===j.indexOf(e);return t+"<"+e+' data-react-helmet="true" '+i+(a?"/>":">"+o+"")}),"")}(e,t,n)}}}},ce=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,i=e.htmlAttributes,o=e.linkTags,a=e.metaTags,s=e.noscriptTags,l=e.scriptTags,c=e.styleTags,u=e.title,f=void 0===u?"":u,d=e.titleAttributes;return{base:le(g.BASE,t,r),bodyAttributes:le(p,n,r),htmlAttributes:le(h,i,r),link:le(g.LINK,o,r),meta:le(g.META,a,r),noscript:le(g.NOSCRIPT,s,r),script:le(g.SCRIPT,l,r),style:le(g.STYLE,c,r),title:le(g.TITLE,{title:f,titleAttributes:d},r)}},ue=function(e){var t,n;return n=t=function(t){function n(){return R(this,n),H(this,t.apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,t),n.prototype.shouldComponentUpdate=function(e){return!l()(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},n.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,i=e.newChildProps,o=e.nestedChildren;return F({},r,((t={})[n.type]=[].concat(r[n.type]||[],[F({},i,this.mapNestedChildrenToProps(n,o))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,i=e.newProps,o=e.newChildProps,a=e.nestedChildren;switch(r.type){case g.TITLE:return F({},i,((t={})[r.type]=a,t.titleAttributes=F({},o),t));case g.BODY:return F({},i,{bodyAttributes:F({},o)});case g.HTML:return F({},i,{htmlAttributes:F({},o)})}return F({},i,((n={})[r.type]=F({},o),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=F({},t);return Object.keys(e).forEach((function(t){var r;n=F({},n,((r={})[t]=e[t],r))})),n},n.prototype.warnOnInvalidChildren=function(e,t){return!0},n.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return u.a.Children.forEach(e,(function(e){if(e&&e.props){var i=e.props,o=i.children,a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[P[n]||n]=e[n],t}),t)}(z(i,["children"]));switch(n.warnOnInvalidChildren(e,o),e.type){case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:a,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:a,nestedChildren:o})}}})),t=this.mapArrayTypeChildrenToProps(r,t)},n.prototype.render=function(){var t=this.props,n=t.children,r=z(t,["children"]),i=F({},r);return n&&(i=this.mapChildrenToProps(n,i)),u.a.createElement(e,i)},q(n,null,[{key:"canUseDOM",set:function(t){e.canUseDOM=t}}]),n}(u.a.Component),t.propTypes={base:i.a.object,bodyAttributes:i.a.object,children:i.a.oneOfType([i.a.arrayOf(i.a.node),i.a.node]),defaultTitle:i.a.string,defer:i.a.bool,encodeSpecialCharacters:i.a.bool,htmlAttributes:i.a.object,link:i.a.arrayOf(i.a.object),meta:i.a.arrayOf(i.a.object),noscript:i.a.arrayOf(i.a.object),onChangeClientState:i.a.func,script:i.a.arrayOf(i.a.object),style:i.a.arrayOf(i.a.object),title:i.a.string,titleAttributes:i.a.object,titleTemplate:i.a.string},t.defaultProps={defer:!0,encodeSpecialCharacters:!0},t.peek=e.peek,t.rewind=function(){var t=e.rewind();return t||(t=ce({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),t},n}(a()((function(e){return{baseTag:Y([b,C],e),bodyAttributes:V(p,e),defer:X(e,N),encode:X(e,L),htmlAttributes:V(h,e),linkTags:$(g.LINK,[E,b],e),metaTags:$(g.META,[k,v,w,S,_],e),noscriptTags:$(g.NOSCRIPT,[x],e),onChangeClientState:W(e),scriptTags:$(g.SCRIPT,[T,x],e),styleTags:$(g.STYLE,[y],e),title:U(e),titleAttributes:V(m,e)}}),(function(e){ee&&J(ee),e.defer?ee=Q((function(){te(e,(function(){ee=null}))})):(te(e),ee=null)}),ce)((function(){return null})));ue.renderStatic=ue.rewind}).call(this,n(24))},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(41);var i=n(34);function o(e){return function(e){if(Array.isArray(e))return Object(r.a)(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||Object(i.a)(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.htmlparser2=t.convertNodeToElement=t.processNodes=void 0;var r=n(51);Object.defineProperty(t,"processNodes",{enumerable:!0,get:function(){return s(r).default}});var i=n(72);Object.defineProperty(t,"convertNodeToElement",{enumerable:!0,get:function(){return s(i).default}});var o=n(33);Object.defineProperty(t,"htmlparser2",{enumerable:!0,get:function(){return s(o).default}});var a=s(n(202));function s(e){return e&&e.__esModule?e:{default:e}}t.default=a.default},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(34);function i(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=Object(r.a)(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o,a=!0,s=!1;return{s:function(){i=e[Symbol.iterator]()},n:function(){var e=i.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==i.return||i.return()}finally{if(s)throw o}}}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return o})),n.d(t,"d",(function(){return a})),n.d(t,"e",(function(){return s})),n.d(t,"f",(function(){return l})),n.d(t,"g",(function(){return c})),n.d(t,"h",(function(){return u})),n.d(t,"i",(function(){return f})),n.d(t,"j",(function(){return d})),n.d(t,"k",(function(){return p})),n.d(t,"l",(function(){return h})),n.d(t,"m",(function(){return m})),n.d(t,"n",(function(){return g})),n.d(t,"o",(function(){return v})),n.d(t,"p",(function(){return y})),n.d(t,"q",(function(){return b})),n.d(t,"r",(function(){return w})),n.d(t,"s",(function(){return x})),n.d(t,"t",(function(){return _})),n.d(t,"u",(function(){return k})),n.d(t,"v",(function(){return S})),n.d(t,"w",(function(){return E})),n.d(t,"x",(function(){return T})),n.d(t,"y",(function(){return C})),n.d(t,"z",(function(){return O})),n.d(t,"A",(function(){return A})),n.d(t,"B",(function(){return N})),n.d(t,"C",(function(){return L})),n.d(t,"D",(function(){return D})),n.d(t,"E",(function(){return M})),n.d(t,"F",(function(){return P})),n.d(t,"G",(function(){return j})),n.d(t,"H",(function(){return I})),n.d(t,"I",(function(){return R})),n.d(t,"J",(function(){return q})),n.d(t,"K",(function(){return F})),n.d(t,"L",(function(){return z})),n.d(t,"M",(function(){return H})),n.d(t,"N",(function(){return B})),n.d(t,"O",(function(){return U}));var r={prefix:"fas",iconName:"angle-right",icon:[256,512,[],"f105","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"]},i={prefix:"fas",iconName:"arrow-down",icon:[448,512,[],"f063","M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"]},o={prefix:"fas",iconName:"arrow-up",icon:[448,512,[],"f062","M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"]},a={prefix:"fas",iconName:"bell",icon:[448,512,[],"f0f3","M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"]},s={prefix:"fas",iconName:"book",icon:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]},l={prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"]},c={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"]},u={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"]},f={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},d={prefix:"fas",iconName:"cogs",icon:[640,512,[],"f085","M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"]},p={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]},h={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},m={prefix:"fas",iconName:"ellipsis-h",icon:[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]},g={prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},v={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},y={prefix:"fas",iconName:"file",icon:[384,512,[],"f15b","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},b={prefix:"fas",iconName:"file-alt",icon:[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},w={prefix:"fas",iconName:"file-download",icon:[384,512,[],"f56d","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},x={prefix:"fas",iconName:"folder",icon:[512,512,[],"f07b","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"]},_={prefix:"fas",iconName:"folder-open",icon:[576,512,[],"f07c","M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"]},k={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"]},S={prefix:"fas",iconName:"infinity",icon:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]},E={prefix:"fas",iconName:"italic",icon:[320,512,[],"f033","M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"]},T={prefix:"fas",iconName:"list",icon:[512,512,[],"f03a","M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},C={prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},O={prefix:"fas",iconName:"long-arrow-alt-right",icon:[448,512,[],"f30b","M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"]},A={prefix:"fas",iconName:"long-arrow-alt-up",icon:[256,512,[],"f30c","M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"]},N={prefix:"fas",iconName:"paste",icon:[448,512,[],"f0ea","M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"]},L={prefix:"fas",iconName:"pause",icon:[448,512,[],"f04c","M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"]},D={prefix:"fas",iconName:"pen",icon:[512,512,[],"f304","M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"]},M={prefix:"fas",iconName:"play",icon:[448,512,[],"f04b","M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"]},P={prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},j={prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},I={prefix:"fas",iconName:"star",icon:[576,512,[],"f005","M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"]},R={prefix:"fas",iconName:"stop",icon:[448,512,[],"f04d","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},q={prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},F={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"]},z={prefix:"fas",iconName:"unlock",icon:[448,512,[],"f09c","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},H={prefix:"fas",iconName:"user",icon:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},B={prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]},U={prefix:"fas",iconName:"wrench",icon:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]}},function(e,t,n){"use strict";var r=n(137),i=n(138),o=n(64);e.exports={formats:o,parse:i,stringify:r}},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}n.d(t,"a",(function(){return r}))},function(e,t,n){e.exports=n(106)},function(e,t,n){"use strict";var r=n(56),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function a(e){return"undefined"===typeof e}function s(e){return null!==e&&"object"===typeof e}function l(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===i.call(e)}function u(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n=0;d--){var p=a[d];"."===p?o(a,d):".."===p?(o(a,d),f++):f&&(o(a,d),f--)}if(!c)for(;f--;f)a.unshift("..");!c||""===a[0]||a[0]&&i(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function s(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var l=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"===typeof t||"object"===typeof n){var r=s(t),i=s(n);return r!==t||i!==n?e(r,i):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},c=n(22);function u(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function m(e,t,n,i){var o;"string"===typeof e?(o=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(o=Object(r.a)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),i?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=a(o.pathname,i.pathname)):o.pathname=i.pathname:o.pathname||(o.pathname="/"),o}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&l(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var o="function"===typeof e?e(t,n):e;"string"===typeof o?"function"===typeof r?r(o,i):i(!0):i(!1!==o)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=m(e,t,d(),w.location);u.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,f({action:"REPLACE",location:r}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=w.index+e;return t>=0&&t2),g=/Android/.test(e),v=m||g||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=m||/Mac/.test(t),b=/\bCrOS\b/.test(e),w=/win/i.test(t),x=f&&e.match(/Version\/(\d*\.\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(f=!1,l=!0);var _=y&&(c||f&&(null==x||x<12.11)),k=n||a&&s>=9;function S(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var E,T=function(e,t){var n=e.className,r=S(t).exec(n);if(r){var i=n.slice(r.index+r[0].length);e.className=n.slice(0,r.index)+(i?r[1]+i:"")}};function C(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function O(e,t){return C(e).appendChild(t)}function A(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=s-o,a+=n-a%n,o=s+1}}m?j=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(j=function(e){try{e.select()}catch(t){}});var F=function(){this.id=null,this.f=null,this.time=0,this.handler=I(this.onTimeout,this)};function z(e,t){for(var n=0;n=t)return r+Math.min(a,t-i);if(i+=o-r,r=o+1,(i+=n-i%n)>=t)return r}}var Y=[""];function $(e){for(;Y.length<=e;)Y.push(X(Y)+" ");return Y[e]}function X(e){return e[e.length-1]}function G(e,t){for(var n=[],r=0;r"\x80"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function ee(e,t){return t?!!(t.source.indexOf("\\w")>-1&&Z(e))||t.test(e):Z(e)}function te(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function re(e){return e.charCodeAt(0)>=768&&ne.test(e)}function ie(e,t,n){for(;(n<0?t>0:tn?-1:1;;){if(t==n)return t;var i=(t+n)/2,o=r<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:n;e(o)?n=o:t=o+r}}var ae=null;function se(e,t,n){var r;ae=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==n?r=i:ae=i),o.from==t&&(o.from!=o.to&&"before"!=n?r=i:ae=i)}return null!=r?r:ae}var le=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,n=/[LRr]/,r=/[Lb1n]/,i=/[1n]/;function o(e,t,n){this.level=e,this.from=t,this.to=n}return function(a,s){var l="ltr"==s?"L":"R";if(0==a.length||"ltr"==s&&!e.test(a))return!1;for(var c,u=a.length,f=[],d=0;d-1&&(r[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function he(e,t){var n=de(e,t);if(n.length)for(var r=Array.prototype.slice.call(arguments,2),i=0;i0}function ye(e){e.prototype.on=function(e,t){fe(this,e,t)},e.prototype.off=function(e,t){pe(this,e,t)}}function be(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function we(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function xe(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function _e(e){be(e),we(e)}function ke(e){return e.target||e.srcElement}function Se(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var Ee,Te,Ce=function(){if(a&&s<9)return!1;var e=A("div");return"draggable"in e||"dragDrop"in e}();function Oe(e){if(null==Ee){var t=A("span","\u200b");O(e,A("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Ee=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var n=Ee?A("span","\u200b"):A("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px");return n.setAttribute("cm-text",""),n}function Ae(e){if(null!=Te)return Te;var t=O(e,document.createTextNode("A\u062eA")),n=E(t,0,1).getBoundingClientRect(),r=E(t,1,2).getBoundingClientRect();return C(e),!(!n||n.left==n.right)&&(Te=r.right-n.right<3)}var Ne=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;t<=r;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(n.push(o.slice(0,a)),t+=a+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)},Le=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(n){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},De=function(){var e=A("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Me=null,Pe={},je={};function Ie(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Pe[e]=t}function Re(e){if("string"==typeof e&&je.hasOwnProperty(e))e=je[e];else if(e&&"string"==typeof e.name&&je.hasOwnProperty(e.name)){var t=je[e.name];"string"==typeof t&&(t={name:t}),(e=Q(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Re("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Re("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function qe(e,t){t=Re(t);var n=Pe[t.name];if(!n)return qe(e,"text/plain");var r=n(e,t);if(Fe.hasOwnProperty(t.name)){var i=Fe[t.name];for(var o in i)i.hasOwnProperty(o)&&(r.hasOwnProperty(o)&&(r["_"+o]=r[o]),r[o]=i[o])}if(r.name=t.name,t.helperType&&(r.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)r[a]=t.modeProps[a];return r}var Fe={};function ze(e,t){R(t,Fe.hasOwnProperty(e)?Fe[e]:Fe[e]={})}function He(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var n={};for(var r in t){var i=t[r];i instanceof Array&&(i=i.concat([])),n[r]=i}return n}function Be(e,t){for(var n;e.innerMode&&(n=e.innerMode(t))&&n.mode!=e;)t=n.state,e=n.mode;return n||{mode:e,state:t}}function Ue(e,t,n){return!e.startState||e.startState(t,n)}var We=function(e,t,n){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=n};function Ve(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var n=e;!n.lines;)for(var r=0;;++r){var i=n.children[r],o=i.chunkSize();if(t=e.first&&tn?Ze(n,Ve(e,n).text.length):function(e,t){var n=e.ch;return null==n||n>t?Ze(e.line,t):n<0?Ze(e.line,0):e}(t,Ve(e,t.line).text.length)}function st(e,t){for(var n=[],r=0;r=this.string.length},We.prototype.sol=function(){return this.pos==this.lineStart},We.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},We.prototype.next=function(){if(this.post},We.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},We.prototype.skipToEnd=function(){this.pos=this.string.length},We.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},We.prototype.backUp=function(e){this.pos-=e},We.prototype.column=function(){return this.lastColumnPos0?null:(r&&!1!==t&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},We.prototype.current=function(){return this.string.slice(this.start,this.pos)},We.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},We.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},We.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var lt=function(e,t){this.state=e,this.lookAhead=t},ct=function(e,t,n,r){this.state=t,this.doc=e,this.line=n,this.maxLookAhead=r||0,this.baseTokens=null,this.baseTokenPos=1};function ut(e,t,n,r){var i=[e.state.modeGen],o={};bt(e,t.text,e.doc.mode,n,(function(e,t){return i.push(e,t)}),o,r);for(var a=n.state,s=function(r){n.baseTokens=i;var s=e.state.overlays[r],l=1,c=0;n.state=!0,bt(e,t.text,s.mode,n,(function(e,t){for(var n=l;ce&&i.splice(l,1,e,i[l+1],r),l+=2,c=Math.min(e,r)}if(t)if(s.opaque)i.splice(n,l-n,e,"overlay "+t),l=n+2;else for(;ne.options.maxHighlightLength&&He(e.doc.mode,r.state),o=ut(e,t,r);i&&(r.state=i),t.stateAfter=r.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),n===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function dt(e,t,n){var r=e.doc,i=e.display;if(!r.mode.startState)return new ct(r,!0,t);var o=function(e,t,n){for(var r,i,o=e.doc,a=n?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>a;--s){if(s<=o.first)return o.first;var l=Ve(o,s-1),c=l.stateAfter;if(c&&(!n||s+(c instanceof lt?c.lookAhead:0)<=o.modeFrontier))return s;var u=q(l.text,null,e.options.tabSize);(null==i||r>u)&&(i=s-1,r=u)}return i}(e,t,n),a=o>r.first&&Ve(r,o-1).stateAfter,s=a?ct.fromSaved(r,a,o):new ct(r,Ue(r.mode),o);return r.iter(o,t,(function(n){pt(e,n.text,s);var r=s.line;n.stateAfter=r==t-1||r%5==0||r>=i.viewFrom&&rt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ct.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ct.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ct.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ct.fromSaved=function(e,t,n){return t instanceof lt?new ct(e,He(e.mode,t.state),n,t.lookAhead):new ct(e,He(e.mode,t),n)},ct.prototype.save=function(e){var t=!1!==e?He(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new lt(t,this.maxLookAhead):t};var gt=function(e,t,n){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=n};function vt(e,t,n,r){var i,o,a=e.doc,s=a.mode,l=Ve(a,(t=at(a,t)).line),c=dt(e,t.line,n),u=new We(l.text,e.options.tabSize,c);for(r&&(o=[]);(r||u.pose.options.maxHighlightLength?(s=!1,a&&pt(e,t,r,f.pos),f.pos=t.length,l=null):l=yt(mt(n,f,r.state,d),o),d){var p=d[0].name;p&&(l="m-"+(l?p+" "+l:p))}if(!s||u!=l){for(;c=t:o.to>t);(r||(r=[])).push(new _t(a,o.from,s?null:o.to))}}return r}(n,i,a),l=function(e,t,n){var r;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==a.type&&(!n||o.marker.insertLeft)){var s=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!n||Lt(n,o.marker)<0)&&(n=o.marker)}return n}function It(e,t,n,r,i){var o=Ve(e,t),a=xt&&o.markedSpans;if(a)for(var s=0;s=0&&f<=0||u<=0&&f>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?et(c.to,n)>=0:et(c.to,n)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?et(c.from,r)<=0:et(c.from,r)<0)))return!0}}}function Rt(e){for(var t;t=Mt(e);)e=t.find(-1,!0).line;return e}function qt(e,t){var n=Ve(e,t),r=Rt(n);return n==r?t:Ge(r)}function Ft(e,t){if(t>e.lastLine())return t;var n,r=Ve(e,t);if(!zt(e,r))return t;for(;n=Pt(r);)r=n.find(1,!0).line;return Ge(r)+1}function zt(e,t){var n=xt&&t.markedSpans;if(n)for(var r=void 0,i=0;it.maxLineLength&&(t.maxLineLength=n,t.maxLine=e)}))}var Vt=function(e,t,n){this.text=e,Ot(this,t),this.height=n?n(this):1};function Yt(e){e.parent=null,Ct(e)}Vt.prototype.lineNo=function(){return Ge(this)},ye(Vt);var $t={},Xt={};function Gt(e,t){if(!e||/^\s*$/.test(e))return null;var n=t.addModeClass?Xt:$t;return n[e]||(n[e]=e.replace(/\S+/g,"cm-$&"))}function Kt(e,t){var n=N("span",null,null,l?"padding-right: .1px":null),r={pre:N("pre",[n],"CodeMirror-line"),content:n,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;r.pos=0,r.addToken=Jt,Ae(e.display.measure)&&(a=ce(o,e.doc.direction))&&(r.addToken=Zt(r.addToken,a)),r.map=[],tn(o,r,ft(e,o,t!=e.display.externalMeasured&&Ge(o))),o.styleClasses&&(o.styleClasses.bgClass&&(r.bgClass=P(o.styleClasses.bgClass,r.bgClass||"")),o.styleClasses.textClass&&(r.textClass=P(o.styleClasses.textClass,r.textClass||""))),0==r.map.length&&r.map.push(0,0,r.content.appendChild(Oe(e.display.measure))),0==i?(t.measure.map=r.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(r.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(l){var s=r.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(r.content.className="cm-tab-wrap-hack")}return he(e,"renderLine",e,t.line,r.pre),r.pre.className&&(r.textClass=P(r.pre.className,r.textClass||"")),r}function Qt(e){var t=A("span","\u2022","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function Jt(e,t,n,r,i,o,l){if(t){var c,u=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var n=t,r="",i=0;ic&&f.from<=c);d++);if(f.to>=u)return e(n,r,i,o,a,s,l);e(n,r.slice(0,f.to-c),i,o,null,s,l),o=null,r=r.slice(f.to-c),c=f.to}}}function en(e,t,n,r){var i=!r&&n.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!r&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",n.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function tn(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var a,s,l,c,u,f,d,p=i.length,h=0,m=1,g="",v=0;;){if(v==h){l=c=u=s="",d=null,f=null,v=1/0;for(var y=[],b=void 0,w=0;wh||_.collapsed&&x.to==h&&x.from==h)){if(null!=x.to&&x.to!=h&&v>x.to&&(v=x.to,c=""),_.className&&(l+=" "+_.className),_.css&&(s=(s?s+";":"")+_.css),_.startStyle&&x.from==h&&(u+=" "+_.startStyle),_.endStyle&&x.to==v&&(b||(b=[])).push(_.endStyle,x.to),_.title&&((d||(d={})).title=_.title),_.attributes)for(var k in _.attributes)(d||(d={}))[k]=_.attributes[k];_.collapsed&&(!f||Lt(f.marker,_)<0)&&(f=x)}else x.from>h&&v>x.from&&(v=x.from)}if(b)for(var S=0;S=p)break;for(var T=Math.min(p,v);;){if(g){var C=h+g.length;if(!f){var O=C>T?g.slice(0,T-h):g;t.addToken(t,O,a?a+l:l,u,h+O.length==v?c:"",s,d)}if(C>=T){g=g.slice(T-h),h=T;break}h=C,u=""}g=i.slice(o,o=n[m++]),a=Gt(n[m++],t.cm.options)}}else for(var A=1;An)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function An(e,t,n,r){return Dn(e,Ln(e,t),n,r)}function Nn(e,t){if(t>=e.display.viewFrom&&t=n.lineN&&t2&&o.push((l.bottom+c.top)/2-n.top)}}o.push(n.bottom-n.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,n,r){var i,o=jn(t.map,n,r),l=o.node,c=o.start,u=o.end,f=o.collapse;if(3==l.nodeType){for(var d=0;d<4;d++){for(;c&&re(t.line.text.charAt(o.coverStart+c));)--c;for(;o.coverStart+u1}(e))return t;var n=screen.logicalXDPI/screen.deviceXDPI,r=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*n,right:t.right*n,top:t.top*r,bottom:t.bottom*r}}(e.display.measure,i))}else{var p;c>0&&(f=r="right"),i=e.options.lineWrapping&&(p=l.getClientRects()).length>1?p["right"==r?p.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var h=l.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+rr(e.display),top:h.top,bottom:h.bottom}:Pn}for(var m=i.top-t.rect.top,g=i.bottom-t.rect.top,v=(m+g)/2,y=t.view.measure.heights,b=0;bt)&&(i=(o=l-s)-1,t>=l&&(a="right")),null!=i){if(r=e[c+2],s==l&&n==(r.insertLeft?"left":"right")&&(a=n),"left"==n&&0==i)for(;c&&e[c-2]==e[c-3]&&e[c-1].insertLeft;)r=e[2+(c-=3)],a="left";if("right"==n&&i==l-s)for(;c=0&&(n=e[i]).left==n.right;i--);return n}function Rn(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=r.text.length?(l=r.text.length,c="before"):l<=0&&(l=0,c="after"),!s)return a("before"==c?l-1:l,"before"==c);function u(e,t,n){return a(n?e-1:e,1==s[t].level!=n)}var f=se(s,l,c),d=ae,p=u(l,f,"before"==c);return null!=d&&(p.other=u(l,d,"before"!=c)),p}function $n(e,t){var n=0;t=at(e.doc,t),e.options.lineWrapping||(n=rr(e.display)*t.ch);var r=Ve(e.doc,t.line),i=Bt(r)+_n(e.display);return{left:n,right:n,top:i,bottom:i+r.height}}function Xn(e,t,n,r,i){var o=Ze(e,t,n);return o.xRel=i,r&&(o.outside=r),o}function Gn(e,t,n){var r=e.doc;if((n+=e.display.viewOffset)<0)return Xn(r.first,0,null,-1,-1);var i=Ke(r,n),o=r.first+r.size-1;if(i>o)return Xn(r.first+r.size-1,Ve(r,o).text.length,null,1,1);t<0&&(t=0);for(var a=Ve(r,i);;){var s=Zn(e,a,i,t,n),l=jt(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=Ve(r,i=c.line)}}function Kn(e,t,n,r){r-=Bn(t);var i=t.text.length,o=oe((function(t){return Dn(e,n,t-1).bottom<=r}),i,0);return{begin:o,end:i=oe((function(t){return Dn(e,n,t).top>r}),o,i)}}function Qn(e,t,n,r){return n||(n=Ln(e,t)),Kn(e,t,n,Un(e,t,Dn(e,n,r),"line").top)}function Jn(e,t,n,r){return!(e.bottom<=n)&&(e.top>n||(r?e.left:e.right)>t)}function Zn(e,t,n,r,i){i-=Bt(t);var o=Ln(e,t),a=Bn(t),s=0,l=t.text.length,c=!0,u=ce(t,e.doc.direction);if(u){var f=(e.options.lineWrapping?tr:er)(e,t,n,o,u,r,i);s=(c=1!=f.level)?f.from:f.to-1,l=c?f.to:f.from-1}var d,p,h=null,m=null,g=oe((function(t){var n=Dn(e,o,t);return n.top+=a,n.bottom+=a,!!Jn(n,r,i,!1)&&(n.top<=i&&n.left<=r&&(h=t,m=n),!0)}),s,l),v=!1;if(m){var y=r-m.left=w.bottom?1:0}return Xn(n,g=ie(t.text,g,1),p,v,r-d)}function er(e,t,n,r,i,o,a){var s=oe((function(s){var l=i[s],c=1!=l.level;return Jn(Yn(e,Ze(n,c?l.to:l.from,c?"before":"after"),"line",t,r),o,a,!0)}),0,i.length-1),l=i[s];if(s>0){var c=1!=l.level,u=Yn(e,Ze(n,c?l.from:l.to,c?"after":"before"),"line",t,r);Jn(u,o,a,!0)&&u.top>a&&(l=i[s-1])}return l}function tr(e,t,n,r,i,o,a){var s=Kn(e,t,r,a),l=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,f=null,d=0;d=c||p.to<=l)){var h=Dn(e,r,1!=p.level?Math.min(c,p.to)-1:Math.max(l,p.from)).right,m=hm)&&(u=p,f=m)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function nr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Mn){Mn=A("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)Mn.appendChild(document.createTextNode("x")),Mn.appendChild(A("br"));Mn.appendChild(document.createTextNode("x"))}O(e.measure,Mn);var n=Mn.offsetHeight/50;return n>3&&(e.cachedTextHeight=n),C(e.measure),n||1}function rr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=A("span","xxxxxxxxxx"),n=A("pre",[t],"CodeMirror-line-like");O(e.measure,n);var r=t.getBoundingClientRect(),i=(r.right-r.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function ir(e){for(var t=e.display,n={},r={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;n[s]=o.offsetLeft+o.clientLeft+i,r[s]=o.clientWidth}return{fixedPos:or(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:n,gutterWidth:r,wrapperWidth:t.wrapper.clientWidth}}function or(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function ar(e){var t=nr(e.display),n=e.options.lineWrapping,r=n&&Math.max(5,e.display.scroller.clientWidth/rr(e.display)-3);return function(i){if(zt(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(l=Ve(e.doc,c.line).text).length==c.ch){var u=q(l,l.length,e.options.tabSize)-l.length;c=Ze(c.line,Math.max(0,Math.round((o-Sn(e.display).left)/rr(e.display))-u))}return c}function cr(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var n=e.display.view,r=0;rt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)xt&&qt(e.doc,t)i.viewFrom?dr(e):(i.viewFrom+=r,i.viewTo+=r);else if(t<=i.viewFrom&&n>=i.viewTo)dr(e);else if(t<=i.viewFrom){var o=pr(e,n,n+r,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=r):dr(e)}else if(n>=i.viewTo){var a=pr(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):dr(e)}else{var s=pr(e,t,t,-1),l=pr(e,n,n+r,1);s&&l?(i.view=i.view.slice(0,s.index).concat(rn(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=r):dr(e)}var c=i.externalMeasured;c&&(n=i.lineN&&t=r.viewTo)){var o=r.view[cr(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==z(a,n)&&a.push(n)}}}function dr(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function pr(e,t,n,r){var i,o=cr(e,t),a=e.display.view;if(!xt||n==e.doc.first+e.doc.size)return{index:o,lineN:n};for(var s=e.display.viewFrom,l=0;l0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,n+=i}for(;qt(e.doc,n)!=n;){if(o==(r<0?0:a.length-1))return null;n+=r*a[o-(r<0?1:0)].size,o+=r}return{index:o,lineN:n}}function hr(e){for(var t=e.display.view,n=0,r=0;r=e.display.viewTo||s.to().linet||t==n&&a.to==t)&&(r(Math.max(a.from,t),Math.min(a.to,n),1==a.level?"rtl":"ltr",o),i=!0)}i||r(t,n,"ltr")}(m,n||0,null==r?d:r,(function(e,t,i,f){var g="ltr"==i,v=p(e,g?"left":"right"),y=p(t-1,g?"right":"left"),b=null==n&&0==e,w=null==r&&t==d,x=0==f,_=!m||f==m.length-1;if(y.top-v.top<=3){var k=(c?w:b)&&_,S=(c?b:w)&&x?s:(g?v:y).left,E=k?l:(g?y:v).right;u(S,v.top,E-S,v.bottom)}else{var T,C,O,A;g?(T=c&&b&&x?s:v.left,C=c?l:h(e,i,"before"),O=c?s:h(t,i,"after"),A=c&&w&&_?l:y.right):(T=c?h(e,i,"before"):s,C=!c&&b&&x?l:v.right,O=!c&&w&&_?s:y.left,A=c?h(t,i,"after"):l),u(T,v.top,C-T,v.bottom),v.bottom0?t.blinker=setInterval((function(){e.hasFocus()||Sr(e),t.cursorDiv.style.visibility=(n=!n)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function xr(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||kr(e))}function _r(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&Sr(e))}),100)}function kr(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(he(e,"focus",e,t),e.state.focused=!0,M(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),l&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),wr(e))}function Sr(e,t){e.state.delayingBlurEvent||(e.state.focused&&(he(e,"blur",e,t),e.state.focused=!1,T(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Er(e){for(var t=e.display,n=t.lineDiv.offsetTop,r=0;r.005||d<-.005)&&(Xe(i.line,l),Tr(i.line),i.rest))for(var p=0;pe.display.sizerWidth){var h=Math.ceil(c/rr(e.display));h>e.display.maxLineLength&&(e.display.maxLineLength=h,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function Tr(e){if(e.widgets)for(var t=0;t=a&&(o=Ke(t,Bt(Ve(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function Or(e,t){var n=e.display,r=nr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:n.scroller.scrollTop,o=Cn(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+kn(n),l=t.tops-r;if(t.topi+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var f=e.options.fixedGutter?0:n.gutters.offsetWidth,d=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:n.scroller.scrollLeft-f,p=Tn(e)-n.gutters.offsetWidth,h=t.right-t.left>p;return h&&(t.right=t.left+p),t.left<10?a.scrollLeft=0:t.leftp+d-3&&(a.scrollLeft=t.right+(h?0:10)-p),a}function Ar(e,t){null!=t&&(Dr(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Nr(e){Dr(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Lr(e,t,n){null==t&&null==n||Dr(e),null!=t&&(e.curOp.scrollLeft=t),null!=n&&(e.curOp.scrollTop=n)}function Dr(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Mr(e,$n(e,t.from),$n(e,t.to),t.margin))}function Mr(e,t,n,r){var i=Or(e,{left:Math.min(t.left,n.left),top:Math.min(t.top,n.top)-r,right:Math.max(t.right,n.right),bottom:Math.max(t.bottom,n.bottom)+r});Lr(e,i.scrollLeft,i.scrollTop)}function Pr(e,t){Math.abs(e.doc.scrollTop-t)<2||(n||si(e,{top:t}),jr(e,t,!0),n&&si(e),ni(e,100))}function jr(e,t,n){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||n)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function Ir(e,t,n,r){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(n?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!r||(e.doc.scrollLeft=t,ui(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Rr(e){var t=e.display,n=t.gutters.offsetWidth,r=Math.round(e.doc.height+kn(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?n:0,docHeight:r,scrollHeight:r+En(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:n}}var qr=function(e,t,n){this.cm=n;var r=this.vert=A("div",[A("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=A("div",[A("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");r.tabIndex=i.tabIndex=-1,e(r),e(i),fe(r,"scroll",(function(){r.clientHeight&&t(r.scrollTop,"vertical")})),fe(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};qr.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,n=e.scrollHeight>e.clientHeight+1,r=e.nativeBarWidth;if(n){this.vert.style.display="block",this.vert.style.bottom=t?r+"px":"0";var i=e.viewHeight-(t?r:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=n?r+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(n?r:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==r&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:n?r:0,bottom:t?r:0}},qr.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},qr.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},qr.prototype.zeroWidthHack=function(){var e=y&&!p?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new F,this.disableVert=new F},qr.prototype.enableZeroWidthBar=function(e,t,n){e.style.pointerEvents="auto",t.set(1e3,(function r(){var i=e.getBoundingClientRect();("vert"==n?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,r)}))},qr.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Fr=function(){};function zr(e,t){t||(t=Rr(e));var n=e.display.barWidth,r=e.display.barHeight;Hr(e,t);for(var i=0;i<4&&n!=e.display.barWidth||r!=e.display.barHeight;i++)n!=e.display.barWidth&&e.options.lineWrapping&&Er(e),Hr(e,Rr(e)),n=e.display.barWidth,r=e.display.barHeight}function Hr(e,t){var n=e.display,r=n.scrollbars.update(t);n.sizer.style.paddingRight=(n.barWidth=r.right)+"px",n.sizer.style.paddingBottom=(n.barHeight=r.bottom)+"px",n.heightForcer.style.borderBottom=r.bottom+"px solid transparent",r.right&&r.bottom?(n.scrollbarFiller.style.display="block",n.scrollbarFiller.style.height=r.bottom+"px",n.scrollbarFiller.style.width=r.right+"px"):n.scrollbarFiller.style.display="",r.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(n.gutterFiller.style.display="block",n.gutterFiller.style.height=r.bottom+"px",n.gutterFiller.style.width=t.gutterWidth+"px"):n.gutterFiller.style.display=""}Fr.prototype.update=function(){return{bottom:0,right:0}},Fr.prototype.setScrollLeft=function(){},Fr.prototype.setScrollTop=function(){},Fr.prototype.clear=function(){};var Br={native:qr,null:Fr};function Ur(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Br[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),fe(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,n){"horizontal"==n?Ir(e,t):Pr(e,t)}),e),e.display.scrollbars.addClass&&M(e.display.wrapper,e.display.scrollbars.addClass)}var Wr=0;function Vr(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++Wr,markArrays:null},t=e.curOp,on?on.ops.push(t):t.ownsGroup=on={ops:[t],delayedCallbacks:[]}}function Yr(e){var t=e.curOp;t&&function(e,t){var n=e.ownsGroup;if(n)try{!function(e){var t=e.delayedCallbacks,n=0;do{for(;n=n.viewTo)||n.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new ii(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Xr(e){e.updatedDisplay=e.mustUpdate&&oi(e.cm,e.update)}function Gr(e){var t=e.cm,n=t.display;e.updatedDisplay&&Er(t),e.barMeasure=Rr(t),n.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=An(t,n.maxLine,n.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(n.scroller.clientWidth,n.sizer.offsetLeft+e.adjustWidthTo+En(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,n.sizer.offsetLeft+e.adjustWidthTo-Tn(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=n.input.prepareSelection())}function Kr(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!h){var o=A("div","\u200b",null,"position: absolute;\n top: "+(t.top-n.viewOffset-_n(e.display))+"px;\n height: "+(t.bottom-t.top+En(e)+n.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,n,r){var i;null==r&&(r=0),e.options.lineWrapping||t!=n||(n="before"==t.sticky?Ze(t.line,t.ch+1,"before"):t,t=t.ch?Ze(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t);for(var o=0;o<5;o++){var a=!1,s=Yn(e,t),l=n&&n!=t?Yn(e,n):s,c=Or(e,i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-r,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+r}),u=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=c.scrollTop&&(Pr(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(Ir(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(a=!0)),!a)break}return i}(t,at(r,e.scrollToPos.from),at(r,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var a=0;a=e.display.viewTo)){var n=+new Date+e.options.workTime,r=dt(e,t.highlightFrontier),i=[];t.iter(r.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(r.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?He(t.mode,r.state):null,l=ut(e,o,r,!0);s&&(r.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var f=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),d=0;!f&&dn)return ni(e,e.options.workDelay),!0})),t.highlightFrontier=r.line,t.modeFrontier=Math.max(t.modeFrontier,r.line),i.length&&Jr(e,(function(){for(var t=0;t=n.viewFrom&&t.visible.to<=n.viewTo&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo)&&n.renderedView==n.view&&0==hr(e))return!1;fi(e)&&(dr(e),t.dims=ir(e));var i=r.first+r.size,o=Math.max(t.visible.from-e.options.viewportMargin,r.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);n.viewFroma&&n.viewTo-a<20&&(a=Math.min(i,n.viewTo)),xt&&(o=qt(e.doc,o),a=Ft(e.doc,a));var s=o!=n.viewFrom||a!=n.viewTo||n.lastWrapHeight!=t.wrapperHeight||n.lastWrapWidth!=t.wrapperWidth;!function(e,t,n){var r=e.display;0==r.view.length||t>=r.viewTo||n<=r.viewFrom?(r.view=rn(e,t,n),r.viewFrom=t):(r.viewFrom>t?r.view=rn(e,t,r.viewFrom).concat(r.view):r.viewFromn&&(r.view=r.view.slice(0,cr(e,n)))),r.viewTo=n}(e,o,a),n.viewOffset=Bt(Ve(e.doc,n.viewFrom)),e.display.mover.style.top=n.viewOffset+"px";var c=hr(e);if(!s&&0==c&&!t.force&&n.renderedView==n.view&&(null==n.updateLineNumbers||n.updateLineNumbers>=n.viewTo))return!1;var u=function(e){if(e.hasFocus())return null;var t=D();if(!t||!L(e.display.lineDiv,t))return null;var n={activeElt:t};if(window.getSelection){var r=window.getSelection();r.anchorNode&&r.extend&&L(e.display.lineDiv,r.anchorNode)&&(n.anchorNode=r.anchorNode,n.anchorOffset=r.anchorOffset,n.focusNode=r.focusNode,n.focusOffset=r.focusOffset)}return n}(e);return c>4&&(n.lineDiv.style.display="none"),function(e,t,n){var r=e.display,i=e.options.lineNumbers,o=r.lineDiv,a=o.firstChild;function s(t){var n=t.nextSibling;return l&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),n}for(var c=r.view,u=r.viewFrom,f=0;f-1&&(p=!1),cn(e,d,u,n)),p&&(C(d.lineNumber),d.lineNumber.appendChild(document.createTextNode(Je(e.options,u)))),a=d.node.nextSibling}else{var h=gn(e,d,u,n);o.insertBefore(h,a)}u+=d.size}for(;a;)a=s(a)}(e,n.updateLineNumbers,t.dims),c>4&&(n.lineDiv.style.display=""),n.renderedView=n.view,function(e){if(e&&e.activeElt&&e.activeElt!=D()&&(e.activeElt.focus(),!/^(INPUT|TEXTAREA)$/.test(e.activeElt.nodeName)&&e.anchorNode&&L(document.body,e.anchorNode)&&L(document.body,e.focusNode))){var t=window.getSelection(),n=document.createRange();n.setEnd(e.anchorNode,e.anchorOffset),n.collapse(!1),t.removeAllRanges(),t.addRange(n),t.extend(e.focusNode,e.focusOffset)}}(u),C(n.cursorDiv),C(n.selectionDiv),n.gutters.style.height=n.sizer.style.minHeight=0,s&&(n.lastWrapHeight=t.wrapperHeight,n.lastWrapWidth=t.wrapperWidth,ni(e,400)),n.updateLineNumbers=null,!0}function ai(e,t){for(var n=t.viewport,r=!0;;r=!1){if(r&&e.options.lineWrapping&&t.oldDisplayWidth!=Tn(e))r&&(t.visible=Cr(e.display,e.doc,n));else if(n&&null!=n.top&&(n={top:Math.min(e.doc.height+kn(e.display)-Cn(e),n.top)}),t.visible=Cr(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!oi(e,t))break;Er(e);var i=Rr(e);mr(e),zr(e,i),ci(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function si(e,t){var n=new ii(e,t);if(oi(e,n)){Er(e),ai(e,n);var r=Rr(e);mr(e),zr(e,r),ci(e,r),n.finish()}}function li(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px",sn(e,"gutterChanged",e)}function ci(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+En(e)+"px"}function ui(e){var t=e.display,n=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var r=or(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=r+"px",a=0;as.clientWidth,u=s.scrollHeight>s.clientHeight;if(i&&c||o&&u){if(o&&y&&l)e:for(var d=t.target,p=a.view;d!=s;d=d.parentNode)for(var h=0;h=0&&et(e,r.to())<=0)return n}return-1};var _i=function(e,t){this.anchor=e,this.head=t};function ki(e,t,n){var r=e&&e.options.selectionsMayTouch,i=t[n];t.sort((function(e,t){return et(e.from(),t.from())})),n=z(t,i);for(var o=1;o0:l>=0){var c=it(s.from(),a.from()),u=rt(s.to(),a.to()),f=s.empty()?a.from()==a.head:s.from()==s.head;o<=n&&--n,t.splice(--o,2,new _i(f?u:c,f?c:u))}}return new xi(t,n)}function Si(e,t){return new xi([new _i(e,t||e)],0)}function Ei(e){return e.text?Ze(e.from.line+e.text.length-1,X(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ti(e,t){if(et(e,t.from)<0)return e;if(et(e,t.to)<=0)return Ei(t);var n=e.line+t.text.length-(t.to.line-t.from.line)-1,r=e.ch;return e.line==t.to.line&&(r+=Ei(t).ch-t.to.ch),Ze(n,r)}function Ci(e,t){for(var n=[],r=0;r1&&e.remove(s.line+1,h-1),e.insert(s.line+1,v)}sn(e,"change",e,t)}function Mi(e,t,n){!function e(r,i,o){if(r.linked)for(var a=0;as-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(qi(e.done),X(e.done)):e.done.length&&!X(e.done).ranges?X(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),X(e.done)):void 0}(i,i.lastOp==r)))a=X(o.changes),0==et(t.from,t.to)&&0==et(t.from,a.to)?a.to=Ei(t):o.changes.push(Ri(e,t));else{var l=X(i.done);for(l&&l.ranges||Hi(e.sel,i.done),o={changes:[Ri(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(n),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=r,i.lastOrigin=i.lastSelOrigin=t.origin,a||he(e,"historyAdded")}function zi(e,t,n,r){var i=e.history,o=r&&r.origin;n==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,n,r){var i=t.charAt(0);return"*"==i||"+"==i&&n.ranges.length==r.ranges.length&&n.somethingSelected()==r.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,X(i.done),t))?i.done[i.done.length-1]=t:Hi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=n,r&&!1!==r.clearRedo&&qi(i.undone)}function Hi(e,t){var n=X(t);n&&n.ranges&&n.equals(e)||t.push(e)}function Bi(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),(function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o}))}function Ui(e){if(!e)return null;for(var t,n=0;n-1&&(X(s)[f]=c[f],delete c[f])}}}return r}function Yi(e,t,n,r){if(r){var i=e.anchor;if(n){var o=et(t,i)<0;o!=et(n,i)<0?(i=t,t=n):o!=et(t,n)<0&&(t=n)}return new _i(i,t)}return new _i(n||t,t)}function $i(e,t,n,r,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Ji(e,new xi([Yi(e.sel.primary(),t,n,i)],0),r)}function Xi(e,t,n){for(var r=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(he(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(n){var f=l.find(r<0?1:-1),d=void 0;if((r<0?u:c)&&(f=oo(e,f,-r,f&&f.line==t.line?o:null)),f&&f.line==t.line&&(d=et(f,n))&&(r<0?d<0:d>0))return ro(e,f,t,r,i)}var p=l.find(r<0?-1:1);return(r<0?c:u)&&(p=oo(e,p,r,p.line==t.line?o:null)),p?ro(e,p,t,r,i):null}}return t}function io(e,t,n,r,i){var o=r||1,a=ro(e,t,n,o,i)||!i&&ro(e,t,n,o,!0)||ro(e,t,n,-o,i)||!i&&ro(e,t,n,-o,!0);return a||(e.cantEdit=!0,Ze(e.first,0))}function oo(e,t,n,r){return n<0&&0==t.ch?t.line>e.first?at(e,Ze(t.line-1)):null:n>0&&t.ch==(r||Ve(e,t.line)).text.length?t.line0)){var u=[l,1],f=et(c.from,s.from),d=et(c.to,s.to);(f<0||!a.inclusiveLeft&&!f)&&u.push({from:c.from,to:s.from}),(d>0||!a.inclusiveRight&&!d)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}(e,t.from,t.to);if(r)for(var i=r.length-1;i>=0;--i)co(e,{from:r[i].from,to:r[i].to,text:i?[""]:t.text,origin:t.origin});else co(e,t)}}function co(e,t){if(1!=t.text.length||""!=t.text[0]||0!=et(t.from,t.to)){var n=Ci(e,t);Fi(e,t,n,e.cm?e.cm.curOp.id:NaN),po(e,t,n,Et(e,t));var r=[];Mi(e,(function(e,n){n||-1!=z(r,e.history)||(vo(e.history,t),r.push(e.history)),po(e,t,null,Et(e,t))}))}}function uo(e,t,n){var r=e.cm&&e.cm.state.suppressEdits;if(!r||n){for(var i,o=e.history,a=e.sel,s="undo"==t?o.done:o.undone,l="undo"==t?o.undone:o.done,c=0;c=0;--p){var h=d(p);if(h)return h.v}}}}function fo(e,t){if(0!=t&&(e.first+=t,e.sel=new xi(G(e.sel.ranges,(function(e){return new _i(Ze(e.anchor.line+t,e.anchor.ch),Ze(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){ur(e.cm,e.first,e.first-t,t);for(var n=e.cm.display,r=n.viewFrom;re.lastLine())){if(t.from.lineo&&(t={from:t.from,to:Ze(o,Ve(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ye(e,t.from,t.to),n||(n=Ci(e,t)),e.cm?function(e,t,n){var r=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=Ge(Rt(Ve(r,o.line))),r.iter(l,a.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),r.sel.contains(t.from,t.to)>-1&&ge(e),Di(r,t,n,ar(e)),e.options.lineWrapping||(r.iter(l,o.line+t.text.length,(function(e){var t=Ut(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontiern;r--){var i=Ve(e,r).stateAfter;if(i&&(!(i instanceof lt)||r+i.lookAhead1||!(this.children[0]instanceof bo))){var s=[];this.collapse(s),this.children=[new bo(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,s=a;s10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0;r0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=N("span",[o.replacedWith],"CodeMirror-widget"),r.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),r.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(It(e,t.line,t,n,o)||t.line!=n.line&&It(e,n.line,t,n,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");xt=!0}o.addToHistory&&Fi(e,{from:t,to:n,origin:"markText"},e.sel,NaN);var s,l=t.line,c=e.cm;if(e.iter(l,n.line+1,(function(r){c&&o.collapsed&&!c.options.lineWrapping&&Rt(r)==c.display.maxLine&&(s=!0),o.collapsed&&l!=t.line&&Xe(r,0),function(e,t,n){var r=n&&window.WeakSet&&(n.markedSpans||(n.markedSpans=new WeakSet));r&&r.has(e.markedSpans)?e.markedSpans.push(t):(e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],r&&r.add(e.markedSpans)),t.marker.attachLine(e)}(r,new _t(o,l==t.line?t.ch:null,l==n.line?n.ch:null),e.cm&&e.cm.curOp),++l})),o.collapsed&&e.iter(t.line,n.line+1,(function(t){zt(e,t)&&Xe(t,0)})),o.clearOnEnter&&fe(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(wt=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ko,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)ur(c,t.line,n.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=t.line;u<=n.line;u++)fr(c,u,"text");o.atomic&&to(c.doc),sn(c,"markerAdded",c,o)}return o}So.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Vr(e),ve(this,"clear")){var n=this.find();n&&sn(this,"clear",n.from,n.to)}for(var r=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=r&&e&&this.collapsed&&ur(e,r,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&to(e.doc)),e&&sn(e,"markerCleared",e,this,r,i),t&&Yr(e),this.parent&&this.parent.clear()}},So.prototype.find=function(e,t){var n,r;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;l--)lo(this,r[l]);s?Qi(this,s):this.cm&&Nr(this.cm)})),undo:ti((function(){uo(this,"undo")})),redo:ti((function(){uo(this,"redo")})),undoSelection:ti((function(){uo(this,"undo",!0)})),redoSelection:ti((function(){uo(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,n=0,r=0;r=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,n){e=at(this,e),t=at(this,t);var r=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||n&&!n(l.marker)||r.push(l.marker.parent||l.marker)}++i})),r},getAllMarks:function(){var e=[];return this.iter((function(t){var n=t.markedSpans;if(n)for(var r=0;re)return t=e,!0;e-=o,++n})),at(this,Ze(n,t))},indexFromPos:function(e){var t=(e=at(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var f=e.dataTransfer.getData("Text");if(f){var d;if(t.state.draggingText&&!t.state.draggingText.copy&&(d=t.listSelections()),Zi(t.doc,Si(n,n)),d)for(var p=0;p=0;t--)ho(e.doc,"",r[t].from,r[t].to,"+delete");Nr(e)}))}function Qo(e,t,n){var r=ie(e.text,t+n,n);return r<0||r>e.text.length?null:r}function Jo(e,t,n){var r=Qo(e,t.ch,n);return null==r?null:new Ze(t.line,r,n<0?"after":"before")}function Zo(e,t,n,r,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=ce(n,t.doc.direction);if(o){var a,s=i<0?X(o):o[0],l=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var c=Ln(t,n);a=i<0?n.text.length-1:0;var u=Dn(t,c,a).top;a=oe((function(e){return Dn(t,c,e).top==u}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==l&&(a=Qo(n,a,1))}else a=i<0?s.to:s.from;return new Ze(r,a,l)}}return new Ze(r,i<0?n.text.length:0,i<0?"before":"after")}Bo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Bo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Bo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Bo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Bo.default=y?Bo.macDefault:Bo.pcDefault;var ea={selectAll:ao,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),B)},killLine:function(e){return Ko(e,(function(t){if(t.empty()){var n=Ve(e.doc,t.head.line).text.length;return t.head.ch==n&&t.head.line0)i=new Ze(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),Ze(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Ve(e.doc,i.line-1).text;a&&(i=new Ze(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),Ze(i.line-1,a.length-1),i,"+transpose"))}n.push(new _i(i,i))}e.setSelections(n)}))},newlineAndIndent:function(e){return Jr(e,(function(){for(var t=e.listSelections(),n=t.length-1;n>=0;n--)e.replaceRange(e.doc.lineSeparator(),t[n].anchor,t[n].head,"+input");t=e.listSelections();for(var r=0;r-1&&(et((i=c.ranges[i]).from(),t)<0||t.xRel>0)&&(et(i.to(),t)>0||t.xRel<0)?function(e,t,n,r){var i=e.display,o=!1,c=Zr(e,(function(t){l&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:_r(e)),pe(i.wrapper.ownerDocument,"mouseup",c),pe(i.wrapper.ownerDocument,"mousemove",u),pe(i.scroller,"dragstart",f),pe(i.scroller,"drop",c),o||(be(t),r.addNew||$i(e.doc,n,null,null,r.extend),l&&!d||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},f=function(){return o=!0};l&&(i.scroller.draggable=!0),e.state.draggingText=c,c.copy=!r.moveOnDrag,fe(i.wrapper.ownerDocument,"mouseup",c),fe(i.wrapper.ownerDocument,"mousemove",u),fe(i.scroller,"dragstart",f),fe(i.scroller,"drop",c),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}(e,r,t,o):function(e,t,n,r){a&&_r(e);var i=e.display,o=e.doc;be(t);var s,l,c=o.sel,u=c.ranges;if(r.addNew&&!r.extend?(l=o.sel.contains(n),s=l>-1?u[l]:new _i(n,n)):(s=o.sel.primary(),l=o.sel.primIndex),"rectangle"==r.unit)r.addNew||(s=new _i(n,n)),n=lr(e,t,!0,!0),l=-1;else{var f=ga(e,n,r.unit);s=r.extend?Yi(s,f.anchor,f.head,r.extend):f}r.addNew?-1==l?(l=u.length,Ji(o,ki(e,u.concat([s]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==r.unit&&!r.extend?(Ji(o,ki(e,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Gi(o,l,s,U):(l=0,Ji(o,new xi([s],0),U),c=o.sel);var d=n;function p(t){if(0!=et(d,t))if(d=t,"rectangle"==r.unit){for(var i=[],a=e.options.tabSize,u=q(Ve(o,n.line).text,n.ch,a),f=q(Ve(o,t.line).text,t.ch,a),p=Math.min(u,f),h=Math.max(u,f),m=Math.min(n.line,t.line),g=Math.min(e.lastLine(),Math.max(n.line,t.line));m<=g;m++){var v=Ve(o,m).text,y=V(v,p,a);p==h?i.push(new _i(Ze(m,y),Ze(m,y))):v.length>y&&i.push(new _i(Ze(m,y),Ze(m,V(v,h,a))))}i.length||i.push(new _i(n,n)),Ji(o,ki(e,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,w=s,x=ga(e,t,r.unit),_=w.anchor;et(x.anchor,_)>0?(b=x.head,_=it(w.from(),x.anchor)):(b=x.anchor,_=rt(w.to(),x.head));var k=c.ranges.slice(0);k[l]=function(e,t){var n=t.anchor,r=t.head,i=Ve(e.doc,n.line);if(0==et(n,r)&&n.sticky==r.sticky)return t;var o=ce(i);if(!o)return t;var a=se(o,n.ch,n.sticky),s=o[a];if(s.from!=n.ch&&s.to!=n.ch)return t;var l,c=a+(s.from==n.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(r.line!=n.line)l=(r.line-n.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=se(o,r.ch,r.sticky),f=u-a||(r.ch-n.ch)*(1==s.level?-1:1);l=u==c-1||u==c?f<0:f>0}var d=o[c+(l?-1:0)],p=l==(1==d.level),h=p?d.from:d.to,m=p?"after":"before";return n.ch==h&&n.sticky==m?t:new _i(new Ze(n.line,h,m),r)}(e,new _i(at(o,_),b)),Ji(o,ki(e,k,l),U)}}var h=i.wrapper.getBoundingClientRect(),m=0;function g(t){e.state.selectingText=!1,m=1/0,t&&(be(t),i.input.focus()),pe(i.wrapper.ownerDocument,"mousemove",v),pe(i.wrapper.ownerDocument,"mouseup",y),o.history.lastSelOrigin=null}var v=Zr(e,(function(t){0!==t.buttons&&Se(t)?function t(n){var a=++m,s=lr(e,n,!0,"rectangle"==r.unit);if(s)if(0!=et(s,d)){e.curOp.focus=D(),p(s);var l=Cr(i,o);(s.line>=l.to||s.lineh.bottom?20:0;c&&setTimeout(Zr(e,(function(){m==a&&(i.scroller.scrollTop+=c,t(n))})),50)}}(t):g(t)})),y=Zr(e,g);e.state.selectingText=y,fe(i.wrapper.ownerDocument,"mousemove",v),fe(i.wrapper.ownerDocument,"mouseup",y)}(e,r,t,o)}(t,r,o,e):ke(e)==n.scroller&&be(e):2==i?(r&&$i(t.doc,r),setTimeout((function(){return n.input.focus()}),20)):3==i&&(k?t.display.input.onContextMenu(e):_r(t)))}}function ga(e,t,n){if("char"==n)return new _i(t,t);if("word"==n)return e.findWordAt(t);if("line"==n)return new _i(Ze(t.line,0),at(e.doc,Ze(t.line+1,0)));var r=n(e,t);return new _i(r.from,r.to)}function va(e,t,n,r){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(u){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;r&&be(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!ve(e,n))return xe(t);o-=s.top-a.viewOffset;for(var l=0;l=i)return he(e,n,e,Ke(e.doc,o),e.display.gutterSpecs[l].className,t),xe(t)}}function ya(e,t){return va(e,t,"gutterClick",!0)}function ba(e,t){xn(e.display,t)||function(e,t){return!!ve(e,"gutterContextMenu")&&va(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||k||e.display.input.onContextMenu(t)}function wa(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Fn(e)}ha.prototype.compare=function(e,t,n){return this.time+400>e&&0==et(t,this.pos)&&n==this.button};var xa={toString:function(){return"CodeMirror.Init"}},_a={},ka={};function Sa(e,t,n){if(!t!=!(n&&n!=xa)){var r=e.display.dragFunctions,i=t?fe:pe;i(e.display.scroller,"dragstart",r.start),i(e.display.scroller,"dragenter",r.enter),i(e.display.scroller,"dragover",r.over),i(e.display.scroller,"dragleave",r.leave),i(e.display.scroller,"drop",r.drop)}}function Ea(e){e.options.lineWrapping?(M(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),Wt(e)),sr(e),ur(e),Fn(e),setTimeout((function(){return zr(e)}),100)}function Ta(e,t){var n=this;if(!(this instanceof Ta))return new Ta(e,t);this.options=t=t?R(t):{},R(_a,t,!1);var r=t.value;"string"==typeof r?r=new No(r,t.mode,null,t.lineSeparator,t.direction):t.mode&&(r.modeOption=t.mode),this.doc=r;var i=new Ta.inputStyles[t.inputStyle](this),o=this.display=new mi(e,r,i,t);for(var c in o.wrapper.CodeMirror=this,wa(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Ur(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new F,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&s<11&&setTimeout((function(){return n.display.input.reset(!0)}),20),function(e){var t=e.display;fe(t.scroller,"mousedown",Zr(e,ma)),fe(t.scroller,"dblclick",a&&s<11?Zr(e,(function(t){if(!me(e,t)){var n=lr(e,t);if(n&&!ya(e,t)&&!xn(e.display,t)){be(t);var r=e.findWordAt(n);$i(e.doc,r.anchor,r.head)}}})):function(t){return me(e,t)||be(t)}),fe(t.scroller,"contextmenu",(function(t){return ba(e,t)})),fe(t.input.getField(),"contextmenu",(function(n){t.scroller.contains(n.target)||ba(e,n)}));var n,r={end:0};function i(){t.activeTouch&&(n=setTimeout((function(){return t.activeTouch=null}),1e3),(r=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var n=t.left-e.left,r=t.top-e.top;return n*n+r*r>400}fe(t.scroller,"touchstart",(function(i){if(!me(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!ya(e,i)){t.input.ensurePolled(),clearTimeout(n);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-r.end<=300?r:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),fe(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),fe(t.scroller,"touchend",(function(n){var r=t.activeTouch;if(r&&!xn(t,n)&&null!=r.left&&!r.moved&&new Date-r.start<300){var a,s=e.coordsChar(t.activeTouch,"page");a=!r.prev||o(r,r.prev)?new _i(s,s):!r.prev.prev||o(r,r.prev.prev)?e.findWordAt(s):new _i(Ze(s.line,0),at(e.doc,Ze(s.line+1,0))),e.setSelection(a.anchor,a.head),e.focus(),be(n)}i()})),fe(t.scroller,"touchcancel",i),fe(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(Pr(e,t.scroller.scrollTop),Ir(e,t.scroller.scrollLeft,!0),he(e,"scroll",e))})),fe(t.scroller,"mousewheel",(function(t){return wi(e,t)})),fe(t.scroller,"DOMMouseScroll",(function(t){return wi(e,t)})),fe(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){me(e,t)||_e(t)},over:function(t){me(e,t)||(function(e,t){var n=lr(e,t);if(n){var r=document.createDocumentFragment();vr(e,n,r),e.display.dragCursor||(e.display.dragCursor=A("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),O(e.display.dragCursor,r)}}(e,t),_e(t))},start:function(t){return function(e,t){if(a&&(!e.state.draggingText||+new Date-Lo<100))_e(t);else if(!me(e,t)&&!xn(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!d)){var n=A("img",null,null,"position: fixed; left: 0; top: 0;");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",f&&(n.width=n.height=1,e.display.wrapper.appendChild(n),n._top=n.offsetTop),t.dataTransfer.setDragImage(n,0,0),f&&n.parentNode.removeChild(n)}}(e,t)},drop:Zr(e,Do),leave:function(t){me(e,t)||Mo(e)}};var l=t.input.getField();fe(l,"keyup",(function(t){return ua.call(e,t)})),fe(l,"keydown",Zr(e,ca)),fe(l,"keypress",Zr(e,fa)),fe(l,"focus",(function(t){return kr(e,t)})),fe(l,"blur",(function(t){return Sr(e,t)}))}(this),Io(),Vr(this),this.curOp.forceUpdate=!0,Pi(this,r),t.autofocus&&!v||this.hasFocus()?setTimeout((function(){n.hasFocus()&&!n.state.focused&&kr(n)}),20):Sr(this),ka)ka.hasOwnProperty(c)&&ka[c](this,t[c],xa);fi(this),t.finishInit&&t.finishInit(this);for(var u=0;u150)){if(!r)return;n="prev"}}else c=0,n="not";"prev"==n?c=t>o.first?q(Ve(o,t-1).text,null,a):0:"add"==n?c=l+e.options.indentUnit:"subtract"==n?c=l-e.options.indentUnit:"number"==typeof n&&(c=l+n),c=Math.max(0,c);var f="",d=0;if(e.options.indentWithTabs)for(var p=Math.floor(c/a);p;--p)d+=a,f+="\t";if(da,l=Ne(t),c=null;if(s&&r.ranges.length>1)if(Aa&&Aa.text.join("\n")==t){if(r.ranges.length%Aa.text.length==0){c=[];for(var u=0;u=0;d--){var p=r.ranges[d],h=p.from(),m=p.to();p.empty()&&(n&&n>0?h=Ze(h.line,h.ch-n):e.state.overwrite&&!s?m=Ze(m.line,Math.min(Ve(o,m.line).text.length,m.ch+X(l).length)):s&&Aa&&Aa.lineWise&&Aa.text.join("\n")==l.join("\n")&&(h=m=Ze(h.line,0)));var g={from:h,to:m,text:c?c[d%c.length]:l,origin:i||(s?"paste":e.state.cutIncoming>a?"cut":"+input")};lo(e.doc,g),sn(e,"inputRead",e,g)}t&&!s&&Ma(e,t),Nr(e),e.curOp.updateInput<2&&(e.curOp.updateInput=f),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Da(e,t){var n=e.clipboardData&&e.clipboardData.getData("Text");if(n)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Jr(t,(function(){return La(t,n,0,null,"paste")})),!0}function Ma(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var n=e.doc.sel,r=n.ranges.length-1;r>=0;r--){var i=n.ranges[r];if(!(i.head.ch>100||r&&n.ranges[r-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=Oa(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Ve(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=Oa(e,i.head.line,"smart"));a&&sn(e,"electricInput",e,i.head.line)}}}function Pa(e){for(var t=[],n=[],r=0;r0?0:-1));if(isNaN(c))a=null;else{var u=n>0?c>=55296&&c<56320:c>=56320&&c<57343;a=new Ze(t.line,Math.max(0,Math.min(s.text.length,t.ch+n*(u?2:1))),-n)}}else a=i?function(e,t,n,r){var i=ce(t,e.doc.direction);if(!i)return Jo(t,n,r);n.ch>=t.text.length?(n.ch=t.text.length,n.sticky="before"):n.ch<=0&&(n.ch=0,n.sticky="after");var o=se(i,n.ch,n.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(r>0?a.to>n.ch:a.from=a.from&&d>=u.begin)){var p=f?"before":"after";return new Ze(n.line,d,p)}}var h=function(e,t,r){for(var o=function(e,t){return t?new Ze(n.line,l(e,1),"before"):new Ze(n.line,e,"after")};e>=0&&e0==(1!=a.level),c=s?r.begin:l(r.end,-1);if(a.from<=c&&c0?u.end:l(u.begin,-1);return null==g||r>0&&g==t.text.length||!(m=h(r>0?0:i.length-1,r,c(g)))?null:m}(e.cm,s,t,n):Jo(s,t,n);if(null==a){if(o||!function(){var n=t.line+l;return!(n=e.first+e.size)&&(t=new Ze(n,t.ch,t.sticky),s=Ve(e,n))}())return!1;t=Zo(i,e.cm,s,t.line,l)}else t=a;return!0}if("char"==r||"codepoint"==r)c();else if("column"==r)c(!0);else if("word"==r||"group"==r)for(var u=null,f="group"==r,d=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;!(n<0)||c(!p);p=!1){var h=s.text.charAt(t.ch)||"\n",m=ee(h,d)?"w":f&&"\n"==h?"n":!f||/\s/.test(h)?null:"p";if(!f||p||m||(m="s"),u&&u!=m){n<0&&(n=1,c(),t.sticky="after");break}if(m&&(u=m),n>0&&!c(!p))break}var g=io(e,t,o,a,!0);return tt(o,g)&&(g.hitSide=!0),g}function qa(e,t,n,r){var i,o,a=e.doc,s=t.left;if("page"==r){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*nr(e.display),3);i=(n>0?t.bottom:t.top)+n*c}else"line"==r&&(i=n>0?t.bottom+3:t.top-3);for(;(o=Gn(e,s,i)).outside;){if(n<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*n}return o}var Fa=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new F,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function za(e,t){var n=Nn(e,t.line);if(!n||n.hidden)return null;var r=Ve(e.doc,t.line),i=On(n,r,t.line),o=ce(r,e.doc.direction),a="left";o&&(a=se(o,t.ch)%2?"right":"left");var s=jn(i.map,t.ch,a);return s.offset="right"==s.collapse?s.end:s.start,s}function Ha(e,t){return t&&(e.bad=!0),e}function Ba(e,t,n){var r;if(t==e.display.lineDiv){if(!(r=e.display.lineDiv.childNodes[n]))return Ha(e.clipPos(Ze(e.display.viewTo-1)),!0);t=null,n=0}else for(r=t;;r=r.parentNode){if(!r||r==e.display.lineDiv)return null;if(r.parentNode&&r.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&za(t,i)||{node:l[0].measure.map[2],offset:0},u=o.liner.firstLine()&&(a=Ze(a.line-1,Ve(r.doc,a.line-1).length)),s.ch==Ve(r.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=cr(r,a.line))?(t=Ge(i.view[0].line),n=i.view[0].node):(t=Ge(i.view[e].line),n=i.view[e-1].node.nextSibling);var l,c,u=cr(r,s.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=Ge(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!n)return!1;for(var f=r.doc.splitLines(function(e,t,n,r,i){var o="",a=!1,s=e.doc.lineSeparator(),l=!1;function c(){a&&(o+=s,l&&(o+=s),a=l=!1)}function u(e){e&&(c(),o+=e)}function f(t){if(1==t.nodeType){var n=t.getAttribute("cm-text");if(n)return void u(n);var o,d=t.getAttribute("cm-marker");if(d){var p=e.findMarks(Ze(r,0),Ze(i+1,0),(g=+d,function(e){return e.id==g}));return void(p.length&&(o=p[0].find(0))&&u(Ye(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var h=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;h&&c();for(var m=0;m1&&d.length>1;)if(X(f)==X(d))f.pop(),d.pop(),l--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),t++}for(var p=0,h=0,m=f[0],g=d[0],v=Math.min(m.length,g.length);pa.ch&&y.charCodeAt(y.length-h-1)==b.charCodeAt(b.length-h-1);)p--,h++;f[f.length-1]=y.slice(0,y.length-h).replace(/^\u200b+/,""),f[0]=f[0].slice(p).replace(/\u200b+$/,"");var x=Ze(t,p),_=Ze(l,d.length?X(d).length-h:0);return f.length>1||f[0]||et(x,_)?(ho(r.doc,f,x,_,"+input"),!0):void 0},Fa.prototype.ensurePolled=function(){this.forceCompositionEnd()},Fa.prototype.reset=function(){this.forceCompositionEnd()},Fa.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Fa.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Fa.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Jr(this.cm,(function(){return ur(e.cm)}))},Fa.prototype.setUneditable=function(e){e.contentEditable="false"},Fa.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Zr(this.cm,La)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Fa.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Fa.prototype.onContextMenu=function(){},Fa.prototype.resetPosition=function(){},Fa.prototype.needsContentAttribute=!0;var Wa=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new F,this.hasSelection=!1,this.composing=null};Wa.prototype.init=function(e){var t=this,n=this,r=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!me(r,e)){if(r.somethingSelected())Na({lineWise:!1,text:r.getSelections()});else{if(!r.options.lineWiseCopyCut)return;var t=Pa(r);Na({lineWise:!0,text:t.text}),"cut"==e.type?r.setSelections(t.ranges,null,B):(n.prevInput="",i.value=t.text.join("\n"),j(i))}"cut"==e.type&&(r.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),fe(i,"input",(function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),n.poll()})),fe(i,"paste",(function(e){me(r,e)||Da(e,r)||(r.state.pasteIncoming=+new Date,n.fastPoll())})),fe(i,"cut",o),fe(i,"copy",o),fe(e.scroller,"paste",(function(t){if(!xn(e,t)&&!me(r,t)){if(!i.dispatchEvent)return r.state.pasteIncoming=+new Date,void n.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),fe(e.lineSpace,"selectstart",(function(t){xn(e,t)||be(t)})),fe(i,"compositionstart",(function(){var e=r.getCursor("from");n.composing&&n.composing.range.clear(),n.composing={start:e,range:r.markText(e,r.getCursor("to"),{className:"CodeMirror-composing"})}})),fe(i,"compositionend",(function(){n.composing&&(n.poll(),n.composing.range.clear(),n.composing=null)}))},Wa.prototype.createField=function(e){this.wrapper=Ia(),this.textarea=this.wrapper.firstChild},Wa.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},Wa.prototype.prepareSelection=function(){var e=this.cm,t=e.display,n=e.doc,r=gr(e);if(e.options.moveInputWithCursor){var i=Yn(e,n.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();r.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),r.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return r},Wa.prototype.showSelection=function(e){var t=this.cm.display;O(t.cursorDiv,e.cursors),O(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},Wa.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var n=t.getSelection();this.textarea.value=n,t.state.focused&&j(this.textarea),a&&s>=9&&(this.hasSelection=n)}else e||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},Wa.prototype.getField=function(){return this.textarea},Wa.prototype.supportsTouch=function(){return!1},Wa.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!v||D()!=this.textarea))try{this.textarea.focus()}catch(e){}},Wa.prototype.blur=function(){this.textarea.blur()},Wa.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Wa.prototype.receivedFocus=function(){this.slowPoll()},Wa.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},Wa.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function n(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,n))}))},Wa.prototype.poll=function(){var e=this,t=this.cm,n=this.textarea,r=this.prevInput;if(this.contextMenuPending||!t.state.focused||Le(n)&&!r&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=n.value;if(i==r&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||r||(r="\u200b"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,c=Math.min(r.length,i.length);l1e3||i.indexOf("\n")>-1?n.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},Wa.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Wa.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},Wa.prototype.onContextMenu=function(e){var t=this,n=t.cm,r=n.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=lr(n,e),c=r.scroller.scrollTop;if(o&&!f){n.options.resetSelectionOnContextMenu&&-1==n.doc.sel.contains(o)&&Zr(n,Ji)(n.doc,Si(o),B);var u,d=i.style.cssText,p=t.wrapper.style.cssText,h=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-h.top-5)+"px; left: "+(e.clientX-h.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(u=window.scrollY),r.input.focus(),l&&window.scrollTo(null,u),r.input.reset(),n.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=g,r.selForContextMenu=n.doc.sel,clearTimeout(r.detectingSelectAll),a&&s>=9&&m(),k?(_e(e),fe(window,"mouseup",(function e(){pe(window,"mouseup",e),setTimeout(g,20)}))):setTimeout(g,50)}function m(){if(null!=i.selectionStart){var e=n.somethingSelected(),o="\u200b"+(e?i.value:"");i.value="\u21da",i.value=o,t.prevInput=e?"":"\u200b",i.selectionStart=1,i.selectionEnd=o.length,r.selForContextMenu=n.doc.sel}}function g(){if(t.contextMenuPending==g&&(t.contextMenuPending=!1,t.wrapper.style.cssText=p,i.style.cssText=d,a&&s<9&&r.scrollbars.setScrollTop(r.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&m();var e=0;r.detectingSelectAll=setTimeout((function o(){r.selForContextMenu==n.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"\u200b"==t.prevInput?Zr(n,ao)(n):e++<10?r.detectingSelectAll=setTimeout(o,500):(r.selForContextMenu=null,r.input.reset())}),200)}}},Wa.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},Wa.prototype.setUneditable=function(){},Wa.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function n(n,r,i,o){e.defaults[n]=r,i&&(t[n]=o?function(e,t,n){n!=xa&&i(e,t,n)}:i)}e.defineOption=n,e.Init=xa,n("value","",(function(e,t){return e.setValue(t)}),!0),n("mode",null,(function(e,t){e.doc.modeOption=t,Ai(e)}),!0),n("indentUnit",2,Ai,!0),n("indentWithTabs",!1),n("smartIndent",!0),n("tabSize",4,(function(e){Ni(e),Fn(e),ur(e)}),!0),n("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var n=[],r=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,n.push(Ze(r,o))}r++}));for(var i=n.length-1;i>=0;i--)ho(e.doc,t,n[i],Ze(n[i].line,n[i].ch+t.length))}})),n("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,n){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),n!=xa&&e.refresh()})),n("specialCharPlaceholder",Qt,(function(e){return e.refresh()}),!0),n("electricChars",!0),n("inputStyle",v?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),n("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),n("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),n("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),n("rtlMoveVisually",!w),n("wholeLineUpdateBefore",!0),n("theme","default",(function(e){wa(e),hi(e)}),!0),n("keyMap","default",(function(e,t,n){var r=Go(t),i=n!=xa&&Go(n);i&&i.detach&&i.detach(e,r),r.attach&&r.attach(e,i||null)})),n("extraKeys",null),n("configureMouse",null),n("lineWrapping",!1,Ea,!0),n("gutters",[],(function(e,t){e.display.gutterSpecs=di(t,e.options.lineNumbers),hi(e)}),!0),n("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?or(e.display)+"px":"0",e.refresh()}),!0),n("coverGutterNextToScrollbar",!1,(function(e){return zr(e)}),!0),n("scrollbarStyle","native",(function(e){Ur(e),zr(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),n("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=di(e.options.gutters,t),hi(e)}),!0),n("firstLineNumber",1,hi,!0),n("lineNumberFormatter",(function(e){return e}),hi,!0),n("showCursorWhenSelecting",!1,mr,!0),n("resetSelectionOnContextMenu",!0),n("lineWiseCopyCut",!0),n("pasteLinesPerSelection",!0),n("selectionsMayTouch",!1),n("readOnly",!1,(function(e,t){"nocursor"==t&&(Sr(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),n("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),n("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),n("dragDrop",!0,Sa),n("allowDropFileTypes",null),n("cursorBlinkRate",530),n("cursorScrollMargin",0),n("cursorHeight",1,mr,!0),n("singleCursorHeightPerLine",!0,mr,!0),n("workTime",100),n("workDelay",100),n("flattenSpans",!0,Ni,!0),n("addModeClass",!1,Ni,!0),n("pollInterval",100),n("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),n("historyEventDelay",1250),n("viewportMargin",10,(function(e){return e.refresh()}),!0),n("maxHighlightLength",1e4,Ni,!0),n("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),n("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),n("autofocus",null),n("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),n("phrases",null)}(Ta),function(e){var t=e.optionHandlers,n=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,n){var r=this.options,i=r[e];r[e]==n&&"mode"!=e||(r[e]=n,t.hasOwnProperty(e)&&Zr(this,t[e])(this,n,i),he(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Go(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;nn&&(Oa(this,i.head.line,e,!0),n=i.head.line,r==this.doc.sel.primIndex&&Nr(this));else{var o=i.from(),a=i.to(),s=Math.max(n,o.line);n=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l0&&Gi(this.doc,r,new _i(o,c[r].to()),B)}}})),getTokenAt:function(e,t){return vt(this,e,t)},getLineTokens:function(e,t){return vt(this,Ze(e),t,!0)},getTokenTypeAt:function(e){e=at(this.doc,e);var t,n=ft(this,Ve(this.doc,e.line)),r=0,i=(n.length-1)/2,o=e.ch;if(0==o)t=n[2];else for(;;){var a=r+i>>1;if((a?n[2*a-1]:0)>=o)i=a;else{if(!(n[2*a+1]o&&(e=o,i=!0),r=Ve(this.doc,e)}else r=e;return Un(this,r,{top:0,left:0},t||"page",n||i).top+(i?this.doc.height-Bt(r):0)},defaultTextHeight:function(){return nr(this.display)},defaultCharWidth:function(){return rr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,n,r,i){var o=this.display,a=(e=Yn(this,at(this.doc,e))).bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==r)a=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),n&&function(e,t){var n=Or(e,t);null!=n.scrollTop&&Pr(e,n.scrollTop),null!=n.scrollLeft&&Ir(e,n.scrollLeft)}(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:ei(ca),triggerOnKeyPress:ei(fa),triggerOnKeyUp:ua,triggerOnMouseDown:ei(ma),execCommand:function(e){if(ea.hasOwnProperty(e))return ea[e].call(null,this)},triggerElectric:ei((function(e){Ma(this,e)})),findPosH:function(e,t,n,r){var i=1;t<0&&(i=-1,t=-t);for(var o=at(this.doc,e),a=0;a0&&a(t.charAt(n-1));)--n;for(;r.5||this.options.lineWrapping)&&sr(this),he(this,"refresh",this)})),swapDoc:ei((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Pi(this,e),Fn(this),this.display.input.reset(),Lr(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,sn(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},ye(e),e.registerHelper=function(t,r,i){n.hasOwnProperty(t)||(n[t]=e[t]={_global:[]}),n[t][r]=i},e.registerGlobalHelper=function(t,r,i,o){e.registerHelper(t,r,o),n[t]._global.push({pred:i,val:o})}}(Ta);var Va="iter insert remove copy getEditor constructor".split(" ");for(var Ya in No.prototype)No.prototype.hasOwnProperty(Ya)&&z(Va,Ya)<0&&(Ta.prototype[Ya]=function(e){return function(){return e.apply(this.doc,arguments)}}(No.prototype[Ya]));return ye(No),Ta.inputStyles={textarea:Wa,contenteditable:Fa},Ta.defineMode=function(e){Ta.defaults.mode||"null"==e||(Ta.defaults.mode=e),Ie.apply(this,arguments)},Ta.defineMIME=function(e,t){je[e]=t},Ta.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Ta.defineMIME("text/plain","null"),Ta.defineExtension=function(e,t){Ta.prototype[e]=t},Ta.defineDocExtension=function(e,t){No.prototype[e]=t},Ta.fromTextArea=function(e,t){if((t=t?R(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var n=D();t.autofocus=n==e||null!=e.getAttribute("autofocus")&&n==document.body}function r(){e.value=s.getValue()}var i;if(e.form&&(fe(e.form,"submit",r),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){r(),o.submit=i,o.submit(),o.submit=a}}catch(l){}}t.finishInit=function(n){n.save=r,n.getTextArea=function(){return e},n.toTextArea=function(){n.toTextArea=isNaN,r(),e.parentNode.removeChild(n.getWrapperElement()),e.style.display="",e.form&&(pe(e.form,"submit",r),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Ta((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=pe,e.on=fe,e.wheelEventPixels=bi,e.Doc=No,e.splitLines=Ne,e.countColumn=q,e.findColumn=V,e.isWordChar=Z,e.Pass=H,e.signal=he,e.Line=Vt,e.changeEnd=Ei,e.scrollbarModel=Br,e.Pos=Ze,e.cmpPos=et,e.modes=Pe,e.mimeModes=je,e.resolveMode=Re,e.getMode=qe,e.modeExtensions=Fe,e.extendMode=ze,e.copyState=He,e.startState=Ue,e.innerMode=Be,e.commands=ea,e.keyMap=Bo,e.keyName=Xo,e.isModifierKey=Yo,e.lookupKey=Vo,e.normalizeKeyMap=Wo,e.StringStream=We,e.SharedTextMarker=To,e.TextMarker=So,e.LineWidget=xo,e.e_preventDefault=be,e.e_stopPropagation=we,e.e_stop=_e,e.addClass=M,e.contains=L,e.rmClass=T,e.keyNames=qo}(Ta),Ta.version="5.62.3",Ta}()},function(e,t,n){"use strict";function r(e,t,n,r,i,o,a){try{var s=e[o](a),l=s.value}catch(c){return void n(c)}s.done?t(l):Promise.resolve(l).then(r,i)}function i(e){return function(){var t=this,n=arguments;return new Promise((function(i,o){var a=e.apply(t,n);function s(e){r(a,i,o,s,l,"next",e)}function l(e){r(a,i,o,s,l,"throw",e)}s(void 0)}))}}n.d(t,"a",(function(){return i}))},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}}(),e.exports=n(98)},function(e,t,n){"use strict";n.r(t),n.d(t,"__DO_NOT_USE__ActionTypes",(function(){return o})),n.d(t,"applyMiddleware",(function(){return g})),n.d(t,"bindActionCreators",(function(){return f})),n.d(t,"combineReducers",(function(){return c})),n.d(t,"compose",(function(){return m})),n.d(t,"createStore",(function(){return s}));var r=n(52),i=function(){return Math.random().toString(36).substring(7).split("").join(".")},o={INIT:"@@redux/INIT"+i(),REPLACE:"@@redux/REPLACE"+i(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+i()}};function a(e){if("object"!==typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function s(e,t,n){var i;if("function"===typeof t&&"function"===typeof n||"function"===typeof n&&"function"===typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"===typeof t&&"undefined"===typeof n&&(n=t,t=void 0),"undefined"!==typeof n){if("function"!==typeof n)throw new Error("Expected the enhancer to be a function.");return n(s)(e,t)}if("function"!==typeof e)throw new Error("Expected the reducer to be a function.");var l=e,c=t,u=[],f=u,d=!1;function p(){f===u&&(f=u.slice())}function h(){if(d)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return c}function m(e){if("function"!==typeof e)throw new Error("Expected the listener to be a function.");if(d)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return p(),f.push(e),function(){if(t){if(d)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,p();var n=f.indexOf(e);f.splice(n,1),u=null}}}function g(e){if(!a(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"===typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(d)throw new Error("Reducers may not dispatch actions.");try{d=!0,c=l(c,e)}finally{d=!1}for(var t=u=f,n=0;n0}function T(e){return Object.keys(e).map((function(t){return e[t]}))}var C=!("undefined"===typeof window||!window.document||!window.document.createElement);var O,A=((O=function(e,t,n){var r=e[t];return!1===r||E(r)?null:new Error(n+" expect "+t+" \n to be a valid Number > 0 or equal to false. "+r+" given.")}).isRequired=function(e,t,n){if("undefined"===typeof e[t])return new Error("The prop "+t+" is marked as required in \n "+n+", but its value is undefined.");O(e,t,n)},O);function N(e){var t,n,i=e.delay,o=e.isRunning,a=e.closeToast,l=e.type,c=e.hide,u=e.className,d=e.style,p=e.controlledProgress,h=e.progress,m=e.rtl,g=Object(r.a)({},d,{animationDuration:i+"ms",animationPlayState:o?"running":"paused",opacity:c?0:1,transform:p?"scaleX("+h+")":null}),v=f()("Toastify__progress-bar",p?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated","Toastify__progress-bar--"+l,((t={})["Toastify__progress-bar--rtl"]=m,t),u),y=((n={})[p&&h>=1?"onTransitionEnd":"onAnimationEnd"]=p&&h<1?null:a,n);return s.a.createElement("div",Object(r.a)({className:v,style:g},y))}function L(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientX:e.clientX}function D(e){return e.targetTouches&&e.targetTouches.length>=1?e.targetTouches[0].clientY:e.clientY}N.propTypes={delay:A.isRequired,isRunning:c.a.bool.isRequired,closeToast:c.a.func.isRequired,rtl:c.a.bool.isRequired,type:c.a.string,hide:c.a.bool,className:c.a.oneOfType([c.a.string,c.a.object]),progress:c.a.number,controlledProgress:c.a.bool},N.defaultProps={type:y.DEFAULT,hide:!1};var M=C&&/(msie|trident)/i.test(navigator.userAgent),P=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;it.drag.removalDistance)return void t.setState({preventExitTransition:!0},t.props.closeToast);t.ref.style.transition="transform 0.2s, opacity 0.2s",t.ref.style.transform="translateX(0)",t.ref.style.opacity=1}},t.onDragTransitionEnd=function(){if(t.boundingRect){var e=t.boundingRect,n=e.top,r=e.bottom,i=e.left,o=e.right;t.props.pauseOnHover&&t.drag.x>=i&&t.drag.x<=o&&t.drag.y>=n&&t.drag.y<=r?t.pauseToast():t.playToast()}},t.onExitTransitionEnd=function(){if(M)t.props.onExited();else{var e=t.ref.scrollHeight,n=t.ref.style;requestAnimationFrame((function(){n.minHeight="initial",n.height=e+"px",n.transition="all 0.4s ",requestAnimationFrame((function(){n.height=0,n.padding=0,n.margin=0})),setTimeout((function(){return t.props.onExited()}),400)}))}},t}Object(o.a)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onOpen(this.props.children.props),this.props.draggable&&this.bindDragEvents(),this.props.pauseOnFocusLoss&&this.bindFocusEvents()},n.componentDidUpdate=function(e){e.draggable!==this.props.draggable&&(this.props.draggable?this.bindDragEvents():this.unbindDragEvents()),e.pauseOnFocusLoss!==this.props.pauseOnFocusLoss&&(this.props.pauseOnFocusLoss?this.bindFocusEvents():this.unbindFocusEvents())},n.componentWillUnmount=function(){this.props.onClose(this.props.children.props),this.props.draggable&&this.unbindDragEvents(),this.props.pauseOnFocusLoss&&this.unbindFocusEvents()},n.bindFocusEvents=function(){window.addEventListener("focus",this.playToast),window.addEventListener("blur",this.pauseToast)},n.unbindFocusEvents=function(){window.removeEventListener("focus",this.playToast),window.removeEventListener("blur",this.pauseToast)},n.bindDragEvents=function(){document.addEventListener("mousemove",this.onDragMove),document.addEventListener("mouseup",this.onDragEnd),document.addEventListener("touchmove",this.onDragMove),document.addEventListener("touchend",this.onDragEnd)},n.unbindDragEvents=function(){document.removeEventListener("mousemove",this.onDragMove),document.removeEventListener("mouseup",this.onDragEnd),document.removeEventListener("touchmove",this.onDragMove),document.removeEventListener("touchend",this.onDragEnd)},n.render=function(){var e,t=this,n=this.props,i=n.closeButton,o=n.children,a=n.autoClose,l=n.pauseOnHover,c=n.onClick,u=n.closeOnClick,d=n.type,p=n.hideProgressBar,h=n.closeToast,m=n.transition,g=n.position,v=n.className,y=n.bodyClassName,b=n.progressClassName,w=n.progressStyle,x=n.updateId,_=n.role,k=n.progress,S=n.rtl,E={className:f()("Toastify__toast","Toastify__toast--"+d,(e={},e["Toastify__toast--rtl"]=S,e),v)};a&&l&&(E.onMouseEnter=this.pauseToast,E.onMouseLeave=this.playToast),u&&(E.onClick=function(e){c&&c(e),t.flag.canCloseOnClick&&h()});var T=parseFloat(k)===k;return s.a.createElement(m,{in:this.props.in,appear:!0,onExited:this.onExitTransitionEnd,position:g,preventExitTransition:this.state.preventExitTransition},s.a.createElement("div",Object(r.a)({onClick:c},E,{ref:function(e){return t.ref=e},onMouseDown:this.onDragStart,onTouchStart:this.onDragStart,onMouseUp:this.onDragTransitionEnd,onTouchEnd:this.onDragTransitionEnd}),s.a.createElement("div",Object(r.a)({},this.props.in&&{role:_},{className:f()("Toastify__toast-body",y)}),o),i&&i,(a||T)&&s.a.createElement(N,Object(r.a)({},x&&!T?{key:"pb-"+x}:{},{rtl:S,delay:a,isRunning:this.state.isRunning,closeToast:h,hide:p,type:d,style:w,className:b,controlledProgress:T,progress:k}))))},t}(a.Component);function j(e){var t=e.closeToast,n=e.type,r=e.ariaLabel;return s.a.createElement("button",{className:"Toastify__close-button Toastify__close-button--"+n,type:"button",onClick:function(e){e.stopPropagation(),t(e)},"aria-label":r},"\u2716")}function I(e){var t=e.enter,n=e.exit,o=e.duration,a=void 0===o?750:o,l=e.appendPosition,c=void 0!==l&&l;return function(e){var o,l,u=e.children,f=e.position,d=e.preventExitTransition,p=Object(i.a)(e,["children","position","preventExitTransition"]),h=c?t+"--"+f:t,g=c?n+"--"+f:n;Array.isArray(a)&&2===a.length?(o=a[0],l=a[1]):o=l=a;return s.a.createElement(m.a,Object(r.a)({},p,{timeout:d?0:{enter:o,exit:l},onEnter:function(e){e.classList.add(h),e.style.animationFillMode="forwards",e.style.animationDuration=.001*o+"s"},onEntered:function(e){e.classList.remove(h),e.style.cssText=""},onExit:d?S:function(e){e.classList.add(g),e.style.animationFillMode="forwards",e.style.animationDuration=.001*l+"s"}}),u)}}P.propTypes={closeButton:c.a.oneOfType([c.a.node,c.a.bool]).isRequired,autoClose:A.isRequired,children:c.a.node.isRequired,closeToast:c.a.func.isRequired,position:c.a.oneOf(T(v)).isRequired,pauseOnHover:c.a.bool.isRequired,pauseOnFocusLoss:c.a.bool.isRequired,closeOnClick:c.a.bool.isRequired,transition:c.a.func.isRequired,rtl:c.a.bool.isRequired,hideProgressBar:c.a.bool.isRequired,draggable:c.a.bool.isRequired,draggablePercent:c.a.number.isRequired,in:c.a.bool,onExited:c.a.func,onOpen:c.a.func,onClose:c.a.func,type:c.a.oneOf(T(y)),className:c.a.oneOfType([c.a.string,c.a.object]),bodyClassName:c.a.oneOfType([c.a.string,c.a.object]),progressClassName:c.a.oneOfType([c.a.string,c.a.object]),progressStyle:c.a.object,progress:c.a.number,updateId:c.a.oneOfType([c.a.string,c.a.number]),ariaLabel:c.a.string,containerId:c.a.oneOfType([c.a.string,c.a.number]),role:c.a.string},P.defaultProps={type:y.DEFAULT,in:!0,onOpen:S,onClose:S,className:null,bodyClassName:null,progressClassName:null,updateId:null},j.propTypes={closeToast:c.a.func,arialLabel:c.a.string},j.defaultProps={ariaLabel:"close"};var R=I({enter:"Toastify__bounce-enter",exit:"Toastify__bounce-exit",appendPosition:!0}),q=(I({enter:"Toastify__slide-enter",exit:"Toastify__slide-exit",duration:[450,750],appendPosition:!0}),I({enter:"Toastify__zoom-enter",exit:"Toastify__zoom-exit"}),I({enter:"Toastify__flip-enter",exit:"Toastify__flip-exit"}),{list:new Map,on:function(e,t){return this.list.has(e)||this.list.set(e,[]),this.list.get(e).push(t),this},off:function(e){return this.list.delete(e),this},emit:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r0}function $(e,t){var n=function(e){return Y()?e?z.get(e):z.get(H):null}(t.containerId);if(!n)return null;var r=n.collection[e];return"undefined"===typeof r?null:r}function X(e,t){return Object(r.a)({},e,{type:t,toastId:K(e)})}function G(){return(Math.random().toString(36)+Date.now().toString(36)).substr(2,10)}function K(e){return e&&("string"===typeof e.toastId||"number"===typeof e.toastId&&!isNaN(e.toastId))?e.toastId:G()}function Q(e,t){return Y()?q.emit(b,e,t):(W.push({action:b,content:e,options:t}),V&&C&&(V=!1,B=document.createElement("div"),document.body.appendChild(B),Object(g.render)(s.a.createElement(F,U),B))),t.toastId}var J=function(e,t){return Q(e,X(t,t&&t.type||y.DEFAULT))},Z=function(e){y[e]!==y.DEFAULT&&(J[y[e].toLowerCase()]=function(t,n){return Q(t,X(n,n&&n.type||y[e]))})};for(var ee in y)Z(ee);J.warn=J.warning,J.dismiss=function(e){return void 0===e&&(e=null),Y()&&q.emit(w,e)},J.isActive=S,J.update=function(e,t){void 0===t&&(t={}),setTimeout((function(){var n=$(e,t);if(n){var i=n.options,o=n.content,a=Object(r.a)({},i,{},t,{toastId:t.toastId||e});t.toastId&&t.toastId!==e?a.staleToastId=e:a.updateId=G();var s="undefined"!==typeof a.render?a.render:o;delete a.render,Q(s,a)}}),0)},J.done=function(e){J.update(e,{progress:1})},J.onChange=function(e){"function"===typeof e&&q.on(k,e)},J.configure=function(e){V=!0,U=e},J.POSITION=v,J.TYPE=y,q.on(x,(function(e){H=e.props.containerId||e,z.set(H,e),J.isActive=function(t){return e.isToastActive(t)},W.forEach((function(e){q.emit(e.action,e.content,e.options)})),W=[]})).on(_,(function(e){e?z.delete(e.props.containerId||e):z.clear(),J.isActive=S,C&&B&&document.body.removeChild(B)}))},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function i(){for(var e=[],t=0;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1;i--){var o=n[i],a=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(a)>-1&&(r=o)}return g.head.insertBefore(t,r),e}}function $(){for(var e=12,t="";e-- >0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function X(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function G(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n],";")}),"")}function K(e){return e.size!==V.size||e.x!==V.x||e.y!==V.y||e.rotate!==V.rotate||e.flipX||e.flipY}function Q(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,i={transform:"translate(".concat(n/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),a="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),s="rotate(".concat(t.rotate," 0 0)");return{outer:i,inner:{transform:"".concat(o," ").concat(a," ").concat(s)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}var J={x:0,y:0,width:"100%",height:"100%"};function Z(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function ee(e){var t=e.icons,n=t.main,r=t.mask,i=e.prefix,o=e.iconName,a=e.transform,l=e.symbol,c=e.title,u=e.extra,f=e.watchable,d=void 0!==f&&f,p=r.found?r:n,h=p.width,m=p.height,g="fa-w-".concat(Math.ceil(h/m*16)),v=[S.replacementClass,o?"".concat(S.familyPrefix,"-").concat(o):"",g].filter((function(e){return-1===u.classes.indexOf(e)})).concat(u.classes).join(" "),y={children:[],attributes:s({},u.attributes,{"data-prefix":i,"data-icon":o,class:v,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(h," ").concat(m)})};d&&(y.attributes["data-fa-i2svg"]=""),c&&y.children.push({tag:"title",attributes:{id:y.attributes["aria-labelledby"]||"title-".concat($())},children:[c]});var b=s({},y,{prefix:i,iconName:o,main:n,mask:r,transform:a,symbol:l,styles:u.styles}),w=r.found&&n.found?function(e){var t,n=e.children,r=e.attributes,i=e.main,o=e.mask,a=e.transform,l=i.width,c=i.icon,u=o.width,f=o.icon,d=Q({transform:a,containerWidth:u,iconWidth:l}),p={tag:"rect",attributes:s({},J,{fill:"white"})},h=c.children?{children:c.children.map(Z)}:{},m={tag:"g",attributes:s({},d.inner),children:[Z(s({tag:c.tag,attributes:s({},c.attributes,d.path)},h))]},g={tag:"g",attributes:s({},d.outer),children:[m]},v="mask-".concat($()),y="clip-".concat($()),b={tag:"mask",attributes:s({},J,{id:v,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[p,g]},w={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=f,"g"===t.tag?t.children:[t])},b]};return n.push(w,{tag:"rect",attributes:s({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(v,")")},J)}),{children:n,attributes:r}}(b):function(e){var t=e.children,n=e.attributes,r=e.main,i=e.transform,o=G(e.styles);if(o.length>0&&(n.style=o),K(i)){var a=Q({transform:i,containerWidth:r.width,iconWidth:r.width});t.push({tag:"g",attributes:s({},a.outer),children:[{tag:"g",attributes:s({},a.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:s({},r.icon.attributes,a.path)}]}]})}else t.push(r.icon);return{children:t,attributes:n}}(b),x=w.children,_=w.attributes;return b.children=x,b.attributes=_,l?function(e){var t=e.prefix,n=e.iconName,r=e.children,i=e.attributes,o=e.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:s({},i,{id:!0===o?"".concat(t,"-").concat(S.familyPrefix,"-").concat(n):o}),children:r}]}]}(b):function(e){var t=e.children,n=e.main,r=e.mask,i=e.attributes,o=e.styles,a=e.transform;if(K(a)&&n.found&&!r.found){var l={x:n.width/n.height/2,y:.5};i.style=G(s({},o,{"transform-origin":"".concat(l.x+a.x/16,"em ").concat(l.y+a.y/16,"em")}))}return[{tag:"svg",attributes:i,children:t}]}(b)}var te=function(){},ne=(S.measurePerformance&&v&&v.mark&&v.measure,function(e,t,n,r){var i,o,a,s=Object.keys(e),l=s.length,c=void 0!==r?function(e,t){return function(n,r,i,o){return e.call(t,n,r,i,o)}}(t,r):t;for(void 0===n?(i=1,a=e[s[0]]):(i=0,a=n);i2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,i=void 0!==r&&r,o=Object.keys(t).reduce((function(e,n){var r=t[n];return!!r.icon?e[r.iconName]=r.icon:e[n]=r,e}),{});"function"!==typeof T.hooks.addPack||i?T.styles[e]=s({},T.styles[e]||{},o):T.hooks.addPack(e,o),"fas"===e&&re("fa",t)}var ie=T.styles,oe=T.shims,ae=function(){var e=function(e){return ne(ie,(function(t,n,r){return t[r]=ne(n,e,{}),t}),{})};e((function(e,t,n){return t[3]&&(e[t[3]]=n),e})),e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in ie;ne(oe,(function(e,n){var r=n[0],i=n[1],o=n[2];return"far"!==i||t||(i="fas"),e[r]={prefix:i,iconName:o},e}),{})};ae();T.styles;function se(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function le(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,i=e.children,o=void 0===i?[]:i;return"string"===typeof e?X(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(X(e[n]),'" ')}),"").trim()}(r),">").concat(o.map(le).join(""),"")}var ce=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],i=n.slice(1).join("-");if(r&&"h"===i)return e.flipX=!0,e;if(r&&"v"===i)return e.flipY=!0,e;if(i=parseFloat(i),isNaN(i))return e;switch(r){case"grow":e.size=e.size+i;break;case"shrink":e.size=e.size-i;break;case"left":e.x=e.x-i;break;case"right":e.x=e.x+i;break;case"up":e.y=e.y-i;break;case"down":e.y=e.y+i;break;case"rotate":e.rotate=e.rotate+i}return e}),t):t};function ue(e){this.name="MissingIcon",this.message=e||"Icon unavailable",this.stack=(new Error).stack}ue.prototype=Object.create(Error.prototype),ue.prototype.constructor=ue;var fe={fill:"currentColor"},de={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},pe={tag:"path",attributes:s({},fe,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})},he=s({},de,{attributeName:"opacity"});s({},fe,{cx:"256",cy:"364",r:"28"}),s({},de,{attributeName:"r",values:"28;14;28;28;14;28;"}),s({},he,{values:"1;0;1;1;0;1;"}),s({},fe,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),s({},he,{values:"1;0;0;0;0;1;"}),s({},fe,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),s({},he,{values:"0;0;1;1;0;0;"}),T.styles;function me(e){var t=e[0],n=e[1],r=l(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(S.familyPrefix,"-").concat(x.GROUP)},children:[{tag:"path",attributes:{class:"".concat(S.familyPrefix,"-").concat(x.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(S.familyPrefix,"-").concat(x.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}T.styles;function ge(){var e="svg-inline--fa",t=S.familyPrefix,n=S.replacementClass,r='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';if("fa"!==t||n!==e){var i=new RegExp("\\.".concat("fa","\\-"),"g"),o=new RegExp("\\--".concat("fa","\\-"),"g"),a=new RegExp("\\.".concat(e),"g");r=r.replace(i,".".concat(t,"-")).replace(o,"--".concat(t,"-")).replace(a,".".concat(n))}return r}function ve(){S.autoAddCss&&!_e&&(Y(ge()),_e=!0)}function ye(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return le(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(y){var t=g.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function be(e){var t=e.prefix,n=void 0===t?"fa":t,r=e.iconName;if(r)return se(xe.definitions,n,r)||se(T.styles,n,r)}var we,xe=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n,r;return t=e,(n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?V:n,i=t.symbol,o=void 0!==i&&i,a=t.mask,l=void 0===a?null:a,c=t.title,u=void 0===c?null:c,f=t.classes,d=void 0===f?[]:f,p=t.attributes,h=void 0===p?{}:p,m=t.styles,g=void 0===m?{}:m;if(e){var v=e.prefix,y=e.iconName,b=e.icon;return ye(s({type:"icon"},e),(function(){return ve(),S.autoA11y&&(u?h["aria-labelledby"]="".concat(S.replacementClass,"-title-").concat($()):(h["aria-hidden"]="true",h.focusable="false")),ee({icons:{main:me(b),mask:l?me(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:v,iconName:y,transform:s({},V,r),symbol:o,title:u,extra:{attributes:h,styles:g,classes:d}})}))}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(e||{}).icon?e:be(e||{}),r=t.mask;return r&&(r=(r||{}).icon?r:be(r||{})),we(n,s({},t,{mask:r}))})}).call(this,n(24),n(111).setImmediate)},function(e,t,n){e.exports=function(){"use strict";var e=6e4,t=36e5,n="millisecond",r="second",i="minute",o="hour",a="day",s="week",l="month",c="quarter",u="year",f="date",d="Invalid Date",p=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,m={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},g=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},v={s:g,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+g(r,2,"0")+":"+g(i,2,"0")},m:function e(t,n){if(t.date()1)return e(a[0])}else{var s=t.name;b[s]=t,i=s}return!r&&i&&(y=i),i||!r&&y},_=function(e,t){if(w(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new S(n)},k=v;k.l=x,k.i=w,k.w=function(e,t){return _(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var S=function(){function m(e){this.$L=x(e.locale,null,!0),this.parse(e)}var g=m.prototype;return g.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(k.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(p);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(t)}(e),this.$x=e.x||{},this.init()},g.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},g.$utils=function(){return k},g.isValid=function(){return!(this.$d.toString()===d)},g.isSame=function(e,t){var n=_(e);return this.startOf(t)<=n&&n<=this.endOf(t)},g.isAfter=function(e,t){return _(e)1?"element":t},r.extend=function(e,t){var n={},i=[e,t];return r.each(i,(function(e){r.each(e,(function(t,r){e.hasOwnProperty(r)&&(n[r]=t)}))})),n},e.exports&&(e.exports=r)},,,function(e,t,n){"use strict";(function(t){var r=n(20),i=n(124),o=n(58),a={"Content-Type":"application/x-www-form-urlencoded"};function s(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:function(){var e;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof t&&"[object process]"===Object.prototype.toString.call(t))&&(e=n(59)),e}(),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(s(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)||t&&"application/json"===t["Content-Type"]?(s(t,"application/json"),function(e,t,n){if(r.isString(e))try{return(t||JSON.parse)(e),r.trim(e)}catch(i){if("SyntaxError"!==i.name)throw i}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional,n=t&&t.silentJSONParsing,i=t&&t.forcedJSONParsing,a=!n&&"json"===this.responseType;if(a||i&&r.isString(e)&&e.length)try{return JSON.parse(e)}catch(s){if(a){if("SyntaxError"===s.name)throw o(s,this,"E_JSON_PARSE");throw s}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(a)})),e.exports=l}).call(this,n(55))},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,i=Array.isArray,o=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?i+=r.charAt(a):s<128?i+=o[s]:s<2048?i+=o[192|s>>6]+o[128|63&s]:s<55296||s>=57344?i+=o[224|s>>12]+o[128|s>>6&63]+o[128|63&s]:(a+=1,s=65536+((1023&s)<<10|1023&r.charCodeAt(a)),i+=o[240|s>>18]+o[128|s>>12&63]+o[128|s>>6&63]+o[128|63&s])}return i},isBuffer:function(e){return!(!e||"object"!==typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var n=[],r=0;r1)for(var n=1;n!?|~^@]/,h=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function m(e,t,n){return r=e,i=n,t}function g(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){var r,i=!1;if(s&&"@"==e.peek()&&e.match(h))return t.tokenize=g,m("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=n||i);)i=!i&&"\\"==r;return i||(t.tokenize=g),m("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return m("number","number");if("."==r&&e.match(".."))return m("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return m(r);if("="==r&&e.eat(">"))return m("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return m("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),m("number","number");if("/"==r)return e.eat("*")?(t.tokenize=v,v(e,t)):e.eat("/")?(e.skipToEnd(),m("comment","comment")):Je(e,t,1)?(function(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),m("regexp","string-2")):(e.eat("="),m("operator","operator",e.current()));if("`"==r)return t.tokenize=y,y(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),m("meta","meta");if("#"==r&&e.eatWhile(f))return m("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),m("comment","comment");if(p.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?m("."):m("operator","operator",e.current());if(f.test(r)){e.eatWhile(f);var i=e.current();if("."!=t.lastType){if(d.propertyIsEnumerable(i)){var o=d[i];return m(o.type,o.style,i)}if("async"==i&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return m("async","keyword",i)}return m("variable","variable",i)}}function v(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=g;break}r="*"==n}return m("comment","comment")}function y(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=g;break}r=!r&&"\\"==n}return m("quasi","string-2",e.current())}function b(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(u){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,a=n-1;a>=0;--a){var s=e.string.charAt(a),l="([{}])".indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(f.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;if(e.string.charAt(a-1)==s&&"\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var w={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function x(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function _(e,t){if(!c)return!1;for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}function k(e,t,n,r,i){var o=e.cc;for(S.state=e,S.stream=i,S.marked=null,S.cc=o,S.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():l?H:F)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return S.marked?S.marked:"variable"==n&&_(e,r)?"variable-2":t}}var S={state:null,column:null,marked:null,cc:null};function E(){for(var e=arguments.length-1;e>=0;e--)S.cc.push(arguments[e])}function T(){return E.apply(null,arguments),!0}function C(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function O(e){var t=S.state;if(S.marked="def",c){if(t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var r=function e(t,n){if(n){if(n.block){var r=e(t,n.prev);return r?r==n.prev?n:new N(r,n.vars,!0):null}return C(t,n.vars)?n:new N(n.prev,new L(t,n.vars),!1)}return null}(e,t.context);if(null!=r)return void(t.context=r)}else if(!C(e,t.localVars))return void(t.localVars=new L(e,t.localVars));n.globalVars&&!C(e,t.globalVars)&&(t.globalVars=new L(e,t.globalVars))}}function A(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function N(e,t,n){this.prev=e,this.vars=t,this.block=n}function L(e,t){this.name=e,this.next=t}var D=new L("this",new L("arguments",null));function M(){S.state.context=new N(S.state.context,S.state.localVars,!1),S.state.localVars=D}function P(){S.state.context=new N(S.state.context,S.state.localVars,!0),S.state.localVars=null}function j(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}function I(e,t){var n=function(){var n=S.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new x(r,S.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function R(){var e=S.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function q(e){return function t(n){return n==e?T():";"==e||"}"==n||")"==n||"]"==n?E():T(t)}}function F(e,t){return"var"==e?T(I("vardef",t),ke,q(";"),R):"keyword a"==e?T(I("form"),U,F,R):"keyword b"==e?T(I("form"),F,R):"keyword d"==e?S.stream.match(/^\s*$/,!1)?T():T(I("stat"),V,q(";"),R):"debugger"==e?T(q(";")):"{"==e?T(I("}"),P,se,R,j):";"==e?T():"if"==e?("else"==S.state.lexical.info&&S.state.cc[S.state.cc.length-1]==R&&S.state.cc.pop()(),T(I("form"),U,F,R,Ae)):"function"==e?T(Me):"for"==e?T(I("form"),P,Ne,F,j,R):"class"==e||u&&"interface"==t?(S.marked="keyword",T(I("form","class"==e?e:t),qe,R)):"variable"==e?u&&"declare"==t?(S.marked="keyword",T(F)):u&&("module"==t||"enum"==t||"type"==t)&&S.stream.match(/^\s*\w/,!1)?(S.marked="keyword","enum"==t?T(Ke):"type"==t?T(je,q("operator"),de,q(";")):T(I("form"),Se,q("{"),I("}"),se,R,R)):u&&"namespace"==t?(S.marked="keyword",T(I("form"),H,F,R)):u&&"abstract"==t?(S.marked="keyword",T(F)):T(I("stat"),ee):"switch"==e?T(I("form"),U,q("{"),I("}","switch"),P,se,R,R,j):"case"==e?T(H,q(":")):"default"==e?T(q(":")):"catch"==e?T(I("form"),M,z,F,R,j):"export"==e?T(I("stat"),Be,R):"import"==e?T(I("stat"),We,R):"async"==e?T(F):"@"==t?T(H,F):E(I("stat"),H,q(";"),R)}function z(e){if("("==e)return T(Ie,q(")"))}function H(e,t){return W(e,t,!1)}function B(e,t){return W(e,t,!0)}function U(e){return"("!=e?E():T(I(")"),V,q(")"),R)}function W(e,t,n){if(S.state.fatArrowAt==S.stream.start){var r=n?Q:K;if("("==e)return T(M,I(")"),oe(Ie,")"),R,q("=>"),r,j);if("variable"==e)return E(M,Se,q("=>"),r,j)}var i=n?$:Y;return w.hasOwnProperty(e)?T(i):"function"==e?T(Me,i):"class"==e||u&&"interface"==t?(S.marked="keyword",T(I("form"),Re,R)):"keyword c"==e||"async"==e?T(n?B:H):"("==e?T(I(")"),V,q(")"),R,i):"operator"==e||"spread"==e?T(n?B:H):"["==e?T(I("]"),Ge,R,i):"{"==e?ae(ne,"}",null,i):"quasi"==e?E(X,i):"new"==e?T(function(e){return function(t){return"."==t?T(e?Z:J):"variable"==t&&u?T(we,e?$:Y):E(e?B:H)}}(n)):T()}function V(e){return e.match(/[;\}\)\],]/)?E():E(H)}function Y(e,t){return","==e?T(V):$(e,t,!1)}function $(e,t,n){var r=0==n?Y:$,i=0==n?H:B;return"=>"==e?T(M,n?Q:K,j):"operator"==e?/\+\+|--/.test(t)||u&&"!"==t?T(r):u&&"<"==t&&S.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?T(I(">"),oe(de,">"),R,r):"?"==t?T(H,q(":"),i):T(i):"quasi"==e?E(X,r):";"!=e?"("==e?ae(B,")","call",r):"."==e?T(te,r):"["==e?T(I("]"),V,q("]"),R,r):u&&"as"==t?(S.marked="keyword",T(de,r)):"regexp"==e?(S.state.lastType=S.marked="operator",S.stream.backUp(S.stream.pos-S.stream.start-1),T(i)):void 0:void 0}function X(e,t){return"quasi"!=e?E():"${"!=t.slice(t.length-2)?T(X):T(V,G)}function G(e){if("}"==e)return S.marked="string-2",S.state.tokenize=y,T(X)}function K(e){return b(S.stream,S.state),E("{"==e?F:H)}function Q(e){return b(S.stream,S.state),E("{"==e?F:B)}function J(e,t){if("target"==t)return S.marked="keyword",T(Y)}function Z(e,t){if("target"==t)return S.marked="keyword",T($)}function ee(e){return":"==e?T(R,F):E(Y,q(";"),R)}function te(e){if("variable"==e)return S.marked="property",T()}function ne(e,t){return"async"==e?(S.marked="property",T(ne)):"variable"==e||"keyword"==S.style?(S.marked="property","get"==t||"set"==t?T(re):(u&&S.state.fatArrowAt==S.stream.start&&(n=S.stream.match(/^\s*:\s*/,!1))&&(S.state.fatArrowAt=S.stream.pos+n[0].length),T(ie))):"number"==e||"string"==e?(S.marked=s?"property":S.style+" property",T(ie)):"jsonld-keyword"==e?T(ie):u&&A(t)?(S.marked="keyword",T(ne)):"["==e?T(H,le,q("]"),ie):"spread"==e?T(B,ie):"*"==t?(S.marked="keyword",T(ne)):":"==e?E(ie):void 0;var n}function re(e){return"variable"!=e?E(ie):(S.marked="property",T(Me))}function ie(e){return":"==e?T(B):"("==e?E(Me):void 0}function oe(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=S.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),T((function(n,r){return n==t||r==t?E():E(e)}),r)}return i==t||o==t?T():n&&n.indexOf(";")>-1?E(e):T(q(t))}return function(n,i){return n==t||i==t?T():E(e,r)}}function ae(e,t,n){for(var r=3;r"),de):"quasi"==e?E(ge,be):void 0}function pe(e){if("=>"==e)return T(de)}function he(e){return e.match(/[\}\)\]]/)?T():","==e||";"==e?T(he):E(me,he)}function me(e,t){return"variable"==e||"keyword"==S.style?(S.marked="property",T(me)):"?"==t||"number"==e||"string"==e?T(me):":"==e?T(de):"["==e?T(q("variable"),ce,q("]"),me):"("==e?E(Pe,me):e.match(/[;\}\)\],]/)?void 0:T()}function ge(e,t){return"quasi"!=e?E():"${"!=t.slice(t.length-2)?T(ge):T(de,ve)}function ve(e){if("}"==e)return S.marked="string-2",S.state.tokenize=y,T(ge)}function ye(e,t){return"variable"==e&&S.stream.match(/^\s*[?:]/,!1)||"?"==t?T(ye):":"==e?T(de):"spread"==e?T(ye):E(de)}function be(e,t){return"<"==t?T(I(">"),oe(de,">"),R,be):"|"==t||"."==e||"&"==t?T(de):"["==e?T(de,q("]"),be):"extends"==t||"implements"==t?(S.marked="keyword",T(de)):"?"==t?T(de,q(":"),de):void 0}function we(e,t){if("<"==t)return T(I(">"),oe(de,">"),R,be)}function xe(){return E(de,_e)}function _e(e,t){if("="==t)return T(de)}function ke(e,t){return"enum"==t?(S.marked="keyword",T(Ke)):E(Se,le,Ce,Oe)}function Se(e,t){return u&&A(t)?(S.marked="keyword",T(Se)):"variable"==e?(O(t),T()):"spread"==e?T(Se):"["==e?ae(Te,"]"):"{"==e?ae(Ee,"}"):void 0}function Ee(e,t){return"variable"!=e||S.stream.match(/^\s*:/,!1)?("variable"==e&&(S.marked="property"),"spread"==e?T(Se):"}"==e?E():"["==e?T(H,q("]"),q(":"),Ee):T(q(":"),Se,Ce)):(O(t),T(Ce))}function Te(){return E(Se,Ce)}function Ce(e,t){if("="==t)return T(B)}function Oe(e){if(","==e)return T(ke)}function Ae(e,t){if("keyword b"==e&&"else"==t)return T(I("form","else"),F,R)}function Ne(e,t){return"await"==t?T(Ne):"("==e?T(I(")"),Le,R):void 0}function Le(e){return"var"==e?T(ke,De):"variable"==e?T(De):E(De)}function De(e,t){return")"==e?T():";"==e?T(De):"in"==t||"of"==t?(S.marked="keyword",T(H,De)):E(H,De)}function Me(e,t){return"*"==t?(S.marked="keyword",T(Me)):"variable"==e?(O(t),T(Me)):"("==e?T(M,I(")"),oe(Ie,")"),R,ue,F,j):u&&"<"==t?T(I(">"),oe(xe,">"),R,Me):void 0}function Pe(e,t){return"*"==t?(S.marked="keyword",T(Pe)):"variable"==e?(O(t),T(Pe)):"("==e?T(M,I(")"),oe(Ie,")"),R,ue,j):u&&"<"==t?T(I(">"),oe(xe,">"),R,Pe):void 0}function je(e,t){return"keyword"==e||"variable"==e?(S.marked="type",T(je)):"<"==t?T(I(">"),oe(xe,">"),R):void 0}function Ie(e,t){return"@"==t&&T(H,Ie),"spread"==e?T(Ie):u&&A(t)?(S.marked="keyword",T(Ie)):u&&"this"==e?T(le,Ce):E(Se,le,Ce)}function Re(e,t){return"variable"==e?qe(e,t):Fe(e,t)}function qe(e,t){if("variable"==e)return O(t),T(Fe)}function Fe(e,t){return"<"==t?T(I(">"),oe(xe,">"),R,Fe):"extends"==t||"implements"==t||u&&","==e?("implements"==t&&(S.marked="keyword"),T(u?de:H,Fe)):"{"==e?T(I("}"),ze,R):void 0}function ze(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||u&&A(t))&&S.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(S.marked="keyword",T(ze)):"variable"==e||"keyword"==S.style?(S.marked="property",T(He,ze)):"number"==e||"string"==e?T(He,ze):"["==e?T(H,le,q("]"),He,ze):"*"==t?(S.marked="keyword",T(ze)):u&&"("==e?E(Pe,ze):";"==e||","==e?T(ze):"}"==e?T():"@"==t?T(H,ze):void 0}function He(e,t){if("!"==t)return T(He);if("?"==t)return T(He);if(":"==e)return T(de,Ce);if("="==t)return T(B);var n=S.state.lexical.prev;return E(n&&"interface"==n.info?Pe:Me)}function Be(e,t){return"*"==t?(S.marked="keyword",T(Xe,q(";"))):"default"==t?(S.marked="keyword",T(H,q(";"))):"{"==e?T(oe(Ue,"}"),Xe,q(";")):E(F)}function Ue(e,t){return"as"==t?(S.marked="keyword",T(q("variable"))):"variable"==e?E(B,Ue):void 0}function We(e){return"string"==e?T():"("==e?E(H):"."==e?E(Y):E(Ve,Ye,Xe)}function Ve(e,t){return"{"==e?ae(Ve,"}"):("variable"==e&&O(t),"*"==t&&(S.marked="keyword"),T($e))}function Ye(e){if(","==e)return T(Ve,Ye)}function $e(e,t){if("as"==t)return S.marked="keyword",T(Ve)}function Xe(e,t){if("from"==t)return S.marked="keyword",T(H)}function Ge(e){return"]"==e?T():E(oe(B,"]"))}function Ke(){return E(I("form"),Se,q("{"),I("}"),oe(Qe,"}"),R,R)}function Qe(){return E(Se,Ce)}function Je(e,t,n){return t.tokenize==g&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}return j.lex=!0,R.lex=!0,{startState:function(e){var t={tokenize:g,lastType:"sof",cc:[],lexical:new x((e||0)-o,0,"block",!1),localVars:n.localVars,context:n.localVars&&new N(null,null,!1),indented:e||0};return n.globalVars&&"object"==typeof n.globalVars&&(t.globalVars=n.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),b(e,t)),t.tokenize!=v&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==r?n:(t.lastType="operator"!=r||"++"!=i&&"--"!=i?r:"incdec",k(t,n,r,i,e))},indent:function(t,r){if(t.tokenize==v||t.tokenize==y)return e.Pass;if(t.tokenize!=g)return 0;var i,s=r&&r.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(r))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==R)l=l.prev;else if(u!=Ae&&u!=j)break}for(;("stat"==l.type||"form"==l.type)&&("}"==s||(i=t.cc[t.cc.length-1])&&(i==Y||i==$)&&!/^[,\.=+\-*:?[\(]/.test(r));)l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var f=l.type,d=s==f;return"vardef"==f?l.indented+("operator"==t.lastType||","==t.lastType?l.info.length+1:0):"form"==f&&"{"==s?l.indented:"form"==f?l.indented+o:"stat"==f?l.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||p.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,r)?a||o:0):"switch"!=l.info||d||0==n.doubleIndentSwitch?l.align?l.column+(d?0:1):l.indented+(d?0:o):l.indented+(/^(?:case|default)\b/.test(r)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:Je,skipExpression:function(t){k(t,"atom","atom","true",new e.StringStream("",2,null))}}})),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/manifest+json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}(n(29))},function(e,t,n){!function(e){"use strict";var t={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};e.defineMode("xml",(function(r,i){var o,a,s=r.indentUnit,l={},c=i.htmlMode?t:n;for(var u in c)l[u]=c[u];for(var u in i)l[u]=i[u];function f(e,t){function n(n){return t.tokenize=n,n(e,t)}var r=e.next();return"<"==r?e.eat("!")?e.eat("[")?e.match("CDATA[")?n(p("atom","]]>")):null:e.match("--")?n(p("comment","--\x3e")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),n(function e(t){return function(n,r){for(var i;null!=(i=n.next());){if("<"==i)return r.tokenize=e(t+1),r.tokenize(n,r);if(">"==i){if(1==t){r.tokenize=f;break}return r.tokenize=e(t-1),r.tokenize(n,r)}}return"meta"}}(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=p("meta","?>"),"meta"):(o=e.eat("/")?"closeTag":"openTag",t.tokenize=d,"tag bracket"):"&"==r?(e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"))?"atom":"error":(e.eatWhile(/[^&<]/),null)}function d(e,t){var n=e.next();if(">"==n||"/"==n&&e.eat(">"))return t.tokenize=f,o=">"==n?"endTag":"selfcloseTag","tag bracket";if("="==n)return o="equals",null;if("<"==n){t.tokenize=f,t.state=v,t.tagName=t.tagStart=null;var r=t.tokenize(e,t);return r?r+" tag error":"tag error"}return/[\'\"]/.test(n)?(t.tokenize=function(e){var t=function(t,n){for(;!t.eol();)if(t.next()==e){n.tokenize=d;break}return"string"};return t.isInAttribute=!0,t}(n),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function p(e,t){return function(n,r){for(;!n.eol();){if(n.match(t)){r.tokenize=f;break}n.next()}return e}}function h(e,t,n){this.prev=e.context,this.tagName=t||"",this.indent=e.indented,this.startOfLine=n,(l.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function m(e){e.context&&(e.context=e.context.prev)}function g(e,t){for(var n;;){if(!e.context)return;if(n=e.context.tagName,!l.contextGrabbers.hasOwnProperty(n)||!l.contextGrabbers[n].hasOwnProperty(t))return;m(e)}}function v(e,t,n){return"openTag"==e?(n.tagStart=t.column(),y):"closeTag"==e?b:v}function y(e,t,n){return"word"==e?(n.tagName=t.current(),a="tag",_):l.allowMissingTagName&&"endTag"==e?(a="tag bracket",_(e,0,n)):(a="error",y)}function b(e,t,n){if("word"==e){var r=t.current();return n.context&&n.context.tagName!=r&&l.implicitlyClosed.hasOwnProperty(n.context.tagName)&&m(n),n.context&&n.context.tagName==r||!1===l.matchClosing?(a="tag",w):(a="tag error",x)}return l.allowMissingTagName&&"endTag"==e?(a="tag bracket",w(e,0,n)):(a="error",x)}function w(e,t,n){return"endTag"!=e?(a="error",w):(m(n),v)}function x(e,t,n){return a="error",w(e,0,n)}function _(e,t,n){if("word"==e)return a="attribute",k;if("endTag"==e||"selfcloseTag"==e){var r=n.tagName,i=n.tagStart;return n.tagName=n.tagStart=null,"selfcloseTag"==e||l.autoSelfClosers.hasOwnProperty(r)?g(n,r):(g(n,r),n.context=new h(n,r,i==n.indented)),v}return a="error",_}function k(e,t,n){return"equals"==e?S:(l.allowMissing||(a="error"),_(e,0,n))}function S(e,t,n){return"string"==e?E:"word"==e&&l.allowUnquoted?(a="string",_):(a="error",_(e,0,n))}function E(e,t,n){return"string"==e?E:_(e,0,n)}return f.isInText=!0,{startState:function(e){var t={tokenize:f,state:v,indented:e||0,tagName:null,tagStart:null,context:null};return null!=e&&(t.baseIndent=e),t},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;o=null;var n=t.tokenize(e,t);return(n||o)&&"comment"!=n&&(a=null,t.state=t.state(o||n,e,t),a&&(n="error"==a?n+" error":a)),n},indent:function(t,n,r){var i=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+s;if(i&&i.noIndent)return e.Pass;if(t.tokenize!=d&&t.tokenize!=f)return r?r.match(/^(\s*)/)[0].length:0;if(t.tagName)return!1!==l.multilineTagIndentPastTag?t.tagStart+t.tagName.length+2:t.tagStart+s*(l.multilineTagIndentFactor||1);if(l.alignCDATA&&/$/,blockCommentStart:"\x3c!--",blockCommentEnd:"--\x3e",configuration:l.htmlMode?"html":"xml",helperType:l.htmlMode?"html":"xml",skipAttribute:function(e){e.state==S&&(e.state=_)},xmlCurrentTag:function(e){return e.tagName?{name:e.tagName,close:"closeTag"==e.type}:null},xmlCurrentContext:function(e){for(var t=[],n=e.context;n;n=n.prev)t.push(n.tagName);return t.reverse()}}})),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}(n(29))},function(e,t,n){!function(e){"use strict";var t={script:[["lang",/(javascript|babel)/i,"javascript"],["type",/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,"javascript"],["type",/./,"text/plain"],[null,null,"javascript"]],style:[["lang",/^css$/i,"css"],["type",/^(text\/)?(x-)?(stylesheet|css)$/i,"css"],["type",/./,"text/plain"],[null,null,"css"]]},n={};function r(e,t){var r=e.match(function(e){var t=n[e];return t||(n[e]=new RegExp("\\s+"+e+"\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"))}(t));return r?/^\s*(.*?)\s*$/.exec(r[2])[1]:""}function i(e,t){return new RegExp((t?"^":"")+"","i")}function o(e,t){for(var n in e)for(var r=t[n]||(t[n]=[]),i=e[n],o=i.length-1;o>=0;o--)r.unshift(i[o])}e.defineMode("htmlmixed",(function(n,a){var s=e.getMode(n,{name:"xml",htmlMode:!0,multilineTagIndentFactor:a.multilineTagIndentFactor,multilineTagIndentPastTag:a.multilineTagIndentPastTag,allowMissingTagName:a.allowMissingTagName}),l={},c=a&&a.tags,u=a&&a.scriptTypes;if(o(t,l),c&&o(c,l),u)for(var f=u.length-1;f>=0;f--)l.script.unshift(["type",u[f].matches,u[f].mode]);function d(t,o){var a,c=s.token(t,o.htmlState),u=/\btag\b/.test(c);if(u&&!/[<>\s\/]/.test(t.current())&&(a=o.htmlState.tagName&&o.htmlState.tagName.toLowerCase())&&l.hasOwnProperty(a))o.inTag=a+" ";else if(o.inTag&&u&&/>$/.test(t.current())){var f=/^([\S]+) (.*)/.exec(o.inTag);o.inTag=null;var p=">"==t.current()&&function(e,t){for(var n=0;n-1?e.backUp(r.length-i):r.match(/<\/?$/)&&(e.backUp(r.length),e.match(t,!1)||e.match(r)),n}(e,g,t.localMode.token(e,t.localState))},o.localMode=h,o.localState=e.startState(h,s.indent(o.htmlState,"",""))}else o.inTag&&(o.inTag+=t.current(),t.eol()&&(o.inTag+=" "));return c}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:e.startState(s)}},copyState:function(t){var n;return t.localState&&(n=e.copyState(t.localMode,t.localState)),{token:t.token,inTag:t.inTag,localMode:t.localMode,localState:n,htmlState:e.copyState(s,t.htmlState)}},token:function(e,t){return t.token(e,t)},indent:function(t,n,r){return!t.localMode||/^\s*<\//.test(n)?s.indent(t.htmlState,n,r):t.localMode.indent?t.localMode.indent(t.localState,n,r):e.Pass},innerMode:function(e){return{state:e.localState||e.htmlState,mode:e.localMode||s}}}}),"xml","javascript","css"),e.defineMIME("text/html","htmlmixed")}(n(29),n(68),n(67),n(70))},function(e,t,n){!function(e){"use strict";function t(e){for(var t={},n=0;n*\/]/.test(n)?_(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?_("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?_(null,n):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=E),_("variable callee","variable")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),_("property","word")):_(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),_("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?_("variable-2","variable-definition"):_("variable-2","variable")):e.match(/^\w+-/)?_("meta","meta"):void 0}function S(e){return function(t,n){for(var r,i=!1;null!=(r=t.next());){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),_("string","string")}}function E(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=S(")"),_(null,"(")}function T(e,t,n){this.type=e,this.indent=t,this.prev=n}function C(e,t,n,r){return e.context=new T(n,t.indentation()+(!1===r?0:a),e.context),n}function O(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function A(e,t,n){return D[n.context.type](e,t,n)}function N(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return A(e,t,n)}function L(e){var t=e.current().toLowerCase();o=v.hasOwnProperty(t)?"atom":g.hasOwnProperty(t)?"keyword":"variable"}var D={top:function(e,t,n){if("{"==e)return C(n,t,"block");if("}"==e&&n.context.prev)return O(n);if(w&&/@component/i.test(e))return C(n,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return C(n,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return C(n,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return n.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return C(n,t,"at");if("hash"==e)o="builtin";else if("word"==e)o="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return C(n,t,"interpolation");if(":"==e)return"pseudo";if(y&&"("==e)return C(n,t,"parens")}return n.context.type},block:function(e,t,n){if("word"==e){var r=t.current().toLowerCase();return d.hasOwnProperty(r)?(o="property","maybeprop"):p.hasOwnProperty(r)?(o=x?"string-2":"property","maybeprop"):y?(o=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(o+=" error","maybeprop")}return"meta"==e?"block":y||"hash"!=e&&"qualifier"!=e?D.top(e,t,n):(o="error","block")},maybeprop:function(e,t,n){return":"==e?C(n,t,"prop"):A(e,t,n)},prop:function(e,t,n){if(";"==e)return O(n);if("{"==e&&y)return C(n,t,"propBlock");if("}"==e||"{"==e)return N(e,t,n);if("("==e)return C(n,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if("word"==e)L(t);else if("interpolation"==e)return C(n,t,"interpolation")}else o+=" error";return"prop"},propBlock:function(e,t,n){return"}"==e?O(n):"word"==e?(o="property","maybeprop"):n.context.type},parens:function(e,t,n){return"{"==e||"}"==e?N(e,t,n):")"==e?O(n):"("==e?C(n,t,"parens"):"interpolation"==e?C(n,t,"interpolation"):("word"==e&&L(t),"parens")},pseudo:function(e,t,n){return"meta"==e?"pseudo":"word"==e?(o="variable-3",n.context.type):A(e,t,n)},documentTypes:function(e,t,n){return"word"==e&&l.hasOwnProperty(t.current())?(o="tag",n.context.type):D.atBlock(e,t,n)},atBlock:function(e,t,n){if("("==e)return C(n,t,"atBlock_parens");if("}"==e||";"==e)return N(e,t,n);if("{"==e)return O(n)&&C(n,t,y?"block":"top");if("interpolation"==e)return C(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();o="only"==r||"not"==r||"and"==r||"or"==r?"keyword":c.hasOwnProperty(r)?"attribute":u.hasOwnProperty(r)?"property":f.hasOwnProperty(r)?"keyword":d.hasOwnProperty(r)?"property":p.hasOwnProperty(r)?x?"string-2":"property":v.hasOwnProperty(r)?"atom":g.hasOwnProperty(r)?"keyword":"error"}return n.context.type},atComponentBlock:function(e,t,n){return"}"==e?N(e,t,n):"{"==e?O(n)&&C(n,t,y?"block":"top",!1):("word"==e&&(o="error"),n.context.type)},atBlock_parens:function(e,t,n){return")"==e?O(n):"{"==e||"}"==e?N(e,t,n,2):D.atBlock(e,t,n)},restricted_atBlock_before:function(e,t,n){return"{"==e?C(n,t,"restricted_atBlock"):"word"==e&&"@counter-style"==n.stateArg?(o="variable","restricted_atBlock_before"):A(e,t,n)},restricted_atBlock:function(e,t,n){return"}"==e?(n.stateArg=null,O(n)):"word"==e?(o="@font-face"==n.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==n.stateArg&&!m.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,n){return"word"==e?(o="variable","keyframes"):"{"==e?C(n,t,"top"):A(e,t,n)},at:function(e,t,n){return";"==e?O(n):"{"==e||"}"==e?N(e,t,n):("word"==e?o="tag":"hash"==e&&(o="builtin"),"at")},interpolation:function(e,t,n){return"}"==e?O(n):"{"==e||";"==e?N(e,t,n):("word"==e?o="variable":"variable"!=e&&"("!=e&&")"!=e&&(o="error"),"interpolation")}};return{startState:function(e){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new T(r?"block":"top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var n=(t.tokenize||k)(e,t);return n&&"object"==typeof n&&(i=n[1],n=n[0]),o=n,"comment"!=i&&(t.state=D[t.state](i,e,t)),o},indent:function(e,t){var n=e.context,r=t&&t.charAt(0),i=n.indent;return"prop"!=n.type||"}"!=r&&")"!=r||(n=n.prev),n.prev&&("}"!=r||"block"!=n.type&&"top"!=n.type&&"interpolation"!=n.type&&"restricted_atBlock"!=n.type?(")"!=r||"parens"!=n.type&&"atBlock_parens"!=n.type)&&("{"!=r||"at"!=n.type&&"atBlock"!=n.type)||(i=Math.max(0,n.indent-a)):i=(n=n.prev).indent),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",blockCommentContinue:" * ",lineComment:b,fold:"brace"}}));var n=["domain","regexp","url","url-prefix"],r=t(n),i=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],o=t(i),a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme"],s=t(a),l=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light"],c=t(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],f=t(u),d=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],p=t(d),h=t(["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"]),m=t(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),g=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],v=t(g),y=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],b=t(y),w=n.concat(i).concat(a).concat(l).concat(u).concat(d).concat(g).concat(y);function x(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}e.registerHelper("hintWords","css",w),e.defineMIME("text/css",{documentTypes:r,mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:h,counterDescriptors:m,colorKeywords:v,valueKeywords:b,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=x,x(e,t))}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:v,valueKeywords:b,fontProperties:h,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=x,x(e,t)):["operator","operator"]},":":function(e){return!!e.match(/^\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:o,mediaFeatures:s,mediaValueKeywords:c,propertyKeywords:f,nonStandardPropertyKeywords:p,colorKeywords:v,valueKeywords:b,fontProperties:h,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=x,x(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"}),e.defineMIME("text/x-gss",{documentTypes:r,mediaTypes:o,mediaFeatures:s,propertyKeywords:f,nonStandardPropertyKeywords:p,fontProperties:h,counterDescriptors:m,colorKeywords:v,valueKeywords:b,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=x,x(e,t))}},name:"css",helperType:"gss"})}(n(29))},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){return o.default[e.type](e,t,n)};var r,i=n(162),o=(r=i)&&r.__esModule?r:{default:r}},function(e,t,n){var r=n(74),i={input:!0,option:!0,optgroup:!0,select:!0,button:!0,datalist:!0,textarea:!0},o={tr:{tr:!0,th:!0,td:!0},th:{th:!0},td:{thead:!0,th:!0,td:!0},body:{head:!0,link:!0,script:!0},li:{li:!0},p:{p:!0},h1:{p:!0},h2:{p:!0},h3:{p:!0},h4:{p:!0},h5:{p:!0},h6:{p:!0},select:i,input:i,output:i,button:i,datalist:i,textarea:i,option:{option:!0},optgroup:{optgroup:!0}},a={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},s={__proto__:null,math:!0,svg:!0},l={__proto__:null,mi:!0,mo:!0,mn:!0,ms:!0,mtext:!0,"annotation-xml":!0,foreignObject:!0,desc:!0,title:!0},c=/\s|\//;function u(e,t){this._options=t||{},this._cbs=e||{},this._tagname="",this._attribname="",this._attribvalue="",this._attribs=null,this._stack=[],this._foreignContext=[],this.startIndex=0,this.endIndex=null,this._lowerCaseTagNames="lowerCaseTags"in this._options?!!this._options.lowerCaseTags:!this._options.xmlMode,this._lowerCaseAttributeNames="lowerCaseAttributeNames"in this._options?!!this._options.lowerCaseAttributeNames:!this._options.xmlMode,this._options.Tokenizer&&(r=this._options.Tokenizer),this._tokenizer=new r(this._options,this),this._cbs.onparserinit&&this._cbs.onparserinit(this)}n(44)(u,n(168).EventEmitter),u.prototype._updatePosition=function(e){null===this.endIndex?this._tokenizer._sectionStart<=e?this.startIndex=0:this.startIndex=this._tokenizer._sectionStart-e:this.startIndex=this.endIndex+1,this.endIndex=this._tokenizer.getAbsoluteIndex()},u.prototype.ontext=function(e){this._updatePosition(1),this.endIndex--,this._cbs.ontext&&this._cbs.ontext(e)},u.prototype.onopentagname=function(e){if(this._lowerCaseTagNames&&(e=e.toLowerCase()),this._tagname=e,!this._options.xmlMode&&e in o)for(var t;(t=this._stack[this._stack.length-1])in o[e];this.onclosetag(t));!this._options.xmlMode&&e in a||(this._stack.push(e),e in s?this._foreignContext.push(!0):e in l&&this._foreignContext.push(!1)),this._cbs.onopentagname&&this._cbs.onopentagname(e),this._cbs.onopentag&&(this._attribs={})},u.prototype.onopentagend=function(){this._updatePosition(1),this._attribs&&(this._cbs.onopentag&&this._cbs.onopentag(this._tagname,this._attribs),this._attribs=null),!this._options.xmlMode&&this._cbs.onclosetag&&this._tagname in a&&this._cbs.onclosetag(this._tagname),this._tagname=""},u.prototype.onclosetag=function(e){if(this._updatePosition(1),this._lowerCaseTagNames&&(e=e.toLowerCase()),(e in s||e in l)&&this._foreignContext.pop(),!this._stack.length||e in a&&!this._options.xmlMode)this._options.xmlMode||"br"!==e&&"p"!==e||(this.onopentagname(e),this._closeCurrentTag());else{var t=this._stack.lastIndexOf(e);if(-1!==t)if(this._cbs.onclosetag)for(t=this._stack.length-t;t--;)this._cbs.onclosetag(this._stack.pop());else this._stack.length=t;else"p"!==e||this._options.xmlMode||(this.onopentagname(e),this._closeCurrentTag())}},u.prototype.onselfclosingtag=function(){this._options.xmlMode||this._options.recognizeSelfClosing||this._foreignContext[this._foreignContext.length-1]?this._closeCurrentTag():this.onopentagend()},u.prototype._closeCurrentTag=function(){var e=this._tagname;this.onopentagend(),this._stack[this._stack.length-1]===e&&(this._cbs.onclosetag&&this._cbs.onclosetag(e),this._stack.pop())},u.prototype.onattribname=function(e){this._lowerCaseAttributeNames&&(e=e.toLowerCase()),this._attribname=e},u.prototype.onattribdata=function(e){this._attribvalue+=e},u.prototype.onattribend=function(){this._cbs.onattribute&&this._cbs.onattribute(this._attribname,this._attribvalue),this._attribs&&!Object.prototype.hasOwnProperty.call(this._attribs,this._attribname)&&(this._attribs[this._attribname]=this._attribvalue),this._attribname="",this._attribvalue=""},u.prototype._getInstructionName=function(e){var t=e.search(c),n=t<0?e:e.substr(0,t);return this._lowerCaseTagNames&&(n=n.toLowerCase()),n},u.prototype.ondeclaration=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("!"+t,"!"+e)}},u.prototype.onprocessinginstruction=function(e){if(this._cbs.onprocessinginstruction){var t=this._getInstructionName(e);this._cbs.onprocessinginstruction("?"+t,"?"+e)}},u.prototype.oncomment=function(e){this._updatePosition(4),this._cbs.oncomment&&this._cbs.oncomment(e),this._cbs.oncommentend&&this._cbs.oncommentend()},u.prototype.oncdata=function(e){this._updatePosition(1),this._options.xmlMode||this._options.recognizeCDATA?(this._cbs.oncdatastart&&this._cbs.oncdatastart(),this._cbs.ontext&&this._cbs.ontext(e),this._cbs.oncdataend&&this._cbs.oncdataend()):this.oncomment("[CDATA["+e+"]]")},u.prototype.onerror=function(e){this._cbs.onerror&&this._cbs.onerror(e)},u.prototype.onend=function(){if(this._cbs.onclosetag)for(var e=this._stack.length;e>0;this._cbs.onclosetag(this._stack[--e]));this._cbs.onend&&this._cbs.onend()},u.prototype.reset=function(){this._cbs.onreset&&this._cbs.onreset(),this._tokenizer.reset(),this._tagname="",this._attribname="",this._attribs=null,this._stack=[],this._cbs.onparserinit&&this._cbs.onparserinit(this)},u.prototype.parseComplete=function(e){this.reset(),this.end(e)},u.prototype.write=function(e){this._tokenizer.write(e)},u.prototype.end=function(e){this._tokenizer.end(e)},u.prototype.pause=function(){this._tokenizer.pause()},u.prototype.resume=function(){this._tokenizer.resume()},u.prototype.parseChunk=u.prototype.write,u.prototype.done=u.prototype.end,e.exports=u},function(e,t,n){e.exports=ge;var r=n(163),i=n(165),o=n(166),a=n(167),s=0,l=s++,c=s++,u=s++,f=s++,d=s++,p=s++,h=s++,m=s++,g=s++,v=s++,y=s++,b=s++,w=s++,x=s++,_=s++,k=s++,S=s++,E=s++,T=s++,C=s++,O=s++,A=s++,N=s++,L=s++,D=s++,M=s++,P=s++,j=s++,I=s++,R=s++,q=s++,F=s++,z=s++,H=s++,B=s++,U=s++,W=s++,V=s++,Y=s++,$=s++,X=s++,G=s++,K=s++,Q=s++,J=s++,Z=s++,ee=s++,te=s++,ne=s++,re=s++,ie=s++,oe=s++,ae=s++,se=s++,le=s++,ce=0,ue=ce++,fe=ce++,de=ce++;function pe(e){return" "===e||"\n"===e||"\t"===e||"\f"===e||"\r"===e}function he(e,t,n){var r=e.toLowerCase();return e===r?function(e){e===r?this._state=t:(this._state=n,this._index--)}:function(i){i===r||i===e?this._state=t:(this._state=n,this._index--)}}function me(e,t){var n=e.toLowerCase();return function(r){r===n||r===e?this._state=t:(this._state=u,this._index--)}}function ge(e,t){this._state=l,this._buffer="",this._sectionStart=0,this._index=0,this._bufferOffset=0,this._baseState=l,this._special=ue,this._cbs=t,this._running=!0,this._ended=!1,this._xmlMode=!(!e||!e.xmlMode),this._decodeEntities=!(!e||!e.decodeEntities)}ge.prototype._stateText=function(e){"<"===e?(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._state=c,this._sectionStart=this._index):this._decodeEntities&&this._special===ue&&"&"===e&&(this._index>this._sectionStart&&this._cbs.ontext(this._getSection()),this._baseState=l,this._state=ie,this._sectionStart=this._index)},ge.prototype._stateBeforeTagName=function(e){"/"===e?this._state=d:"<"===e?(this._cbs.ontext(this._getSection()),this._sectionStart=this._index):">"===e||this._special!==ue||pe(e)?this._state=l:"!"===e?(this._state=_,this._sectionStart=this._index+1):"?"===e?(this._state=S,this._sectionStart=this._index+1):(this._state=this._xmlMode||"s"!==e&&"S"!==e?u:q,this._sectionStart=this._index)},ge.prototype._stateInTagName=function(e){("/"===e||">"===e||pe(e))&&(this._emitToken("onopentagname"),this._state=m,this._index--)},ge.prototype._stateBeforeCloseingTagName=function(e){pe(e)||(">"===e?this._state=l:this._special!==ue?"s"===e||"S"===e?this._state=F:(this._state=l,this._index--):(this._state=p,this._sectionStart=this._index))},ge.prototype._stateInCloseingTagName=function(e){(">"===e||pe(e))&&(this._emitToken("onclosetag"),this._state=h,this._index--)},ge.prototype._stateAfterCloseingTagName=function(e){">"===e&&(this._state=l,this._sectionStart=this._index+1)},ge.prototype._stateBeforeAttributeName=function(e){">"===e?(this._cbs.onopentagend(),this._state=l,this._sectionStart=this._index+1):"/"===e?this._state=f:pe(e)||(this._state=g,this._sectionStart=this._index)},ge.prototype._stateInSelfClosingTag=function(e){">"===e?(this._cbs.onselfclosingtag(),this._state=l,this._sectionStart=this._index+1):pe(e)||(this._state=m,this._index--)},ge.prototype._stateInAttributeName=function(e){("="===e||"/"===e||">"===e||pe(e))&&(this._cbs.onattribname(this._getSection()),this._sectionStart=-1,this._state=v,this._index--)},ge.prototype._stateAfterAttributeName=function(e){"="===e?this._state=y:"/"===e||">"===e?(this._cbs.onattribend(),this._state=m,this._index--):pe(e)||(this._cbs.onattribend(),this._state=g,this._sectionStart=this._index)},ge.prototype._stateBeforeAttributeValue=function(e){'"'===e?(this._state=b,this._sectionStart=this._index+1):"'"===e?(this._state=w,this._sectionStart=this._index+1):pe(e)||(this._state=x,this._sectionStart=this._index,this._index--)},ge.prototype._stateInAttributeValueDoubleQuotes=function(e){'"'===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=m):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ie,this._sectionStart=this._index)},ge.prototype._stateInAttributeValueSingleQuotes=function(e){"'"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=m):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ie,this._sectionStart=this._index)},ge.prototype._stateInAttributeValueNoQuotes=function(e){pe(e)||">"===e?(this._emitToken("onattribdata"),this._cbs.onattribend(),this._state=m,this._index--):this._decodeEntities&&"&"===e&&(this._emitToken("onattribdata"),this._baseState=this._state,this._state=ie,this._sectionStart=this._index)},ge.prototype._stateBeforeDeclaration=function(e){this._state="["===e?A:"-"===e?E:k},ge.prototype._stateInDeclaration=function(e){">"===e&&(this._cbs.ondeclaration(this._getSection()),this._state=l,this._sectionStart=this._index+1)},ge.prototype._stateInProcessingInstruction=function(e){">"===e&&(this._cbs.onprocessinginstruction(this._getSection()),this._state=l,this._sectionStart=this._index+1)},ge.prototype._stateBeforeComment=function(e){"-"===e?(this._state=T,this._sectionStart=this._index+1):this._state=k},ge.prototype._stateInComment=function(e){"-"===e&&(this._state=C)},ge.prototype._stateAfterComment1=function(e){this._state="-"===e?O:T},ge.prototype._stateAfterComment2=function(e){">"===e?(this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2)),this._state=l,this._sectionStart=this._index+1):"-"!==e&&(this._state=T)},ge.prototype._stateBeforeCdata1=he("C",N,k),ge.prototype._stateBeforeCdata2=he("D",L,k),ge.prototype._stateBeforeCdata3=he("A",D,k),ge.prototype._stateBeforeCdata4=he("T",M,k),ge.prototype._stateBeforeCdata5=he("A",P,k),ge.prototype._stateBeforeCdata6=function(e){"["===e?(this._state=j,this._sectionStart=this._index+1):(this._state=k,this._index--)},ge.prototype._stateInCdata=function(e){"]"===e&&(this._state=I)},ge.prototype._stateAfterCdata1=function(e){this._state="]"===e?R:j},ge.prototype._stateAfterCdata2=function(e){">"===e?(this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2)),this._state=l,this._sectionStart=this._index+1):"]"!==e&&(this._state=j)},ge.prototype._stateBeforeSpecial=function(e){"c"===e||"C"===e?this._state=z:"t"===e||"T"===e?this._state=K:(this._state=u,this._index--)},ge.prototype._stateBeforeSpecialEnd=function(e){this._special!==fe||"c"!==e&&"C"!==e?this._special!==de||"t"!==e&&"T"!==e?this._state=l:this._state=ee:this._state=V},ge.prototype._stateBeforeScript1=me("R",H),ge.prototype._stateBeforeScript2=me("I",B),ge.prototype._stateBeforeScript3=me("P",U),ge.prototype._stateBeforeScript4=me("T",W),ge.prototype._stateBeforeScript5=function(e){("/"===e||">"===e||pe(e))&&(this._special=fe),this._state=u,this._index--},ge.prototype._stateAfterScript1=he("R",Y,l),ge.prototype._stateAfterScript2=he("I",$,l),ge.prototype._stateAfterScript3=he("P",X,l),ge.prototype._stateAfterScript4=he("T",G,l),ge.prototype._stateAfterScript5=function(e){">"===e||pe(e)?(this._special=ue,this._state=p,this._sectionStart=this._index-6,this._index--):this._state=l},ge.prototype._stateBeforeStyle1=me("Y",Q),ge.prototype._stateBeforeStyle2=me("L",J),ge.prototype._stateBeforeStyle3=me("E",Z),ge.prototype._stateBeforeStyle4=function(e){("/"===e||">"===e||pe(e))&&(this._special=de),this._state=u,this._index--},ge.prototype._stateAfterStyle1=he("Y",te,l),ge.prototype._stateAfterStyle2=he("L",ne,l),ge.prototype._stateAfterStyle3=he("E",re,l),ge.prototype._stateAfterStyle4=function(e){">"===e||pe(e)?(this._special=ue,this._state=p,this._sectionStart=this._index-5,this._index--):this._state=l},ge.prototype._stateBeforeEntity=he("#",oe,ae),ge.prototype._stateBeforeNumericEntity=he("X",le,se),ge.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+16&&(t=6);t>=2;){var n=this._buffer.substr(e,t);if(o.hasOwnProperty(n))return this._emitPartial(o[n]),void(this._sectionStart+=t+1);t--}},ge.prototype._stateInNamedEntity=function(e){";"===e?(this._parseNamedEntityStrict(),this._sectionStart+1"z")&&(e<"A"||e>"Z")&&(e<"0"||e>"9")&&(this._xmlMode||this._sectionStart+1===this._index||(this._baseState!==l?"="!==e&&this._parseNamedEntityStrict():this._parseLegacyEntity()),this._state=this._baseState,this._index--)},ge.prototype._decodeNumericEntity=function(e,t){var n=this._sectionStart+e;if(n!==this._index){var i=this._buffer.substring(n,this._index),o=parseInt(i,t);this._emitPartial(r(o)),this._sectionStart=this._index}else this._sectionStart--;this._state=this._baseState},ge.prototype._stateInNumericEntity=function(e){";"===e?(this._decodeNumericEntity(2,10),this._sectionStart++):(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(2,10),this._index--)},ge.prototype._stateInHexEntity=function(e){";"===e?(this._decodeNumericEntity(3,16),this._sectionStart++):(e<"a"||e>"f")&&(e<"A"||e>"F")&&(e<"0"||e>"9")&&(this._xmlMode?this._state=this._baseState:this._decodeNumericEntity(3,16),this._index--)},ge.prototype._cleanup=function(){this._sectionStart<0?(this._buffer="",this._bufferOffset+=this._index,this._index=0):this._running&&(this._state===l?(this._sectionStart!==this._index&&this._cbs.ontext(this._buffer.substr(this._sectionStart)),this._buffer="",this._bufferOffset+=this._index,this._index=0):this._sectionStart===this._index?(this._buffer="",this._bufferOffset+=this._index,this._index=0):(this._buffer=this._buffer.substr(this._sectionStart),this._index-=this._sectionStart,this._bufferOffset+=this._sectionStart),this._sectionStart=0)},ge.prototype.write=function(e){this._ended&&this._cbs.onerror(Error(".write() after done!")),this._buffer+=e,this._parse()},ge.prototype._parse=function(){for(;this._index","GT":">","Gt":"\u226b","gtdot":"\u22d7","gtlPar":"\u2995","gtquest":"\u2a7c","gtrapprox":"\u2a86","gtrarr":"\u2978","gtrdot":"\u22d7","gtreqless":"\u22db","gtreqqless":"\u2a8c","gtrless":"\u2277","gtrsim":"\u2273","gvertneqq":"\u2269\ufe00","gvnE":"\u2269\ufe00","Hacek":"\u02c7","hairsp":"\u200a","half":"\xbd","hamilt":"\u210b","HARDcy":"\u042a","hardcy":"\u044a","harrcir":"\u2948","harr":"\u2194","hArr":"\u21d4","harrw":"\u21ad","Hat":"^","hbar":"\u210f","Hcirc":"\u0124","hcirc":"\u0125","hearts":"\u2665","heartsuit":"\u2665","hellip":"\u2026","hercon":"\u22b9","hfr":"\ud835\udd25","Hfr":"\u210c","HilbertSpace":"\u210b","hksearow":"\u2925","hkswarow":"\u2926","hoarr":"\u21ff","homtht":"\u223b","hookleftarrow":"\u21a9","hookrightarrow":"\u21aa","hopf":"\ud835\udd59","Hopf":"\u210d","horbar":"\u2015","HorizontalLine":"\u2500","hscr":"\ud835\udcbd","Hscr":"\u210b","hslash":"\u210f","Hstrok":"\u0126","hstrok":"\u0127","HumpDownHump":"\u224e","HumpEqual":"\u224f","hybull":"\u2043","hyphen":"\u2010","Iacute":"\xcd","iacute":"\xed","ic":"\u2063","Icirc":"\xce","icirc":"\xee","Icy":"\u0418","icy":"\u0438","Idot":"\u0130","IEcy":"\u0415","iecy":"\u0435","iexcl":"\xa1","iff":"\u21d4","ifr":"\ud835\udd26","Ifr":"\u2111","Igrave":"\xcc","igrave":"\xec","ii":"\u2148","iiiint":"\u2a0c","iiint":"\u222d","iinfin":"\u29dc","iiota":"\u2129","IJlig":"\u0132","ijlig":"\u0133","Imacr":"\u012a","imacr":"\u012b","image":"\u2111","ImaginaryI":"\u2148","imagline":"\u2110","imagpart":"\u2111","imath":"\u0131","Im":"\u2111","imof":"\u22b7","imped":"\u01b5","Implies":"\u21d2","incare":"\u2105","in":"\u2208","infin":"\u221e","infintie":"\u29dd","inodot":"\u0131","intcal":"\u22ba","int":"\u222b","Int":"\u222c","integers":"\u2124","Integral":"\u222b","intercal":"\u22ba","Intersection":"\u22c2","intlarhk":"\u2a17","intprod":"\u2a3c","InvisibleComma":"\u2063","InvisibleTimes":"\u2062","IOcy":"\u0401","iocy":"\u0451","Iogon":"\u012e","iogon":"\u012f","Iopf":"\ud835\udd40","iopf":"\ud835\udd5a","Iota":"\u0399","iota":"\u03b9","iprod":"\u2a3c","iquest":"\xbf","iscr":"\ud835\udcbe","Iscr":"\u2110","isin":"\u2208","isindot":"\u22f5","isinE":"\u22f9","isins":"\u22f4","isinsv":"\u22f3","isinv":"\u2208","it":"\u2062","Itilde":"\u0128","itilde":"\u0129","Iukcy":"\u0406","iukcy":"\u0456","Iuml":"\xcf","iuml":"\xef","Jcirc":"\u0134","jcirc":"\u0135","Jcy":"\u0419","jcy":"\u0439","Jfr":"\ud835\udd0d","jfr":"\ud835\udd27","jmath":"\u0237","Jopf":"\ud835\udd41","jopf":"\ud835\udd5b","Jscr":"\ud835\udca5","jscr":"\ud835\udcbf","Jsercy":"\u0408","jsercy":"\u0458","Jukcy":"\u0404","jukcy":"\u0454","Kappa":"\u039a","kappa":"\u03ba","kappav":"\u03f0","Kcedil":"\u0136","kcedil":"\u0137","Kcy":"\u041a","kcy":"\u043a","Kfr":"\ud835\udd0e","kfr":"\ud835\udd28","kgreen":"\u0138","KHcy":"\u0425","khcy":"\u0445","KJcy":"\u040c","kjcy":"\u045c","Kopf":"\ud835\udd42","kopf":"\ud835\udd5c","Kscr":"\ud835\udca6","kscr":"\ud835\udcc0","lAarr":"\u21da","Lacute":"\u0139","lacute":"\u013a","laemptyv":"\u29b4","lagran":"\u2112","Lambda":"\u039b","lambda":"\u03bb","lang":"\u27e8","Lang":"\u27ea","langd":"\u2991","langle":"\u27e8","lap":"\u2a85","Laplacetrf":"\u2112","laquo":"\xab","larrb":"\u21e4","larrbfs":"\u291f","larr":"\u2190","Larr":"\u219e","lArr":"\u21d0","larrfs":"\u291d","larrhk":"\u21a9","larrlp":"\u21ab","larrpl":"\u2939","larrsim":"\u2973","larrtl":"\u21a2","latail":"\u2919","lAtail":"\u291b","lat":"\u2aab","late":"\u2aad","lates":"\u2aad\ufe00","lbarr":"\u290c","lBarr":"\u290e","lbbrk":"\u2772","lbrace":"{","lbrack":"[","lbrke":"\u298b","lbrksld":"\u298f","lbrkslu":"\u298d","Lcaron":"\u013d","lcaron":"\u013e","Lcedil":"\u013b","lcedil":"\u013c","lceil":"\u2308","lcub":"{","Lcy":"\u041b","lcy":"\u043b","ldca":"\u2936","ldquo":"\u201c","ldquor":"\u201e","ldrdhar":"\u2967","ldrushar":"\u294b","ldsh":"\u21b2","le":"\u2264","lE":"\u2266","LeftAngleBracket":"\u27e8","LeftArrowBar":"\u21e4","leftarrow":"\u2190","LeftArrow":"\u2190","Leftarrow":"\u21d0","LeftArrowRightArrow":"\u21c6","leftarrowtail":"\u21a2","LeftCeiling":"\u2308","LeftDoubleBracket":"\u27e6","LeftDownTeeVector":"\u2961","LeftDownVectorBar":"\u2959","LeftDownVector":"\u21c3","LeftFloor":"\u230a","leftharpoondown":"\u21bd","leftharpoonup":"\u21bc","leftleftarrows":"\u21c7","leftrightarrow":"\u2194","LeftRightArrow":"\u2194","Leftrightarrow":"\u21d4","leftrightarrows":"\u21c6","leftrightharpoons":"\u21cb","leftrightsquigarrow":"\u21ad","LeftRightVector":"\u294e","LeftTeeArrow":"\u21a4","LeftTee":"\u22a3","LeftTeeVector":"\u295a","leftthreetimes":"\u22cb","LeftTriangleBar":"\u29cf","LeftTriangle":"\u22b2","LeftTriangleEqual":"\u22b4","LeftUpDownVector":"\u2951","LeftUpTeeVector":"\u2960","LeftUpVectorBar":"\u2958","LeftUpVector":"\u21bf","LeftVectorBar":"\u2952","LeftVector":"\u21bc","lEg":"\u2a8b","leg":"\u22da","leq":"\u2264","leqq":"\u2266","leqslant":"\u2a7d","lescc":"\u2aa8","les":"\u2a7d","lesdot":"\u2a7f","lesdoto":"\u2a81","lesdotor":"\u2a83","lesg":"\u22da\ufe00","lesges":"\u2a93","lessapprox":"\u2a85","lessdot":"\u22d6","lesseqgtr":"\u22da","lesseqqgtr":"\u2a8b","LessEqualGreater":"\u22da","LessFullEqual":"\u2266","LessGreater":"\u2276","lessgtr":"\u2276","LessLess":"\u2aa1","lesssim":"\u2272","LessSlantEqual":"\u2a7d","LessTilde":"\u2272","lfisht":"\u297c","lfloor":"\u230a","Lfr":"\ud835\udd0f","lfr":"\ud835\udd29","lg":"\u2276","lgE":"\u2a91","lHar":"\u2962","lhard":"\u21bd","lharu":"\u21bc","lharul":"\u296a","lhblk":"\u2584","LJcy":"\u0409","ljcy":"\u0459","llarr":"\u21c7","ll":"\u226a","Ll":"\u22d8","llcorner":"\u231e","Lleftarrow":"\u21da","llhard":"\u296b","lltri":"\u25fa","Lmidot":"\u013f","lmidot":"\u0140","lmoustache":"\u23b0","lmoust":"\u23b0","lnap":"\u2a89","lnapprox":"\u2a89","lne":"\u2a87","lnE":"\u2268","lneq":"\u2a87","lneqq":"\u2268","lnsim":"\u22e6","loang":"\u27ec","loarr":"\u21fd","lobrk":"\u27e6","longleftarrow":"\u27f5","LongLeftArrow":"\u27f5","Longleftarrow":"\u27f8","longleftrightarrow":"\u27f7","LongLeftRightArrow":"\u27f7","Longleftrightarrow":"\u27fa","longmapsto":"\u27fc","longrightarrow":"\u27f6","LongRightArrow":"\u27f6","Longrightarrow":"\u27f9","looparrowleft":"\u21ab","looparrowright":"\u21ac","lopar":"\u2985","Lopf":"\ud835\udd43","lopf":"\ud835\udd5d","loplus":"\u2a2d","lotimes":"\u2a34","lowast":"\u2217","lowbar":"_","LowerLeftArrow":"\u2199","LowerRightArrow":"\u2198","loz":"\u25ca","lozenge":"\u25ca","lozf":"\u29eb","lpar":"(","lparlt":"\u2993","lrarr":"\u21c6","lrcorner":"\u231f","lrhar":"\u21cb","lrhard":"\u296d","lrm":"\u200e","lrtri":"\u22bf","lsaquo":"\u2039","lscr":"\ud835\udcc1","Lscr":"\u2112","lsh":"\u21b0","Lsh":"\u21b0","lsim":"\u2272","lsime":"\u2a8d","lsimg":"\u2a8f","lsqb":"[","lsquo":"\u2018","lsquor":"\u201a","Lstrok":"\u0141","lstrok":"\u0142","ltcc":"\u2aa6","ltcir":"\u2a79","lt":"<","LT":"<","Lt":"\u226a","ltdot":"\u22d6","lthree":"\u22cb","ltimes":"\u22c9","ltlarr":"\u2976","ltquest":"\u2a7b","ltri":"\u25c3","ltrie":"\u22b4","ltrif":"\u25c2","ltrPar":"\u2996","lurdshar":"\u294a","luruhar":"\u2966","lvertneqq":"\u2268\ufe00","lvnE":"\u2268\ufe00","macr":"\xaf","male":"\u2642","malt":"\u2720","maltese":"\u2720","Map":"\u2905","map":"\u21a6","mapsto":"\u21a6","mapstodown":"\u21a7","mapstoleft":"\u21a4","mapstoup":"\u21a5","marker":"\u25ae","mcomma":"\u2a29","Mcy":"\u041c","mcy":"\u043c","mdash":"\u2014","mDDot":"\u223a","measuredangle":"\u2221","MediumSpace":"\u205f","Mellintrf":"\u2133","Mfr":"\ud835\udd10","mfr":"\ud835\udd2a","mho":"\u2127","micro":"\xb5","midast":"*","midcir":"\u2af0","mid":"\u2223","middot":"\xb7","minusb":"\u229f","minus":"\u2212","minusd":"\u2238","minusdu":"\u2a2a","MinusPlus":"\u2213","mlcp":"\u2adb","mldr":"\u2026","mnplus":"\u2213","models":"\u22a7","Mopf":"\ud835\udd44","mopf":"\ud835\udd5e","mp":"\u2213","mscr":"\ud835\udcc2","Mscr":"\u2133","mstpos":"\u223e","Mu":"\u039c","mu":"\u03bc","multimap":"\u22b8","mumap":"\u22b8","nabla":"\u2207","Nacute":"\u0143","nacute":"\u0144","nang":"\u2220\u20d2","nap":"\u2249","napE":"\u2a70\u0338","napid":"\u224b\u0338","napos":"\u0149","napprox":"\u2249","natural":"\u266e","naturals":"\u2115","natur":"\u266e","nbsp":"\xa0","nbump":"\u224e\u0338","nbumpe":"\u224f\u0338","ncap":"\u2a43","Ncaron":"\u0147","ncaron":"\u0148","Ncedil":"\u0145","ncedil":"\u0146","ncong":"\u2247","ncongdot":"\u2a6d\u0338","ncup":"\u2a42","Ncy":"\u041d","ncy":"\u043d","ndash":"\u2013","nearhk":"\u2924","nearr":"\u2197","neArr":"\u21d7","nearrow":"\u2197","ne":"\u2260","nedot":"\u2250\u0338","NegativeMediumSpace":"\u200b","NegativeThickSpace":"\u200b","NegativeThinSpace":"\u200b","NegativeVeryThinSpace":"\u200b","nequiv":"\u2262","nesear":"\u2928","nesim":"\u2242\u0338","NestedGreaterGreater":"\u226b","NestedLessLess":"\u226a","NewLine":"\\n","nexist":"\u2204","nexists":"\u2204","Nfr":"\ud835\udd11","nfr":"\ud835\udd2b","ngE":"\u2267\u0338","nge":"\u2271","ngeq":"\u2271","ngeqq":"\u2267\u0338","ngeqslant":"\u2a7e\u0338","nges":"\u2a7e\u0338","nGg":"\u22d9\u0338","ngsim":"\u2275","nGt":"\u226b\u20d2","ngt":"\u226f","ngtr":"\u226f","nGtv":"\u226b\u0338","nharr":"\u21ae","nhArr":"\u21ce","nhpar":"\u2af2","ni":"\u220b","nis":"\u22fc","nisd":"\u22fa","niv":"\u220b","NJcy":"\u040a","njcy":"\u045a","nlarr":"\u219a","nlArr":"\u21cd","nldr":"\u2025","nlE":"\u2266\u0338","nle":"\u2270","nleftarrow":"\u219a","nLeftarrow":"\u21cd","nleftrightarrow":"\u21ae","nLeftrightarrow":"\u21ce","nleq":"\u2270","nleqq":"\u2266\u0338","nleqslant":"\u2a7d\u0338","nles":"\u2a7d\u0338","nless":"\u226e","nLl":"\u22d8\u0338","nlsim":"\u2274","nLt":"\u226a\u20d2","nlt":"\u226e","nltri":"\u22ea","nltrie":"\u22ec","nLtv":"\u226a\u0338","nmid":"\u2224","NoBreak":"\u2060","NonBreakingSpace":"\xa0","nopf":"\ud835\udd5f","Nopf":"\u2115","Not":"\u2aec","not":"\xac","NotCongruent":"\u2262","NotCupCap":"\u226d","NotDoubleVerticalBar":"\u2226","NotElement":"\u2209","NotEqual":"\u2260","NotEqualTilde":"\u2242\u0338","NotExists":"\u2204","NotGreater":"\u226f","NotGreaterEqual":"\u2271","NotGreaterFullEqual":"\u2267\u0338","NotGreaterGreater":"\u226b\u0338","NotGreaterLess":"\u2279","NotGreaterSlantEqual":"\u2a7e\u0338","NotGreaterTilde":"\u2275","NotHumpDownHump":"\u224e\u0338","NotHumpEqual":"\u224f\u0338","notin":"\u2209","notindot":"\u22f5\u0338","notinE":"\u22f9\u0338","notinva":"\u2209","notinvb":"\u22f7","notinvc":"\u22f6","NotLeftTriangleBar":"\u29cf\u0338","NotLeftTriangle":"\u22ea","NotLeftTriangleEqual":"\u22ec","NotLess":"\u226e","NotLessEqual":"\u2270","NotLessGreater":"\u2278","NotLessLess":"\u226a\u0338","NotLessSlantEqual":"\u2a7d\u0338","NotLessTilde":"\u2274","NotNestedGreaterGreater":"\u2aa2\u0338","NotNestedLessLess":"\u2aa1\u0338","notni":"\u220c","notniva":"\u220c","notnivb":"\u22fe","notnivc":"\u22fd","NotPrecedes":"\u2280","NotPrecedesEqual":"\u2aaf\u0338","NotPrecedesSlantEqual":"\u22e0","NotReverseElement":"\u220c","NotRightTriangleBar":"\u29d0\u0338","NotRightTriangle":"\u22eb","NotRightTriangleEqual":"\u22ed","NotSquareSubset":"\u228f\u0338","NotSquareSubsetEqual":"\u22e2","NotSquareSuperset":"\u2290\u0338","NotSquareSupersetEqual":"\u22e3","NotSubset":"\u2282\u20d2","NotSubsetEqual":"\u2288","NotSucceeds":"\u2281","NotSucceedsEqual":"\u2ab0\u0338","NotSucceedsSlantEqual":"\u22e1","NotSucceedsTilde":"\u227f\u0338","NotSuperset":"\u2283\u20d2","NotSupersetEqual":"\u2289","NotTilde":"\u2241","NotTildeEqual":"\u2244","NotTildeFullEqual":"\u2247","NotTildeTilde":"\u2249","NotVerticalBar":"\u2224","nparallel":"\u2226","npar":"\u2226","nparsl":"\u2afd\u20e5","npart":"\u2202\u0338","npolint":"\u2a14","npr":"\u2280","nprcue":"\u22e0","nprec":"\u2280","npreceq":"\u2aaf\u0338","npre":"\u2aaf\u0338","nrarrc":"\u2933\u0338","nrarr":"\u219b","nrArr":"\u21cf","nrarrw":"\u219d\u0338","nrightarrow":"\u219b","nRightarrow":"\u21cf","nrtri":"\u22eb","nrtrie":"\u22ed","nsc":"\u2281","nsccue":"\u22e1","nsce":"\u2ab0\u0338","Nscr":"\ud835\udca9","nscr":"\ud835\udcc3","nshortmid":"\u2224","nshortparallel":"\u2226","nsim":"\u2241","nsime":"\u2244","nsimeq":"\u2244","nsmid":"\u2224","nspar":"\u2226","nsqsube":"\u22e2","nsqsupe":"\u22e3","nsub":"\u2284","nsubE":"\u2ac5\u0338","nsube":"\u2288","nsubset":"\u2282\u20d2","nsubseteq":"\u2288","nsubseteqq":"\u2ac5\u0338","nsucc":"\u2281","nsucceq":"\u2ab0\u0338","nsup":"\u2285","nsupE":"\u2ac6\u0338","nsupe":"\u2289","nsupset":"\u2283\u20d2","nsupseteq":"\u2289","nsupseteqq":"\u2ac6\u0338","ntgl":"\u2279","Ntilde":"\xd1","ntilde":"\xf1","ntlg":"\u2278","ntriangleleft":"\u22ea","ntrianglelefteq":"\u22ec","ntriangleright":"\u22eb","ntrianglerighteq":"\u22ed","Nu":"\u039d","nu":"\u03bd","num":"#","numero":"\u2116","numsp":"\u2007","nvap":"\u224d\u20d2","nvdash":"\u22ac","nvDash":"\u22ad","nVdash":"\u22ae","nVDash":"\u22af","nvge":"\u2265\u20d2","nvgt":">\u20d2","nvHarr":"\u2904","nvinfin":"\u29de","nvlArr":"\u2902","nvle":"\u2264\u20d2","nvlt":"<\u20d2","nvltrie":"\u22b4\u20d2","nvrArr":"\u2903","nvrtrie":"\u22b5\u20d2","nvsim":"\u223c\u20d2","nwarhk":"\u2923","nwarr":"\u2196","nwArr":"\u21d6","nwarrow":"\u2196","nwnear":"\u2927","Oacute":"\xd3","oacute":"\xf3","oast":"\u229b","Ocirc":"\xd4","ocirc":"\xf4","ocir":"\u229a","Ocy":"\u041e","ocy":"\u043e","odash":"\u229d","Odblac":"\u0150","odblac":"\u0151","odiv":"\u2a38","odot":"\u2299","odsold":"\u29bc","OElig":"\u0152","oelig":"\u0153","ofcir":"\u29bf","Ofr":"\ud835\udd12","ofr":"\ud835\udd2c","ogon":"\u02db","Ograve":"\xd2","ograve":"\xf2","ogt":"\u29c1","ohbar":"\u29b5","ohm":"\u03a9","oint":"\u222e","olarr":"\u21ba","olcir":"\u29be","olcross":"\u29bb","oline":"\u203e","olt":"\u29c0","Omacr":"\u014c","omacr":"\u014d","Omega":"\u03a9","omega":"\u03c9","Omicron":"\u039f","omicron":"\u03bf","omid":"\u29b6","ominus":"\u2296","Oopf":"\ud835\udd46","oopf":"\ud835\udd60","opar":"\u29b7","OpenCurlyDoubleQuote":"\u201c","OpenCurlyQuote":"\u2018","operp":"\u29b9","oplus":"\u2295","orarr":"\u21bb","Or":"\u2a54","or":"\u2228","ord":"\u2a5d","order":"\u2134","orderof":"\u2134","ordf":"\xaa","ordm":"\xba","origof":"\u22b6","oror":"\u2a56","orslope":"\u2a57","orv":"\u2a5b","oS":"\u24c8","Oscr":"\ud835\udcaa","oscr":"\u2134","Oslash":"\xd8","oslash":"\xf8","osol":"\u2298","Otilde":"\xd5","otilde":"\xf5","otimesas":"\u2a36","Otimes":"\u2a37","otimes":"\u2297","Ouml":"\xd6","ouml":"\xf6","ovbar":"\u233d","OverBar":"\u203e","OverBrace":"\u23de","OverBracket":"\u23b4","OverParenthesis":"\u23dc","para":"\xb6","parallel":"\u2225","par":"\u2225","parsim":"\u2af3","parsl":"\u2afd","part":"\u2202","PartialD":"\u2202","Pcy":"\u041f","pcy":"\u043f","percnt":"%","period":".","permil":"\u2030","perp":"\u22a5","pertenk":"\u2031","Pfr":"\ud835\udd13","pfr":"\ud835\udd2d","Phi":"\u03a6","phi":"\u03c6","phiv":"\u03d5","phmmat":"\u2133","phone":"\u260e","Pi":"\u03a0","pi":"\u03c0","pitchfork":"\u22d4","piv":"\u03d6","planck":"\u210f","planckh":"\u210e","plankv":"\u210f","plusacir":"\u2a23","plusb":"\u229e","pluscir":"\u2a22","plus":"+","plusdo":"\u2214","plusdu":"\u2a25","pluse":"\u2a72","PlusMinus":"\xb1","plusmn":"\xb1","plussim":"\u2a26","plustwo":"\u2a27","pm":"\xb1","Poincareplane":"\u210c","pointint":"\u2a15","popf":"\ud835\udd61","Popf":"\u2119","pound":"\xa3","prap":"\u2ab7","Pr":"\u2abb","pr":"\u227a","prcue":"\u227c","precapprox":"\u2ab7","prec":"\u227a","preccurlyeq":"\u227c","Precedes":"\u227a","PrecedesEqual":"\u2aaf","PrecedesSlantEqual":"\u227c","PrecedesTilde":"\u227e","preceq":"\u2aaf","precnapprox":"\u2ab9","precneqq":"\u2ab5","precnsim":"\u22e8","pre":"\u2aaf","prE":"\u2ab3","precsim":"\u227e","prime":"\u2032","Prime":"\u2033","primes":"\u2119","prnap":"\u2ab9","prnE":"\u2ab5","prnsim":"\u22e8","prod":"\u220f","Product":"\u220f","profalar":"\u232e","profline":"\u2312","profsurf":"\u2313","prop":"\u221d","Proportional":"\u221d","Proportion":"\u2237","propto":"\u221d","prsim":"\u227e","prurel":"\u22b0","Pscr":"\ud835\udcab","pscr":"\ud835\udcc5","Psi":"\u03a8","psi":"\u03c8","puncsp":"\u2008","Qfr":"\ud835\udd14","qfr":"\ud835\udd2e","qint":"\u2a0c","qopf":"\ud835\udd62","Qopf":"\u211a","qprime":"\u2057","Qscr":"\ud835\udcac","qscr":"\ud835\udcc6","quaternions":"\u210d","quatint":"\u2a16","quest":"?","questeq":"\u225f","quot":"\\"","QUOT":"\\"","rAarr":"\u21db","race":"\u223d\u0331","Racute":"\u0154","racute":"\u0155","radic":"\u221a","raemptyv":"\u29b3","rang":"\u27e9","Rang":"\u27eb","rangd":"\u2992","range":"\u29a5","rangle":"\u27e9","raquo":"\xbb","rarrap":"\u2975","rarrb":"\u21e5","rarrbfs":"\u2920","rarrc":"\u2933","rarr":"\u2192","Rarr":"\u21a0","rArr":"\u21d2","rarrfs":"\u291e","rarrhk":"\u21aa","rarrlp":"\u21ac","rarrpl":"\u2945","rarrsim":"\u2974","Rarrtl":"\u2916","rarrtl":"\u21a3","rarrw":"\u219d","ratail":"\u291a","rAtail":"\u291c","ratio":"\u2236","rationals":"\u211a","rbarr":"\u290d","rBarr":"\u290f","RBarr":"\u2910","rbbrk":"\u2773","rbrace":"}","rbrack":"]","rbrke":"\u298c","rbrksld":"\u298e","rbrkslu":"\u2990","Rcaron":"\u0158","rcaron":"\u0159","Rcedil":"\u0156","rcedil":"\u0157","rceil":"\u2309","rcub":"}","Rcy":"\u0420","rcy":"\u0440","rdca":"\u2937","rdldhar":"\u2969","rdquo":"\u201d","rdquor":"\u201d","rdsh":"\u21b3","real":"\u211c","realine":"\u211b","realpart":"\u211c","reals":"\u211d","Re":"\u211c","rect":"\u25ad","reg":"\xae","REG":"\xae","ReverseElement":"\u220b","ReverseEquilibrium":"\u21cb","ReverseUpEquilibrium":"\u296f","rfisht":"\u297d","rfloor":"\u230b","rfr":"\ud835\udd2f","Rfr":"\u211c","rHar":"\u2964","rhard":"\u21c1","rharu":"\u21c0","rharul":"\u296c","Rho":"\u03a1","rho":"\u03c1","rhov":"\u03f1","RightAngleBracket":"\u27e9","RightArrowBar":"\u21e5","rightarrow":"\u2192","RightArrow":"\u2192","Rightarrow":"\u21d2","RightArrowLeftArrow":"\u21c4","rightarrowtail":"\u21a3","RightCeiling":"\u2309","RightDoubleBracket":"\u27e7","RightDownTeeVector":"\u295d","RightDownVectorBar":"\u2955","RightDownVector":"\u21c2","RightFloor":"\u230b","rightharpoondown":"\u21c1","rightharpoonup":"\u21c0","rightleftarrows":"\u21c4","rightleftharpoons":"\u21cc","rightrightarrows":"\u21c9","rightsquigarrow":"\u219d","RightTeeArrow":"\u21a6","RightTee":"\u22a2","RightTeeVector":"\u295b","rightthreetimes":"\u22cc","RightTriangleBar":"\u29d0","RightTriangle":"\u22b3","RightTriangleEqual":"\u22b5","RightUpDownVector":"\u294f","RightUpTeeVector":"\u295c","RightUpVectorBar":"\u2954","RightUpVector":"\u21be","RightVectorBar":"\u2953","RightVector":"\u21c0","ring":"\u02da","risingdotseq":"\u2253","rlarr":"\u21c4","rlhar":"\u21cc","rlm":"\u200f","rmoustache":"\u23b1","rmoust":"\u23b1","rnmid":"\u2aee","roang":"\u27ed","roarr":"\u21fe","robrk":"\u27e7","ropar":"\u2986","ropf":"\ud835\udd63","Ropf":"\u211d","roplus":"\u2a2e","rotimes":"\u2a35","RoundImplies":"\u2970","rpar":")","rpargt":"\u2994","rppolint":"\u2a12","rrarr":"\u21c9","Rrightarrow":"\u21db","rsaquo":"\u203a","rscr":"\ud835\udcc7","Rscr":"\u211b","rsh":"\u21b1","Rsh":"\u21b1","rsqb":"]","rsquo":"\u2019","rsquor":"\u2019","rthree":"\u22cc","rtimes":"\u22ca","rtri":"\u25b9","rtrie":"\u22b5","rtrif":"\u25b8","rtriltri":"\u29ce","RuleDelayed":"\u29f4","ruluhar":"\u2968","rx":"\u211e","Sacute":"\u015a","sacute":"\u015b","sbquo":"\u201a","scap":"\u2ab8","Scaron":"\u0160","scaron":"\u0161","Sc":"\u2abc","sc":"\u227b","sccue":"\u227d","sce":"\u2ab0","scE":"\u2ab4","Scedil":"\u015e","scedil":"\u015f","Scirc":"\u015c","scirc":"\u015d","scnap":"\u2aba","scnE":"\u2ab6","scnsim":"\u22e9","scpolint":"\u2a13","scsim":"\u227f","Scy":"\u0421","scy":"\u0441","sdotb":"\u22a1","sdot":"\u22c5","sdote":"\u2a66","searhk":"\u2925","searr":"\u2198","seArr":"\u21d8","searrow":"\u2198","sect":"\xa7","semi":";","seswar":"\u2929","setminus":"\u2216","setmn":"\u2216","sext":"\u2736","Sfr":"\ud835\udd16","sfr":"\ud835\udd30","sfrown":"\u2322","sharp":"\u266f","SHCHcy":"\u0429","shchcy":"\u0449","SHcy":"\u0428","shcy":"\u0448","ShortDownArrow":"\u2193","ShortLeftArrow":"\u2190","shortmid":"\u2223","shortparallel":"\u2225","ShortRightArrow":"\u2192","ShortUpArrow":"\u2191","shy":"\xad","Sigma":"\u03a3","sigma":"\u03c3","sigmaf":"\u03c2","sigmav":"\u03c2","sim":"\u223c","simdot":"\u2a6a","sime":"\u2243","simeq":"\u2243","simg":"\u2a9e","simgE":"\u2aa0","siml":"\u2a9d","simlE":"\u2a9f","simne":"\u2246","simplus":"\u2a24","simrarr":"\u2972","slarr":"\u2190","SmallCircle":"\u2218","smallsetminus":"\u2216","smashp":"\u2a33","smeparsl":"\u29e4","smid":"\u2223","smile":"\u2323","smt":"\u2aaa","smte":"\u2aac","smtes":"\u2aac\ufe00","SOFTcy":"\u042c","softcy":"\u044c","solbar":"\u233f","solb":"\u29c4","sol":"/","Sopf":"\ud835\udd4a","sopf":"\ud835\udd64","spades":"\u2660","spadesuit":"\u2660","spar":"\u2225","sqcap":"\u2293","sqcaps":"\u2293\ufe00","sqcup":"\u2294","sqcups":"\u2294\ufe00","Sqrt":"\u221a","sqsub":"\u228f","sqsube":"\u2291","sqsubset":"\u228f","sqsubseteq":"\u2291","sqsup":"\u2290","sqsupe":"\u2292","sqsupset":"\u2290","sqsupseteq":"\u2292","square":"\u25a1","Square":"\u25a1","SquareIntersection":"\u2293","SquareSubset":"\u228f","SquareSubsetEqual":"\u2291","SquareSuperset":"\u2290","SquareSupersetEqual":"\u2292","SquareUnion":"\u2294","squarf":"\u25aa","squ":"\u25a1","squf":"\u25aa","srarr":"\u2192","Sscr":"\ud835\udcae","sscr":"\ud835\udcc8","ssetmn":"\u2216","ssmile":"\u2323","sstarf":"\u22c6","Star":"\u22c6","star":"\u2606","starf":"\u2605","straightepsilon":"\u03f5","straightphi":"\u03d5","strns":"\xaf","sub":"\u2282","Sub":"\u22d0","subdot":"\u2abd","subE":"\u2ac5","sube":"\u2286","subedot":"\u2ac3","submult":"\u2ac1","subnE":"\u2acb","subne":"\u228a","subplus":"\u2abf","subrarr":"\u2979","subset":"\u2282","Subset":"\u22d0","subseteq":"\u2286","subseteqq":"\u2ac5","SubsetEqual":"\u2286","subsetneq":"\u228a","subsetneqq":"\u2acb","subsim":"\u2ac7","subsub":"\u2ad5","subsup":"\u2ad3","succapprox":"\u2ab8","succ":"\u227b","succcurlyeq":"\u227d","Succeeds":"\u227b","SucceedsEqual":"\u2ab0","SucceedsSlantEqual":"\u227d","SucceedsTilde":"\u227f","succeq":"\u2ab0","succnapprox":"\u2aba","succneqq":"\u2ab6","succnsim":"\u22e9","succsim":"\u227f","SuchThat":"\u220b","sum":"\u2211","Sum":"\u2211","sung":"\u266a","sup1":"\xb9","sup2":"\xb2","sup3":"\xb3","sup":"\u2283","Sup":"\u22d1","supdot":"\u2abe","supdsub":"\u2ad8","supE":"\u2ac6","supe":"\u2287","supedot":"\u2ac4","Superset":"\u2283","SupersetEqual":"\u2287","suphsol":"\u27c9","suphsub":"\u2ad7","suplarr":"\u297b","supmult":"\u2ac2","supnE":"\u2acc","supne":"\u228b","supplus":"\u2ac0","supset":"\u2283","Supset":"\u22d1","supseteq":"\u2287","supseteqq":"\u2ac6","supsetneq":"\u228b","supsetneqq":"\u2acc","supsim":"\u2ac8","supsub":"\u2ad4","supsup":"\u2ad6","swarhk":"\u2926","swarr":"\u2199","swArr":"\u21d9","swarrow":"\u2199","swnwar":"\u292a","szlig":"\xdf","Tab":"\\t","target":"\u2316","Tau":"\u03a4","tau":"\u03c4","tbrk":"\u23b4","Tcaron":"\u0164","tcaron":"\u0165","Tcedil":"\u0162","tcedil":"\u0163","Tcy":"\u0422","tcy":"\u0442","tdot":"\u20db","telrec":"\u2315","Tfr":"\ud835\udd17","tfr":"\ud835\udd31","there4":"\u2234","therefore":"\u2234","Therefore":"\u2234","Theta":"\u0398","theta":"\u03b8","thetasym":"\u03d1","thetav":"\u03d1","thickapprox":"\u2248","thicksim":"\u223c","ThickSpace":"\u205f\u200a","ThinSpace":"\u2009","thinsp":"\u2009","thkap":"\u2248","thksim":"\u223c","THORN":"\xde","thorn":"\xfe","tilde":"\u02dc","Tilde":"\u223c","TildeEqual":"\u2243","TildeFullEqual":"\u2245","TildeTilde":"\u2248","timesbar":"\u2a31","timesb":"\u22a0","times":"\xd7","timesd":"\u2a30","tint":"\u222d","toea":"\u2928","topbot":"\u2336","topcir":"\u2af1","top":"\u22a4","Topf":"\ud835\udd4b","topf":"\ud835\udd65","topfork":"\u2ada","tosa":"\u2929","tprime":"\u2034","trade":"\u2122","TRADE":"\u2122","triangle":"\u25b5","triangledown":"\u25bf","triangleleft":"\u25c3","trianglelefteq":"\u22b4","triangleq":"\u225c","triangleright":"\u25b9","trianglerighteq":"\u22b5","tridot":"\u25ec","trie":"\u225c","triminus":"\u2a3a","TripleDot":"\u20db","triplus":"\u2a39","trisb":"\u29cd","tritime":"\u2a3b","trpezium":"\u23e2","Tscr":"\ud835\udcaf","tscr":"\ud835\udcc9","TScy":"\u0426","tscy":"\u0446","TSHcy":"\u040b","tshcy":"\u045b","Tstrok":"\u0166","tstrok":"\u0167","twixt":"\u226c","twoheadleftarrow":"\u219e","twoheadrightarrow":"\u21a0","Uacute":"\xda","uacute":"\xfa","uarr":"\u2191","Uarr":"\u219f","uArr":"\u21d1","Uarrocir":"\u2949","Ubrcy":"\u040e","ubrcy":"\u045e","Ubreve":"\u016c","ubreve":"\u016d","Ucirc":"\xdb","ucirc":"\xfb","Ucy":"\u0423","ucy":"\u0443","udarr":"\u21c5","Udblac":"\u0170","udblac":"\u0171","udhar":"\u296e","ufisht":"\u297e","Ufr":"\ud835\udd18","ufr":"\ud835\udd32","Ugrave":"\xd9","ugrave":"\xf9","uHar":"\u2963","uharl":"\u21bf","uharr":"\u21be","uhblk":"\u2580","ulcorn":"\u231c","ulcorner":"\u231c","ulcrop":"\u230f","ultri":"\u25f8","Umacr":"\u016a","umacr":"\u016b","uml":"\xa8","UnderBar":"_","UnderBrace":"\u23df","UnderBracket":"\u23b5","UnderParenthesis":"\u23dd","Union":"\u22c3","UnionPlus":"\u228e","Uogon":"\u0172","uogon":"\u0173","Uopf":"\ud835\udd4c","uopf":"\ud835\udd66","UpArrowBar":"\u2912","uparrow":"\u2191","UpArrow":"\u2191","Uparrow":"\u21d1","UpArrowDownArrow":"\u21c5","updownarrow":"\u2195","UpDownArrow":"\u2195","Updownarrow":"\u21d5","UpEquilibrium":"\u296e","upharpoonleft":"\u21bf","upharpoonright":"\u21be","uplus":"\u228e","UpperLeftArrow":"\u2196","UpperRightArrow":"\u2197","upsi":"\u03c5","Upsi":"\u03d2","upsih":"\u03d2","Upsilon":"\u03a5","upsilon":"\u03c5","UpTeeArrow":"\u21a5","UpTee":"\u22a5","upuparrows":"\u21c8","urcorn":"\u231d","urcorner":"\u231d","urcrop":"\u230e","Uring":"\u016e","uring":"\u016f","urtri":"\u25f9","Uscr":"\ud835\udcb0","uscr":"\ud835\udcca","utdot":"\u22f0","Utilde":"\u0168","utilde":"\u0169","utri":"\u25b5","utrif":"\u25b4","uuarr":"\u21c8","Uuml":"\xdc","uuml":"\xfc","uwangle":"\u29a7","vangrt":"\u299c","varepsilon":"\u03f5","varkappa":"\u03f0","varnothing":"\u2205","varphi":"\u03d5","varpi":"\u03d6","varpropto":"\u221d","varr":"\u2195","vArr":"\u21d5","varrho":"\u03f1","varsigma":"\u03c2","varsubsetneq":"\u228a\ufe00","varsubsetneqq":"\u2acb\ufe00","varsupsetneq":"\u228b\ufe00","varsupsetneqq":"\u2acc\ufe00","vartheta":"\u03d1","vartriangleleft":"\u22b2","vartriangleright":"\u22b3","vBar":"\u2ae8","Vbar":"\u2aeb","vBarv":"\u2ae9","Vcy":"\u0412","vcy":"\u0432","vdash":"\u22a2","vDash":"\u22a8","Vdash":"\u22a9","VDash":"\u22ab","Vdashl":"\u2ae6","veebar":"\u22bb","vee":"\u2228","Vee":"\u22c1","veeeq":"\u225a","vellip":"\u22ee","verbar":"|","Verbar":"\u2016","vert":"|","Vert":"\u2016","VerticalBar":"\u2223","VerticalLine":"|","VerticalSeparator":"\u2758","VerticalTilde":"\u2240","VeryThinSpace":"\u200a","Vfr":"\ud835\udd19","vfr":"\ud835\udd33","vltri":"\u22b2","vnsub":"\u2282\u20d2","vnsup":"\u2283\u20d2","Vopf":"\ud835\udd4d","vopf":"\ud835\udd67","vprop":"\u221d","vrtri":"\u22b3","Vscr":"\ud835\udcb1","vscr":"\ud835\udccb","vsubnE":"\u2acb\ufe00","vsubne":"\u228a\ufe00","vsupnE":"\u2acc\ufe00","vsupne":"\u228b\ufe00","Vvdash":"\u22aa","vzigzag":"\u299a","Wcirc":"\u0174","wcirc":"\u0175","wedbar":"\u2a5f","wedge":"\u2227","Wedge":"\u22c0","wedgeq":"\u2259","weierp":"\u2118","Wfr":"\ud835\udd1a","wfr":"\ud835\udd34","Wopf":"\ud835\udd4e","wopf":"\ud835\udd68","wp":"\u2118","wr":"\u2240","wreath":"\u2240","Wscr":"\ud835\udcb2","wscr":"\ud835\udccc","xcap":"\u22c2","xcirc":"\u25ef","xcup":"\u22c3","xdtri":"\u25bd","Xfr":"\ud835\udd1b","xfr":"\ud835\udd35","xharr":"\u27f7","xhArr":"\u27fa","Xi":"\u039e","xi":"\u03be","xlarr":"\u27f5","xlArr":"\u27f8","xmap":"\u27fc","xnis":"\u22fb","xodot":"\u2a00","Xopf":"\ud835\udd4f","xopf":"\ud835\udd69","xoplus":"\u2a01","xotime":"\u2a02","xrarr":"\u27f6","xrArr":"\u27f9","Xscr":"\ud835\udcb3","xscr":"\ud835\udccd","xsqcup":"\u2a06","xuplus":"\u2a04","xutri":"\u25b3","xvee":"\u22c1","xwedge":"\u22c0","Yacute":"\xdd","yacute":"\xfd","YAcy":"\u042f","yacy":"\u044f","Ycirc":"\u0176","ycirc":"\u0177","Ycy":"\u042b","ycy":"\u044b","yen":"\xa5","Yfr":"\ud835\udd1c","yfr":"\ud835\udd36","YIcy":"\u0407","yicy":"\u0457","Yopf":"\ud835\udd50","yopf":"\ud835\udd6a","Yscr":"\ud835\udcb4","yscr":"\ud835\udcce","YUcy":"\u042e","yucy":"\u044e","yuml":"\xff","Yuml":"\u0178","Zacute":"\u0179","zacute":"\u017a","Zcaron":"\u017d","zcaron":"\u017e","Zcy":"\u0417","zcy":"\u0437","Zdot":"\u017b","zdot":"\u017c","zeetrf":"\u2128","ZeroWidthSpace":"\u200b","Zeta":"\u0396","zeta":"\u03b6","zfr":"\ud835\udd37","Zfr":"\u2128","ZHcy":"\u0416","zhcy":"\u0436","zigrarr":"\u21dd","zopf":"\ud835\udd6b","Zopf":"\u2124","Zscr":"\ud835\udcb5","zscr":"\ud835\udccf","zwj":"\u200d","zwnj":"\u200c"}')},function(e){e.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escape=t.encodeHTML=t.encodeXML=void 0;var i=l(r(n(80)).default),o=c(i);t.encodeXML=d(i,o);var a=l(r(n(79)).default),s=c(a);function l(e){return Object.keys(e).sort().reduce((function(t,n){return t[e[n]]="&"+n+";",t}),{})}function c(e){for(var t=[],n=[],r=0,i=Object.keys(e);r=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function h(e,t){if(l.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return A(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return C(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return E(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"===typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,i);if("number"===typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,i){var o,a=1,s=e.length,l=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,l/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(i){var u=-1;for(o=n;os&&(n=s-l),o=n;o>=0;o--){for(var f=!0,d=0;di&&(r=i):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function E(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function T(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:c>223?3:c>191?2:1;if(i+f<=n)switch(f){case 1:c<128&&(u=c);break;case 2:128===(192&(o=e[i+1]))&&(l=(31&c)<<6|63&o)>127&&(u=l);break;case 3:o=e[i+1],a=e[i+2],128===(192&o)&&128===(192&a)&&(l=(15&c)<<12|(63&o)<<6|63&a)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:o=e[i+1],a=e[i+2],s=e[i+3],128===(192&o)&&128===(192&a)&&128===(192&s)&&(l=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,f=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},l.prototype.compare=function(e,t,n,r,i){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var o=(i>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(o,a),c=this.slice(r,i),u=e.slice(t,n),f=0;fi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return _(this,e,t,n);case"base64":return k(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function C(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;ir)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,i,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function M(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function P(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function j(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function I(e,t,n,r,o){return o||j(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function R(e,t,n,r,o){return o||j(e,0,n,8),i.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUInt8=function(e,t){return t||L(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||L(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||L(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||L(e,t,this.length);for(var r=this[e],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||L(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return t||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){t||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return t||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||L(e,4,this.length),i.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||L(e,4,this.length),i.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||L(e,8,this.length),i.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||L(e,8,this.length),i.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[t]=255&e;++o=0&&(o*=256);)this[t+i]=e/o&255;return t+n},l.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):P(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);D(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):P(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):P(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,n){return I(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return I(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return R(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return R(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!l.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(o=t;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(q,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function B(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(24))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"===typeof n)return n(e,r);var o=i.default.Children.only(n);return i.default.cloneElement(o,r)},r}(i.default.Component);function c(){}l.contextTypes={transitionGroup:r.object},l.childContextTypes={transitionGroup:function(){}},l.propTypes={},l.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:c,onEntering:c,onEntered:c,onExit:c,onExiting:c,onExited:c},l.UNMOUNTED=0,l.EXITED=1,l.ENTERING=2,l.ENTERED=3,l.EXITING=4;var u=(0,a.polyfill)(l);t.default=u},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=s(n(7)),i=s(n(0)),o=n(66),a=n(140);function s(e){return e&&e.__esModule?e:{default:e}}function l(){return(l=Object.assign||function(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,["component","childFactory"]),o=u(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?o:i.default.createElement(t,r,o)},r}(i.default.Component);f.childContextTypes={transitionGroup:r.default.object.isRequired},f.propTypes={},f.defaultProps={component:"div",childFactory:function(e){return e}};var d=(0,o.polyfill)(f);t.default=d,e.exports=t.default},function(e,t,n){"use strict";var r=n(0),i=(n(31),n(7)),o=n(36),a=n(141),s=n(142);function l(e){return e?e.replace(/\r\n|\r/g,"\n"):e}var c=n(144)({propTypes:{autoFocus:i.bool,className:i.any,codeMirrorInstance:i.func,defaultValue:i.string,name:i.string,onChange:i.func,onCursorActivity:i.func,onFocusChange:i.func,onScroll:i.func,options:i.object,path:i.string,value:i.string,preserveScrollPosition:i.bool},getDefaultProps:function(){return{preserveScrollPosition:!1}},getCodeMirrorInstance:function(){return this.props.codeMirrorInstance||n(29)},getInitialState:function(){return{isFocused:!1}},componentWillMount:function(){this.componentWillReceiveProps=a(this.componentWillReceiveProps,0),this.props.path&&console.error("Warning: react-codemirror: the `path` prop has been changed to `name`")},componentDidMount:function(){var e=this.getCodeMirrorInstance();this.codeMirror=e.fromTextArea(this.textareaNode,this.props.options),this.codeMirror.on("change",this.codemirrorValueChanged),this.codeMirror.on("cursorActivity",this.cursorActivity),this.codeMirror.on("focus",this.focusChanged.bind(this,!0)),this.codeMirror.on("blur",this.focusChanged.bind(this,!1)),this.codeMirror.on("scroll",this.scrollChanged),this.codeMirror.setValue(this.props.defaultValue||this.props.value||"")},componentWillUnmount:function(){this.codeMirror&&this.codeMirror.toTextArea()},componentWillReceiveProps:function(e){if(this.codeMirror&&void 0!==e.value&&e.value!==this.props.value&&l(this.codeMirror.getValue())!==l(e.value))if(this.props.preserveScrollPosition){var t=this.codeMirror.getScrollInfo();this.codeMirror.setValue(e.value),this.codeMirror.scrollTo(t.left,t.top)}else this.codeMirror.setValue(e.value);if("object"===typeof e.options)for(var n in e.options)e.options.hasOwnProperty(n)&&this.setOptionIfChanged(n,e.options[n])},setOptionIfChanged:function(e,t){var n=this.codeMirror.getOption(e);s(n,t)||this.codeMirror.setOption(e,t)},getCodeMirror:function(){return this.codeMirror},focus:function(){this.codeMirror&&this.codeMirror.focus()},focusChanged:function(e){this.setState({isFocused:e}),this.props.onFocusChange&&this.props.onFocusChange(e)},cursorActivity:function(e){this.props.onCursorActivity&&this.props.onCursorActivity(e)},scrollChanged:function(e){this.props.onScroll&&this.props.onScroll(e.getScrollInfo())},codemirrorValueChanged:function(e,t){this.props.onChange&&"setValue"!==t.origin&&this.props.onChange(e.getValue(),t)},render:function(){var e=this,t=o("ReactCodeMirror",this.state.isFocused?"ReactCodeMirror--focused":null,this.props.className);return r.createElement("div",{className:t},r.createElement("textarea",{ref:function(t){return e.textareaNode=t},name:this.props.name||this.props.path,defaultValue:this.props.value,autoComplete:"off",autoFocus:this.props.autoFocus}))}});e.exports=c},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(295),o=(r=i)&&r.__esModule?r:{default:r};t.default=o.default,e.exports=t.default},,function(e,t,n){"use strict";var r=n(39),i="function"===typeof Symbol&&Symbol.for,o=i?Symbol.for("react.element"):60103,a=i?Symbol.for("react.portal"):60106,s=i?Symbol.for("react.fragment"):60107,l=i?Symbol.for("react.strict_mode"):60108,c=i?Symbol.for("react.profiler"):60114,u=i?Symbol.for("react.provider"):60109,f=i?Symbol.for("react.context"):60110,d=i?Symbol.for("react.forward_ref"):60112,p=i?Symbol.for("react.suspense"):60113,h=i?Symbol.for("react.suspense_list"):60120,m=i?Symbol.for("react.memo"):60115,g=i?Symbol.for("react.lazy"):60116;i&&Symbol.for("react.fundamental"),i&&Symbol.for("react.responder"),i&&Symbol.for("react.scope");var v="function"===typeof Symbol&&Symbol.iterator;function y(e){for(var t=e.message,n="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;rM.length&&M.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,i){var s=typeof t;"undefined"!==s&&"boolean"!==s||(t=null);var l=!1;if(null===t)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case o:case a:l=!0}}if(l)return r(i,t,""===n?"."+R(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c
","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!==typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!==typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var be=/<|&#?\w+;/;function we(e,t,n,r,i){for(var o,a,s,l,c,u,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p-1)i&&i.push(o);else if(c=ae(o),a=ve(f.appendChild(o),"script"),c&&ye(a),n)for(u=0;o=a[u++];)me.test(o.type||"")&&n.push(o);return f}var xe=/^key/,_e=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ke=/^([^.]*)(?:\.(.+)|)/;function Se(){return!0}function Ee(){return!1}function Te(e,t){return e===function(){try{return b.activeElement}catch(e){}}()===("focus"===t)}function Ce(e,t,n,r,i,o){var a,s;if("object"===typeof t){for(s in"string"!==typeof n&&(r=r||n,n=void 0),t)Ce(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"===typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each((function(){k.event.add(this,t,i,r,n)}))}function Oe(e,t,n){n?(Q.set(e,t,!1),k.event.add(e,t,{namespace:!1,handler:function(e){var r,i,o=Q.get(this,t);if(1&e.isTrigger&&this[t]){if(o.length)(k.event.special[t]||{}).delegateType&&e.stopPropagation();else if(o=s.call(arguments),Q.set(this,t,o),r=n(this,t),this[t](),o!==(i=Q.get(this,t))||r?Q.set(this,t,!1):i={},o!==i)return e.stopImmediatePropagation(),e.preventDefault(),i.value}else o.length&&(Q.set(this,t,{value:k.event.trigger(k.extend(o[0],k.Event.prototype),o.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,t)&&k.event.add(e,t,Se)}k.event={global:{},add:function(e,t,n,r,i){var o,a,s,l,c,u,f,d,p,h,m,g=Q.get(e);if(G(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(oe,i),n.guid||(n.guid=k.guid++),(l=g.events)||(l=g.events=Object.create(null)),(a=g.handle)||(a=g.handle=function(t){return k.event.triggered!==t.type?k.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(R)||[""]).length;c--;)p=m=(s=ke.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=k.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=k.event.special[p]||{},u=k.extend({type:p,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=l[p])||((d=l[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,u):d.push(u),k.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,l,c,u,f,d,p,h,m,g=Q.hasData(e)&&Q.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(R)||[""]).length;c--;)if(p=m=(s=ke.exec(t[c])||[])[1],h=(s[2]||"").split(".").sort(),p){for(f=k.event.special[p]||{},d=l[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)u=d[o],!i&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||r&&r!==u.selector&&("**"!==r||!u.selector)||(d.splice(o,1),u.selector&&d.delegateCount--,f.remove&&f.remove.call(e,u));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,g.handle)||k.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)k.event.remove(e,p+t[c],n,r,!0);k.isEmptyObject(l)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),l=k.event.fix(e),c=(Q.get(this,"events")||Object.create(null))[l.type]||[],u=k.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],a={},n=0;n-1:k.find(i,this,null,[c]).length),a[i]&&o.push(r);o.length&&s.push({elem:c,handlers:o})}return c=this,l\s*$/g;function De(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Me(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Pe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function je(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Q.hasData(e)&&(s=Q.get(e).events))for(i in Q.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"===typeof h&&!g.checkClone&&Ne.test(h))return e.each((function(i){var o=e.eq(i);m&&(t[0]=h.call(this,i,o.html())),Re(o,t,n,r)}));if(d&&(o=(i=we(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(s=(a=k.map(ve(i,"script"),Me)).length;f0&&ye(a,!l&&ve(e,"script")),s},cleanData:function(e){for(var t,n,r,i=k.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[Q.expando]){if(t.events)for(r in t.events)i[r]?k.event.remove(n,r):k.removeEvent(n,r,t.handle);n[Q.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),k.fn.extend({detach:function(e){return qe(this,e,!0)},remove:function(e){return qe(this,e)},text:function(e){return W(this,(function(e){return void 0===e?k.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Re(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||De(this,e).appendChild(e)}))},prepend:function(){return Re(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=De(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Re(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Re(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(k.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return k.clone(this,e,t)}))},html:function(e){return W(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"===typeof e&&!Ae.test(e)&&!ge[(he.exec(e)||["",""])[1].toLowerCase()]){e=k.htmlPrefilter(e);try{for(;n3,oe.removeChild(e)),s}}))}();var Ve=["Webkit","Moz","ms"],Ye=b.createElement("div").style,$e={};function Xe(e){var t=k.cssProps[e]||$e[e];return t||(e in Ye?e:$e[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=Ve.length;n--;)if((e=Ve[n]+t)in Ye)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ke=/^--/,Qe={position:"absolute",visibility:"hidden",display:"block"},Je={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=re.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var a="width"===t?1:0,s=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=k.css(e,n+ie[a],!0,i)),r?("content"===n&&(l-=k.css(e,"padding"+ie[a],!0,i)),"margin"!==n&&(l-=k.css(e,"border"+ie[a]+"Width",!0,i))):(l+=k.css(e,"padding"+ie[a],!0,i),"padding"!==n?l+=k.css(e,"border"+ie[a]+"Width",!0,i):s+=k.css(e,"border"+ie[a]+"Width",!0,i));return!r&&o>=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-s-.5))||0),l}function tt(e,t,n){var r=ze(e),i=(!g.boxSizingReliable()||n)&&"border-box"===k.css(e,"boxSizing",!1,r),o=i,a=Ue(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Fe.test(a)){if(!n)return a;a="auto"}return(!g.boxSizingReliable()&&i||!g.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===k.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===k.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+et(e,t,n||(i?"border":"content"),o,r,a)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}k.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ue(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),l=Ke.test(t),c=e.style;if(l||(t=Xe(s)),a=k.cssHooks[t]||k.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:c[t];"string"===(o=typeof n)&&(i=re.exec(n))&&i[1]&&(n=ce(e,t,i),o="number"),null!=n&&n===n&&("number"!==o||l||(n+=i&&i[3]||(k.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ke.test(t)||(t=Xe(s)),(a=k.cssHooks[t]||k.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ue(e,t,r)),"normal"===i&&t in Je&&(i=Je[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),k.each(["height","width"],(function(e,t){k.cssHooks[t]={get:function(e,n,r){if(n)return!Ge.test(k.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,t,r):He(e,Qe,(function(){return tt(e,t,r)}))},set:function(e,n,r){var i,o=ze(e),a=!g.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===k.css(e,"boxSizing",!1,o),l=r?et(e,t,r,s,o):0;return s&&a&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-et(e,t,"border",!1,o)-.5)),l&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=k.css(e,t)),Ze(0,n,l)}}})),k.cssHooks.marginLeft=We(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ue(e,"marginLeft"))||e.getBoundingClientRect().left-He(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),k.each({margin:"",padding:"",border:"Width"},(function(e,t){k.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"===typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(k.cssHooks[e+t].set=Ze)})),k.fn.extend({css:function(e,t){return W(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=ze(e),i=t.length;a1)}}),k.Tween=nt,nt.prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||k.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(k.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=k.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}},nt.prototype.init.prototype=nt.prototype,nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=k.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){k.fx.step[e.prop]?k.fx.step[e.prop](e):1!==e.elem.nodeType||!k.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:k.style(e.elem,e.prop,e.now+e.unit)}}},nt.propHooks.scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},k.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},(k.fx=nt.prototype.init).step={};var rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){it&&(!1===b.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(st):n.setTimeout(st,k.fx.interval),k.fx.tick())}function lt(){return n.setTimeout((function(){rt=void 0})),rt=Date.now()}function ct(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){k.removeAttr(this,e)}))}}),k.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"===typeof e.getAttribute?k.prop(e,t,n):(1===o&&k.isXMLDoc(e)||(i=k.attrHooks[t.toLowerCase()]||(k.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void k.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=k.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(R);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?k.removeAttr(e,n):e.setAttribute(n,n),n}},k.each(k.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=pt[t]||k.find.attr;pt[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=pt[a],pt[a]=i,i=null!=n(e,t,r)?a:null,pt[a]=o),i}}));var ht=/^(?:input|select|textarea|button)$/i,mt=/^(?:a|area)$/i;function gt(e){return(e.match(R)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function yt(e){return Array.isArray(e)?e:"string"===typeof e&&e.match(R)||[]}k.fn.extend({prop:function(e,t){return W(this,k.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[k.propFix[e]||e]}))}}),k.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&k.isXMLDoc(e)||(t=k.propFix[t]||t,i=k.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=k.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||mt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(k.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),k.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){k.propFix[this.toLowerCase()]=this})),k.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,l=0;if(v(e))return this.each((function(t){k(this).addClass(e.call(this,t,vt(this)))}));if((t=yt(e)).length)for(;n=this[l++];)if(i=vt(n),r=1===n.nodeType&&" "+gt(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=gt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,l=0;if(v(e))return this.each((function(t){k(this).removeClass(e.call(this,t,vt(this)))}));if(!arguments.length)return this.attr("class","");if((t=yt(e)).length)for(;n=this[l++];)if(i=vt(n),r=1===n.nodeType&&" "+gt(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=gt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"===typeof t&&r?t?this.addClass(e):this.removeClass(e):v(e)?this.each((function(n){k(this).toggleClass(e.call(this,n,vt(this),t),t)})):this.each((function(){var t,i,o,a;if(r)for(i=0,o=k(this),a=yt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||((t=vt(this))&&Q.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Q.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+gt(vt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;k.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=v(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,k(this).val()):e)?i="":"number"===typeof i?i+="":Array.isArray(i)&&(i=k.map(i,(function(e){return null==e?"":e+""}))),(t=k.valHooks[this.type]||k.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=k.valHooks[i.type]||k.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"===typeof(n=i.value)?n.replace(bt,""):null==n?"":n:void 0}}),k.extend({valHooks:{option:{get:function(e){var t=k.find.attr(e,"value");return null!=t?t:gt(k.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],l=a?o+1:i.length;for(r=o<0?l:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),k.each(["radio","checkbox"],(function(){k.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=k.inArray(k(e).val(),t)>-1}},g.checkOn||(k.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),g.focusin="onfocusin"in n;var wt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};k.extend(k.event,{trigger:function(e,t,r,i){var o,a,s,l,c,u,f,d,h=[r||b],m=p.call(e,"type")?e.type:e,g=p.call(e,"namespace")?e.namespace.split("."):[];if(a=d=s=r=r||b,3!==r.nodeType&&8!==r.nodeType&&!wt.test(m+k.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),c=m.indexOf(":")<0&&"on"+m,(e=e[k.expando]?e:new k.Event(m,"object"===typeof e&&e)).isTrigger=i?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=r),t=null==t?[e]:k.makeArray(t,[e]),f=k.event.special[m]||{},i||!f.trigger||!1!==f.trigger.apply(r,t))){if(!i&&!f.noBubble&&!y(r)){for(l=f.delegateType||m,wt.test(l+m)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(r.ownerDocument||b)&&h.push(s.defaultView||s.parentWindow||n)}for(o=0;(a=h[o++])&&!e.isPropagationStopped();)d=a,e.type=o>1?l:f.bindType||m,(u=(Q.get(a,"events")||Object.create(null))[e.type]&&Q.get(a,"handle"))&&u.apply(a,t),(u=c&&a[c])&&u.apply&&G(a)&&(e.result=u.apply(a,t),!1===e.result&&e.preventDefault());return e.type=m,i||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(h.pop(),t)||!G(r)||c&&v(r[m])&&!y(r)&&((s=r[c])&&(r[c]=null),k.event.triggered=m,e.isPropagationStopped()&&d.addEventListener(m,xt),r[m](),e.isPropagationStopped()&&d.removeEventListener(m,xt),k.event.triggered=void 0,s&&(r[c]=s)),e.result}},simulate:function(e,t,n){var r=k.extend(new k.Event,n,{type:e,isSimulated:!0});k.event.trigger(r,null,t)}}),k.fn.extend({trigger:function(e,t){return this.each((function(){k.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return k.event.trigger(e,t,n,!0)}}),g.focusin||k.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){k.event.simulate(t,e.target,k.event.fix(e))};k.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,t);i||r.addEventListener(e,n,!0),Q.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Q.access(r,t)-1;i?Q.access(r,t,i):(r.removeEventListener(e,n,!0),Q.remove(r,t))}}}));var _t=n.location,kt={guid:Date.now()},St=/\?/;k.parseXML=function(e){var t;if(!e||"string"!==typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(r){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||k.error("Invalid XML: "+e),t};var Et=/\[\]$/,Tt=/\r?\n/g,Ct=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function At(e,t,n,r){var i;if(Array.isArray(t))k.each(t,(function(t,i){n||Et.test(e)?r(e,i):At(e+"["+("object"===typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==_(t))r(e,t);else for(i in t)At(e+"["+i+"]",t[i],n,r)}k.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!k.isPlainObject(e))k.each(e,(function(){i(this.name,this.value)}));else for(n in e)At(n,e[n],t,i);return r.join("&")},k.fn.extend({serialize:function(){return k.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=k.prop(this,"elements");return e?k.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!k(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ct.test(e)&&(this.checked||!pe.test(e))})).map((function(e,t){var n=k(this).val();return null==n?null:Array.isArray(n)?k.map(n,(function(e){return{name:t.name,value:e.replace(Tt,"\r\n")}})):{name:t.name,value:n.replace(Tt,"\r\n")}})).get()}});var Nt=/%20/g,Lt=/#.*$/,Dt=/([?&])_=[^&]*/,Mt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:GET|HEAD)$/,jt=/^\/\//,It={},Rt={},qt="*/".concat("*"),Ft=b.createElement("a");function zt(e){return function(t,n){"string"!==typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(R)||[];if(v(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Ht(e,t,n,r){var i={},o=e===Rt;function a(s){var l;return i[s]=!0,k.each(e[s]||[],(function(e,s){var c=s(t,n,r);return"string"!==typeof c||o||i[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),a(c),!1)})),l}return a(t.dataTypes[0])||!i["*"]&&a("*")}function Bt(e,t){var n,r,i=k.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&k.extend(!0,e,r),e}Ft.href=_t.href,k.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:_t.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(_t.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":qt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":k.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,k.ajaxSettings),t):Bt(k.ajaxSettings,e)},ajaxPrefilter:zt(It),ajaxTransport:zt(Rt),ajax:function(e,t){"object"===typeof e&&(t=e,e=void 0);var r,i,o,a,s,l,c,u,f,d,p=k.ajaxSetup({},t=t||{}),h=p.context||p,m=p.context&&(h.nodeType||h.jquery)?k(h):k.event,g=k.Deferred(),v=k.Callbacks("once memory"),y=p.statusCode||{},w={},x={},_="canceled",S={readyState:0,getResponseHeader:function(e){var t;if(c){if(!a)for(a={};t=Mt.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(e,t){return null==c&&(e=x[e.toLowerCase()]=x[e.toLowerCase()]||e,w[e]=t),this},overrideMimeType:function(e){return null==c&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)S.always(e[S.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||_;return r&&r.abort(t),E(0,t),this}};if(g.promise(S),p.url=((e||p.url||_t.href)+"").replace(jt,_t.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(R)||[""],null==p.crossDomain){l=b.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Ft.protocol+"//"+Ft.host!==l.protocol+"//"+l.host}catch(T){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!==typeof p.data&&(p.data=k.param(p.data,p.traditional)),Ht(It,p,t,S),c)return S;for(f in(u=k.event&&p.global)&&0===k.active++&&k.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Pt.test(p.type),i=p.url.replace(Lt,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Nt,"+")):(d=p.url.slice(i.length),p.data&&(p.processData||"string"===typeof p.data)&&(i+=(St.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(Dt,"$1"),d=(St.test(i)?"&":"?")+"_="+kt.guid+++d),p.url=i+d),p.ifModified&&(k.lastModified[i]&&S.setRequestHeader("If-Modified-Since",k.lastModified[i]),k.etag[i]&&S.setRequestHeader("If-None-Match",k.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&S.setRequestHeader("Content-Type",p.contentType),S.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+qt+"; q=0.01":""):p.accepts["*"]),p.headers)S.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(!1===p.beforeSend.call(h,S,p)||c))return S.abort();if(_="abort",v.add(p.complete),S.done(p.success),S.fail(p.error),r=Ht(Rt,p,t,S)){if(S.readyState=1,u&&m.trigger("ajaxSend",[S,p]),c)return S;p.async&&p.timeout>0&&(s=n.setTimeout((function(){S.abort("timeout")}),p.timeout));try{c=!1,r.send(w,E)}catch(T){if(c)throw T;E(-1,T)}}else E(-1,"No Transport");function E(e,t,a,l){var f,d,b,w,x,_=t;c||(c=!0,s&&n.clearTimeout(s),r=void 0,o=l||"",S.readyState=e>0?4:0,f=e>=200&&e<300||304===e,a&&(w=function(e,t,n){for(var r,i,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){l.unshift(i);break}if(l[0]in n)o=l[0];else{for(i in n){if(!l[0]||e.converters[i+" "+l[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}(p,S,a)),!f&&k.inArray("script",p.dataTypes)>-1&&(p.converters["text script"]=function(){}),w=function(e,t,n,r){var i,o,a,s,l,c={},u=e.dataTypes.slice();if(u[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=c[l+" "+o]||c["* "+o]))for(i in c)if((s=i.split(" "))[1]===o&&(a=c[l+" "+s[0]]||c["* "+s[0]])){!0===a?a=c[i]:!0!==c[i]&&(o=s[0],u.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(T){return{state:"parsererror",error:a?T:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(p,w,S,f),f?(p.ifModified&&((x=S.getResponseHeader("Last-Modified"))&&(k.lastModified[i]=x),(x=S.getResponseHeader("etag"))&&(k.etag[i]=x)),204===e||"HEAD"===p.type?_="nocontent":304===e?_="notmodified":(_=w.state,d=w.data,f=!(b=w.error))):(b=_,!e&&_||(_="error",e<0&&(e=0))),S.status=e,S.statusText=(t||_)+"",f?g.resolveWith(h,[d,_,S]):g.rejectWith(h,[S,_,b]),S.statusCode(y),y=void 0,u&&m.trigger(f?"ajaxSuccess":"ajaxError",[S,p,f?d:b]),v.fireWith(h,[S,_]),u&&(m.trigger("ajaxComplete",[S,p]),--k.active||k.event.trigger("ajaxStop")))}return S},getJSON:function(e,t,n){return k.get(e,t,n,"json")},getScript:function(e,t){return k.get(e,void 0,t,"script")}}),k.each(["get","post"],(function(e,t){k[t]=function(e,n,r,i){return v(n)&&(i=i||r,r=n,n=void 0),k.ajax(k.extend({url:e,type:t,dataType:i,data:n,success:r},k.isPlainObject(e)&&e))}})),k.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),k._evalUrl=function(e,t,n){return k.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){k.globalEval(e,t,n)}})},k.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=k(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){k(this).wrapInner(e.call(this,t))})):this.each((function(){var t=k(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){k(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){k(this).replaceWith(this.childNodes)})),this}}),k.expr.pseudos.hidden=function(e){return!k.expr.pseudos.visible(e)},k.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},k.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Ut={0:200,1223:204},Wt=k.ajaxSettings.xhr();g.cors=!!Wt&&"withCredentials"in Wt,g.ajax=Wt=!!Wt,k.ajaxTransport((function(e){var t,r;if(g.cors||Wt&&!e.crossDomain)return{send:function(i,o){var a,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)s[a]=e.xhrFields[a];for(a in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);t=function(e){return function(){t&&(t=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!==typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Ut[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!==typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),r=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&r()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(l){if(t)throw l}},abort:function(){t&&t()}}})),k.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),k.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return k.globalEval(e),e}}}),k.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),k.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=k("