Compare commits
1 Commits
13723a73d9
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 46802662a3 |
Binary file not shown.
@@ -1 +1,2 @@
|
|||||||
go build -ldflags="-s -w" -o srcc.exe .
|
go build -ldflags="-s -w" -o srcc.exe .
|
||||||
|
upx -9 srcc.exe
|
||||||
@@ -94,3 +94,85 @@
|
|||||||
{"level":"debug","size":1919,"time":"2026-06-22T11:18:45+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:47","message":"托盘图标已生成 (ICO 32x32)"}
|
{"level":"debug","size":1919,"time":"2026-06-22T11:18:45+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:47","message":"托盘图标已生成 (ICO 32x32)"}
|
||||||
{"level":"info","time":"2026-06-22T11:20:53+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:63","message":"用户点击退出"}
|
{"level":"info","time":"2026-06-22T11:20:53+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:63","message":"用户点击退出"}
|
||||||
{"level":"info","time":"2026-06-22T11:20:54+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:94","message":"程序退出"}
|
{"level":"info","time":"2026-06-22T11:20:54+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:94","message":"程序退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:46:57+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:22","message":"程序启动"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:46:57+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:40","message":"控制台窗口已隐藏"}
|
||||||
|
{"level":"debug","has_admin":false,"time":"2026-06-22T23:46:57+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:35","message":"检查管理员权限"}
|
||||||
|
{"level":"warn","time":"2026-06-22T23:46:57+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:29","message":"未检测到管理员权限,尝试提权运行"}
|
||||||
|
{"level":"debug","exe_path":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\srcc.exe","time":"2026-06-22T23:46:57+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:81","message":"获取自身路径"}
|
||||||
|
{"level":"info","exe":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\srcc.exe","time":"2026-06-22T23:46:57+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:44","message":"尝试以管理员身份运行"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:70","message":"管理员提权成功,当前进程将退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:22","message":"程序启动"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:40","message":"控制台窗口已隐藏"}
|
||||||
|
{"level":"debug","has_admin":true,"time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:35","message":"检查管理员权限"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:33","message":"管理员权限已确认"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:35","message":"开始连接虚拟热点"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:22","message":"连接虚拟热点开始"}
|
||||||
|
{"level":"info","node":"tcp://magpie.snoware.sa-tale.eu.cc:11010","network":"scu_team","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/EasyTier.go:32","message":"构建 EasyTier 连接命令"}
|
||||||
|
{"level":"debug","command":"./easytier-core.exe --network-name scu_team --network-secret @5cut0t --peers tcp://magpie.snoware.sa-tale.eu.cc:11010 tcp://225284.xyz:11010 -d","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/EasyTier.go:33","message":"EasyTier 完整命令"}
|
||||||
|
{"level":"info","host":"magpie.snoware.sa-tale.eu.cc","port":"11010","network":"scu_team","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:42","message":"启动 EasyTier 进程"}
|
||||||
|
{"level":"debug","work_dir":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient","time":"2026-06-22T23:47:00+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:50","message":"工作目录"}
|
||||||
|
{"level":"warn","time":"2026-06-22T23:47:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:96","message":"检测到旧的 EasyTier 进程,已终止"}
|
||||||
|
{"level":"error","path":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\easytier-core.exe","time":"2026-06-22T23:47:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:57","message":"easytier-core.exe 不存在,请确保该文件与 srcc.exe 在同一目录"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:40","message":"启动系统托盘"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:46","message":"系统托盘就绪"}
|
||||||
|
{"level":"debug","file":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\image.png","time":"2026-06-22T23:47:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:31","message":"从文件读取图标"}
|
||||||
|
{"level":"debug","size":1919,"time":"2026-06-22T23:47:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:50","message":"托盘图标已生成 (ICO 32x32)"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:06+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:67","message":"用户点击退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:06+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:107","message":"程序退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:11+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:22","message":"程序启动"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:11+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:40","message":"控制台窗口已隐藏"}
|
||||||
|
{"level":"debug","has_admin":false,"time":"2026-06-22T23:47:11+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:35","message":"检查管理员权限"}
|
||||||
|
{"level":"warn","time":"2026-06-22T23:47:11+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:29","message":"未检测到管理员权限,尝试提权运行"}
|
||||||
|
{"level":"debug","exe_path":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\srcc.exe","time":"2026-06-22T23:47:11+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:81","message":"获取自身路径"}
|
||||||
|
{"level":"info","exe":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\srcc.exe","time":"2026-06-22T23:47:11+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:44","message":"尝试以管理员身份运行"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:13+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:70","message":"管理员提权成功,当前进程将退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:22","message":"程序启动"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:40","message":"控制台窗口已隐藏"}
|
||||||
|
{"level":"debug","has_admin":true,"time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:35","message":"检查管理员权限"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:33","message":"管理员权限已确认"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:35","message":"开始连接虚拟热点"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:22","message":"连接虚拟热点开始"}
|
||||||
|
{"level":"info","node":"tcp://magpie.snoware.sa-tale.eu.cc:11010","network":"scu_team","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/EasyTier.go:32","message":"构建 EasyTier 连接命令"}
|
||||||
|
{"level":"debug","command":"./easytier-core.exe --network-name scu_team --network-secret @5cut0t --peers tcp://magpie.snoware.sa-tale.eu.cc:11010 tcp://225284.xyz:11010 -d","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/EasyTier.go:33","message":"EasyTier 完整命令"}
|
||||||
|
{"level":"info","host":"magpie.snoware.sa-tale.eu.cc","port":"11010","network":"scu_team","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:42","message":"启动 EasyTier 进程"}
|
||||||
|
{"level":"debug","work_dir":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient","time":"2026-06-22T23:47:14+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:50","message":"工作目录"}
|
||||||
|
{"level":"error","path":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\easytier-core.exe","time":"2026-06-22T23:47:15+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:57","message":"easytier-core.exe 不存在,请确保该文件与 srcc.exe 在同一目录"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:15+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:40","message":"启动系统托盘"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:15+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:46","message":"系统托盘就绪"}
|
||||||
|
{"level":"debug","file":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\image.png","time":"2026-06-22T23:47:15+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:31","message":"从文件读取图标"}
|
||||||
|
{"level":"debug","size":1919,"time":"2026-06-22T23:47:15+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:50","message":"托盘图标已生成 (ICO 32x32)"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:20+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:90","message":"用户点击显示控制台窗口"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:20+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:48","message":"控制台窗口已显示"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:24+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:75","message":"用户点击访问 Gitea"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:29+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:67","message":"用户点击退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:29+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:107","message":"程序退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:32+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:22","message":"程序启动"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:32+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:40","message":"控制台窗口已隐藏"}
|
||||||
|
{"level":"debug","has_admin":false,"time":"2026-06-22T23:47:32+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:35","message":"检查管理员权限"}
|
||||||
|
{"level":"warn","time":"2026-06-22T23:47:32+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:29","message":"未检测到管理员权限,尝试提权运行"}
|
||||||
|
{"level":"debug","exe_path":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\srcc.exe","time":"2026-06-22T23:47:32+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:81","message":"获取自身路径"}
|
||||||
|
{"level":"info","exe":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\srcc.exe","time":"2026-06-22T23:47:32+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:44","message":"尝试以管理员身份运行"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:35+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:70","message":"管理员提权成功,当前进程将退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:22","message":"程序启动"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:40","message":"控制台窗口已隐藏"}
|
||||||
|
{"level":"debug","has_admin":true,"time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/Perm.go:35","message":"检查管理员权限"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:33","message":"管理员权限已确认"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:35","message":"开始连接虚拟热点"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:22","message":"连接虚拟热点开始"}
|
||||||
|
{"level":"info","node":"tcp://magpie.snoware.sa-tale.eu.cc:11010","network":"scu_team","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/EasyTier.go:32","message":"构建 EasyTier 连接命令"}
|
||||||
|
{"level":"debug","command":"./easytier-core.exe --network-name scu_team --network-secret @5cut0t --peers tcp://magpie.snoware.sa-tale.eu.cc:11010 tcp://225284.xyz:11010 -d","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/EasyTier.go:33","message":"EasyTier 完整命令"}
|
||||||
|
{"level":"info","host":"magpie.snoware.sa-tale.eu.cc","port":"11010","network":"scu_team","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:42","message":"启动 EasyTier 进程"}
|
||||||
|
{"level":"debug","work_dir":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:50","message":"工作目录"}
|
||||||
|
{"level":"error","path":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\easytier-core.exe","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/DoConnect.go:57","message":"easytier-core.exe 不存在,请确保该文件与 srcc.exe 在同一目录"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:40","message":"启动系统托盘"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:46","message":"系统托盘就绪"}
|
||||||
|
{"level":"debug","file":"C:\\Users\\sakeen\\Desktop\\SRemoteConnectClient\\image.png","time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:31","message":"从文件读取图标"}
|
||||||
|
{"level":"debug","size":1919,"time":"2026-06-22T23:47:36+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/trayicon_windows.go:50","message":"托盘图标已生成 (ICO 32x32)"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:40+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:75","message":"用户点击访问 Gitea"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:44+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:75","message":"用户点击访问 Gitea"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:52+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:90","message":"用户点击显示控制台窗口"}
|
||||||
|
{"level":"debug","time":"2026-06-22T23:47:52+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/console_windows.go:48","message":"控制台窗口已显示"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:47:56+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:75","message":"用户点击访问 Gitea"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:48:01+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:83","message":"用户点击访问 Cloudreve"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:48:09+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:67","message":"用户点击退出"}
|
||||||
|
{"level":"info","time":"2026-06-22T23:48:10+08:00","caller":"C:/Users/sakeen/Desktop/SRemoteConnectClient/main.go:107","message":"程序退出"}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ func onReady() {
|
|||||||
|
|
||||||
systray.SetTooltip("若一切正常,您现可连接到SCU的所有队内服务")
|
systray.SetTooltip("若一切正常,您现可连接到SCU的所有队内服务")
|
||||||
|
|
||||||
mTitle := systray.AddMenuItem("<<*>> SCU Remote Connect Client", "已连接")
|
mTitle := systray.AddMenuItem("<<*>> SCU Remote Connect Client 1.4", "已连接")
|
||||||
mTitle.Disable()
|
mTitle.Disable()
|
||||||
systray.AddSeparator()
|
systray.AddSeparator()
|
||||||
|
|
||||||
@@ -70,14 +70,16 @@ func onReady() {
|
|||||||
|
|
||||||
// 访问 Gitea → 浏览器打开 SASWE 代码托管
|
// 访问 Gitea → 浏览器打开 SASWE 代码托管
|
||||||
go func() {
|
go func() {
|
||||||
for range mVisitGitea.ClickedCh{
|
for true{
|
||||||
|
<-mVisitGitea.ClickedCh
|
||||||
log.Info().Msg("用户点击访问 Gitea")
|
log.Info().Msg("用户点击访问 Gitea")
|
||||||
exec.Command("cmd", "/c", "start", "http://103.217.186.98:3000/").Start()}
|
exec.Command("cmd", "/c", "start", "http://103.217.186.98:3000/").Start()}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// 访问 Cloudreve → 浏览器打开 SASWE 文件分发
|
// 访问 Cloudreve → 浏览器打开 SASWE 文件分发
|
||||||
go func() {
|
go func() {
|
||||||
for range mVisitCloudreve.ClickedCh{
|
for true{
|
||||||
|
<-mVisitCloudreve.ClickedCh
|
||||||
log.Info().Msg("用户点击访问 Cloudreve")
|
log.Info().Msg("用户点击访问 Cloudreve")
|
||||||
exec.Command("cmd", "/c", "start", "http://103.217.186.98:5212/").Start()}
|
exec.Command("cmd", "/c", "start", "http://103.217.186.98:5212/").Start()}
|
||||||
}()
|
}()
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user