HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/panel/BTPanel/static/editor/keybinding-sublime.js
ace.define(
	'ace/keyboard/sublime',
	['require', 'exports', 'module', 'ace/keyboard/hash_handler'],
	function (e, t, n) {
		'use strict'
		function i(e, t, n) {
			function f(e) {
				return e
					? /\s/.test(e)
						? 's'
						: e == '_'
						  ? '_'
						  : e.toUpperCase() == e && e.toLowerCase() != e
						    ? 'W'
						    : e.toUpperCase() != e && e.toLowerCase() == e
						      ? 'w'
						      : 'o'
					: '-'
			}
			var r = e.selection,
				i = r.lead.row,
				s = r.lead.column,
				o = e.session.getLine(i)
			if (!o[s + t]) {
				var u = (n ? 'selectWord' : 'moveCursorShortWord') + (t == 1 ? 'Right' : 'Left')
				return e.selection[u]()
			}
			t == -1 && s--
			while (o[s]) {
				var a = f(o[s]) + f(o[s + t])
				s += t
				if (t == 1) {
					if (a == 'WW' && f(o[s + 1]) == 'w') break
				} else {
					if (a == 'wW') {
						if (f(o[s - 1]) == 'W') {
							s -= 1
							break
						}
						continue
					}
					if (a == 'Ww') break
				}
				if (/w[s_oW]|_[sWo]|o[s_wW]|s[W]|W[so]/.test(a)) break
			}
			t == -1 && s++, n ? e.selection.moveCursorTo(i, s) : e.selection.moveTo(i, s)
		}
		var r = e('../keyboard/hash_handler').HashHandler
		;(t.handler = new r()),
			t.handler.addCommands([
				{
					name: 'find_all_under',
					exec: function (e) {
						e.selection.isEmpty() && e.selection.selectWord(), e.findAll()
					},
					readOnly: !0,
				},
				{
					name: 'find_under',
					exec: function (e) {
						e.selection.isEmpty() && e.selection.selectWord(), e.findNext()
					},
					readOnly: !0,
				},
				{
					name: 'find_under_prev',
					exec: function (e) {
						e.selection.isEmpty() && e.selection.selectWord(), e.findPrevious()
					},
					readOnly: !0,
				},
				{
					name: 'find_under_expand',
					exec: function (e) {
						e.selectMore(1, !1, !0)
					},
					scrollIntoView: 'animate',
					readOnly: !0,
				},
				{
					name: 'find_under_expand_skip',
					exec: function (e) {
						e.selectMore(1, !0, !0)
					},
					scrollIntoView: 'animate',
					readOnly: !0,
				},
				{
					name: 'delete_to_hard_bol',
					exec: function (e) {
						var t = e.selection.getCursor()
						e.session.remove({ start: { row: t.row, column: 0 }, end: t })
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
				},
				{
					name: 'delete_to_hard_eol',
					exec: function (e) {
						var t = e.selection.getCursor()
						e.session.remove({ start: t, end: { row: t.row, column: Infinity } })
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
				},
				{
					name: 'moveToWordStartLeft',
					exec: function (e) {
						e.selection.moveCursorLongWordLeft(), e.clearSelection()
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
				},
				{
					name: 'moveToWordEndRight',
					exec: function (e) {
						e.selection.moveCursorLongWordRight(), e.clearSelection()
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
				},
				{
					name: 'selectToWordStartLeft',
					exec: function (e) {
						var t = e.selection
						t.$moveSelection(t.moveCursorLongWordLeft)
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
				},
				{
					name: 'selectToWordEndRight',
					exec: function (e) {
						var t = e.selection
						t.$moveSelection(t.moveCursorLongWordRight)
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
				},
				{
					name: 'selectSubWordRight',
					exec: function (e) {
						i(e, 1, !0)
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
					readOnly: !0,
				},
				{
					name: 'selectSubWordLeft',
					exec: function (e) {
						i(e, -1, !0)
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
					readOnly: !0,
				},
				{
					name: 'moveSubWordRight',
					exec: function (e) {
						i(e, 1)
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
					readOnly: !0,
				},
				{
					name: 'moveSubWordLeft',
					exec: function (e) {
						i(e, -1)
					},
					multiSelectAction: 'forEach',
					scrollIntoView: 'cursor',
					readOnly: !0,
				},
			]),
			[
				{
					bindKey: {
						mac: 'cmd-k cmd-backspace|cmd-backspace',
						win: 'ctrl-shift-backspace|ctrl-k ctrl-backspace',
					},
					name: 'removetolinestarthard',
				},
				{
					bindKey: { mac: 'cmd-k cmd-k|cmd-delete|ctrl-k', win: 'ctrl-shift-delete|ctrl-k ctrl-k' },
					name: 'removetolineendhard',
				},
				{ bindKey: { mac: 'cmd-shift-d', win: 'ctrl-shift-d' }, name: 'duplicateSelection' },
				{ bindKey: { mac: 'cmd-l', win: 'ctrl-l' }, name: 'expandtoline' },
				{
					bindKey: { mac: 'cmd-shift-a', win: 'ctrl-shift-a' },
					name: 'expandSelection',
					args: { to: 'tag' },
				},
				{
					bindKey: { mac: 'cmd-shift-j', win: 'ctrl-shift-j' },
					name: 'expandSelection',
					args: { to: 'indentation' },
				},
				{
					bindKey: { mac: 'ctrl-shift-m', win: 'ctrl-shift-m' },
					name: 'expandSelection',
					args: { to: 'brackets' },
				},
				{
					bindKey: { mac: 'cmd-shift-space', win: 'ctrl-shift-space' },
					name: 'expandSelection',
					args: { to: 'scope' },
				},
				{ bindKey: { mac: 'ctrl-cmd-g', win: 'alt-f3' }, name: 'find_all_under' },
				{ bindKey: { mac: 'alt-cmd-g', win: 'ctrl-f3' }, name: 'find_under' },
				{ bindKey: { mac: 'shift-alt-cmd-g', win: 'ctrl-shift-f3' }, name: 'find_under_prev' },
				{ bindKey: { mac: 'cmd-g', win: 'f3' }, name: 'findnext' },
				{ bindKey: { mac: 'shift-cmd-g', win: 'shift-f3' }, name: 'findprevious' },
				{ bindKey: { mac: 'cmd-d', win: 'ctrl-d' }, name: 'find_under_expand' },
				{ bindKey: { mac: 'cmd-k cmd-d', win: 'ctrl-k ctrl-d' }, name: 'find_under_expand_skip' },
				{ bindKey: { mac: 'cmd-alt-[', win: 'ctrl-shift-[' }, name: 'toggleFoldWidget' },
				{ bindKey: { mac: 'cmd-alt-]', win: 'ctrl-shift-]' }, name: 'unfold' },
				{
					bindKey: { mac: 'cmd-k cmd-0|cmd-k cmd-j', win: 'ctrl-k ctrl-0|ctrl-k ctrl-j' },
					name: 'unfoldall',
				},
				{
					bindKey: { mac: 'cmd-k cmd-1', win: 'ctrl-k ctrl-1' },
					name: 'foldOther',
					args: { level: 1 },
				},
				{ bindKey: { win: 'ctrl-left', mac: 'alt-left' }, name: 'moveToWordStartLeft' },
				{ bindKey: { win: 'ctrl-right', mac: 'alt-right' }, name: 'moveToWordEndRight' },
				{
					bindKey: { win: 'ctrl-shift-left', mac: 'alt-shift-left' },
					name: 'selectToWordStartLeft',
				},
				{
					bindKey: { win: 'ctrl-shift-right', mac: 'alt-shift-right' },
					name: 'selectToWordEndRight',
				},
				{
					bindKey: { mac: 'ctrl-alt-shift-right|ctrl-shift-right', win: 'alt-shift-right' },
					name: 'selectSubWordRight',
				},
				{
					bindKey: { mac: 'ctrl-alt-shift-left|ctrl-shift-left', win: 'alt-shift-left' },
					name: 'selectSubWordLeft',
				},
				{
					bindKey: { mac: 'ctrl-alt-right|ctrl-right', win: 'alt-right' },
					name: 'moveSubWordRight',
				},
				{ bindKey: { mac: 'ctrl-alt-left|ctrl-left', win: 'alt-left' }, name: 'moveSubWordLeft' },
				{
					bindKey: { mac: 'ctrl-m', win: 'ctrl-m' },
					name: 'jumptomatching',
					args: { to: 'brackets' },
				},
				{ bindKey: { mac: 'ctrl-f6', win: 'ctrl-f6' }, name: 'goToNextError' },
				{ bindKey: { mac: 'ctrl-shift-f6', win: 'ctrl-shift-f6' }, name: 'goToPreviousError' },
				{ bindKey: { mac: 'ctrl-o' }, name: 'splitline' },
				{ bindKey: { mac: 'ctrl-shift-w', win: 'alt-shift-w' }, name: 'surrowndWithTag' },
				{ bindKey: { mac: 'cmd-alt-.', win: 'alt-.' }, name: 'close_tag' },
				{ bindKey: { mac: 'cmd-j', win: 'ctrl-j' }, name: 'joinlines' },
				{ bindKey: { mac: 'ctrl--', win: 'alt--' }, name: 'jumpBack' },
				{ bindKey: { mac: 'ctrl-shift--', win: 'alt-shift--' }, name: 'jumpForward' },
				{ bindKey: { mac: 'cmd-k cmd-l', win: 'ctrl-k ctrl-l' }, name: 'tolowercase' },
				{ bindKey: { mac: 'cmd-k cmd-u', win: 'ctrl-k ctrl-u' }, name: 'touppercase' },
				{ bindKey: { mac: 'cmd-shift-v', win: 'ctrl-shift-v' }, name: 'paste_and_indent' },
				{
					bindKey: { mac: 'cmd-k cmd-v|cmd-alt-v', win: 'ctrl-k ctrl-v' },
					name: 'paste_from_history',
				},
				{ bindKey: { mac: 'cmd-shift-enter', win: 'ctrl-shift-enter' }, name: 'addLineBefore' },
				{ bindKey: { mac: 'cmd-enter', win: 'ctrl-enter' }, name: 'addLineAfter' },
				{ bindKey: { mac: 'ctrl-shift-k', win: 'ctrl-shift-k' }, name: 'removeline' },
				{ bindKey: { mac: 'ctrl-alt-up', win: 'ctrl-up' }, name: 'scrollup' },
				{ bindKey: { mac: 'ctrl-alt-down', win: 'ctrl-down' }, name: 'scrolldown' },
				{ bindKey: { mac: 'cmd-a', win: 'ctrl-a' }, name: 'selectall' },
				{
					bindKey: { linux: 'alt-shift-down', mac: 'ctrl-shift-down', win: 'ctrl-alt-down' },
					name: 'addCursorBelow',
				},
				{
					bindKey: { linux: 'alt-shift-up', mac: 'ctrl-shift-up', win: 'ctrl-alt-up' },
					name: 'addCursorAbove',
				},
				{ bindKey: { mac: 'cmd-k cmd-c|ctrl-l', win: 'ctrl-k ctrl-c' }, name: 'centerselection' },
				{ bindKey: { mac: 'f5', win: 'f9' }, name: 'sortlines' },
				{
					bindKey: { mac: 'ctrl-f5', win: 'ctrl-f9' },
					name: 'sortlines',
					args: { caseSensitive: !0 },
				},
				{ bindKey: { mac: 'cmd-shift-l', win: 'ctrl-shift-l' }, name: 'splitSelectionIntoLines' },
				{ bindKey: { mac: 'ctrl-cmd-down', win: 'ctrl-shift-down' }, name: 'movelinesdown' },
				{ bindKey: { mac: 'ctrl-cmd-up', win: 'ctrl-shift-up' }, name: 'movelinesup' },
				{ bindKey: { mac: 'alt-down', win: 'alt-down' }, name: 'modifyNumberDown' },
				{ bindKey: { mac: 'alt-up', win: 'alt-up' }, name: 'modifyNumberUp' },
				{ bindKey: { mac: 'cmd-/', win: 'ctrl-/' }, name: 'togglecomment' },
				{ bindKey: { mac: 'cmd-alt-/', win: 'ctrl-shift-/' }, name: 'toggleBlockComment' },
				{ bindKey: { linux: 'ctrl-alt-q', mac: 'ctrl-q', win: 'ctrl-q' }, name: 'togglerecording' },
				{
					bindKey: { linux: 'ctrl-alt-shift-q', mac: 'ctrl-shift-q', win: 'ctrl-shift-q' },
					name: 'replaymacro',
				},
				{ bindKey: { mac: 'ctrl-t', win: 'ctrl-t' }, name: 'transpose' },
			].forEach(function (e) {
				var n = t.handler.commands[e.name]
				n && (n.bindKey = e.bindKey), t.handler.bindKey(e.bindKey, n || e.name)
			})
	}
)
;(function () {
	ace.require(['ace/keyboard/sublime'], function (m) {
		if (typeof module == 'object' && typeof exports == 'object' && module) {
			module.exports = m
		}
	})
})()