diff --git a/IMG/cpio/ventoy/hook/debian/puppy-disk.sh b/IMG/cpio/ventoy/hook/debian/puppy-disk.sh
index 7f987223..600088a2 100644
--- a/IMG/cpio/ventoy/hook/debian/puppy-disk.sh
+++ b/IMG/cpio/ventoy/hook/debian/puppy-disk.sh
@@ -27,6 +27,33 @@ vtlog "####### $0 $* ########"
VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
+ventoy_os_install_dmsetup_by_fuse() {
+ vtlog "ventoy_os_install_dmsetup_by_fuse $*"
+
+ mkdir -p $VTOY_PATH/mnt/fuse $VTOY_PATH/mnt/iso $VTOY_PATH/mnt/squashfs
+
+ vtoydm -p -f $VTOY_PATH/ventoy_image_map -d $1 > $VTOY_PATH/ventoy_dm_table
+ vtoy_fuse_iso -f $VTOY_PATH/ventoy_dm_table -m $VTOY_PATH/mnt/fuse
+
+ mount -t iso9660 $VTOY_PATH/mnt/fuse/ventoy.iso $VTOY_PATH/mnt/iso
+
+ sfsfile=$(ls $VTOY_PATH/mnt/iso/*.sfs)
+
+ mount -t squashfs $sfsfile $VTOY_PATH/mnt/squashfs
+
+ kVer=$(uname -r)
+ KoName=$(ls $VTOY_PATH/mnt/squashfs/lib/modules/$kVer/kernel/drivers/md/dm-mod.ko*)
+ vtlog "insmod $KoName"
+ insmod $KoName
+
+ umount $VTOY_PATH/mnt/squashfs
+ umount $VTOY_PATH/mnt/iso
+ umount $VTOY_PATH/mnt/fuse
+}
+
+
+
+
wait_for_usb_disk_ready
vtdiskname=$(get_ventoy_disk_name)
@@ -36,6 +63,12 @@ if [ "$vtdiskname" = "unknown" ]; then
exit 0
fi
+if grep -q 'device-mapper' /proc/devices; then
+ vtlog "device-mapper module exist"
+else
+ ventoy_os_install_dmsetup_by_fuse $vtdiskname
+fi
+
ventoy_udev_disk_common_hook "${vtdiskname#/dev/}2" "noreplace"
if ! [ -e $VTOY_DM_PATH ]; then
diff --git a/IMG/cpio/ventoy/hook/debian/puppy-hook.sh b/IMG/cpio/ventoy/hook/debian/puppy-hook.sh
index cbb5a20b..d2e15638 100644
--- a/IMG/cpio/ventoy/hook/debian/puppy-hook.sh
+++ b/IMG/cpio/ventoy/hook/debian/puppy-hook.sh
@@ -18,8 +18,15 @@
#************************************************************************************
$SED '1 apmedia=usbhd' -i /init
-$SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
-$SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init
+
+if $GREP -q 'HAVE_PARTS=' /init; then
+ $SED "/^ *HAVE_PARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
+ $SED "/^ *HAVE_PARTS=/a\ HAVE_PARTS='ventoy|iso9660'" -i /init
+elif $GREP -q 'LESSPARTS=' /init; then
+ $SED "/^ *LESSPARTS=/a\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/puppy-disk.sh" -i /init
+ $SED "/^ *LESSPARTS=/a\ LESSPARTS='ventoy|iso9660'" -i /init
+fi
+
if [ -f /DISTRO_SPECS ]; then
if ! [ -d /dev ]; then
diff --git a/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh b/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh
index 402eb4d3..40971ca4 100644
--- a/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh
+++ b/IMG/cpio/ventoy/hook/debian/ventoy-hook.sh
@@ -35,7 +35,7 @@ ventoy_get_debian_distro() {
fi
if [ -e /init ]; then
- if $GREP -q PUPPYSFS /init; then
+ if $EGREP -q 'PUPPYSFS|PUPPYFILE' /init; then
if $GREP -q VEKETSFS /init; then
echo 'veket'; return
else
diff --git a/INSTALL/VentoyGUI.aarch64 b/INSTALL/VentoyGUI.aarch64
index caa1f62a..d2a2f260 100644
Binary files a/INSTALL/VentoyGUI.aarch64 and b/INSTALL/VentoyGUI.aarch64 differ
diff --git a/INSTALL/VentoyGUI.i386 b/INSTALL/VentoyGUI.i386
index 6d3ddb4f..467df8d5 100644
Binary files a/INSTALL/VentoyGUI.i386 and b/INSTALL/VentoyGUI.i386 differ
diff --git a/INSTALL/VentoyGUI.mips64el b/INSTALL/VentoyGUI.mips64el
index 80998dee..2e3424e7 100644
Binary files a/INSTALL/VentoyGUI.mips64el and b/INSTALL/VentoyGUI.mips64el differ
diff --git a/INSTALL/VentoyGUI.x86_64 b/INSTALL/VentoyGUI.x86_64
index 970d3e5c..45e47f83 100644
Binary files a/INSTALL/VentoyGUI.x86_64 and b/INSTALL/VentoyGUI.x86_64 differ
diff --git a/INSTALL/tool/VentoyGTK.glade b/INSTALL/tool/VentoyGTK.glade
index 529aa1ab..ecf0500a 100644
--- a/INSTALL/tool/VentoyGTK.glade
+++ b/INSTALL/tool/VentoyGTK.glade
@@ -11,6 +11,7 @@
False
Partition Configuration
True
+ center
460
270
diff --git a/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 b/INSTALL/tool/aarch64/Ventoy2Disk.gtk3
index a9b2a45f..eba4b62f 100644
Binary files a/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 and b/INSTALL/tool/aarch64/Ventoy2Disk.gtk3 differ
diff --git a/INSTALL/tool/aarch64/Ventoy2Disk.qt5 b/INSTALL/tool/aarch64/Ventoy2Disk.qt5
new file mode 100644
index 00000000..f416c31f
Binary files /dev/null and b/INSTALL/tool/aarch64/Ventoy2Disk.qt5 differ
diff --git a/INSTALL/tool/distro_gui_type.json b/INSTALL/tool/distro_gui_type.json
new file mode 100644
index 00000000..cbfbc2f3
--- /dev/null
+++ b/INSTALL/tool/distro_gui_type.json
@@ -0,0 +1,23 @@
+[
+ {
+ "type": "env",
+ "name": "DESKTOP_SESSION",
+ "condition": "equal",
+ "expression": "deepin",
+ "gui": "qt5"
+ },
+ {
+ "type": "env",
+ "name": "DESKTOP_SESSION",
+ "condition": "equal",
+ "expression": "uos",
+ "gui": "qt5"
+ },
+ {
+ "type": "env",
+ "name": "DESKTOP_SESSION",
+ "condition": "equal",
+ "expression": "ukui",
+ "gui": "gtk3"
+ }
+]
diff --git a/INSTALL/tool/i386/Ventoy2Disk.gtk2 b/INSTALL/tool/i386/Ventoy2Disk.gtk2
index 62f05ea0..643d797b 100644
Binary files a/INSTALL/tool/i386/Ventoy2Disk.gtk2 and b/INSTALL/tool/i386/Ventoy2Disk.gtk2 differ
diff --git a/INSTALL/tool/i386/Ventoy2Disk.gtk3 b/INSTALL/tool/i386/Ventoy2Disk.gtk3
index 6b558385..f3ced7bf 100644
Binary files a/INSTALL/tool/i386/Ventoy2Disk.gtk3 and b/INSTALL/tool/i386/Ventoy2Disk.gtk3 differ
diff --git a/INSTALL/tool/i386/Ventoy2Disk.qt5 b/INSTALL/tool/i386/Ventoy2Disk.qt5
new file mode 100644
index 00000000..1390b35d
Binary files /dev/null and b/INSTALL/tool/i386/Ventoy2Disk.qt5 differ
diff --git a/INSTALL/tool/mips64el/V2DServer b/INSTALL/tool/mips64el/V2DServer
index 46901253..4d36cb86 100644
Binary files a/INSTALL/tool/mips64el/V2DServer and b/INSTALL/tool/mips64el/V2DServer differ
diff --git a/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 b/INSTALL/tool/mips64el/Ventoy2Disk.gtk3
index 5db90184..325d9ca9 100644
Binary files a/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 and b/INSTALL/tool/mips64el/Ventoy2Disk.gtk3 differ
diff --git a/INSTALL/tool/mips64el/Ventoy2Disk.qt5 b/INSTALL/tool/mips64el/Ventoy2Disk.qt5
new file mode 100644
index 00000000..5a8c24a8
Binary files /dev/null and b/INSTALL/tool/mips64el/Ventoy2Disk.qt5 differ
diff --git a/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 b/INSTALL/tool/x86_64/Ventoy2Disk.gtk2
index f6a7cffb..85a0cea0 100644
Binary files a/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 and b/INSTALL/tool/x86_64/Ventoy2Disk.gtk2 differ
diff --git a/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 b/INSTALL/tool/x86_64/Ventoy2Disk.gtk3
index 972eecd7..5f1b9cd2 100644
Binary files a/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 and b/INSTALL/tool/x86_64/Ventoy2Disk.gtk3 differ
diff --git a/INSTALL/tool/x86_64/Ventoy2Disk.qt5 b/INSTALL/tool/x86_64/Ventoy2Disk.qt5
new file mode 100644
index 00000000..b9536a62
Binary files /dev/null and b/INSTALL/tool/x86_64/Ventoy2Disk.qt5 differ
diff --git a/INSTALL/ventoy_pack.sh b/INSTALL/ventoy_pack.sh
index ed7d1238..7a4be25f 100644
--- a/INSTALL/ventoy_pack.sh
+++ b/INSTALL/ventoy_pack.sh
@@ -9,6 +9,7 @@ fi
dos2unix -q ./tool/ventoy_lib.sh
dos2unix -q ./tool/VentoyWorker.sh
dos2unix -q ./tool/VentoyGTK.glade
+dos2unix -q ./tool/distro_gui_type.json
. ./tool/ventoy_lib.sh
diff --git a/LinuxGUI/EXLIB/README.txt b/LinuxGUI/EXLIB/README.txt
index 27910daf..ecbe5574 100644
--- a/LinuxGUI/EXLIB/README.txt
+++ b/LinuxGUI/EXLIB/README.txt
@@ -5,7 +5,6 @@
3. sh prepare_lib_aarch64.sh /mnt/Packages/
-
====== MIPS64EL ======
1. build dpkg for CentOS7
download dpkg_1.18.25.tar.xz from internet.
@@ -15,8 +14,47 @@ make
cp -a ./src/dpkg /sbin/
cp -a ./dpkg-deb/dpkg-deb /sbin/
-2. download debian 9.x mips64el DVD iso (e.g. debian-9.9.0-mips64el-DVD-1.iso) form internet
-3. download libgtk-3-dev_3.22.11-1_mips64el.deb from internet
-4. mount debian-9.9.0-mips64el-DVD-1.iso /mnt
-5. sh prepare_lib_mips64el.sh /mnt/
+2. download debian 10.x mips64el DVD iso (e.g. debian-10.9.0-mips64el-DVD-1.iso) form internet
+3. mount debian-10.9.0-mips64el-DVD-1.iso /mnt
+4. sh prepare_gtk_lib_mips64el.sh /mnt/
+5. download the following packages from internet and dpkg -x each of them
+pool/main/g/gtk+3.0/libgtk-3-dev_3.24.5-1_mips64el.deb
+pool/main/b/brotli/libbrotli1_1.0.9-2+b2_mips64el.deb
+pool/main/d/double-conversion/libdouble-conversion3_3.1.5-6.1_mips64el.deb
+pool/main/d/double-conversion/libdouble-conversion1_3.1.0-3_mips64el.deb
+pool/main/libg/libglvnd/libgl1_1.3.2-1~bpo10+2_mips64el.deb
+pool/main/libg/libglvnd/libglvnd0_1.3.2-1~bpo10+2_mips64el.deb
+pool/main/libg/libglvnd/libglx0_1.3.2-1~bpo10+2_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5concurrent5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5core5a_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5dbus5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5gui5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5network5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5opengl5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5opengl5-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5widgets5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/libqt5xml5_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/qt5-qmake_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/qtbase5-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/qtbase5-dev-tools_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/qtbase5-examples_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+pool/main/q/qtbase-opensource-src/qtbase5-private-dev_5.11.3+dfsg1-1+deb10u4_mips64el.deb
+
+
+==== I386 ===
+We need a CentOS8 environment
+Install CentOS 8 x86_64 system.
+yum update
+yum install gcc
+yum install gcc-c++
+yum install gcc.i686
+yum install glibc.i686 glibc-devel.i686 glibc-headers.i686 glibc-static.i686 glibc-nss-devel.i686
+yum install libstdc++.i686
+yum install harfbuzz.i686
+yum install zlib.i686
+yum install mesa-libGL.i686
+
+pack all /usr /etc directories and extract to /opt/CentOS8/
+
+
diff --git a/LinuxGUI/EXLIB/aarch64libs b/LinuxGUI/EXLIB/aarch64libs
index b10ae6cf..ac280e74 100644
--- a/LinuxGUI/EXLIB/aarch64libs
+++ b/LinuxGUI/EXLIB/aarch64libs
@@ -1,4 +1,7 @@
gtk3-
+qt5
+GL
+icu
glib2-
pango-
cairo-
diff --git a/LinuxGUI/EXLIB/download_lib.sh b/LinuxGUI/EXLIB/download_lib.sh
new file mode 100644
index 00000000..54442cd4
--- /dev/null
+++ b/LinuxGUI/EXLIB/download_lib.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+if [ -z "$1" ]; then
+ echo "please input url"
+ exit 1
+fi
+
+if [ -n "$2" ]; then
+ proxy_opt="-x $2"
+fi
+
+rm -rf download
+mkdir -p download
+cd download
+
+grep pool ../README.txt | while read line; do
+ a="$line"
+ b=$(basename "$a")
+ echo "downloading $b ..."
+ curl -s $1/debian/"$a" $proxy_opt -o "$b"
+
+ a=$(echo $line | sed "s/mips64el/i386/g")
+ b=$(basename "$a")
+ echo "downloading $b ..."
+ curl -s $1/debian/"$a" $proxy_opt -o "$b"
+done
+
+cd ..
diff --git a/LinuxGUI/EXLIB/i386libs b/LinuxGUI/EXLIB/i386libs
new file mode 100644
index 00000000..3e548f60
--- /dev/null
+++ b/LinuxGUI/EXLIB/i386libs
@@ -0,0 +1,7 @@
+libmd
+libzstd
+libpcre2-16
+libicu
+qt5
+libgpg-error
+libpng
diff --git a/LinuxGUI/EXLIB/mips64ellibs b/LinuxGUI/EXLIB/mips64ellibs
index 97117c0a..705631e2 100644
--- a/LinuxGUI/EXLIB/mips64ellibs
+++ b/LinuxGUI/EXLIB/mips64ellibs
@@ -1,3 +1,8 @@
+libmd
+libzstd
+libpcre2-16
+libicu
+qt5
libglib2
libgtk-3
libpango
diff --git a/LinuxGUI/EXLIB/prepare_lib_aarch64.sh b/LinuxGUI/EXLIB/prepare_lib_aarch64.sh
index d4160149..33075ae7 100644
--- a/LinuxGUI/EXLIB/prepare_lib_aarch64.sh
+++ b/LinuxGUI/EXLIB/prepare_lib_aarch64.sh
@@ -9,8 +9,8 @@ rm -rf aarch64
mkdir aarch64
cd aarch64
-cat ../aarch64libs | while read line; do
- ls -1 $1/${line}* | while read rpm; do
+cat ../aarch64libs | while read a; do
+ ls -1 $1/*$a* | while read rpm; do
echo "extract ${rpm##*/} ..."
rpm2cpio $rpm | cpio -idmu --quiet
done
diff --git a/LinuxGUI/EXLIB/prepare_lib_i386.sh b/LinuxGUI/EXLIB/prepare_lib_i386.sh
new file mode 100644
index 00000000..540c94b9
--- /dev/null
+++ b/LinuxGUI/EXLIB/prepare_lib_i386.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+if [ ! -d $1/pool ]; then
+ echo "$1/pool not exist"
+ exit 1
+fi
+
+rm -rf i386
+mkdir i386
+cd i386
+
+cat ../i386libs | while read line; do
+ find "$1/pool" -name "*${line}*.deb" | while read deb; do
+ echo "extract ${deb##*/} ..."
+ dpkg -x $deb .
+ done
+done
+
+ls -1 ../download/*i386.deb | while read line; do
+ echo "extract ${line} ..."
+ dpkg -x "$line" .
+done
+
+cd ..
+
diff --git a/LinuxGUI/EXLIB/prepare_lib_mips64el.sh b/LinuxGUI/EXLIB/prepare_lib_mips64el.sh
index a33ef26b..73e97866 100644
--- a/LinuxGUI/EXLIB/prepare_lib_mips64el.sh
+++ b/LinuxGUI/EXLIB/prepare_lib_mips64el.sh
@@ -16,9 +16,10 @@ cat ../mips64ellibs | while read line; do
done
done
-dpkg -x ../libgtk-3-dev_3.22.11-1_mips64el.deb .
+ls -1 ../download/*mips64el.deb | while read line; do
+ echo "extract ${line} ..."
+ dpkg -x "$line" .
+done
cd ..
-
-
diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h b/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h
index 14b2cf41..01c0fd87 100644
--- a/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h
+++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_define.h
@@ -31,9 +31,6 @@
#define VTOYEFI_PART_BYTES (32 * 1024 * 1024)
#define VTOYEFI_PART_SECTORS 65536
-#define VTOY_LOG_FILE "log.txt"
-
-
#pragma pack(1)
typedef struct vtoy_guid
diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c b/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c
index f65a4583..8253a1cc 100644
--- a/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c
+++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_json.c
@@ -25,6 +25,8 @@
#include
#include
#include
+#include
+#include
#include
#include
#include
diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c b/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c
index 86bf0c7a..2df37c22 100644
--- a/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c
+++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_log.c
@@ -26,8 +26,10 @@
#include
#include
#include
+#include
#include
+extern char g_log_file[PATH_MAX];
static int g_ventoy_log_level = VLOG_DEBUG;
static pthread_mutex_t g_log_mutex;
@@ -68,7 +70,7 @@ void ventoy_syslog_newline(int level, const char *Fmt, ...)
va_end(arg);
pthread_mutex_lock(&g_log_mutex);
- fp = fopen(VTOY_LOG_FILE, "a+");
+ fp = fopen(g_log_file, "a+");
if (fp)
{
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s\n",
@@ -96,7 +98,7 @@ void ventoy_syslog_printf(const char *Fmt, ...)
va_end(arg);
pthread_mutex_lock(&g_log_mutex);
- fp = fopen(VTOY_LOG_FILE, "a+");
+ fp = fopen(g_log_file, "a+");
if (fp)
{
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
@@ -129,7 +131,7 @@ void ventoy_syslog(int level, const char *Fmt, ...)
va_end(arg);
pthread_mutex_lock(&g_log_mutex);
- fp = fopen(VTOY_LOG_FILE, "a+");
+ fp = fopen(g_log_file, "a+");
if (fp)
{
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
diff --git a/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h b/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h
index 72cec62d..87eb5463 100644
--- a/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h
+++ b/LinuxGUI/Ventoy2Disk/Core/ventoy_util.h
@@ -20,6 +20,9 @@
#ifndef __VENTOY_UTIL_H__
#define __VENTOY_UTIL_H__
+extern char g_log_file[PATH_MAX];
+extern char g_ini_file[PATH_MAX];
+
#define check_free(p) if (p) free(p)
#define vtoy_safe_close_fd(fd) \
{\
diff --git a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c
index e7052471..8a97b2d5 100644
--- a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c
+++ b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c
@@ -26,6 +26,7 @@
#include
#include
#include
+#include
#include
#include
@@ -300,14 +301,22 @@ void on_part_style_toggled(GtkMenuItem *menuItem, gpointer data)
static ventoy_disk *select_active_dev(const char *select, int *activeid)
{
int i;
+ int alldev;
ventoy_disk *cur = NULL;
+ alldev = ventoy_code_get_cur_show_all();
+
/* find the match one */
if (select)
{
for (i = 0; i < g_disk_num; i++)
{
cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
if (strcmp(cur->disk_name, select) == 0)
{
*activeid = i;
@@ -320,6 +329,11 @@ static ventoy_disk *select_active_dev(const char *select, int *activeid)
for (i = 0; i < g_disk_num; i++)
{
cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
if (cur->vtoydata.ventoy_valid)
{
*activeid = i;
@@ -331,6 +345,11 @@ static ventoy_disk *select_active_dev(const char *select, int *activeid)
for (i = 0; i < g_disk_num; i++)
{
cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
if (cur->type == VTOY_DEVICE_USB)
{
*activeid = i;
@@ -339,8 +358,19 @@ static ventoy_disk *select_active_dev(const char *select, int *activeid)
}
/* use the first one */
- *activeid = 0;
- return g_disk_list;
+ for (i = 0; i < g_disk_num; i++)
+ {
+ cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
+ *activeid = i;
+ return cur;
+ }
+
+ return NULL;
}
static void fill_dev_list(const char *select)
@@ -613,6 +643,8 @@ static int install_proc(ventoy_disk *cur)
void on_button_install_clicked(GtkWidget *widget, gpointer data)
{
int active;
+ long long size;
+ long long space;
ventoy_disk *cur = NULL;
if (g_thread_run || ventoy_code_is_busy())
@@ -636,6 +668,27 @@ void on_button_install_clicked(GtkWidget *widget, gpointer data)
return;
}
+ if (g_preserve_space_check)
+ {
+ space = g_preserve_space_number;
+ if (g_preserve_space_unit == 1)
+ {
+ space = space * 1024;
+ }
+ else
+ {
+ space = space;
+ }
+
+ size = cur->size_in_byte / SIZE_1MB;
+ if (size <= space || (size - space) <= (VTOYEFI_PART_BYTES / SIZE_1MB))
+ {
+ msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_SPACE_VAL_INVALID");
+ vlog("reserved space value too big ...\n");
+ return;
+ }
+ }
+
if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP"))
{
return;
diff --git a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h
index 9f7440c6..d3c5e5c7 100644
--- a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h
+++ b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.h
@@ -45,8 +45,6 @@ int ventoy_code_get_percent(void);
int ventoy_code_get_result(void);
int msgbox(GtkMessageType type, GtkButtonsType buttons, const char *strid);
-#define MAX_PARAS 64
-
#define VTOY_VER_FMT "%s"
#define LANG_LABEL_TEXT(id, str) \
diff --git a/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro
new file mode 100644
index 00000000..ad7484ed
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro
@@ -0,0 +1,139 @@
+QT += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+CONFIG += c++11
+
+# The following define makes your compiler emit warnings if you use
+# any Qt feature that has been marked deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+# You can also make your code fail to compile if it uses deprecated APIs.
+# In order to do so, uncomment the following line.
+# You can also select to disable deprecated APIs only up to a certain version of Qt.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+SOURCES += \
+ Core/ventoy_crc32.c \
+ Core/ventoy_disk.c \
+ Core/ventoy_json.c \
+ Core/ventoy_log.c \
+ Core/ventoy_md5.c \
+ Core/ventoy_util.c \
+ Lib/exfat/src/libexfat/cluster.c \
+ Lib/exfat/src/libexfat/io.c \
+ Lib/exfat/src/libexfat/lookup.c \
+ Lib/exfat/src/libexfat/mount.c \
+ Lib/exfat/src/libexfat/node.c \
+ Lib/exfat/src/libexfat/repair.c \
+ Lib/exfat/src/libexfat/time.c \
+ Lib/exfat/src/libexfat/utf.c \
+ Lib/exfat/src/libexfat/utils.c \
+ Lib/exfat/src/mkfs/cbm.c \
+ Lib/exfat/src/mkfs/fat.c \
+ Lib/exfat/src/mkfs/mkexfat.c \
+ Lib/exfat/src/mkfs/mkexfat_main.c \
+ Lib/exfat/src/mkfs/rootdir.c \
+ Lib/exfat/src/mkfs/uct.c \
+ Lib/exfat/src/mkfs/uctc.c \
+ Lib/exfat/src/mkfs/vbr.c \
+ Lib/fat_io_lib/fat_access.c \
+ Lib/fat_io_lib/fat_cache.c \
+ Lib/fat_io_lib/fat_filelib.c \
+ Lib/fat_io_lib/fat_format.c \
+ Lib/fat_io_lib/fat_misc.c \
+ Lib/fat_io_lib/fat_string.c \
+ Lib/fat_io_lib/fat_table.c \
+ Lib/fat_io_lib/fat_write.c \
+ Lib/xz-embedded/linux/lib/decompress_unxz.c \
+ QT/refresh_icon_data.c \
+ QT/secure_icon_data.c \
+ QT/ventoy_qt_stub.c \
+ Web/ventoy_http.c \
+ main.cpp \
+ partcfgdialog.cpp \
+ ventoy2diskwindow.cpp
+
+HEADERS += \
+ Core/ventoy_define.h \
+ Core/ventoy_disk.h \
+ Core/ventoy_json.h \
+ Core/ventoy_util.h \
+ Include/Ventoy2Disk.h \
+ Lib/exfat/src/libexfat/byteorder.h \
+ Lib/exfat/src/libexfat/compiler.h \
+ Lib/exfat/src/libexfat/config.h \
+ Lib/exfat/src/libexfat/exfat.h \
+ Lib/exfat/src/libexfat/exfatfs.h \
+ Lib/exfat/src/libexfat/platform.h \
+ Lib/exfat/src/mkfs/cbm.h \
+ Lib/exfat/src/mkfs/fat.h \
+ Lib/exfat/src/mkfs/mkexfat.h \
+ Lib/exfat/src/mkfs/rootdir.h \
+ Lib/exfat/src/mkfs/uct.h \
+ Lib/exfat/src/mkfs/uctc.h \
+ Lib/exfat/src/mkfs/vbr.h \
+ Lib/fat_io_lib/fat_access.h \
+ Lib/fat_io_lib/fat_cache.h \
+ Lib/fat_io_lib/fat_defs.h \
+ Lib/fat_io_lib/fat_filelib.h \
+ Lib/fat_io_lib/fat_format.h \
+ Lib/fat_io_lib/fat_list.h \
+ Lib/fat_io_lib/fat_misc.h \
+ Lib/fat_io_lib/fat_opts.h \
+ Lib/fat_io_lib/fat_string.h \
+ Lib/fat_io_lib/fat_table.h \
+ Lib/fat_io_lib/fat_types.h \
+ Lib/fat_io_lib/fat_write.h \
+ Lib/libhttp/include/civetweb.h \
+ Lib/libhttp/include/handle_form.inl \
+ Lib/libhttp/include/md5.inl \
+ Lib/libhttp/include/mod_duktape.inl \
+ Lib/libhttp/include/mod_lua.inl \
+ Lib/libhttp/include/timer.inl \
+ QT/ventoy_qt.h \
+ Web/ventoy_http.h \
+ partcfgdialog.h \
+ ventoy2diskwindow.h
+
+FORMS += \
+ partcfgdialog.ui \
+ ventoy2diskwindow.ui
+
+# Default rules for deployment.
+qnx: target.path = /tmp/$${TARGET}/bin
+else: unix:!android: target.path = /opt/$${TARGET}/bin
+!isEmpty(target.path): INSTALLS += target
+
+DISTFILES += \
+ Lib/fat_io_lib/API.txt \
+ Lib/fat_io_lib/COPYRIGHT.txt \
+ Lib/fat_io_lib/Configuration.txt \
+ Lib/fat_io_lib/History.txt \
+ Lib/fat_io_lib/License.txt \
+ Lib/fat_io_lib/Media Access API.txt \
+ Lib/fat_io_lib/version.txt
+
+
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Core
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Web
+INCLUDEPATH +=/home/panda/Ventoy2Disk/QT
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Include
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/libhttp/include
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/fat_io_lib/include
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat
+INCLUDEPATH +=/home/panda/Ventoy2Disk/Lib/fat_io_lib
+#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/include
+#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/arch/x86/include
+#INCLUDEPATH +=/usr/src/linux-headers-5.10.18-amd64-desktop/arch/x86/include/generated
+
+
+DEFINES += STATIC=static
+DEFINES += INIT=
+
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user
new file mode 100644
index 00000000..26acce24
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/Ventoy2Disk.pro.user
@@ -0,0 +1,338 @@
+
+
+
+
+
+ EnvironmentId
+ {666f325e-a9c7-45d6-a820-626289f99bab}
+
+
+ ProjectExplorer.Project.ActiveTarget
+ 0
+
+
+ ProjectExplorer.Project.EditorSettings
+
+ true
+ false
+ true
+
+ Cpp
+
+ CppGlobal
+
+
+
+ QmlJS
+
+ QmlJSGlobal
+
+
+ 2
+ UTF-8
+ false
+ 4
+ false
+ 80
+ true
+ true
+ 1
+ true
+ false
+ 0
+ true
+ true
+ 0
+ 8
+ true
+ 1
+ true
+ true
+ true
+ false
+
+
+
+ ProjectExplorer.Project.PluginSettings
+
+
+ true
+ Builtin.Questionable
+
+ true
+ Builtin.DefaultTidyAndClazy
+ 2
+
+
+
+ true
+
+
+
+
+ ProjectExplorer.Project.Target.0
+
+ Desktop Qt 5.12.9 GCC 64bit
+ Desktop Qt 5.12.9 GCC 64bit
+ qt.qt5.5129.gcc_64_kit
+ 0
+ 0
+ 0
+
+ true
+ 0
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ false
+
+
+ false
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ true
+ clean
+
+ false
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ Debug
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 2
+ 2
+ 2
+
+
+ true
+ 2
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Release
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Release
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ false
+
+
+ false
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ true
+ clean
+
+ false
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ Release
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 2
+
+
+ true
+ 0
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Profile
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Profile
+
+
+ true
+ QtProjectManager.QMakeBuildStep
+
+ false
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ false
+
+
+ false
+
+ 2
+ Build
+ Build
+ ProjectExplorer.BuildSteps.Build
+
+
+
+ true
+ Qt4ProjectManager.MakeStep
+
+ true
+ clean
+
+ false
+
+ 1
+ Clean
+ Clean
+ ProjectExplorer.BuildSteps.Clean
+
+ 2
+ false
+
+ Profile
+ Qt4ProjectManager.Qt4BuildConfiguration
+ 0
+ 0
+ 0
+
+ 3
+
+
+ 0
+ Deploy
+ Deploy
+ ProjectExplorer.BuildSteps.Deploy
+
+ 1
+
+ false
+ ProjectExplorer.DefaultDeployConfiguration
+
+ 1
+
+
+ dwarf
+
+ cpu-cycles
+
+
+ 250
+
+ -e
+ cpu-cycles
+ --call-graph
+ dwarf,4096
+ -F
+ 250
+
+ -F
+ true
+ 4096
+ false
+ false
+ 1000
+
+ true
+
+ false
+ false
+ false
+ false
+ true
+ 0.01
+ 10
+ true
+ kcachegrind
+ 1
+ 25
+
+ 1
+ true
+ false
+ true
+ valgrind
+
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+
+ 2
+
+ Qt4ProjectManager.Qt4RunConfiguration:/home/panda/Ventoy2Disk/Ventoy2Disk.pro
+ /home/panda/Ventoy2Disk/Ventoy2Disk.pro
+
+ false
+
+ false
+ true
+ true
+ false
+ false
+ true
+ /home/panda/Desktop/ventoy-1.0.52-linux/ventoy-1.0.52
+ /home/panda/build-Ventoy2Disk-Desktop_Qt_5_12_9_GCC_64bit-Debug
+
+ 1
+
+
+
+ ProjectExplorer.Project.TargetCount
+ 1
+
+
+ ProjectExplorer.Project.Updater.FileVersion
+ 22
+
+
+ Version
+ 22
+
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/build/Makefile b/LinuxGUI/Ventoy2Disk/QT/build/Makefile
new file mode 100644
index 00000000..40d4a53c
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/build/Makefile
@@ -0,0 +1,1760 @@
+#############################################################################
+# Makefile for building: Ventoy2Disk
+# Generated by qmake (3.1) (Qt 5.9.0)
+# Project: ../Ventoy2Disk/Ventoy2Disk.pro
+# Template: app
+# Command: /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -o Makefile ../Ventoy2Disk/Ventoy2Disk.pro -spec linux-g++
+#############################################################################
+
+MAKEFILE = Makefile
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
+CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
+CXXFLAGS = -pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
+INCPATH = -I../Ventoy2Disk -I. -I../../Ventoy2Disk/Core -I../../Ventoy2Disk/Web -I../../Ventoy2Disk/QT -I../../Ventoy2Disk/Include -I../../Ventoy2Disk/Lib/libhttp/include -I/home/panda/Ventoy2Disk/Lib/fat_io_lib/include -I../../Ventoy2Disk/Lib/xz-embedded/linux/include -I../../Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I../../Ventoy2Disk/Lib/xz-embedded/userspace -I../../Ventoy2Disk/Lib/exfat/src/libexfat -I../../Ventoy2Disk/Lib/fat_io_lib -I../../Qt5.9.0/5.9/gcc_64/include -I../../Qt5.9.0/5.9/gcc_64/include/QtWidgets -I../../Qt5.9.0/5.9/gcc_64/include/QtGui -I../../Qt5.9.0/5.9/gcc_64/include/QtCore -I. -isystem /usr/include/libdrm -I. -I../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++
+QMAKE = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake
+DEL_FILE = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+COPY = cp -f
+COPY_FILE = cp -f
+COPY_DIR = cp -f -R
+INSTALL_FILE = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR = cp -f -R
+QINSTALL_FILE = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -install qinstall file
+QINSTALL_PROGRAM = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -install qinstall program
+QINSTALL_DIR = /home/panda/Qt5.9.0/5.9/gcc_64/bin/qmake -install qinstall directory
+DEL_FILE = rm -f
+SYMLINK = ln -f -s
+DEL_DIR = rmdir
+MOVE = mv -f
+TAR = tar -cf
+COMPRESS = gzip -9f
+DISTNAME = Ventoy2Disk1.0.0
+DISTDIR = /home/panda/590/build-Ventoy2Disk-Desktop_Qt_5_9_0_GCC_64bit-Release/.tmp/Ventoy2Disk1.0.0
+LINK = g++
+LFLAGS = -Wl,-O1 -Wl,-rpath,/home/panda/Qt5.9.0/5.9/gcc_64/lib
+LIBS = $(SUBLIBS) -L/home/panda/Qt5.9.0/5.9/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread
+AR = ar cqs
+RANLIB =
+SED = sed
+STRIP = strip
+
+####### Output directory
+
+OBJECTS_DIR = ./
+
+####### Files
+
+SOURCES = ../Ventoy2Disk/Core/ventoy_crc32.c \
+ ../Ventoy2Disk/Core/ventoy_disk.c \
+ ../Ventoy2Disk/Core/ventoy_json.c \
+ ../Ventoy2Disk/Core/ventoy_log.c \
+ ../Ventoy2Disk/Core/ventoy_md5.c \
+ ../Ventoy2Disk/Core/ventoy_util.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c \
+ ../Ventoy2Disk/QT/refresh_icon_data.c \
+ ../Ventoy2Disk/QT/secure_icon_data.c \
+ ../Ventoy2Disk/QT/ventoy_qt_stub.c \
+ ../Ventoy2Disk/Web/ventoy_http.c \
+ ../Ventoy2Disk/main.cpp \
+ ../Ventoy2Disk/partcfgdialog.cpp \
+ ../Ventoy2Disk/ventoy2diskwindow.cpp moc_partcfgdialog.cpp \
+ moc_ventoy2diskwindow.cpp
+OBJECTS = ventoy_crc32.o \
+ ventoy_disk.o \
+ ventoy_json.o \
+ ventoy_log.o \
+ ventoy_md5.o \
+ ventoy_util.o \
+ cluster.o \
+ io.o \
+ lookup.o \
+ mount.o \
+ node.o \
+ repair.o \
+ time.o \
+ utf.o \
+ utils.o \
+ cbm.o \
+ fat.o \
+ mkexfat.o \
+ mkexfat_main.o \
+ rootdir.o \
+ uct.o \
+ uctc.o \
+ vbr.o \
+ fat_access.o \
+ fat_cache.o \
+ fat_filelib.o \
+ fat_format.o \
+ fat_misc.o \
+ fat_string.o \
+ fat_table.o \
+ fat_write.o \
+ decompress_unxz.o \
+ refresh_icon_data.o \
+ secure_icon_data.o \
+ ventoy_qt_stub.o \
+ ventoy_http.o \
+ main.o \
+ partcfgdialog.o \
+ ventoy2diskwindow.o \
+ moc_partcfgdialog.o \
+ moc_ventoy2diskwindow.o
+DIST = ../Ventoy2Disk/Lib/fat_io_lib/API.txt \
+ ../Ventoy2Disk/Lib/fat_io_lib/COPYRIGHT.txt \
+ ../Ventoy2Disk/Lib/fat_io_lib/Configuration.txt \
+ ../Ventoy2Disk/Lib/fat_io_lib/History.txt \
+ ../Ventoy2Disk/Lib/fat_io_lib/License.txt \
+ ../Ventoy2Disk/Lib/fat_io_lib/Media \
+ ../Ventoy2Disk/Access \
+ ../Ventoy2Disk/API.txt \
+ ../Ventoy2Disk/Lib/fat_io_lib/version.txt \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_pre.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/unix.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/linux.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/sanitize.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base-unix.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-base.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-unix.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/qconfig.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_egl_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_glx_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_service_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_theme_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_functions.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_config.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_post.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exclusive_builds.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/toolchain.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_pre.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resolve_config.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_post.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/warn_on.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resources.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/moc.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/opengl.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/uic.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/thread.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qmake_use.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/file_copies.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/testcase_targets.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exceptions.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/yacc.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/lex.prf \
+ ../Ventoy2Disk/Ventoy2Disk.pro ../Ventoy2Disk/Core/ventoy_define.h \
+ ../Ventoy2Disk/Core/ventoy_disk.h \
+ ../Ventoy2Disk/Core/ventoy_json.h \
+ ../Ventoy2Disk/Core/ventoy_util.h \
+ ../Ventoy2Disk/Include/Ventoy2Disk.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_format.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_list.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \
+ ../Ventoy2Disk/Lib/libhttp/include/civetweb.h \
+ ../Ventoy2Disk/Lib/libhttp/include/handle_form.inl \
+ ../Ventoy2Disk/Lib/libhttp/include/md5.inl \
+ ../Ventoy2Disk/Lib/libhttp/include/mod_duktape.inl \
+ ../Ventoy2Disk/Lib/libhttp/include/mod_lua.inl \
+ ../Ventoy2Disk/Lib/libhttp/include/timer.inl \
+ ../Ventoy2Disk/QT/ventoy_qt.h \
+ ../Ventoy2Disk/Web/ventoy_http.h \
+ ../Ventoy2Disk/partcfgdialog.h \
+ ../Ventoy2Disk/ventoy2diskwindow.h ../Ventoy2Disk/Core/ventoy_crc32.c \
+ ../Ventoy2Disk/Core/ventoy_disk.c \
+ ../Ventoy2Disk/Core/ventoy_json.c \
+ ../Ventoy2Disk/Core/ventoy_log.c \
+ ../Ventoy2Disk/Core/ventoy_md5.c \
+ ../Ventoy2Disk/Core/ventoy_util.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c \
+ ../Ventoy2Disk/QT/refresh_icon_data.c \
+ ../Ventoy2Disk/QT/secure_icon_data.c \
+ ../Ventoy2Disk/QT/ventoy_qt_stub.c \
+ ../Ventoy2Disk/Web/ventoy_http.c \
+ ../Ventoy2Disk/main.cpp \
+ ../Ventoy2Disk/partcfgdialog.cpp \
+ ../Ventoy2Disk/ventoy2diskwindow.cpp
+QMAKE_TARGET = Ventoy2Disk
+DESTDIR =
+TARGET = Ventoy2Disk
+
+
+first: all
+####### Build rules
+
+$(TARGET): ui_partcfgdialog.h ui_ventoy2diskwindow.h $(OBJECTS)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: ../Ventoy2Disk/Ventoy2Disk.pro ../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_pre.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/unix.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/linux.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/sanitize.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base-unix.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-base.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-unix.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/qconfig.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_egl_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_glx_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_service_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_theme_support_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_functions.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_config.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_post.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exclusive_builds.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/toolchain.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_pre.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resolve_config.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_post.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/warn_on.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resources.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/moc.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/opengl.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/uic.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/thread.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qmake_use.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/file_copies.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/testcase_targets.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exceptions.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/yacc.prf \
+ ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/lex.prf \
+ ../Ventoy2Disk/Ventoy2Disk.pro \
+ ../../Qt5.9.0/5.9/gcc_64/lib/libQt5Widgets.prl \
+ ../../Qt5.9.0/5.9/gcc_64/lib/libQt5Gui.prl \
+ ../../Qt5.9.0/5.9/gcc_64/lib/libQt5Core.prl
+ $(QMAKE) -o Makefile ../Ventoy2Disk/Ventoy2Disk.pro -spec linux-g++
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_pre.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/unix.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/linux.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/sanitize.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/gcc-base-unix.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-base.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/common/g++-unix.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/qconfig.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3danimation_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dcore_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dextras_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dinput_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dlogic_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquick_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickextras_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickinput_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickrender_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_3drender_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_accessibility_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bluetooth_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_bootstrap_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_charts_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_concurrent_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_core_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_datavisualization_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_dbus_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designer_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_designercomponents_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_egl_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fb_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gamepad_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_glx_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_gui_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_help_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_input_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_kms_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_location_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimedia_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_network_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_nfc_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_opengl_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_openglextensions_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_packetprotocol_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_positioning_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_printsupport_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qml_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldebug_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmldevtools_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qmltest_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quick_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickparticles_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_quickwidgets_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_scxml_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sensors_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialbus_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_serialport_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_service_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_sql_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_svg_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_testlib_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_theme_support_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uiplugin.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_uitools_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webchannel_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webengine_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecore_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webenginewidgets_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_websockets_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_webview_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_widgets_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_x11extras_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xml_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_functions.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt_config.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++/qmake.conf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/spec_post.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exclusive_builds.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/toolchain.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_pre.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resolve_config.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/default_post.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/warn_on.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qt.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/resources.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/moc.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/opengl.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/uic.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/unix/thread.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/qmake_use.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/file_copies.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/testcase_targets.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/exceptions.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/yacc.prf:
+../../Qt5.9.0/5.9/gcc_64/mkspecs/features/lex.prf:
+../Ventoy2Disk/Ventoy2Disk.pro:
+../../Qt5.9.0/5.9/gcc_64/lib/libQt5Widgets.prl:
+../../Qt5.9.0/5.9/gcc_64/lib/libQt5Gui.prl:
+../../Qt5.9.0/5.9/gcc_64/lib/libQt5Core.prl:
+qmake: FORCE
+ @$(QMAKE) -o Makefile ../Ventoy2Disk/Ventoy2Disk.pro -spec linux-g++
+
+qmake_all: FORCE
+
+
+all: Makefile $(TARGET)
+
+dist: distdir FORCE
+ (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
+
+distdir: FORCE
+ @test -d $(DISTDIR) || mkdir -p $(DISTDIR)
+ $(COPY_FILE) --parents $(DIST) $(DISTDIR)/
+ $(COPY_FILE) --parents ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/data/dummy.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../Ventoy2Disk/Core/ventoy_define.h ../Ventoy2Disk/Core/ventoy_disk.h ../Ventoy2Disk/Core/ventoy_json.h ../Ventoy2Disk/Core/ventoy_util.h ../Ventoy2Disk/Include/Ventoy2Disk.h ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h ../Ventoy2Disk/Lib/fat_io_lib/fat_access.h ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h ../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h ../Ventoy2Disk/Lib/fat_io_lib/fat_format.h ../Ventoy2Disk/Lib/fat_io_lib/fat_list.h ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h ../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h ../Ventoy2Disk/Lib/fat_io_lib/fat_types.h ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h ../Ventoy2Disk/Lib/libhttp/include/civetweb.h ../Ventoy2Disk/Lib/libhttp/include/handle_form.inl ../Ventoy2Disk/Lib/libhttp/include/md5.inl ../Ventoy2Disk/Lib/libhttp/include/mod_duktape.inl ../Ventoy2Disk/Lib/libhttp/include/mod_lua.inl ../Ventoy2Disk/Lib/libhttp/include/timer.inl ../Ventoy2Disk/QT/ventoy_qt.h ../Ventoy2Disk/Web/ventoy_http.h ../Ventoy2Disk/partcfgdialog.h ../Ventoy2Disk/ventoy2diskwindow.h $(DISTDIR)/
+ $(COPY_FILE) --parents ../Ventoy2Disk/Core/ventoy_crc32.c ../Ventoy2Disk/Core/ventoy_disk.c ../Ventoy2Disk/Core/ventoy_json.c ../Ventoy2Disk/Core/ventoy_log.c ../Ventoy2Disk/Core/ventoy_md5.c ../Ventoy2Disk/Core/ventoy_util.c ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c ../Ventoy2Disk/QT/refresh_icon_data.c ../Ventoy2Disk/QT/secure_icon_data.c ../Ventoy2Disk/QT/ventoy_qt_stub.c ../Ventoy2Disk/Web/ventoy_http.c ../Ventoy2Disk/main.cpp ../Ventoy2Disk/partcfgdialog.cpp ../Ventoy2Disk/ventoy2diskwindow.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../Ventoy2Disk/partcfgdialog.ui ../Ventoy2Disk/ventoy2diskwindow.ui $(DISTDIR)/
+
+
+clean: compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) .qmake.stash
+ -$(DEL_FILE) Makefile
+
+
+####### Sub-libraries
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+check: first
+
+benchmark: first
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_moc_predefs_make_all: moc_predefs.h
+compiler_moc_predefs_clean:
+ -$(DEL_FILE) moc_predefs.h
+moc_predefs.h: ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/data/dummy.cpp
+ g++ -pipe -O2 -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h ../../Qt5.9.0/5.9/gcc_64/mkspecs/features/data/dummy.cpp
+
+compiler_moc_header_make_all: moc_partcfgdialog.cpp moc_ventoy2diskwindow.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_partcfgdialog.cpp moc_ventoy2diskwindow.cpp
+moc_partcfgdialog.cpp: ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \
+ ../Ventoy2Disk/partcfgdialog.h \
+ moc_predefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/bin/moc
+ /home/panda/Qt5.9.0/5.9/gcc_64/bin/moc $(DEFINES) --include ./moc_predefs.h -I/home/panda/Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++ -I/home/panda/590/Ventoy2Disk -I/home/panda/Ventoy2Disk/Core -I/home/panda/Ventoy2Disk/Web -I/home/panda/Ventoy2Disk/QT -I/home/panda/Ventoy2Disk/Include -I/home/panda/Ventoy2Disk/Lib/libhttp/include -I/home/panda/Ventoy2Disk/Lib/fat_io_lib/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace -I/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat -I/home/panda/Ventoy2Disk/Lib/fat_io_lib -I/home/panda/Qt5.9.0/5.9/gcc_64/include -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtWidgets -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtGui -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtCore -I. -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include ../Ventoy2Disk/partcfgdialog.h -o moc_partcfgdialog.cpp
+
+moc_ventoy2diskwindow.cpp: ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMainWindow \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmainwindow.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtabwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qicon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QActionGroup \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qactiongroup.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qaction.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonDocument \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsondocument.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFile \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonArray \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonarray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QVector \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QtGlobal \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QCloseEvent \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QThread \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qthread.h \
+ ../Ventoy2Disk/partcfgdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \
+ ../Ventoy2Disk/ventoy2diskwindow.h \
+ moc_predefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/bin/moc
+ /home/panda/Qt5.9.0/5.9/gcc_64/bin/moc $(DEFINES) --include ./moc_predefs.h -I/home/panda/Qt5.9.0/5.9/gcc_64/mkspecs/linux-g++ -I/home/panda/590/Ventoy2Disk -I/home/panda/Ventoy2Disk/Core -I/home/panda/Ventoy2Disk/Web -I/home/panda/Ventoy2Disk/QT -I/home/panda/Ventoy2Disk/Include -I/home/panda/Ventoy2Disk/Lib/libhttp/include -I/home/panda/Ventoy2Disk/Lib/fat_io_lib/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include -I/home/panda/Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I/home/panda/Ventoy2Disk/Lib/xz-embedded/userspace -I/home/panda/Ventoy2Disk/Lib/exfat/src/libexfat -I/home/panda/Ventoy2Disk/Lib/fat_io_lib -I/home/panda/Qt5.9.0/5.9/gcc_64/include -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtWidgets -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtGui -I/home/panda/Qt5.9.0/5.9/gcc_64/include/QtCore -I. -I/usr/include/c++/8 -I/usr/include/x86_64-linux-gnu/c++/8 -I/usr/include/c++/8/backward -I/usr/lib/gcc/x86_64-linux-gnu/8/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/8/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include ../Ventoy2Disk/ventoy2diskwindow.h -o moc_ventoy2diskwindow.cpp
+
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all: ui_partcfgdialog.h ui_ventoy2diskwindow.h
+compiler_uic_clean:
+ -$(DEL_FILE) ui_partcfgdialog.h ui_ventoy2diskwindow.h
+ui_partcfgdialog.h: ../Ventoy2Disk/partcfgdialog.ui \
+ ../../Qt5.9.0/5.9/gcc_64/bin/uic
+ /home/panda/Qt5.9.0/5.9/gcc_64/bin/uic ../Ventoy2Disk/partcfgdialog.ui -o ui_partcfgdialog.h
+
+ui_ventoy2diskwindow.h: ../Ventoy2Disk/ventoy2diskwindow.ui \
+ ../../Qt5.9.0/5.9/gcc_64/bin/uic
+ /home/panda/Qt5.9.0/5.9/gcc_64/bin/uic ../Ventoy2Disk/ventoy2diskwindow.ui -o ui_ventoy2diskwindow.h
+
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_uic_clean
+
+####### Compile
+
+ventoy_crc32.o: ../Ventoy2Disk/Core/ventoy_crc32.c
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_crc32.o ../Ventoy2Disk/Core/ventoy_crc32.c
+
+ventoy_disk.o: ../Ventoy2Disk/Core/ventoy_disk.c ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_disk.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_disk.o ../Ventoy2Disk/Core/ventoy_disk.c
+
+ventoy_json.o: ../Ventoy2Disk/Core/ventoy_json.c ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h \
+ ../../Ventoy2Disk/Core/ventoy_json.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_json.o ../Ventoy2Disk/Core/ventoy_json.c
+
+ventoy_log.o: ../Ventoy2Disk/Core/ventoy_log.c ../../Ventoy2Disk/Core/ventoy_define.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_log.o ../Ventoy2Disk/Core/ventoy_log.c
+
+ventoy_md5.o: ../Ventoy2Disk/Core/ventoy_md5.c
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_md5.o ../Ventoy2Disk/Core/ventoy_md5.c
+
+ventoy_util.o: ../Ventoy2Disk/Core/ventoy_util.c ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_util.o ../Ventoy2Disk/Core/ventoy_util.c
+
+cluster.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o cluster.o ../Ventoy2Disk/Lib/exfat/src/libexfat/cluster.c
+
+io.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o io.o ../Ventoy2Disk/Lib/exfat/src/libexfat/io.c
+
+lookup.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o lookup.o ../Ventoy2Disk/Lib/exfat/src/libexfat/lookup.c
+
+mount.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o mount.o ../Ventoy2Disk/Lib/exfat/src/libexfat/mount.c
+
+node.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o node.o ../Ventoy2Disk/Lib/exfat/src/libexfat/node.c
+
+repair.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o repair.o ../Ventoy2Disk/Lib/exfat/src/libexfat/repair.c
+
+time.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o time.o ../Ventoy2Disk/Lib/exfat/src/libexfat/time.c
+
+utf.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o utf.o ../Ventoy2Disk/Lib/exfat/src/libexfat/utf.c
+
+utils.o: ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c ../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o utils.o ../Ventoy2Disk/Lib/exfat/src/libexfat/utils.c
+
+cbm.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o cbm.o ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.c
+
+fat.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat.o ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.c
+
+mkexfat.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o mkexfat.o ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.c
+
+mkexfat_main.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o mkexfat_main.o ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat_main.c
+
+rootdir.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o rootdir.o ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.c
+
+uct.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o uct.o ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.c
+
+uctc.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o uctc.o ../Ventoy2Disk/Lib/exfat/src/mkfs/uctc.c
+
+vbr.o: ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/mkexfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfat.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/config.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/compiler.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/exfatfs.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/byteorder.h \
+ ../../Ventoy2Disk/Lib/exfat/src/libexfat/platform.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/fat.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/cbm.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/uct.h \
+ ../Ventoy2Disk/Lib/exfat/src/mkfs/rootdir.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o vbr.o ../Ventoy2Disk/Lib/exfat/src/mkfs/vbr.c
+
+fat_access.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_access.o ../Ventoy2Disk/Lib/fat_io_lib/fat_access.c
+
+fat_cache.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_cache.o ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.c
+
+fat_filelib.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_cache.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_filelib.o ../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.c
+
+fat_format.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_format.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_format.o ../Ventoy2Disk/Lib/fat_io_lib/fat_format.c
+
+fat_misc.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_misc.o ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.c
+
+fat_string.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_string.o ../Ventoy2Disk/Lib/fat_io_lib/fat_string.c
+
+fat_table.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_table.o ../Ventoy2Disk/Lib/fat_io_lib/fat_table.c
+
+fat_write.o: ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_table.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_misc.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_write.h \
+ ../Ventoy2Disk/Lib/fat_io_lib/fat_string.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o fat_write.o ../Ventoy2Disk/Lib/fat_io_lib/fat_write.c
+
+decompress_unxz.o: ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c ../../Ventoy2Disk/Lib/xz-embedded/linux/include/linux/xz.h \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_private.h \
+ ../../Ventoy2Disk/Lib/xz-embedded/userspace/xz_config.h \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_crc32.c \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_dec_stream.c \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_stream.h \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_dec_lzma2.c \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_lzma2.h \
+ ../Ventoy2Disk/Lib/xz-embedded/linux/lib/xz/xz_dec_bcj.c
+ $(CC) -c $(CFLAGS) $(INCPATH) -o decompress_unxz.o ../Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c
+
+refresh_icon_data.o: ../Ventoy2Disk/QT/refresh_icon_data.c
+ $(CC) -c $(CFLAGS) $(INCPATH) -o refresh_icon_data.o ../Ventoy2Disk/QT/refresh_icon_data.c
+
+secure_icon_data.o: ../Ventoy2Disk/QT/secure_icon_data.c
+ $(CC) -c $(CFLAGS) $(INCPATH) -o secure_icon_data.o ../Ventoy2Disk/QT/secure_icon_data.c
+
+ventoy_qt_stub.o: ../Ventoy2Disk/QT/ventoy_qt_stub.c ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_json.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h \
+ ../../Ventoy2Disk/Core/ventoy_disk.h \
+ ../../Ventoy2Disk/Web/ventoy_http.h \
+ ../../Ventoy2Disk/Lib/libhttp/include/civetweb.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_qt_stub.o ../Ventoy2Disk/QT/ventoy_qt_stub.c
+
+ventoy_http.o: ../Ventoy2Disk/Web/ventoy_http.c ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_json.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h \
+ ../../Ventoy2Disk/Core/ventoy_disk.h \
+ ../../Ventoy2Disk/Web/ventoy_http.h \
+ ../../Ventoy2Disk/Lib/libhttp/include/civetweb.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_filelib.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_opts.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_access.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_defs.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_types.h \
+ ../../Ventoy2Disk/Lib/fat_io_lib/fat_list.h
+ $(CC) -c $(CFLAGS) $(INCPATH) -o ventoy_http.o ../Ventoy2Disk/Web/ventoy_http.c
+
+main.o: ../Ventoy2Disk/main.cpp ../Ventoy2Disk/ventoy2diskwindow.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMainWindow \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmainwindow.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtabwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qicon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QActionGroup \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qactiongroup.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qaction.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonDocument \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsondocument.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFile \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonArray \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonarray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QVector \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QtGlobal \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QCloseEvent \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QThread \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qthread.h \
+ ../Ventoy2Disk/partcfgdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QApplication \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qapplication.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreapplication.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qeventloop.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdesktopwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qguiapplication.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qinputmethod.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMessageBox \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmessagebox.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFileInfo \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfileinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QStyle \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qstyle.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDesktopWidget \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QPixmap \
+ ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h \
+ ../../Ventoy2Disk/QT/ventoy_qt.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../Ventoy2Disk/main.cpp
+
+partcfgdialog.o: ../Ventoy2Disk/partcfgdialog.cpp ../Ventoy2Disk/partcfgdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \
+ ui_partcfgdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMessageBox \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmessagebox.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o partcfgdialog.o ../Ventoy2Disk/partcfgdialog.cpp
+
+ventoy2diskwindow.o: ../Ventoy2Disk/ventoy2diskwindow.cpp ../Ventoy2Disk/ventoy2diskwindow.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMainWindow \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmainwindow.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgetsglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtguiglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobal.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig-bootstrapped.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qconfig.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtcore-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsystemdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qprocessordetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcompilerdetection.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtypeinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsysinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlogging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qflags.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbasicatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_bootstrap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qgenericatomic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_cxx11.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qatomic_msvc.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qglobalstatic.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmutex.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnumeric.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qversiontagging.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtgui-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtwidgets-config.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qnamespace.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobjectdefs_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qwindowdefs_win.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstring.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qchar.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrefcount.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qarraydata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringbuilder.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qalgorithms.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiterator.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhashfunctions.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpair.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qbytearraylist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringlist.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qregexp.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qstringmatcher.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcoreevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qscopedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmetatype.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvarlengtharray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontainerfwd.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qobject_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmargins.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpaintdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qrect.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsize.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qpoint.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpalette.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcolor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgb.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qrgba64.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qbrush.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvector.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qmatrix.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpolygon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qregion.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdatastream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qiodevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qline.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtransform.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpainterpath.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qimage.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixelformat.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qpixmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qshareddata.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qhash.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qsharedpointer_impl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfont.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontmetrics.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qfontinfo.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qsizepolicy.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qcursor.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qkeysequence.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qevent.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qvariant.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qmap.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qdebug.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qtextstream.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qlocale.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qset.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qcontiguouscache.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurl.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qurlquery.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfile.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qfiledevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qvector2d.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qtouchdevice.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qtabwidget.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/qicon.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QActionGroup \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qactiongroup.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qaction.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonDocument \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsondocument.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonvalue.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QFile \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonObject \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonobject.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QJsonArray \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qjsonarray.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QVector \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QtGlobal \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QDebug \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtGui/QCloseEvent \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/QThread \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtCore/qthread.h \
+ ../Ventoy2Disk/partcfgdialog.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QDialog \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qdialog.h \
+ ui_ventoy2diskwindow.h \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/QMessageBox \
+ ../../Qt5.9.0/5.9/gcc_64/include/QtWidgets/qmessagebox.h \
+ ../../Ventoy2Disk/Core/ventoy_define.h \
+ ../../Ventoy2Disk/Core/ventoy_util.h \
+ ../../Ventoy2Disk/Core/ventoy_disk.h \
+ ../../Ventoy2Disk/Core/ventoy_json.h \
+ ../../Ventoy2Disk/Web/ventoy_http.h \
+ ../../Ventoy2Disk/Lib/libhttp/include/civetweb.h \
+ ../../Ventoy2Disk/QT/ventoy_qt.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o ventoy2diskwindow.o ../Ventoy2Disk/ventoy2diskwindow.cpp
+
+moc_partcfgdialog.o: moc_partcfgdialog.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_partcfgdialog.o moc_partcfgdialog.cpp
+
+moc_ventoy2diskwindow.o: moc_ventoy2diskwindow.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_ventoy2diskwindow.o moc_ventoy2diskwindow.cpp
+
+####### Install
+
+install_target: first FORCE
+ @test -d $(INSTALL_ROOT)/opt/Ventoy2Disk/bin || mkdir -p $(INSTALL_ROOT)/opt/Ventoy2Disk/bin
+ -$(QINSTALL_PROGRAM) $(QMAKE_TARGET) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/$(QMAKE_TARGET)
+ -$(STRIP) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/$(QMAKE_TARGET)
+
+uninstall_target: FORCE
+ -$(DEL_FILE) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/$(QMAKE_TARGET)
+ -$(DEL_DIR) $(INSTALL_ROOT)/opt/Ventoy2Disk/bin/
+
+
+install: install_target FORCE
+
+uninstall: uninstall_target FORCE
+
+FORCE:
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp b/LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp
new file mode 100644
index 00000000..5bd328b2
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/build/moc_partcfgdialog.cpp
@@ -0,0 +1,124 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'partcfgdialog.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../partcfgdialog.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'partcfgdialog.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.9.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_PartCfgDialog_t {
+ QByteArrayData data[6];
+ char stringdata0[97];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_PartCfgDialog_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_PartCfgDialog_t qt_meta_stringdata_PartCfgDialog = {
+ {
+QT_MOC_LITERAL(0, 0, 13), // "PartCfgDialog"
+QT_MOC_LITERAL(1, 14, 23), // "on_pushButtonOK_clicked"
+QT_MOC_LITERAL(2, 38, 0), // ""
+QT_MOC_LITERAL(3, 39, 27), // "on_pushButtonCancel_clicked"
+QT_MOC_LITERAL(4, 67, 24), // "on_checkBox_stateChanged"
+QT_MOC_LITERAL(5, 92, 4) // "arg1"
+
+ },
+ "PartCfgDialog\0on_pushButtonOK_clicked\0"
+ "\0on_pushButtonCancel_clicked\0"
+ "on_checkBox_stateChanged\0arg1"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_PartCfgDialog[] = {
+
+ // content:
+ 7, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 3, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: name, argc, parameters, tag, flags
+ 1, 0, 29, 2, 0x08 /* Private */,
+ 3, 0, 30, 2, 0x08 /* Private */,
+ 4, 1, 31, 2, 0x08 /* Private */,
+
+ // slots: parameters
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::Int, 5,
+
+ 0 // eod
+};
+
+void PartCfgDialog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ PartCfgDialog *_t = static_cast(_o);
+ Q_UNUSED(_t)
+ switch (_id) {
+ case 0: _t->on_pushButtonOK_clicked(); break;
+ case 1: _t->on_pushButtonCancel_clicked(); break;
+ case 2: _t->on_checkBox_stateChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ }
+}
+
+const QMetaObject PartCfgDialog::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_PartCfgDialog.data,
+ qt_meta_data_PartCfgDialog, qt_static_metacall, nullptr, nullptr}
+};
+
+
+const QMetaObject *PartCfgDialog::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *PartCfgDialog::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_PartCfgDialog.stringdata0))
+ return static_cast(const_cast< PartCfgDialog*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int PartCfgDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDialog::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 3)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 3;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 3)
+ *reinterpret_cast(_a[0]) = -1;
+ _id -= 3;
+ }
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h b/LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h
new file mode 100644
index 00000000..868c52fd
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/build/moc_predefs.h
@@ -0,0 +1,375 @@
+#define __DBL_MIN_EXP__ (-1021)
+#define __FLT32X_MAX_EXP__ 1024
+#define __cpp_attributes 200809
+#define __UINT_LEAST16_MAX__ 0xffff
+#define __ATOMIC_ACQUIRE 2
+#define __FLT128_MAX_10_EXP__ 4932
+#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
+#define __GCC_IEC_559_COMPLEX 2
+#define __UINT_LEAST8_TYPE__ unsigned char
+#define __SIZEOF_FLOAT80__ 16
+#define __INTMAX_C(c) c ## L
+#define __CHAR_BIT__ 8
+#define __UINT8_MAX__ 0xff
+#define __WINT_MAX__ 0xffffffffU
+#define __FLT32_MIN_EXP__ (-125)
+#define __cpp_static_assert 200410
+#define __ORDER_LITTLE_ENDIAN__ 1234
+#define __SIZE_MAX__ 0xffffffffffffffffUL
+#define __WCHAR_MAX__ 0x7fffffff
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
+#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
+#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
+#define __GCC_IEC_559 2
+#define __FLT32X_DECIMAL_DIG__ 17
+#define __FLT_EVAL_METHOD__ 0
+#define __unix__ 1
+#define __cpp_binary_literals 201304
+#define __FLT64_DECIMAL_DIG__ 17
+#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
+#define __x86_64 1
+#define __cpp_variadic_templates 200704
+#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
+#define __SIG_ATOMIC_TYPE__ int
+#define __DBL_MIN_10_EXP__ (-307)
+#define __FINITE_MATH_ONLY__ 0
+#define __GNUC_PATCHLEVEL__ 0
+#define __FLT32_HAS_DENORM__ 1
+#define __UINT_FAST8_MAX__ 0xff
+#define __has_include(STR) __has_include__(STR)
+#define __DEC64_MAX_EXP__ 385
+#define __INT8_C(c) c
+#define __INT_LEAST8_WIDTH__ 8
+#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
+#define __SHRT_MAX__ 0x7fff
+#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
+#define __FLT64X_MAX_10_EXP__ 4932
+#define __UINT_LEAST8_MAX__ 0xff
+#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
+#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
+#define __UINTMAX_TYPE__ long unsigned int
+#define __linux 1
+#define __DEC32_EPSILON__ 1E-6DF
+#define __FLT_EVAL_METHOD_TS_18661_3__ 0
+#define __OPTIMIZE__ 1
+#define __unix 1
+#define __UINT32_MAX__ 0xffffffffU
+#define __GXX_EXPERIMENTAL_CXX0X__ 1
+#define __LDBL_MAX_EXP__ 16384
+#define __FLT128_MIN_EXP__ (-16381)
+#define __WINT_MIN__ 0U
+#define __linux__ 1
+#define __FLT128_MIN_10_EXP__ (-4931)
+#define __INT_LEAST16_WIDTH__ 16
+#define __SCHAR_MAX__ 0x7f
+#define __FLT128_MANT_DIG__ 113
+#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
+#define __INT64_C(c) c ## L
+#define __DBL_DIG__ 15
+#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
+#define __FLT64X_MANT_DIG__ 64
+#define __SIZEOF_INT__ 4
+#define __SIZEOF_POINTER__ 8
+#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
+#define __USER_LABEL_PREFIX__
+#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
+#define __STDC_HOSTED__ 1
+#define __LDBL_HAS_INFINITY__ 1
+#define __FLT32_DIG__ 6
+#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
+#define __GXX_WEAK__ 1
+#define __SHRT_WIDTH__ 16
+#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
+#define __DEC32_MAX__ 9.999999E96DF
+#define __cpp_threadsafe_static_init 200806
+#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
+#define __FLT32X_HAS_INFINITY__ 1
+#define __INT32_MAX__ 0x7fffffff
+#define __INT_WIDTH__ 32
+#define __SIZEOF_LONG__ 8
+#define __STDC_IEC_559__ 1
+#define __STDC_ISO_10646__ 201706L
+#define __UINT16_C(c) c
+#define __PTRDIFF_WIDTH__ 64
+#define __DECIMAL_DIG__ 21
+#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
+#define __gnu_linux__ 1
+#define __INTMAX_WIDTH__ 64
+#define __FLT64_MIN_EXP__ (-1021)
+#define __has_include_next(STR) __has_include_next__(STR)
+#define __FLT64X_MIN_10_EXP__ (-4931)
+#define __LDBL_HAS_QUIET_NAN__ 1
+#define __FLT64_MANT_DIG__ 53
+#define __GNUC__ 8
+#define __GXX_RTTI 1
+#define __MMX__ 1
+#define __cpp_delegating_constructors 200604
+#define __FLT_HAS_DENORM__ 1
+#define __SIZEOF_LONG_DOUBLE__ 16
+#define __BIGGEST_ALIGNMENT__ 16
+#define __STDC_UTF_16__ 1
+#define __FLT64_MAX_10_EXP__ 308
+#define __FLT32_HAS_INFINITY__ 1
+#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
+#define __cpp_raw_strings 200710
+#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
+#define __DBL_HAS_INFINITY__ 1
+#define __DEC32_MIN_EXP__ (-94)
+#define __INTPTR_WIDTH__ 64
+#define __FLT32X_HAS_DENORM__ 1
+#define __INT_FAST16_TYPE__ long int
+#define __LDBL_HAS_DENORM__ 1
+#define __cplusplus 201103L
+#define __cpp_ref_qualifiers 200710
+#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
+#define __INT_LEAST32_MAX__ 0x7fffffff
+#define __DEC32_MIN__ 1E-95DF
+#define __DEPRECATED 1
+#define __cpp_rvalue_references 200610
+#define __DBL_MAX_EXP__ 1024
+#define __WCHAR_WIDTH__ 32
+#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
+#define __DEC128_EPSILON__ 1E-33DL
+#define __SSE2_MATH__ 1
+#define __ATOMIC_HLE_RELEASE 131072
+#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
+#define __amd64 1
+#define __ATOMIC_HLE_ACQUIRE 65536
+#define __FLT32_HAS_QUIET_NAN__ 1
+#define __GNUG__ 8
+#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
+#define __SIZEOF_SIZE_T__ 8
+#define __cpp_rvalue_reference 200610
+#define __cpp_nsdmi 200809
+#define __FLT64X_MIN_EXP__ (-16381)
+#define __SIZEOF_WINT_T__ 4
+#define __LONG_LONG_WIDTH__ 64
+#define __cpp_initializer_lists 200806
+#define __FLT32_MAX_EXP__ 128
+#define __cpp_hex_float 201603
+#define __GCC_HAVE_DWARF2_CFI_ASM 1
+#define __GXX_ABI_VERSION 1013
+#define __FLT128_HAS_INFINITY__ 1
+#define __FLT_MIN_EXP__ (-125)
+#define __cpp_lambdas 200907
+#define __FLT64X_HAS_QUIET_NAN__ 1
+#define __INT_FAST64_TYPE__ long int
+#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
+#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
+#define __LP64__ 1
+#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
+#define __DECIMAL_BID_FORMAT__ 1
+#define __FLT64_MIN_10_EXP__ (-307)
+#define __FLT64X_DECIMAL_DIG__ 21
+#define __DEC128_MIN__ 1E-6143DL
+#define __REGISTER_PREFIX__
+#define __UINT16_MAX__ 0xffff
+#define __DBL_HAS_DENORM__ 1
+#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
+#define __UINT8_TYPE__ unsigned char
+#define __FLT_MANT_DIG__ 24
+#define __LDBL_DECIMAL_DIG__ 21
+#define __VERSION__ "8.3.0"
+#define __UINT64_C(c) c ## UL
+#define __cpp_unicode_characters 200704
+#define _STDC_PREDEF_H 1
+#define __GCC_ATOMIC_INT_LOCK_FREE 2
+#define __FLT128_MAX_EXP__ 16384
+#define __FLT32_MANT_DIG__ 24
+#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __STDC_IEC_559_COMPLEX__ 1
+#define __FLT128_HAS_DENORM__ 1
+#define __FLT128_DIG__ 33
+#define __SCHAR_WIDTH__ 8
+#define __INT32_C(c) c
+#define __DEC64_EPSILON__ 1E-15DD
+#define __ORDER_PDP_ENDIAN__ 3412
+#define __DEC128_MIN_EXP__ (-6142)
+#define __FLT32_MAX_10_EXP__ 38
+#define __INT_FAST32_TYPE__ long int
+#define __UINT_LEAST16_TYPE__ short unsigned int
+#define __FLT64X_HAS_INFINITY__ 1
+#define unix 1
+#define __INT16_MAX__ 0x7fff
+#define __cpp_rtti 199711
+#define __SIZE_TYPE__ long unsigned int
+#define __UINT64_MAX__ 0xffffffffffffffffUL
+#define __FLT64X_DIG__ 18
+#define __INT8_TYPE__ signed char
+#define __ELF__ 1
+#define __GCC_ASM_FLAG_OUTPUTS__ 1
+#define __FLT_RADIX__ 2
+#define __INT_LEAST16_TYPE__ short int
+#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
+#define __UINTMAX_C(c) c ## UL
+#define __GLIBCXX_BITSIZE_INT_N_0 128
+#define __k8 1
+#define __SIG_ATOMIC_MAX__ 0x7fffffff
+#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
+#define __SIZEOF_PTRDIFF_T__ 8
+#define __FLT32X_MANT_DIG__ 53
+#define __x86_64__ 1
+#define __FLT32X_MIN_EXP__ (-1021)
+#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
+#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
+#define __FLT64_DIG__ 15
+#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
+#define __UINT_LEAST64_TYPE__ long unsigned int
+#define __FLT_HAS_QUIET_NAN__ 1
+#define __FLT_MAX_10_EXP__ 38
+#define __LONG_MAX__ 0x7fffffffffffffffL
+#define __FLT64X_HAS_DENORM__ 1
+#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
+#define __FLT_HAS_INFINITY__ 1
+#define __cpp_unicode_literals 200710
+#define __UINT_FAST16_TYPE__ long unsigned int
+#define __DEC64_MAX__ 9.999999999999999E384DD
+#define __INT_FAST32_WIDTH__ 64
+#define __CHAR16_TYPE__ short unsigned int
+#define __PRAGMA_REDEFINE_EXTNAME 1
+#define __SIZE_WIDTH__ 64
+#define __SEG_FS 1
+#define __INT_LEAST16_MAX__ 0x7fff
+#define __DEC64_MANT_DIG__ 16
+#define __INT64_MAX__ 0x7fffffffffffffffL
+#define __UINT_LEAST32_MAX__ 0xffffffffU
+#define __SEG_GS 1
+#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
+#define __GCC_ATOMIC_LONG_LOCK_FREE 2
+#define __SIG_ATOMIC_WIDTH__ 32
+#define __INT_LEAST64_TYPE__ long int
+#define __INT16_TYPE__ short int
+#define __INT_LEAST8_TYPE__ signed char
+#define __DEC32_MAX_EXP__ 97
+#define __INT_FAST8_MAX__ 0x7f
+#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
+#define __INTPTR_MAX__ 0x7fffffffffffffffL
+#define linux 1
+#define __cpp_range_based_for 200907
+#define __FLT64_HAS_QUIET_NAN__ 1
+#define __FLT32_MIN_10_EXP__ (-37)
+#define __SSE2__ 1
+#define __EXCEPTIONS 1
+#define __LDBL_MANT_DIG__ 64
+#define __DBL_HAS_QUIET_NAN__ 1
+#define __FLT64_HAS_INFINITY__ 1
+#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
+#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
+#define __code_model_small__ 1
+#define __k8__ 1
+#define __INTPTR_TYPE__ long int
+#define __UINT16_TYPE__ short unsigned int
+#define __WCHAR_TYPE__ int
+#define __SIZEOF_FLOAT__ 4
+#define __UINTPTR_MAX__ 0xffffffffffffffffUL
+#define __INT_FAST64_WIDTH__ 64
+#define __DEC64_MIN_EXP__ (-382)
+#define __cpp_decltype 200707
+#define __FLT32_DECIMAL_DIG__ 9
+#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
+#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
+#define __FLT_DIG__ 6
+#define __FLT64X_MAX_EXP__ 16384
+#define __UINT_FAST64_TYPE__ long unsigned int
+#define __INT_MAX__ 0x7fffffff
+#define __amd64__ 1
+#define __INT64_TYPE__ long int
+#define __FLT_MAX_EXP__ 128
+#define __ORDER_BIG_ENDIAN__ 4321
+#define __DBL_MANT_DIG__ 53
+#define __cpp_inheriting_constructors 201511
+#define __SIZEOF_FLOAT128__ 16
+#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
+#define __DEC64_MIN__ 1E-383DD
+#define __WINT_TYPE__ unsigned int
+#define __UINT_LEAST32_TYPE__ unsigned int
+#define __SIZEOF_SHORT__ 2
+#define __SSE__ 1
+#define __LDBL_MIN_EXP__ (-16381)
+#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
+#define __WINT_WIDTH__ 32
+#define __INT_LEAST8_MAX__ 0x7f
+#define __FLT32X_MAX_10_EXP__ 308
+#define __SIZEOF_INT128__ 16
+#define __LDBL_MAX_10_EXP__ 4932
+#define __ATOMIC_RELAXED 0
+#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
+#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
+#define _LP64 1
+#define __UINT8_C(c) c
+#define __FLT64_MAX_EXP__ 1024
+#define __INT_LEAST32_TYPE__ int
+#define __SIZEOF_WCHAR_T__ 4
+#define __FLT128_HAS_QUIET_NAN__ 1
+#define __INT_FAST8_TYPE__ signed char
+#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
+#define __GNUC_STDC_INLINE__ 1
+#define __FLT64_HAS_DENORM__ 1
+#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
+#define __DBL_DECIMAL_DIG__ 17
+#define __STDC_UTF_32__ 1
+#define __INT_FAST8_WIDTH__ 8
+#define __FXSR__ 1
+#define __DEC_EVAL_METHOD__ 2
+#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
+#define __cpp_runtime_arrays 198712
+#define __UINT64_TYPE__ long unsigned int
+#define __UINT32_C(c) c ## U
+#define __INTMAX_MAX__ 0x7fffffffffffffffL
+#define __cpp_alias_templates 200704
+#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
+#define __INT8_MAX__ 0x7f
+#define __LONG_WIDTH__ 64
+#define __UINT_FAST32_TYPE__ long unsigned int
+#define __CHAR32_TYPE__ unsigned int
+#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
+#define __cpp_constexpr 200704
+#define __INT32_TYPE__ int
+#define __SIZEOF_DOUBLE__ 8
+#define __cpp_exceptions 199711
+#define __FLT_MIN_10_EXP__ (-37)
+#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
+#define __INT_LEAST32_WIDTH__ 32
+#define __INTMAX_TYPE__ long int
+#define __DEC128_MAX_EXP__ 6145
+#define __FLT32X_HAS_QUIET_NAN__ 1
+#define __ATOMIC_CONSUME 1
+#define __GNUC_MINOR__ 3
+#define __GLIBCXX_TYPE_INT_N_0 __int128
+#define __INT_FAST16_WIDTH__ 64
+#define __UINTMAX_MAX__ 0xffffffffffffffffUL
+#define __DEC32_MANT_DIG__ 7
+#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
+#define __DBL_MAX_10_EXP__ 308
+#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
+#define __INT16_C(c) c
+#define __STDC__ 1
+#define __FLT32X_DIG__ 15
+#define __PTRDIFF_TYPE__ long int
+#define __ATOMIC_SEQ_CST 5
+#define __UINT32_TYPE__ unsigned int
+#define __FLT32X_MIN_10_EXP__ (-307)
+#define __UINTPTR_TYPE__ long unsigned int
+#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
+#define __DEC128_MANT_DIG__ 34
+#define __LDBL_MIN_10_EXP__ (-4931)
+#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
+#define __SSE_MATH__ 1
+#define __SIZEOF_LONG_LONG__ 8
+#define __cpp_user_defined_literals 200809
+#define __FLT128_DECIMAL_DIG__ 36
+#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
+#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
+#define __LDBL_DIG__ 18
+#define __FLT_DECIMAL_DIG__ 9
+#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
+#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
+#define __INT_LEAST64_WIDTH__ 64
+#define __UINT_FAST8_TYPE__ unsigned char
+#define _GNU_SOURCE 1
+#define __ATOMIC_ACQ_REL 4
+#define __ATOMIC_RELEASE 3
diff --git a/LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp b/LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp
new file mode 100644
index 00000000..f04103ef
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp
@@ -0,0 +1,294 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'ventoy2diskwindow.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.9.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../ventoy2diskwindow.h"
+#include
+#include
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'ventoy2diskwindow.h' doesn't include ."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.9.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_MyQThread_t {
+ QByteArrayData data[5];
+ char stringdata0[33];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_MyQThread_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_MyQThread_t qt_meta_stringdata_MyQThread = {
+ {
+QT_MOC_LITERAL(0, 0, 9), // "MyQThread"
+QT_MOC_LITERAL(1, 10, 12), // "thread_event"
+QT_MOC_LITERAL(2, 23, 0), // ""
+QT_MOC_LITERAL(3, 24, 3), // "msg"
+QT_MOC_LITERAL(4, 28, 4) // "data"
+
+ },
+ "MyQThread\0thread_event\0\0msg\0data"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_MyQThread[] = {
+
+ // content:
+ 7, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 1, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 1, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 2, 19, 2, 0x06 /* Public */,
+
+ // signals: parameters
+ QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 4,
+
+ 0 // eod
+};
+
+void MyQThread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ MyQThread *_t = static_cast(_o);
+ Q_UNUSED(_t)
+ switch (_id) {
+ case 0: _t->thread_event((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast(_a[0]);
+ void **func = reinterpret_cast(_a[1]);
+ {
+ typedef void (MyQThread::*_t)(int , int );
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MyQThread::thread_event)) {
+ *result = 0;
+ return;
+ }
+ }
+ }
+}
+
+const QMetaObject MyQThread::staticMetaObject = {
+ { &QThread::staticMetaObject, qt_meta_stringdata_MyQThread.data,
+ qt_meta_data_MyQThread, qt_static_metacall, nullptr, nullptr}
+};
+
+
+const QMetaObject *MyQThread::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *MyQThread::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_MyQThread.stringdata0))
+ return static_cast(const_cast< MyQThread*>(this));
+ return QThread::qt_metacast(_clname);
+}
+
+int MyQThread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QThread::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 1)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 1;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 1)
+ *reinterpret_cast(_a[0]) = -1;
+ _id -= 1;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void MyQThread::thread_event(int _t1, int _t2)
+{
+ void *_a[] = { nullptr, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+struct qt_meta_stringdata_Ventoy2DiskWindow_t {
+ QByteArrayData data[19];
+ char stringdata0[367];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_Ventoy2DiskWindow_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_Ventoy2DiskWindow_t qt_meta_stringdata_Ventoy2DiskWindow = {
+ {
+QT_MOC_LITERAL(0, 0, 17), // "Ventoy2DiskWindow"
+QT_MOC_LITERAL(1, 18, 12), // "thread_event"
+QT_MOC_LITERAL(2, 31, 0), // ""
+QT_MOC_LITERAL(3, 32, 3), // "msg"
+QT_MOC_LITERAL(4, 36, 4), // "data"
+QT_MOC_LITERAL(5, 41, 23), // "part_style_check_action"
+QT_MOC_LITERAL(6, 65, 8), // "QAction*"
+QT_MOC_LITERAL(7, 74, 3), // "act"
+QT_MOC_LITERAL(8, 78, 17), // "lang_check_action"
+QT_MOC_LITERAL(9, 96, 24), // "on_ButtonInstall_clicked"
+QT_MOC_LITERAL(10, 121, 23), // "on_ButtonUpdate_clicked"
+QT_MOC_LITERAL(11, 145, 24), // "on_ButtonRefresh_clicked"
+QT_MOC_LITERAL(12, 170, 37), // "on_comboBoxDevice_currentInde..."
+QT_MOC_LITERAL(13, 208, 5), // "index"
+QT_MOC_LITERAL(14, 214, 42), // "on_actionPartition_Configurat..."
+QT_MOC_LITERAL(15, 257, 31), // "on_actionClear_Ventoy_triggered"
+QT_MOC_LITERAL(16, 289, 33), // "on_actionShow_All_Devices_tog..."
+QT_MOC_LITERAL(17, 323, 4), // "arg1"
+QT_MOC_LITERAL(18, 328, 38) // "on_actionSecure_Boot_Support_..."
+
+ },
+ "Ventoy2DiskWindow\0thread_event\0\0msg\0"
+ "data\0part_style_check_action\0QAction*\0"
+ "act\0lang_check_action\0on_ButtonInstall_clicked\0"
+ "on_ButtonUpdate_clicked\0"
+ "on_ButtonRefresh_clicked\0"
+ "on_comboBoxDevice_currentIndexChanged\0"
+ "index\0on_actionPartition_Configuration_triggered\0"
+ "on_actionClear_Ventoy_triggered\0"
+ "on_actionShow_All_Devices_toggled\0"
+ "arg1\0on_actionSecure_Boot_Support_triggered"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_Ventoy2DiskWindow[] = {
+
+ // content:
+ 7, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 11, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 0, // signalCount
+
+ // slots: name, argc, parameters, tag, flags
+ 1, 2, 69, 2, 0x08 /* Private */,
+ 5, 1, 74, 2, 0x08 /* Private */,
+ 8, 1, 77, 2, 0x08 /* Private */,
+ 9, 0, 80, 2, 0x08 /* Private */,
+ 10, 0, 81, 2, 0x08 /* Private */,
+ 11, 0, 82, 2, 0x08 /* Private */,
+ 12, 1, 83, 2, 0x08 /* Private */,
+ 14, 0, 86, 2, 0x08 /* Private */,
+ 15, 0, 87, 2, 0x08 /* Private */,
+ 16, 1, 88, 2, 0x08 /* Private */,
+ 18, 0, 91, 2, 0x08 /* Private */,
+
+ // slots: parameters
+ QMetaType::Void, QMetaType::Int, QMetaType::Int, 3, 4,
+ QMetaType::Void, 0x80000000 | 6, 7,
+ QMetaType::Void, 0x80000000 | 6, 7,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::Int, 13,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::Bool, 17,
+ QMetaType::Void,
+
+ 0 // eod
+};
+
+void Ventoy2DiskWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ Ventoy2DiskWindow *_t = static_cast(_o);
+ Q_UNUSED(_t)
+ switch (_id) {
+ case 0: _t->thread_event((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 1: _t->part_style_check_action((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
+ case 2: _t->lang_check_action((*reinterpret_cast< QAction*(*)>(_a[1]))); break;
+ case 3: _t->on_ButtonInstall_clicked(); break;
+ case 4: _t->on_ButtonUpdate_clicked(); break;
+ case 5: _t->on_ButtonRefresh_clicked(); break;
+ case 6: _t->on_comboBoxDevice_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 7: _t->on_actionPartition_Configuration_triggered(); break;
+ case 8: _t->on_actionClear_Ventoy_triggered(); break;
+ case 9: _t->on_actionShow_All_Devices_toggled((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 10: _t->on_actionSecure_Boot_Support_triggered(); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ switch (_id) {
+ default: *reinterpret_cast(_a[0]) = -1; break;
+ case 1:
+ switch (*reinterpret_cast(_a[1])) {
+ default: *reinterpret_cast(_a[0]) = -1; break;
+ case 0:
+ *reinterpret_cast(_a[0]) = qRegisterMetaType< QAction* >(); break;
+ }
+ break;
+ case 2:
+ switch (*reinterpret_cast(_a[1])) {
+ default: *reinterpret_cast(_a[0]) = -1; break;
+ case 0:
+ *reinterpret_cast(_a[0]) = qRegisterMetaType< QAction* >(); break;
+ }
+ break;
+ }
+ }
+}
+
+const QMetaObject Ventoy2DiskWindow::staticMetaObject = {
+ { &QMainWindow::staticMetaObject, qt_meta_stringdata_Ventoy2DiskWindow.data,
+ qt_meta_data_Ventoy2DiskWindow, qt_static_metacall, nullptr, nullptr}
+};
+
+
+const QMetaObject *Ventoy2DiskWindow::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *Ventoy2DiskWindow::qt_metacast(const char *_clname)
+{
+ if (!_clname) return nullptr;
+ if (!strcmp(_clname, qt_meta_stringdata_Ventoy2DiskWindow.stringdata0))
+ return static_cast(const_cast< Ventoy2DiskWindow*>(this));
+ return QMainWindow::qt_metacast(_clname);
+}
+
+int Ventoy2DiskWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QMainWindow::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 11)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 11;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 11)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 11;
+ }
+ return _id;
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h b/LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h
new file mode 100644
index 00000000..e0244c95
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/build/ui_partcfgdialog.h
@@ -0,0 +1,113 @@
+/********************************************************************************
+** Form generated from reading UI file 'partcfgdialog.ui'
+**
+** Created by: Qt User Interface Compiler version 5.9.0
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_PARTCFGDIALOG_H
+#define UI_PARTCFGDIALOG_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+
+class Ui_PartCfgDialog
+{
+public:
+ QPushButton *pushButtonOK;
+ QPushButton *pushButtonCancel;
+ QGroupBox *groupBox;
+ QCheckBox *checkBox;
+ QGroupBox *groupBox_2;
+ QLineEdit *lineEdit;
+ QGroupBox *groupBox_3;
+ QComboBox *comboBox;
+ QGroupBox *groupBox_4;
+ QCheckBox *checkBox_2;
+
+ void setupUi(QDialog *PartCfgDialog)
+ {
+ if (PartCfgDialog->objectName().isEmpty())
+ PartCfgDialog->setObjectName(QStringLiteral("PartCfgDialog"));
+ PartCfgDialog->resize(420, 258);
+ pushButtonOK = new QPushButton(PartCfgDialog);
+ pushButtonOK->setObjectName(QStringLiteral("pushButtonOK"));
+ pushButtonOK->setGeometry(QRect(90, 210, 90, 30));
+ pushButtonCancel = new QPushButton(PartCfgDialog);
+ pushButtonCancel->setObjectName(QStringLiteral("pushButtonCancel"));
+ pushButtonCancel->setGeometry(QRect(230, 210, 90, 30));
+ groupBox = new QGroupBox(PartCfgDialog);
+ groupBox->setObjectName(QStringLiteral("groupBox"));
+ groupBox->setGeometry(QRect(10, 0, 400, 61));
+ checkBox = new QCheckBox(groupBox);
+ checkBox->setObjectName(QStringLiteral("checkBox"));
+ checkBox->setGeometry(QRect(10, 20, 381, 41));
+ checkBox->setAutoRepeatInterval(0);
+ groupBox_2 = new QGroupBox(PartCfgDialog);
+ groupBox_2->setObjectName(QStringLiteral("groupBox_2"));
+ groupBox_2->setGeometry(QRect(10, 60, 200, 61));
+ lineEdit = new QLineEdit(groupBox_2);
+ lineEdit->setObjectName(QStringLiteral("lineEdit"));
+ lineEdit->setGeometry(QRect(10, 30, 181, 26));
+ lineEdit->setMaxLength(14);
+ groupBox_3 = new QGroupBox(PartCfgDialog);
+ groupBox_3->setObjectName(QStringLiteral("groupBox_3"));
+ groupBox_3->setGeometry(QRect(210, 60, 200, 60));
+ comboBox = new QComboBox(groupBox_3);
+ comboBox->setObjectName(QStringLiteral("comboBox"));
+ comboBox->setGeometry(QRect(10, 30, 181, 26));
+ groupBox_4 = new QGroupBox(PartCfgDialog);
+ groupBox_4->setObjectName(QStringLiteral("groupBox_4"));
+ groupBox_4->setGeometry(QRect(10, 120, 401, 61));
+ checkBox_2 = new QCheckBox(groupBox_4);
+ checkBox_2->setObjectName(QStringLiteral("checkBox_2"));
+ checkBox_2->setGeometry(QRect(10, 30, 381, 24));
+ checkBox_2->setChecked(true);
+
+ retranslateUi(PartCfgDialog);
+
+ comboBox->setCurrentIndex(1);
+
+
+ QMetaObject::connectSlotsByName(PartCfgDialog);
+ } // setupUi
+
+ void retranslateUi(QDialog *PartCfgDialog)
+ {
+ PartCfgDialog->setWindowTitle(QApplication::translate("PartCfgDialog", "Partition Configuration", Q_NULLPTR));
+ pushButtonOK->setText(QApplication::translate("PartCfgDialog", "OK", Q_NULLPTR));
+ pushButtonCancel->setText(QApplication::translate("PartCfgDialog", "Cancel", Q_NULLPTR));
+ groupBox->setTitle(QString());
+ checkBox->setText(QApplication::translate("PartCfgDialog", "Preserve some space at the end of the disk", Q_NULLPTR));
+ groupBox_2->setTitle(QString());
+ groupBox_3->setTitle(QString());
+ comboBox->clear();
+ comboBox->insertItems(0, QStringList()
+ << QApplication::translate("PartCfgDialog", "MB", Q_NULLPTR)
+ << QApplication::translate("PartCfgDialog", "GB", Q_NULLPTR)
+ );
+ groupBox_4->setTitle(QString());
+ checkBox_2->setText(QApplication::translate("PartCfgDialog", "Align partitions with 4KB", Q_NULLPTR));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class PartCfgDialog: public Ui_PartCfgDialog {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_PARTCFGDIALOG_H
diff --git a/LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h b/LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h
new file mode 100644
index 00000000..57eceef1
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/build/ui_ventoy2diskwindow.h
@@ -0,0 +1,202 @@
+/********************************************************************************
+** Form generated from reading UI file 'ventoy2diskwindow.ui'
+**
+** Created by: Qt User Interface Compiler version 5.9.0
+**
+** WARNING! All changes made in this file will be lost when recompiling UI file!
+********************************************************************************/
+
+#ifndef UI_VENTOY2DISKWINDOW_H
+#define UI_VENTOY2DISKWINDOW_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+QT_BEGIN_NAMESPACE
+
+class Ui_Ventoy2DiskWindow
+{
+public:
+ QAction *actionSecure_Boot_Support;
+ QAction *actionMBR;
+ QAction *actionGPT;
+ QAction *actionPartition_Configuration;
+ QAction *actionClear_Ventoy;
+ QAction *actionShow_All_Devices;
+ QWidget *centralwidget;
+ QGroupBox *groupBoxDevice;
+ QComboBox *comboBoxDevice;
+ QPushButton *ButtonRefresh;
+ QGroupBox *groupBoxVentoyLocal;
+ QLabel *labelVentoyLocalVer;
+ QLabel *labelVentoyLocalPartStyle;
+ QLabel *labelVentoyLocalSecure;
+ QGroupBox *groupBoxVentoyDevice;
+ QLabel *labelVentoyDeviceVer;
+ QLabel *labelVentoyDevicePartStyle;
+ QLabel *labelVentoyDeviceSecure;
+ QGroupBox *groupBoxStatus;
+ QProgressBar *progressBar;
+ QPushButton *ButtonInstall;
+ QPushButton *ButtonUpdate;
+ QMenuBar *menubar;
+ QMenu *menuOption;
+ QMenu *menuPartition_Style;
+ QMenu *menuLanguage;
+
+ void setupUi(QMainWindow *Ventoy2DiskWindow)
+ {
+ if (Ventoy2DiskWindow->objectName().isEmpty())
+ Ventoy2DiskWindow->setObjectName(QStringLiteral("Ventoy2DiskWindow"));
+ Ventoy2DiskWindow->resize(441, 367);
+ actionSecure_Boot_Support = new QAction(Ventoy2DiskWindow);
+ actionSecure_Boot_Support->setObjectName(QStringLiteral("actionSecure_Boot_Support"));
+ actionSecure_Boot_Support->setCheckable(true);
+ actionMBR = new QAction(Ventoy2DiskWindow);
+ actionMBR->setObjectName(QStringLiteral("actionMBR"));
+ actionMBR->setCheckable(true);
+ actionGPT = new QAction(Ventoy2DiskWindow);
+ actionGPT->setObjectName(QStringLiteral("actionGPT"));
+ actionGPT->setCheckable(true);
+ actionPartition_Configuration = new QAction(Ventoy2DiskWindow);
+ actionPartition_Configuration->setObjectName(QStringLiteral("actionPartition_Configuration"));
+ actionClear_Ventoy = new QAction(Ventoy2DiskWindow);
+ actionClear_Ventoy->setObjectName(QStringLiteral("actionClear_Ventoy"));
+ actionShow_All_Devices = new QAction(Ventoy2DiskWindow);
+ actionShow_All_Devices->setObjectName(QStringLiteral("actionShow_All_Devices"));
+ actionShow_All_Devices->setCheckable(true);
+ centralwidget = new QWidget(Ventoy2DiskWindow);
+ centralwidget->setObjectName(QStringLiteral("centralwidget"));
+ groupBoxDevice = new QGroupBox(centralwidget);
+ groupBoxDevice->setObjectName(QStringLiteral("groupBoxDevice"));
+ groupBoxDevice->setGeometry(QRect(10, 10, 421, 80));
+ comboBoxDevice = new QComboBox(groupBoxDevice);
+ comboBoxDevice->setObjectName(QStringLiteral("comboBoxDevice"));
+ comboBoxDevice->setGeometry(QRect(10, 40, 361, 26));
+ ButtonRefresh = new QPushButton(groupBoxDevice);
+ ButtonRefresh->setObjectName(QStringLiteral("ButtonRefresh"));
+ ButtonRefresh->setGeometry(QRect(380, 37, 30, 30));
+ QIcon icon;
+ icon.addFile(QStringLiteral("../refresh.ico"), QSize(), QIcon::Normal, QIcon::Off);
+ ButtonRefresh->setIcon(icon);
+ ButtonRefresh->setIconSize(QSize(24, 24));
+ groupBoxVentoyLocal = new QGroupBox(centralwidget);
+ groupBoxVentoyLocal->setObjectName(QStringLiteral("groupBoxVentoyLocal"));
+ groupBoxVentoyLocal->setGeometry(QRect(10, 100, 205, 80));
+ groupBoxVentoyLocal->setAlignment(Qt::AlignCenter);
+ labelVentoyLocalVer = new QLabel(groupBoxVentoyLocal);
+ labelVentoyLocalVer->setObjectName(QStringLiteral("labelVentoyLocalVer"));
+ labelVentoyLocalVer->setGeometry(QRect(30, 30, 135, 41));
+ labelVentoyLocalVer->setAlignment(Qt::AlignCenter);
+ labelVentoyLocalPartStyle = new QLabel(groupBoxVentoyLocal);
+ labelVentoyLocalPartStyle->setObjectName(QStringLiteral("labelVentoyLocalPartStyle"));
+ labelVentoyLocalPartStyle->setGeometry(QRect(172, 60, 31, 18));
+ labelVentoyLocalSecure = new QLabel(groupBoxVentoyLocal);
+ labelVentoyLocalSecure->setObjectName(QStringLiteral("labelVentoyLocalSecure"));
+ labelVentoyLocalSecure->setGeometry(QRect(12, 36, 21, 31));
+ labelVentoyLocalSecure->setPixmap(QPixmap(QString::fromUtf8("../secure.ico")));
+ groupBoxVentoyDevice = new QGroupBox(centralwidget);
+ groupBoxVentoyDevice->setObjectName(QStringLiteral("groupBoxVentoyDevice"));
+ groupBoxVentoyDevice->setGeometry(QRect(225, 100, 205, 80));
+ groupBoxVentoyDevice->setAlignment(Qt::AlignCenter);
+ labelVentoyDeviceVer = new QLabel(groupBoxVentoyDevice);
+ labelVentoyDeviceVer->setObjectName(QStringLiteral("labelVentoyDeviceVer"));
+ labelVentoyDeviceVer->setGeometry(QRect(30, 30, 135, 41));
+ labelVentoyDeviceVer->setAlignment(Qt::AlignCenter);
+ labelVentoyDevicePartStyle = new QLabel(groupBoxVentoyDevice);
+ labelVentoyDevicePartStyle->setObjectName(QStringLiteral("labelVentoyDevicePartStyle"));
+ labelVentoyDevicePartStyle->setGeometry(QRect(172, 60, 31, 18));
+ labelVentoyDeviceSecure = new QLabel(groupBoxVentoyDevice);
+ labelVentoyDeviceSecure->setObjectName(QStringLiteral("labelVentoyDeviceSecure"));
+ labelVentoyDeviceSecure->setGeometry(QRect(12, 36, 21, 31));
+ labelVentoyDeviceSecure->setPixmap(QPixmap(QString::fromUtf8("../secure.ico")));
+ groupBoxStatus = new QGroupBox(centralwidget);
+ groupBoxStatus->setObjectName(QStringLiteral("groupBoxStatus"));
+ groupBoxStatus->setGeometry(QRect(10, 190, 421, 61));
+ progressBar = new QProgressBar(groupBoxStatus);
+ progressBar->setObjectName(QStringLiteral("progressBar"));
+ progressBar->setGeometry(QRect(10, 30, 401, 23));
+ progressBar->setValue(0);
+ progressBar->setTextVisible(false);
+ ButtonInstall = new QPushButton(centralwidget);
+ ButtonInstall->setObjectName(QStringLiteral("ButtonInstall"));
+ ButtonInstall->setGeometry(QRect(90, 275, 101, 41));
+ ButtonUpdate = new QPushButton(centralwidget);
+ ButtonUpdate->setObjectName(QStringLiteral("ButtonUpdate"));
+ ButtonUpdate->setGeometry(QRect(250, 275, 101, 41));
+ Ventoy2DiskWindow->setCentralWidget(centralwidget);
+ menubar = new QMenuBar(Ventoy2DiskWindow);
+ menubar->setObjectName(QStringLiteral("menubar"));
+ menubar->setGeometry(QRect(0, 0, 441, 23));
+ menuOption = new QMenu(menubar);
+ menuOption->setObjectName(QStringLiteral("menuOption"));
+ menuPartition_Style = new QMenu(menuOption);
+ menuPartition_Style->setObjectName(QStringLiteral("menuPartition_Style"));
+ menuLanguage = new QMenu(menubar);
+ menuLanguage->setObjectName(QStringLiteral("menuLanguage"));
+ Ventoy2DiskWindow->setMenuBar(menubar);
+
+ menubar->addAction(menuOption->menuAction());
+ menubar->addAction(menuLanguage->menuAction());
+ menuOption->addAction(actionSecure_Boot_Support);
+ menuOption->addAction(menuPartition_Style->menuAction());
+ menuOption->addAction(actionPartition_Configuration);
+ menuOption->addAction(actionClear_Ventoy);
+ menuOption->addAction(actionShow_All_Devices);
+ menuPartition_Style->addAction(actionMBR);
+ menuPartition_Style->addAction(actionGPT);
+
+ retranslateUi(Ventoy2DiskWindow);
+
+ QMetaObject::connectSlotsByName(Ventoy2DiskWindow);
+ } // setupUi
+
+ void retranslateUi(QMainWindow *Ventoy2DiskWindow)
+ {
+ Ventoy2DiskWindow->setWindowTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy2Disk", Q_NULLPTR));
+ actionSecure_Boot_Support->setText(QApplication::translate("Ventoy2DiskWindow", "Secure Boot Support", Q_NULLPTR));
+ actionMBR->setText(QApplication::translate("Ventoy2DiskWindow", "MBR", Q_NULLPTR));
+ actionGPT->setText(QApplication::translate("Ventoy2DiskWindow", "GPT", Q_NULLPTR));
+ actionPartition_Configuration->setText(QApplication::translate("Ventoy2DiskWindow", "Partition Configuration", Q_NULLPTR));
+ actionClear_Ventoy->setText(QApplication::translate("Ventoy2DiskWindow", "Clear Ventoy", Q_NULLPTR));
+ actionShow_All_Devices->setText(QApplication::translate("Ventoy2DiskWindow", "Show All Devices", Q_NULLPTR));
+ groupBoxDevice->setTitle(QApplication::translate("Ventoy2DiskWindow", "Device", Q_NULLPTR));
+ ButtonRefresh->setText(QString());
+ groupBoxVentoyLocal->setTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy In Package", Q_NULLPTR));
+ labelVentoyLocalVer->setText(QApplication::translate("Ventoy2DiskWindow", "1.0.53
", Q_NULLPTR));
+ labelVentoyLocalPartStyle->setText(QApplication::translate("Ventoy2DiskWindow", "MBR
", Q_NULLPTR));
+ labelVentoyLocalSecure->setText(QString());
+ groupBoxVentoyDevice->setTitle(QApplication::translate("Ventoy2DiskWindow", "Ventoy In Device", Q_NULLPTR));
+ labelVentoyDeviceVer->setText(QApplication::translate("Ventoy2DiskWindow", "1.0.52
", Q_NULLPTR));
+ labelVentoyDevicePartStyle->setText(QApplication::translate("Ventoy2DiskWindow", "GPT
", Q_NULLPTR));
+ labelVentoyDeviceSecure->setText(QString());
+ groupBoxStatus->setTitle(QApplication::translate("Ventoy2DiskWindow", "Status: REDAY", Q_NULLPTR));
+ progressBar->setFormat(QString());
+ ButtonInstall->setText(QApplication::translate("Ventoy2DiskWindow", "Install", Q_NULLPTR));
+ ButtonUpdate->setText(QApplication::translate("Ventoy2DiskWindow", "Update", Q_NULLPTR));
+ menuOption->setTitle(QApplication::translate("Ventoy2DiskWindow", "Option", Q_NULLPTR));
+ menuPartition_Style->setTitle(QApplication::translate("Ventoy2DiskWindow", "Partition Style", Q_NULLPTR));
+ menuLanguage->setTitle(QApplication::translate("Ventoy2DiskWindow", "Language", Q_NULLPTR));
+ } // retranslateUi
+
+};
+
+namespace Ui {
+ class Ventoy2DiskWindow: public Ui_Ventoy2DiskWindow {};
+} // namespace Ui
+
+QT_END_NAMESPACE
+
+#endif // UI_VENTOY2DISKWINDOW_H
diff --git a/LinuxGUI/Ventoy2Disk/QT/main.cpp b/LinuxGUI/Ventoy2Disk/QT/main.cpp
new file mode 100644
index 00000000..37f47d4b
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/main.cpp
@@ -0,0 +1,95 @@
+#include "ventoy2diskwindow.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+extern "C" {
+#include "ventoy_define.h"
+#include "ventoy_util.h"
+#include "ventoy_qt.h"
+}
+
+using namespace std;
+
+char g_log_file[4096];
+char g_ini_file[4096];
+
+int main(int argc, char *argv[])
+{
+ int ret;
+ QApplication a(argc, argv);
+ Ventoy2DiskWindow w;
+
+#ifdef QT_CHECK_EUID
+ if (geteuid() != 0)
+ {
+ QMessageBox::critical(NULL, "Error", "Permission denied!\nPlease run with root privileges.");
+ return 1;
+ }
+#endif
+
+ if (!QFileInfo::exists("./boot/boot.img"))
+ {
+ QMessageBox::critical(NULL, "Error", "Please run under the correct directory.");
+ return 1;
+ }
+
+ ventoy_log_init();
+
+ snprintf(g_log_file, sizeof(g_log_file), "./log.txt");
+ snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini");
+ for (int i = 0; i < argc; i++)
+ {
+ if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0)
+ {
+ snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]);
+ }
+ else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0)
+ {
+ snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]);
+ }
+ }
+
+ vlog("===================================================\n");
+ vlog("===== Ventoy2Disk %s powered by QT %s =====\n", ventoy_get_local_version(), qVersion());
+ vlog("===================================================\n");
+
+ ventoy_disk_init();
+ ventoy_http_init();
+
+ w.setGeometry(QStyle::alignedRect(Qt::LeftToRight,
+ Qt::AlignCenter,
+ w.size(),
+ a.desktop()->availableGeometry()));
+
+ QPixmap pix;
+ QIcon icon;
+ int len;
+ const uchar *data;
+
+ data = (const uchar *)get_window_icon_raw_data(&len);
+ pix.loadFromData(data, len);
+ icon.addPixmap(pix);
+ w.setWindowIcon(icon);
+
+ w.show();
+ w.setFixedSize(w.size());
+
+ ret = a.exec();
+
+ ventoy_disk_exit();
+ ventoy_http_exit();
+
+ vlog("######## Ventoy2Disk QT %s exit ########\n", ventoy_get_local_version());
+
+ /* log exit must at the end */
+ ventoy_log_exit();
+
+ return ret;
+}
diff --git a/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp
new file mode 100644
index 00000000..c232b8ac
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.cpp
@@ -0,0 +1,101 @@
+#include "partcfgdialog.h"
+#include "ui_partcfgdialog.h"
+#include
+#include
+
+PartCfgDialog::PartCfgDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::PartCfgDialog)
+{
+ reserve = false;
+ unit = 1;
+ align = true;
+ valuestr = "";
+ resvalue = 0;
+
+ ui->setupUi(this);
+
+ ui->lineEdit->setEnabled(false);
+ ui->comboBox->setEnabled(false);
+}
+
+PartCfgDialog::~PartCfgDialog()
+{
+ delete ui;
+}
+
+void PartCfgDialog::update_ui_status()
+{
+ ui->checkBox->setChecked(reserve);
+ ui->lineEdit->setEnabled(reserve);
+ ui->comboBox->setEnabled(reserve);
+ ui->checkBox_2->setChecked(align);
+}
+
+void PartCfgDialog::update_language_ui(QJsonObject &obj)
+{
+ ui->checkBox->setText(_LANG_STR("STR_PRESERVE_SPACE"));
+ ui->checkBox_2->setText(_LANG_STR("STR_PART_ALIGN_4KB"));
+ ui->pushButtonOK->setText(_LANG_STR("STR_BTN_OK"));
+ ui->pushButtonCancel->setText(_LANG_STR("STR_BTN_CANCEL"));
+
+ invalid_value = _LANG_STR("STR_SPACE_VAL_INVALID");
+ err_title = _LANG_STR("STR_ERROR");
+}
+
+void PartCfgDialog::on_pushButtonOK_clicked()
+{
+ if (ui->checkBox->isChecked())
+ {
+ QString str = ui->lineEdit->text();
+
+ if (str.isEmpty())
+ {
+ QMessageBox::critical(NULL, err_title, invalid_value);
+ return;
+ }
+
+ for (int i = 0; i < str.size(); i++)
+ {
+ if (str[i] < '0' || str[i] > '9')
+ {
+ QMessageBox::critical(NULL, err_title, invalid_value);
+ return;
+ }
+ }
+
+ valuestr = str;
+ resvalue = str.toLongLong();
+ reserve = true;
+ }
+ else
+ {
+ reserve = false;
+ }
+
+ align = ui->checkBox_2->isChecked();
+ unit = ui->comboBox->currentIndex();
+
+ accept();
+}
+
+void PartCfgDialog::on_pushButtonCancel_clicked()
+{
+ reject();
+}
+
+void PartCfgDialog::on_checkBox_stateChanged(int arg1)
+{
+ (void)arg1;
+
+ if (ui->checkBox->isChecked())
+ {
+ ui->lineEdit->setEnabled(true);
+ ui->comboBox->setEnabled(true);
+ }
+ else
+ {
+ ui->lineEdit->setEnabled(false);
+ ui->comboBox->setEnabled(false);
+ }
+}
diff --git a/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h
new file mode 100644
index 00000000..c57a9ae1
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.h
@@ -0,0 +1,44 @@
+#ifndef PARTCFGDIALOG_H
+#define PARTCFGDIALOG_H
+
+#include
+#include
+
+namespace Ui {
+class PartCfgDialog;
+}
+
+class PartCfgDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+
+ bool reserve;
+ int unit;
+ bool align;
+ QString valuestr;
+ qint64 resvalue;
+
+ QString invalid_value;
+ QString err_title;
+ void update_ui_status();
+ void update_language_ui(QJsonObject &obj);
+
+ explicit PartCfgDialog(QWidget *parent = nullptr);
+ ~PartCfgDialog();
+
+private slots:
+ void on_pushButtonOK_clicked();
+
+ void on_pushButtonCancel_clicked();
+
+ void on_checkBox_stateChanged(int arg1);
+
+private:
+ Ui::PartCfgDialog *ui;
+};
+
+#define _LANG_STR(id) obj.value(id).toString()
+
+#endif // PARTCFGDIALOG_H
diff --git a/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui
new file mode 100644
index 00000000..fd131b8c
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/partcfgdialog.ui
@@ -0,0 +1,165 @@
+
+
+ PartCfgDialog
+
+
+
+ 0
+ 0
+ 420
+ 258
+
+
+
+ Partition Configuration
+
+
+
+
+ 90
+ 210
+ 90
+ 30
+
+
+
+ OK
+
+
+
+
+
+ 230
+ 210
+ 90
+ 30
+
+
+
+ Cancel
+
+
+
+
+
+ 10
+ 10
+ 400
+ 51
+
+
+
+
+
+
+
+
+ 10
+ 10
+ 381
+ 41
+
+
+
+ Preserve some space at the end of the disk
+
+
+ 0
+
+
+
+
+
+
+ 10
+ 60
+ 200
+ 60
+
+
+
+
+
+
+
+
+ 10
+ 20
+ 181
+ 26
+
+
+
+ 14
+
+
+
+
+
+
+ 210
+ 60
+ 200
+ 60
+
+
+
+
+
+
+
+
+ 10
+ 20
+ 181
+ 26
+
+
+
+ 1
+
+ -
+
+ MB
+
+
+ -
+
+ GB
+
+
+
+
+
+
+
+ 10
+ 130
+ 401
+ 51
+
+
+
+
+
+
+
+
+ 10
+ 18
+ 381
+ 24
+
+
+
+ Align partitions with 4KB
+
+
+ true
+
+
+
+
+
+
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c b/LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c
new file mode 100644
index 00000000..0b678ff5
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/refresh_icon_data.c
@@ -0,0 +1,300 @@
+/******************************************************************************
+ * refresh_icon_data.c
+ *
+ * Copyright (c) 2021, longpanda
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see .
+ *
+ */
+
+#include
+#include
+
+static unsigned char refresh_icon_hexData[4286] = {
+ 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x20, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xA8, 0x10,
+ 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x27,
+ 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE,
+ 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE,
+ 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE,
+ 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE,
+ 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE,
+ 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
+ 0x32, 0x71, 0xA6, 0xBE, 0x32, 0xD9, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE,
+ 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
+ 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBD,
+ 0x2F, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
+ 0x32, 0xB2, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBE,
+ 0x31, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xB7, 0xCA, 0x59, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC0, 0xD1,
+ 0x6E, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xAF, 0xC5, 0x48, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xA5, 0xBD,
+ 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xD4, 0xE0,
+ 0x9D, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFD, 0xFE,
+ 0xFB, 0xFF, 0xFB, 0xFC, 0xF5, 0xFF, 0xF2, 0xF6, 0xE1, 0xFF, 0xDD, 0xE6, 0xB1, 0xFF, 0xBD, 0xCF,
+ 0x67, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
+ 0x32, 0xB2, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x31, 0xFF, 0xA8, 0xC0, 0x37, 0xFF, 0xCB, 0xD9, 0x87, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xFB,
+ 0xF4, 0xFF, 0xD9, 0xE4, 0xA8, 0xFF, 0xAF, 0xC4, 0x46, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
+ 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x71, 0xA6, 0xBE,
+ 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0,
+ 0x38, 0xFF, 0xD5, 0xE0, 0x9D, 0xFF, 0xFD, 0xFE, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE,
+ 0xFD, 0xFF, 0xEE, 0xF3, 0xD9, 0xFF, 0xD9, 0xE3, 0xA8, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xCA, 0xD8,
+ 0x85, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xE6, 0xEC, 0xC4, 0xFF, 0xFA, 0xFB, 0xF3, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xED, 0xC7, 0xFF, 0xB1, 0xC6, 0x4C, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
+ 0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xCD, 0xDB,
+ 0x8C, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0xF7, 0xE7, 0xFF, 0xCB, 0xD9,
+ 0x87, 0xFF, 0xAE, 0xC3, 0x43, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD,
+ 0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xBD, 0xCF, 0x66, 0xFF, 0xE8, 0xEE,
+ 0xC9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xAD, 0xC3,
+ 0x41, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBC, 0x2D, 0xFF, 0xB8, 0xCB, 0x5C, 0xFF, 0xF6, 0xF9,
+ 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xF5, 0xDF, 0xFF, 0xBA, 0xCD, 0x60, 0xFF, 0xA4, 0xBD,
+ 0x2E, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAE, 0xC4,
+ 0x44, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xD6,
+ 0x7E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA9, 0xC0,
+ 0x39, 0xFF, 0xC8, 0xD7, 0x80, 0xFF, 0xD0, 0xDC, 0x92, 0xFF, 0xE7, 0xEE, 0xC8, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xCC, 0xDA, 0x8A, 0xFF, 0xB0, 0xC5,
+ 0x49, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xB0, 0xC6, 0x4A, 0xFF, 0xE3, 0xEA, 0xBE, 0xFF, 0xEA, 0xEF, 0xCE, 0xFF, 0xB8, 0xCB,
+ 0x5C, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA8, 0xC0,
+ 0x37, 0xFF, 0xE0, 0xE8, 0xB8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xF6, 0xE3, 0xFF, 0xB3, 0xC7,
+ 0x4F, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xA6, 0xBE,
+ 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xB6, 0xCA, 0x58, 0xFF, 0xF4, 0xF7, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xC9, 0xD8, 0x84, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA5, 0xBE, 0x30, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xFE, 0xFE, 0xFD, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xAA, 0xC1, 0x3A, 0xFF, 0xA6, 0xBE,
+ 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xBB, 0xCE, 0x63, 0xFF, 0xA7, 0xBF,
+ 0x35, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xE6, 0xED, 0xC5, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xF7, 0xF9, 0xEC, 0xFF, 0xBD, 0xCF,
+ 0x67, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xBB, 0xCD, 0x63, 0xFF, 0xF6, 0xF8,
+ 0xEA, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xB7, 0xCB, 0x5A, 0xFF, 0xF5, 0xF8, 0xE8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xEE,
+ 0xC9, 0xFF, 0xAC, 0xC2, 0x40, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA7, 0xBF, 0x34, 0xFF, 0xBA, 0xCD,
+ 0x60, 0xFF, 0xAB, 0xC2, 0x3E, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAA, 0xC1,
+ 0x3A, 0xFF, 0xE2, 0xEA, 0xBC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFE, 0xFF, 0xCF, 0xDC, 0x90, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
+ 0x2F, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xC9, 0xD8,
+ 0x84, 0xFF, 0xFD, 0xFE, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xB8, 0xCB, 0x5B, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA9, 0xC0,
+ 0x38, 0xFF, 0xA8, 0xBF, 0x37, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB2, 0xC7, 0x4F, 0xFF, 0xF2, 0xF6,
+ 0xE2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB5, 0xC9, 0x54, 0xFF, 0xE4, 0xEB,
+ 0xC1, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xAF, 0xC5, 0x47, 0xFF, 0xCA, 0xD8,
+ 0x85, 0xFF, 0xE2, 0xE9, 0xBB, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0xEF,
+ 0xCD, 0xFF, 0xCE, 0xDB, 0x8F, 0xFF, 0xC7, 0xD6, 0x7E, 0xFF, 0xA9, 0xC0, 0x39, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xC6, 0xD6, 0x7C, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xE8, 0xB5, 0xFF, 0xAC, 0xC3, 0x40, 0xFF, 0xA5, 0xBD,
+ 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xB5, 0xC9,
+ 0x55, 0xFF, 0xED, 0xF2, 0xD6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFB, 0xF1, 0xFF, 0xBC, 0xCE,
+ 0x65, 0xFF, 0xA4, 0xBC, 0x2C, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xAE, 0xC4, 0x44, 0xFF, 0xE6, 0xED,
+ 0xC6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0xEB, 0xC1, 0xFF, 0xB9, 0xCC,
+ 0x5E, 0xFF, 0xA7, 0xBF, 0x35, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD,
+ 0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xAB, 0xC1, 0x3D, 0xFF, 0xC5, 0xD5, 0x79, 0xFF, 0xF1, 0xF5,
+ 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xD3, 0xDF, 0x99, 0xFF, 0xA7, 0xBE,
+ 0x33, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE,
+ 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xB3, 0xC8,
+ 0x51, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA,
+ 0xEE, 0xFF, 0xE1, 0xE9, 0xBA, 0xFF, 0xCD, 0xDB, 0x8C, 0xFF, 0xC4, 0xD4, 0x78, 0xFF, 0xC6, 0xD6,
+ 0x7C, 0xFF, 0xD3, 0xDF, 0x9A, 0xFF, 0xE9, 0xEF, 0xCD, 0xFF, 0xFC, 0xFD, 0xF9, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xDB, 0xE4, 0xAB, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA6, 0xBE,
+ 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
+ 0x32, 0x71, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
+ 0x32, 0xB3, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xB1, 0xC6, 0x4B, 0xFF, 0xDD, 0xE6, 0xB2, 0xFF, 0xFC, 0xFD, 0xF8, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF,
+ 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFA,
+ 0xEE, 0xFF, 0xD1, 0xDE, 0x96, 0xFF, 0xAA, 0xC1, 0x3C, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
+ 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA9, 0xC0, 0x38, 0xFF, 0xC1, 0xD2, 0x71, 0xFF, 0xE2, 0xEA,
+ 0xBC, 0xFF, 0xF5, 0xF8, 0xE9, 0xFF, 0xFD, 0xFD, 0xFA, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF,
+ 0xFE, 0xFF, 0xFB, 0xFC, 0xF7, 0xFF, 0xF2, 0xF5, 0xE1, 0xFF, 0xDB, 0xE5, 0xAC, 0xFF, 0xB9, 0xCC,
+ 0x5F, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x31, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA8, 0xBF,
+ 0x36, 0xFF, 0xB3, 0xC7, 0x4F, 0xFF, 0xBF, 0xD0, 0x6B, 0xFF, 0xC5, 0xD5, 0x7A, 0xFF, 0xC4, 0xD4,
+ 0x78, 0xFF, 0xBC, 0xCE, 0x64, 0xFF, 0xB0, 0xC5, 0x48, 0xFF, 0xA6, 0xBE, 0x33, 0xFF, 0xA5, 0xBD,
+ 0x30, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xCF, 0xA6, 0xBE, 0x32, 0x35, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0xB2, 0xA6, 0xBE,
+ 0x32, 0xFE, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA5, 0xBD, 0x30, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA4, 0xBD, 0x2E, 0xFF, 0xA4, 0xBD,
+ 0x2E, 0xFF, 0xA5, 0xBD, 0x2F, 0xFF, 0xA5, 0xBE, 0x31, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFE, 0xA6, 0xBE,
+ 0x32, 0xB3, 0xA6, 0xBE, 0x32, 0x29, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x10, 0xA6, 0xBE,
+ 0x32, 0x71, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xDA, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE,
+ 0x32, 0x10, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0xBF, 0xA6, 0xBE,
+ 0x32, 0xEB, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE,
+ 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFF, 0xA6, 0xBE, 0x32, 0xFC, 0xA6, 0xBE, 0x32, 0xEB, 0xA6, 0xBE,
+ 0x32, 0xC0, 0xA6, 0xBE, 0x32, 0x73, 0xA6, 0xBE, 0x32, 0x21, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x0C, 0xA6, 0xBE,
+ 0x32, 0x2D, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x81, 0xA6, 0xBE,
+ 0x32, 0x81, 0xA6, 0xBE, 0x32, 0x72, 0xA6, 0xBE, 0x32, 0x54, 0xA6, 0xBE, 0x32, 0x2E, 0xA6, 0xBE,
+ 0x32, 0x0C, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBD, 0x31, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE,
+ 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0xA6, 0xBE, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80,
+ 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x7F, 0xF8, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0x0F, 0xE0, 0x00,
+ 0x00, 0x07, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00,
+ 0x00, 0x01, 0xC0, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x03, 0xE0, 0x00, 0x00, 0x07, 0xF0, 0x00,
+ 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x1F, 0xFE, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x01, 0xFF
+};
+
+void *get_refresh_icon_raw_data(int *len)
+{
+ *len = (int)sizeof(refresh_icon_hexData);
+ return refresh_icon_hexData;
+}
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c b/LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c
new file mode 100644
index 00000000..d72c8472
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/secure_icon_data.c
@@ -0,0 +1,91 @@
+/******************************************************************************
+ * secure_icon_data.c
+ *
+ * Copyright (c) 2021, longpanda
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see .
+ *
+ */
+
+#include
+#include
+
+static unsigned char secure_icon_hexData[958] = {
+ 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xA8, 0x03,
+ 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x46, 0x5C,
+ 0x00, 0x00, 0x46, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C,
+ 0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C,
+ 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C,
+ 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x53, 0x00, 0x8C, 0xFB, 0x52, 0x00, 0x8C, 0xFB, 0x2E, 0x00, 0x8C,
+ 0xFB, 0x01, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C,
+ 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C,
+ 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF7, 0x00, 0x8C, 0xFB, 0xF8, 0x00, 0x8C,
+ 0xFB, 0xDA, 0x00, 0x8C, 0xFB, 0x3E, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x78, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
+ 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x86, 0xF1, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x7C, 0xDF, 0xFF, 0x00, 0x6C, 0xC4, 0xFF, 0x00, 0x7C,
+ 0xDF, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x7D,
+ 0xE1, 0xFF, 0x00, 0x87, 0xF2, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7A, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFC, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0x7B, 0x00, 0x8C,
+ 0xFB, 0x77, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C, 0xFB, 0xFF, 0x00, 0x8C,
+ 0xFB, 0x77, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0xD4, 0x01, 0x8B, 0xF9, 0xF7, 0x03, 0x89,
+ 0xF3, 0xFF, 0x01, 0x8B, 0xF8, 0xF8, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C, 0xFB, 0xF4, 0x00, 0x8C,
+ 0xFB, 0xF4, 0x01, 0x8B, 0xF8, 0xF8, 0x03, 0x89, 0xF3, 0xFF, 0x01, 0x8B, 0xF9, 0xF7, 0x00, 0x8C,
+ 0xFB, 0xD4, 0x00, 0x8C, 0xFB, 0x3A, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x93, 0xFF, 0x1E, 0x1D, 0x6B,
+ 0xA9, 0x6B, 0x32, 0x54, 0x6F, 0xF6, 0x22, 0x65, 0x9A, 0x7D, 0x00, 0x90, 0xFF, 0x39, 0x00, 0x8C,
+ 0xFB, 0x3C, 0x00, 0x90, 0xFF, 0x39, 0x22, 0x65, 0x9A, 0x7D, 0x32, 0x54, 0x6F, 0xF6, 0x1D, 0x6B,
+ 0xA9, 0x6B, 0x00, 0x93, 0xFF, 0x1E, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x2A, 0x5D,
+ 0x85, 0x00, 0x46, 0x3D, 0x36, 0x3A, 0x43, 0x41, 0x3F, 0xF3, 0x45, 0x3F, 0x3A, 0x58, 0x26, 0x62,
+ 0x91, 0x00, 0x00, 0x8D, 0xFD, 0x00, 0x26, 0x62, 0x91, 0x00, 0x45, 0x3F, 0x3A, 0x58, 0x43, 0x41,
+ 0x3F, 0xF3, 0x46, 0x3D, 0x36, 0x3A, 0x2A, 0x5D, 0x85, 0x00, 0x00, 0x8C, 0xFB, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42,
+ 0x42, 0x94, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x01, 0x42, 0x42,
+ 0x42, 0x94, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x27, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42,
+ 0x42, 0x96, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x8E, 0x42, 0x42, 0x42, 0x53, 0x42, 0x42,
+ 0x42, 0x8E, 0x42, 0x42, 0x42, 0xF5, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x04, 0x42, 0x42,
+ 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42,
+ 0x42, 0x00, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42,
+ 0x42, 0xF3, 0x42, 0x42, 0x42, 0xE9, 0x42, 0x42, 0x42, 0x96, 0x42, 0x42, 0x42, 0x16, 0x42, 0x42,
+ 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x42,
+ 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42,
+ 0x42, 0x31, 0x42, 0x42, 0x42, 0x4B, 0x42, 0x42, 0x42, 0x31, 0x42, 0x42, 0x42, 0x05, 0x42, 0x42,
+ 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x42, 0x42, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
+ 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00
+};
+
+void *get_secure_icon_raw_data(int *len)
+{
+ *len = (int)sizeof(secure_icon_hexData);
+ return secure_icon_hexData;
+}
diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp
new file mode 100644
index 00000000..eac24eb8
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.cpp
@@ -0,0 +1,881 @@
+#include "ventoy2diskwindow.h"
+#include "ui_ventoy2diskwindow.h"
+#include "partcfgdialog.h"
+
+#include
+
+extern "C" {
+#include "ventoy_define.h"
+#include "ventoy_util.h"
+#include "ventoy_disk.h"
+#include "ventoy_json.h"
+#include "ventoy_http.h"
+#include "ventoy_qt.h"
+}
+
+MyQThread::MyQThread(QObject *parent) : QThread(parent)
+{
+ m_index = -1;
+ m_type = 0;
+ m_running = false;
+}
+
+void MyQThread::install_run()
+{
+ int ret = 0;
+ int pos = 0;
+ int buflen = 0;
+ int percent = 0;
+ char buf[1024];
+ char dec[64];
+ char out[256];
+ char disk_name[32];
+ ventoy_disk *cur;
+
+ vlog("install run %d ...\n", m_index);
+
+ cur = g_disk_list + m_index;
+ snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name);
+ snprintf(dec, sizeof(dec), "%llu", (unsigned long long)m_reserve_space);
+
+ buflen = sizeof(buf);
+ VTOY_JSON_FMT_BEGIN(pos, buf, buflen);
+ VTOY_JSON_FMT_OBJ_BEGIN();
+ VTOY_JSON_FMT_STRN("method", "install");
+ VTOY_JSON_FMT_STRN("disk", disk_name);
+ VTOY_JSON_FMT_STRN("reserve_space", dec);
+ VTOY_JSON_FMT_UINT("partstyle", ventoy_code_get_cur_part_style());
+ VTOY_JSON_FMT_UINT("secure_boot", m_secureboot);
+ VTOY_JSON_FMT_UINT("align_4kb", m_align4K);
+ VTOY_JSON_FMT_OBJ_END();
+ VTOY_JSON_FMT_END(pos);
+
+ out[0] = 0;
+ ventoy_func_handler(buf, out, sizeof(out));
+ vlog("func handler install <%s>\n", out);
+
+ if (strstr(out, "success"))
+ {
+ while (percent != 100)
+ {
+ percent = ventoy_code_get_percent();
+ emit thread_event(THREAD_MSG_PROGRESS_BAR, percent);
+ msleep(50);
+ }
+
+ ret = ventoy_code_get_result();
+ ventoy_code_refresh_device();
+ cur = NULL;
+ }
+ else
+ {
+ ret = 1;
+ }
+
+ emit thread_event(THREAD_MSG_INSTALL_FINISH, ret);
+ m_running = false;
+}
+
+void MyQThread::update_run()
+{
+ int ret = 0;
+ int percent = 0;
+ char buf[1024];
+ char out[256];
+ char disk_name[32];
+ ventoy_disk *cur;
+
+ vlog("install run %d ...\n", m_index);
+
+ cur = g_disk_list + m_index;
+ snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name);
+ snprintf(buf, sizeof(buf), "{\"method\":\"update\",\"disk\":\"%s\",\"secure_boot\":%d}", disk_name, m_secureboot);
+
+ out[0] = 0;
+ ventoy_func_handler(buf, out, sizeof(out));
+ vlog("func handler update <%s>\n", out);
+
+ if (strstr(out, "success"))
+ {
+ while (percent != 100)
+ {
+ percent = ventoy_code_get_percent();
+ emit thread_event(THREAD_MSG_PROGRESS_BAR, percent);
+ msleep(50);
+ }
+
+ ret = ventoy_code_get_result();
+ ventoy_code_refresh_device();
+ cur = NULL;
+ }
+ else
+ {
+ ret = 1;
+ }
+
+ emit thread_event(THREAD_MSG_UPDATE_FINISH, ret);
+ m_running = false;
+}
+
+void MyQThread::run()
+{
+ if (THREAD_TYPE_INSTALL == m_type)
+ {
+ install_run();
+ }
+ else if (THREAD_TYPE_UPDATE == m_type)
+ {
+ update_run();
+ }
+ else
+ {
+
+ }
+}
+
+
+Ventoy2DiskWindow::Ventoy2DiskWindow(QWidget *parent)
+ : QMainWindow(parent)
+ , ui(new Ui::Ventoy2DiskWindow)
+{
+ m_partcfg = new PartCfgDialog();
+ m_part_group = new QActionGroup(this);
+ m_lang_group = new QActionGroup(this);
+ m_thread = new MyQThread(this);
+
+ ui->setupUi(this);
+}
+
+Ventoy2DiskWindow::~Ventoy2DiskWindow()
+{
+ delete m_partcfg;
+ delete m_part_group;
+ delete m_lang_group;
+ delete m_thread;
+ delete ui;
+}
+
+bool LangCompare(const QString &s1, const QString &s2)
+{
+ if (true == s1.startsWith("Chinese Simplified") && false == s2.startsWith("Chinese Simplified"))
+ {
+ return true;
+ }
+ else if (false == s1.startsWith("Chinese Simplified") && true == s2.startsWith("Chinese Simplified"))
+ {
+ return false;
+ }
+ else
+ {
+ return s1 < s2;
+ }
+}
+
+int Ventoy2DiskWindow::lang_string(const QString &id, QString &str)
+{
+ QString cur = ventoy_code_get_cur_language();
+
+ for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++)
+ {
+ if (p->toObject().value("name") == cur)
+ {
+ str = p->toObject().value(id).toString();
+ str = str.replace("#@", "\r\n");
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+void Ventoy2DiskWindow::update_ui_language()
+{
+ QString dev;
+ QJsonObject obj;
+ QString cur = ventoy_code_get_cur_language();
+
+ for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++)
+ {
+ if (p->toObject().value("name") == cur)
+ {
+ obj = p->toObject();
+ break;
+ }
+ }
+
+ ui->menuOption->setTitle(_LANG_STR("STR_MENU_OPTION"));
+ ui->actionSecure_Boot_Support->setText(_LANG_STR("STR_MENU_SECURE_BOOT"));
+ ui->menuPartition_Style->setTitle(_LANG_STR("STR_MENU_PART_STYLE"));
+ ui->actionPartition_Configuration->setText(_LANG_STR("STR_MENU_PART_CFG"));
+ ui->actionClear_Ventoy->setText(_LANG_STR("STR_MENU_CLEAR"));
+ ui->actionShow_All_Devices->setText(_LANG_STR("STR_SHOW_ALL_DEV"));
+
+ dev = _LANG_STR("STR_DEVICE");
+ if (m_partcfg->reserve)
+ {
+ QString str;
+ str.sprintf(" [ -%lld%s ]", (long long)m_partcfg->resvalue, m_partcfg->unit ? "GB" : "MB");
+ ui->groupBoxDevice->setTitle(dev + str);
+ }
+ else
+ {
+ ui->groupBoxDevice->setTitle(dev);
+ }
+
+ ui->groupBoxVentoyLocal->setTitle(_LANG_STR("STR_LOCAL_VER"));
+ ui->groupBoxVentoyDevice->setTitle(_LANG_STR("STR_DISK_VER"));
+ ui->groupBoxStatus->setTitle(_LANG_STR("STR_STATUS"));
+ ui->ButtonInstall->setText(_LANG_STR("STR_INSTALL"));
+ ui->ButtonUpdate->setText(_LANG_STR("STR_UPDATE"));
+ m_partcfg->update_language_ui(obj);
+ m_partcfg->setWindowTitle(_LANG_STR("STR_MENU_PART_CFG"));
+}
+
+void Ventoy2DiskWindow::lang_check_action(QAction *act)
+{
+ ventoy_code_set_cur_language(act->text().toStdString().c_str());
+ update_ui_language();
+}
+
+void Ventoy2DiskWindow::LoadLanguages()
+{
+ QString curlang = ventoy_code_get_cur_language();
+ if (curlang.isEmpty())
+ {
+ QString LANG = qgetenv("LANG");
+ if (LANG.startsWith("zh_CN"))
+ {
+ ventoy_code_set_cur_language("Chinese Simplified (简体ä¸æ–‡)");
+ }
+ else
+ {
+ ventoy_code_set_cur_language("English (English)");
+ }
+ curlang = ventoy_code_get_cur_language();
+ }
+
+
+ QFile inFile("./tool/languages.json");
+ inFile.open(QIODevice::ReadOnly|QIODevice::Text);
+ QByteArray data = inFile.readAll();
+ inFile.close();
+
+ QJsonParseError errorPtr;
+ QJsonDocument doc = QJsonDocument::fromJson(data, &errorPtr);
+
+ m_lang_array = doc.array();
+ QVector List;
+ for (QJsonArray::iterator p = m_lang_array.begin(); p != m_lang_array.end(); p++)
+ {
+ List.push_back(p->toObject().value("name").toString());
+ }
+
+ connect(m_lang_group, SIGNAL(triggered(QAction *)), this, SLOT(lang_check_action(QAction *)));
+
+ std::sort(List.begin(), List.end(), LangCompare);
+
+ for (QVector::iterator p = List.begin(); p != List.end(); p++)
+ {
+ QAction *action = new QAction(*p, m_lang_group);
+ action->setCheckable(true);
+
+ if (p->compare(curlang) == 0)
+ {
+ action->setChecked(true);
+ m_lang_group->triggered(action);
+ }
+
+ ui->menuLanguage->addAction(action);
+ }
+
+
+}
+
+void Ventoy2DiskWindow::part_style_check_action(QAction *action)
+{
+ int style = 0;
+
+ if (action->text() == "MBR")
+ {
+ style = 0;
+ ui->labelVentoyLocalPartStyle->setText("MBR");
+ }
+ else
+ {
+ style = 1;
+ ui->labelVentoyLocalPartStyle->setText("GPT");
+ }
+
+ if (style != ventoy_code_get_cur_part_style())
+ {
+ ventoy_code_set_cur_part_style(style);
+ }
+}
+
+static ventoy_disk *select_active_dev(const QString &select, int *activeid)
+{
+ int i;
+ int alldev = ventoy_code_get_cur_show_all();
+ ventoy_disk *cur = NULL;
+
+ /* find the match one */
+ if (!select.isEmpty())
+ {
+ for (i = 0; i < g_disk_num; i++)
+ {
+ cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
+ if (select.compare(cur->disk_name) == 0)
+ {
+ *activeid = i;
+ return cur;
+ }
+ }
+ }
+
+ /* find the first one that installed with Ventoy */
+ for (i = 0; i < g_disk_num; i++)
+ {
+ cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
+ if (cur->vtoydata.ventoy_valid)
+ {
+ *activeid = i;
+ return cur;
+ }
+ }
+
+ /* find the first USB interface device */
+ for (i = 0; i < g_disk_num; i++)
+ {
+ cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
+ if (cur->type == VTOY_DEVICE_USB)
+ {
+ *activeid = i;
+ return cur;
+ }
+ }
+
+ /* use the first one */
+ for (i = 0; i < g_disk_num; i++)
+ {
+ cur = g_disk_list + i;
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
+ *activeid = i;
+ return cur;
+ }
+
+ return NULL;
+}
+
+
+void Ventoy2DiskWindow::FillDeviceList(const QString &select)
+{
+ int active;
+ int count = 0;
+ int alldev = ventoy_code_get_cur_show_all();
+ ventoy_disk *cur;
+
+ ui->comboBoxDevice->clear();
+
+ for (int i = 0; i < g_disk_num; i++)
+ {
+ cur = g_disk_list + i;
+
+ if (alldev == 0 && cur->type != VTOY_DEVICE_USB)
+ {
+ continue;
+ }
+
+ QString item;
+ item.sprintf("%s [%s] %s", cur->disk_name, cur->human_readable_size, cur->disk_model);
+ ui->comboBoxDevice->addItem(item);
+ count++;
+ }
+
+ cur = select_active_dev(select, &active);
+ if (cur)
+ {
+ vlog("combox count:%d, active:%s id:%d\n", count, cur->disk_name, active);
+ ui->ButtonInstall->setEnabled(true);
+ ui->ButtonUpdate->setEnabled(cur->vtoydata.ventoy_valid);
+ ui->comboBoxDevice->setCurrentIndex(active);
+ }
+ else
+ {
+ vlog("combox count:%d, no active id\n", count);
+ ui->ButtonInstall->setEnabled(false);
+ ui->ButtonUpdate->setEnabled(false);
+ }
+}
+
+
+void Ventoy2DiskWindow::OnInitWindow(void)
+{
+ int len;
+ const uchar *data;
+ QIcon icon;
+ QPixmap pix1;
+ QPixmap pix2;
+ char ver[512];
+
+ ui->labelVentoyLocalSecure->hide();
+
+ m_part_group->addAction(ui->actionMBR);
+ m_part_group->addAction(ui->actionGPT);
+ connect(m_part_group, SIGNAL(triggered(QAction *)), this, SLOT(part_style_check_action(QAction *)));
+
+ if (ventoy_code_get_cur_part_style())
+ {
+ ui->actionGPT->setChecked(true);
+ m_part_group->triggered(ui->actionGPT);
+ }
+ else
+ {
+ ui->actionMBR->setChecked(true);
+ m_part_group->triggered(ui->actionMBR);
+ }
+
+ snprintf(ver, sizeof(ver), VERSION_FMT, ventoy_get_local_version());
+ ui->labelVentoyLocalVer->setText(QApplication::translate("Ventoy2DiskWindow", ver, nullptr));
+
+ LoadLanguages();
+
+ data = (const uchar *)get_refresh_icon_raw_data(&len);
+ pix1.loadFromData(data, len);
+ icon.addPixmap(pix1);
+ ui->ButtonRefresh->setIcon(icon);
+
+ data = (const uchar *)get_secure_icon_raw_data(&len);
+ pix2.loadFromData(data, len);
+ ui->labelVentoyLocalSecure->setPixmap(pix2);
+ ui->labelVentoyDeviceSecure->setPixmap(pix2);
+
+ ui->labelVentoyDeviceSecure->setHidden(true);
+ ui->labelVentoyDeviceVer->setText("");
+ ui->labelVentoyDevicePartStyle->setText("");
+
+ ui->actionShow_All_Devices->setChecked(ventoy_code_get_cur_show_all());
+
+ connect(m_thread, &MyQThread::thread_event, this, &Ventoy2DiskWindow::thread_event);
+
+ FillDeviceList("");
+}
+
+void Ventoy2DiskWindow::showEvent(QShowEvent *ev)
+{
+ QMainWindow::showEvent(ev);
+ OnInitWindow();
+}
+
+void Ventoy2DiskWindow::on_ButtonInstall_clicked()
+{
+ int index;
+ quint64 size = 0, space = 0;
+ ventoy_disk *cur;
+ QString title_warn, title_err, msg;
+
+ lang_string("STR_ERROR", title_err);
+ lang_string("STR_WARNING", title_warn);
+
+ if (m_thread->m_running || ventoy_code_is_busy())
+ {
+ lang_string("STR_WAIT_PROCESS", msg);
+ QMessageBox::warning(NULL, title_warn, msg);
+ return;
+ }
+
+ index = ui->comboBoxDevice->currentIndex();
+ if (index < 0 || index > g_disk_num)
+ {
+ vlog("Invalid combobox current index %d\n", index);
+ return;
+ }
+
+ cur = g_disk_list + index;
+ if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL)
+ {
+ lang_string("STR_DISK_2TB_MBR_ERROR", msg);
+ QMessageBox::critical(NULL, title_err, msg);
+ return;
+ }
+
+ if (m_partcfg->reserve)
+ {
+ size = cur->size_in_byte / SIZE_1MB;
+ space = m_partcfg->resvalue;
+ if (m_partcfg->unit == 1)
+ {
+ space = m_partcfg->resvalue * 1024;
+ }
+
+ if (size <= space || (size - space) <= VTOYEFI_PART_BYTES / SIZE_1MB)
+ {
+ lang_string("STR_SPACE_VAL_INVALID", msg);
+ QMessageBox::critical(NULL, title_err, msg);
+ vlog("reserved space too big.\n");
+ return;
+ }
+ }
+
+ lang_string("STR_INSTALL_TIP", msg);
+ if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
+ {
+ return;
+ }
+
+ lang_string("STR_INSTALL_TIP2", msg);
+ if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
+ {
+ return;
+ }
+
+ ui->ButtonRefresh->setEnabled(false);
+ ui->ButtonInstall->setEnabled(false);
+ ui->ButtonRefresh->setEnabled(false);
+
+ m_thread->m_type = THREAD_TYPE_INSTALL;
+ m_thread->m_index = index;
+ m_thread->m_reserve_space = space * SIZE_1MB;
+ m_thread->m_secureboot = ui->actionSecure_Boot_Support->isChecked();
+ m_thread->m_align4K = m_partcfg->align;
+ m_thread->m_running = true;
+
+ m_thread->start();
+}
+
+void Ventoy2DiskWindow::on_ButtonUpdate_clicked()
+{
+ int index;
+ ventoy_disk *cur;
+ QString title_info, title_warn, title_err, msg;
+
+ lang_string("STR_ERROR", title_err);
+ lang_string("STR_WARNING", title_warn);
+ lang_string("STR_INFO", title_info);
+
+ if (m_thread->m_running || ventoy_code_is_busy())
+ {
+ lang_string("STR_WAIT_PROCESS", msg);
+ QMessageBox::warning(NULL, title_warn, msg);
+ return;
+ }
+
+ index = ui->comboBoxDevice->currentIndex();
+ if (index < 0 || index > g_disk_num)
+ {
+ vlog("Invalid combobox current index %d\n", index);
+ return;
+ }
+
+ cur = g_disk_list + index;
+ if (cur->vtoydata.ventoy_valid == 0)
+ {
+ vlog("invalid ventoy version");
+ return;
+ }
+
+ lang_string("STR_UPDATE_TIP", msg);
+ if (QMessageBox::Yes != QMessageBox::information(NULL, title_info, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
+ {
+ return;
+ }
+
+ ui->ButtonRefresh->setEnabled(false);
+ ui->ButtonInstall->setEnabled(false);
+ ui->ButtonRefresh->setEnabled(false);
+
+ m_thread->m_type = THREAD_TYPE_UPDATE;
+ m_thread->m_index = index;
+ m_thread->m_secureboot = ui->actionSecure_Boot_Support->isChecked();
+
+ m_thread->m_running = true;
+ m_thread->start();
+}
+
+void Ventoy2DiskWindow::on_ButtonRefresh_clicked()
+{
+ QString title_warn, msg;
+
+ if (m_thread->m_running || ventoy_code_is_busy())
+ {
+ lang_string("STR_WARNING", title_warn);
+ lang_string("STR_WAIT_PROCESS", msg);
+ QMessageBox::warning(NULL, title_warn, msg);
+ return;
+ }
+
+ ventoy_code_refresh_device();
+ FillDeviceList("");
+}
+
+void Ventoy2DiskWindow::on_comboBoxDevice_currentIndexChanged(int index)
+{
+ char ver[512];
+ ventoy_disk *cur;
+
+ ui->labelVentoyDeviceSecure->setHidden(true);
+ ui->labelVentoyDeviceVer->setText("");
+ ui->labelVentoyDevicePartStyle->setText("");
+
+ if (index < 0 || index > g_disk_num)
+ {
+ vlog("invalid combobox index %d\n", index);
+ return;
+ }
+
+ cur = g_disk_list + index;
+ if (cur->vtoydata.ventoy_valid)
+ {
+ if (cur->vtoydata.secure_boot_flag)
+ {
+ ui->labelVentoyDeviceSecure->setHidden(false);
+ }
+ else
+ {
+ ui->labelVentoyDeviceSecure->setHidden(true);
+ }
+
+ if ((int)(ui->actionSecure_Boot_Support->isChecked()) != cur->vtoydata.secure_boot_flag)
+ {
+ ui->actionSecure_Boot_Support->trigger();
+ }
+
+ snprintf(ver, sizeof(ver), VERSION_FMT, cur->vtoydata.ventoy_ver);
+ ui->labelVentoyDeviceVer->setText(QApplication::translate("Ventoy2DiskWindow", ver, nullptr));
+ ui->labelVentoyDevicePartStyle->setText(cur->vtoydata.partition_style ? "GPT" : "MBR");
+ }
+ else
+ {
+ if (ui->actionSecure_Boot_Support->isChecked())
+ {
+ ui->actionSecure_Boot_Support->trigger();
+ }
+ }
+}
+
+void Ventoy2DiskWindow::on_actionPartition_Configuration_triggered()
+{
+ m_partcfg->update_ui_status();
+ if (QDialog::Accepted == m_partcfg->exec())
+ {
+ QString str;
+ QString dev;
+ lang_string("STR_DEVICE", dev);
+
+ if (m_partcfg->reserve)
+ {
+ str.sprintf(" [ -%lld%s ]", (long long)m_partcfg->resvalue, m_partcfg->unit ? "GB" : "MB");
+ ui->groupBoxDevice->setTitle(dev + str);
+ }
+ else
+ {
+ ui->groupBoxDevice->setTitle(dev);
+ }
+ }
+}
+
+void Ventoy2DiskWindow::on_actionClear_Ventoy_triggered()
+{
+ int ret;
+ int index;
+ ventoy_disk *cur;
+ QString title_err, title_warn, title_info, msg;
+ char disk_name[64];
+ char buf[256];
+ char out[256];
+
+ lang_string("STR_ERROR", title_err);
+ lang_string("STR_WARNING", title_warn);
+ lang_string("STR_INFO", title_info);
+
+ if (m_thread->m_running || ventoy_code_is_busy())
+ {
+ lang_string("STR_WAIT_PROCESS", msg);
+ QMessageBox::warning(NULL, title_warn, msg);
+ return;
+ }
+
+ index = ui->comboBoxDevice->currentIndex();
+ if (index < 0 || index > g_disk_num)
+ {
+ vlog("Invalid combobox current index %d\n", index);
+ return;
+ }
+
+ cur = g_disk_list + index;
+
+ lang_string("STR_INSTALL_TIP", msg);
+ if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
+ {
+ return;
+ }
+
+ lang_string("STR_INSTALL_TIP2", msg);
+ if (QMessageBox::Yes != QMessageBox::warning(NULL, title_warn, msg, QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
+ {
+ return;
+ }
+
+ snprintf(disk_name, sizeof(disk_name), "%s", cur->disk_name);
+ snprintf(buf, sizeof(buf), "{\"method\":\"clean\",\"disk\":\"%s\"}", disk_name);
+
+ out[0] = 0;
+ ventoy_func_handler(buf, out, sizeof(out));
+ vlog("func handler clean <%s>\n", out);
+
+ if (strstr(out, "success"))
+ {
+ ret = ventoy_code_get_result();
+ ventoy_code_refresh_device();
+ cur = NULL;
+ }
+ else
+ {
+ ret = 1;
+ }
+
+ if (ret == 0)
+ {
+ lang_string("STR_CLEAR_SUCCESS", msg);
+ QMessageBox::information(NULL, title_info, msg);
+ }
+ else
+ {
+ lang_string("STR_CLEAR_FAILED", msg);
+ QMessageBox::critical(NULL, title_err, msg);
+ }
+
+ FillDeviceList(disk_name);
+}
+
+void Ventoy2DiskWindow::on_actionShow_All_Devices_toggled(bool arg1)
+{
+ ventoy_code_set_cur_show_all(arg1);
+ FillDeviceList("");
+}
+
+
+void Ventoy2DiskWindow::closeEvent(QCloseEvent *event)
+{
+ vlog("On closeEvent ...\n");
+
+ if (m_thread->m_running)
+ {
+ QString title;
+ QString msg;
+
+ lang_string("STR_WARNING", title);
+ lang_string("STR_WAIT_PROCESS", msg);
+ QMessageBox::warning(NULL, title, msg);
+
+ event->ignore();
+ return;
+ }
+
+ ventoy_code_save_cfg();
+
+ event->accept();
+}
+
+void Ventoy2DiskWindow::on_actionSecure_Boot_Support_triggered()
+{
+ ui->labelVentoyLocalSecure->setHidden(!(ui->actionSecure_Boot_Support->isChecked()));
+}
+
+void Ventoy2DiskWindow::set_percent(int percent)
+{
+ int index;
+ QString status, radio;
+
+ ui->progressBar->setValue(percent);
+
+ lang_string("STR_STATUS", status);
+
+ if (percent == 0)
+ {
+ ui->groupBoxStatus->setTitle(status);
+ }
+ else
+ {
+ index = status.indexOf("-");
+ radio.sprintf("%d%%", percent);
+ ui->groupBoxStatus->setTitle(status.left(index + 2) + radio);
+ }
+}
+
+void Ventoy2DiskWindow::thread_event(int msg, int data)
+{
+ char disk_name[32];
+ QString title_err, title_info, tipmsg;
+
+ if (msg == THREAD_MSG_PROGRESS_BAR)
+ {
+ set_percent(data);
+ }
+ else if (msg == THREAD_MSG_INSTALL_FINISH)
+ {
+ lang_string("STR_ERROR", title_err);
+ lang_string("STR_INFO", title_info);
+
+ if (data == 0)
+ {
+ lang_string("STR_INSTALL_SUCCESS", tipmsg);
+ QMessageBox::information(NULL, title_info, tipmsg);
+ }
+ else
+ {
+ lang_string("STR_INSTALL_FAILED", tipmsg);
+ QMessageBox::critical(NULL, title_err, tipmsg);
+ }
+
+ set_percent(0);
+ ui->ButtonRefresh->setEnabled(true);
+ ui->ButtonInstall->setEnabled(true);
+ ui->ButtonRefresh->setEnabled(true);
+
+ snprintf(disk_name, sizeof(disk_name), "%s", g_disk_list[m_thread->m_index].disk_name);
+ FillDeviceList(disk_name);
+ }
+ else if (msg == THREAD_MSG_UPDATE_FINISH)
+ {
+ lang_string("STR_ERROR", title_err);
+ lang_string("STR_INFO", title_info);
+
+ if (data == 0)
+ {
+ lang_string("STR_UPDATE_SUCCESS", tipmsg);
+ QMessageBox::information(NULL, title_info, tipmsg);
+ }
+ else
+ {
+ lang_string("STR_UPDATE_FAILED", tipmsg);
+ QMessageBox::critical(NULL, title_err, tipmsg);
+ }
+
+ set_percent(0);
+ ui->ButtonRefresh->setEnabled(true);
+ ui->ButtonInstall->setEnabled(true);
+ ui->ButtonRefresh->setEnabled(true);
+
+ snprintf(disk_name, sizeof(disk_name), "%s", g_disk_list[m_thread->m_index].disk_name);
+ FillDeviceList(disk_name);
+ }
+}
diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h
new file mode 100644
index 00000000..4a3be008
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.h
@@ -0,0 +1,105 @@
+#ifndef VENTOY2DISKWINDOW_H
+#define VENTOY2DISKWINDOW_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "partcfgdialog.h"
+
+QT_BEGIN_NAMESPACE
+namespace Ui { class Ventoy2DiskWindow; }
+QT_END_NAMESPACE
+
+#define THREAD_TYPE_INSTALL 1
+#define THREAD_TYPE_UPDATE 2
+
+#define THREAD_MSG_PROGRESS_BAR 1
+#define THREAD_MSG_INSTALL_FINISH 2
+#define THREAD_MSG_UPDATE_FINISH 3
+
+class MyQThread : public QThread
+{
+ Q_OBJECT
+public:
+ quint64 m_reserve_space;
+ int m_index;
+ int m_type;
+ int m_secureboot;
+ int m_align4K;
+ bool m_running;
+ void install_run();
+ void update_run();
+
+ explicit MyQThread(QObject *parent = nullptr);
+protected:
+ void run();
+signals:
+ void thread_event(int msg, int data);
+public slots:
+};
+
+
+class Ventoy2DiskWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ Ventoy2DiskWindow(QWidget *parent = nullptr);
+ ~Ventoy2DiskWindow();
+
+ QActionGroup *m_part_group;
+ QActionGroup *m_lang_group;
+ QJsonArray m_lang_array;
+ PartCfgDialog *m_partcfg;
+ MyQThread *m_thread;
+
+ void FillDeviceList(const QString &select);
+ void OnInitWindow(void);
+ void LoadLanguages();
+ int lang_string(const QString &id, QString &str);
+ void update_ui_language();
+ void set_percent(int percent);
+protected:
+ void showEvent(QShowEvent *ev);
+ void closeEvent(QCloseEvent *event);
+
+private slots:
+
+ void thread_event(int msg, int data);
+ void part_style_check_action(QAction *act);
+ void lang_check_action(QAction *act);
+
+ void on_ButtonInstall_clicked();
+
+ void on_ButtonUpdate_clicked();
+
+ void on_ButtonRefresh_clicked();
+
+ void on_comboBoxDevice_currentIndexChanged(int index);
+
+ void on_actionPartition_Configuration_triggered();
+
+ void on_actionClear_Ventoy_triggered();
+
+ void on_actionShow_All_Devices_toggled(bool arg1);
+
+ void on_actionSecure_Boot_Support_triggered();
+
+private:
+ Ui::Ventoy2DiskWindow *ui;
+
+
+};
+
+#define _LANG_STR(id) obj.value(id).toString()
+#define VERSION_FMT "%s
"
+
+#endif // VENTOY2DISKWINDOW_H
diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui
new file mode 100644
index 00000000..bb6da842
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/ventoy2diskwindow.ui
@@ -0,0 +1,323 @@
+
+
+ Ventoy2DiskWindow
+
+
+
+ 0
+ 0
+ 441
+ 367
+
+
+
+ Ventoy2Disk
+
+
+
+
+
+ 10
+ 10
+ 421
+ 80
+
+
+
+ Device
+
+
+
+
+ 10
+ 40
+ 361
+ 26
+
+
+
+
+
+
+ 380
+ 37
+ 30
+ 30
+
+
+
+
+
+
+
+ ../refresh.ico../refresh.ico
+
+
+
+ 24
+ 24
+
+
+
+
+
+
+
+ 10
+ 100
+ 205
+ 80
+
+
+
+ Ventoy In Package
+
+
+ Qt::AlignCenter
+
+
+
+
+ 30
+ 30
+ 135
+ 41
+
+
+
+ <html><head/><body><p><span style=" font-size:20pt; font-weight:600; color:#ff0000;">1.0.53</span></p></body></html>
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ 172
+ 60
+ 31
+ 18
+
+
+
+ <html><head/><body><p>MBR</p></body></html>
+
+
+
+
+
+ 12
+ 36
+ 21
+ 31
+
+
+
+
+
+
+ ../secure.ico
+
+
+
+
+
+
+ 225
+ 100
+ 205
+ 80
+
+
+
+ Ventoy In Device
+
+
+ Qt::AlignCenter
+
+
+
+
+ 30
+ 30
+ 135
+ 41
+
+
+
+ <html><head/><body><p><span style=" font-size:20pt; font-weight:600; color:#ff0000;">1.0.52</span></p></body></html>
+
+
+ Qt::AlignCenter
+
+
+
+
+
+ 172
+ 60
+ 31
+ 18
+
+
+
+ <html><head/><body><p>GPT</p></body></html>
+
+
+
+
+
+ 12
+ 36
+ 21
+ 31
+
+
+
+
+
+
+ ../secure.ico
+
+
+
+
+
+
+ 10
+ 190
+ 421
+ 61
+
+
+
+ Status: REDAY
+
+
+
+
+ 10
+ 30
+ 401
+ 23
+
+
+
+ 0
+
+
+ false
+
+
+
+
+
+
+
+
+
+ 90
+ 275
+ 101
+ 41
+
+
+
+ Install
+
+
+
+
+
+ 250
+ 275
+ 101
+ 41
+
+
+
+ Update
+
+
+
+
+
+
+ true
+
+
+ Secure Boot Support
+
+
+
+
+ true
+
+
+ MBR
+
+
+
+
+ true
+
+
+ GPT
+
+
+
+
+ Partition Configuration
+
+
+
+
+ Clear Ventoy
+
+
+
+
+ true
+
+
+ Show All Devices
+
+
+
+
+
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h
new file mode 100644
index 00000000..6179d8b2
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt.h
@@ -0,0 +1,47 @@
+/******************************************************************************
+ * ventoy_qt.h
+ *
+ * Copyright (c) 2021, longpanda
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see .
+ *
+ */
+#ifndef __VENTOY_QT_H__
+#define __VENTOY_QT_H__
+
+int ventoy_disk_init(void);
+void ventoy_disk_exit(void);
+int ventoy_http_init(void);
+void ventoy_http_exit(void);
+int ventoy_log_init(void);
+void ventoy_log_exit(void);
+void *get_refresh_icon_raw_data(int *len);
+void *get_secure_icon_raw_data(int *len);
+void *get_window_icon_raw_data(int *len);
+int ventoy_func_handler(const char *jsonstr, char *jsonbuf, int buflen);
+const char * ventoy_code_get_cur_language(void);
+int ventoy_code_get_cur_part_style(void);
+void ventoy_code_set_cur_part_style(int style);
+int ventoy_code_get_cur_show_all(void);
+void ventoy_code_set_cur_show_all(int show_all);
+void ventoy_code_set_cur_language(const char *lang);
+void ventoy_code_save_cfg(void);
+void ventoy_code_refresh_device(void);
+int ventoy_code_is_busy(void);
+int ventoy_code_get_percent(void);
+int ventoy_code_get_result(void);
+
+#endif /* __VENTOY_QT_H__ */
+
+
diff --git a/LinuxGUI/Ventoy2Disk/QT/ventoy_qt_stub.c b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt_stub.c
new file mode 100644
index 00000000..cee209d2
--- /dev/null
+++ b/LinuxGUI/Ventoy2Disk/QT/ventoy_qt_stub.c
@@ -0,0 +1,600 @@
+/******************************************************************************
+ * ventoy_qt_stub.c
+ *
+ * Copyright (c) 2021, longpanda
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see .
+ *
+ */
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+struct mg_context *
+mg_start(const struct mg_callbacks *callbacks,
+ void *user_data,
+ const char **options)
+{
+ (void)callbacks;
+ (void)user_data;
+ (void)options;
+
+ return NULL;
+}
+
+void mg_stop(struct mg_context *ctx)
+{
+ (void)ctx;
+}
+
+int mg_read(struct mg_connection *conn, void *buf, size_t len)
+{
+ (void)conn;
+ (void)buf;
+ (void)len;
+ return 0;
+}
+
+
+const struct mg_request_info * mg_get_request_info(const struct mg_connection *conn)
+{
+ (void)conn;
+ return NULL;
+}
+
+int mg_start_thread(mg_thread_func_t func, void *param)
+{
+ pthread_t thread_id;
+ pthread_attr_t attr;
+ int result;
+
+ (void)pthread_attr_init(&attr);
+ (void)pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
+#if defined(USE_STACK_SIZE) && (USE_STACK_SIZE > 1)
+ /* Compile-time option to control stack size,
+ * e.g. -DUSE_STACK_SIZE=16384 */
+ (void)pthread_attr_setstacksize(&attr, USE_STACK_SIZE);
+#endif /* defined(USE_STACK_SIZE) && (USE_STACK_SIZE > 1) */
+
+ result = pthread_create(&thread_id, &attr, func, param);
+ pthread_attr_destroy(&attr);
+
+ return result;
+}
+
+int mg_printf(struct mg_connection *conn, const char *fmt, ...)
+{
+ (void)conn;
+ (void)fmt;
+
+ return 0;
+}
+
+static unsigned char window_icon_hexData[] = {
+ 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0xAA, 0x69, 0x71,
+ 0xDE, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4D, 0x41, 0x00, 0x00, 0xAF, 0xC8, 0x37, 0x05, 0x8A,
+ 0xE9, 0x00, 0x00, 0x00, 0x20, 0x63, 0x48, 0x52, 0x4D, 0x00, 0x00, 0x7A, 0x26, 0x00, 0x00, 0x80,
+ 0x84, 0x00, 0x00, 0xFA, 0x00, 0x00, 0x00, 0x80, 0xE8, 0x00, 0x00, 0x75, 0x30, 0x00, 0x00, 0xEA,
+ 0x60, 0x00, 0x00, 0x3A, 0x98, 0x00, 0x00, 0x17, 0x70, 0x9C, 0xBA, 0x51, 0x3C, 0x00, 0x00, 0x00,
+ 0x06, 0x62, 0x4B, 0x47, 0x44, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0xA0, 0xBD, 0xA7, 0x93, 0x00,
+ 0x00, 0x00, 0x07, 0x74, 0x49, 0x4D, 0x45, 0x07, 0xE4, 0x03, 0x17, 0x04, 0x10, 0x05, 0xF6, 0xCE,
+ 0xA8, 0xC0, 0x00, 0x00, 0x1C, 0x68, 0x49, 0x44, 0x41, 0x54, 0x78, 0xDA, 0xCD, 0x9B, 0x79, 0x94,
+ 0x1D, 0x57, 0x7D, 0xE7, 0x3F, 0xF7, 0xDE, 0xAA, 0x7A, 0xFB, 0xEB, 0xD7, 0xBB, 0xA4, 0x56, 0xCB,
+ 0xDA, 0x6C, 0x59, 0xB6, 0x64, 0x83, 0x91, 0x17, 0xBC, 0xE1, 0x0D, 0x2F, 0x04, 0x1B, 0xB0, 0x43,
+ 0x3C, 0x40, 0x32, 0x43, 0x4E, 0x38, 0x19, 0x87, 0x43, 0x26, 0x03, 0x84, 0x98, 0xC9, 0x1C, 0x98,
+ 0x93, 0x70, 0x48, 0x72, 0x66, 0x58, 0x86, 0x81, 0x10, 0x0E, 0x06, 0xC6, 0x21, 0xC1, 0x83, 0xC1,
+ 0x36, 0x18, 0xDB, 0x6C, 0xC6, 0x60, 0xB0, 0x65, 0xBC, 0x1B, 0x5B, 0x8B, 0x6D, 0x59, 0x92, 0xB5,
+ 0x75, 0x5B, 0x52, 0xAB, 0xD7, 0xB7, 0x56, 0xD5, 0x5D, 0xE6, 0x8F, 0xAA, 0xF7, 0xF4, 0xBA, 0xD5,
+ 0xF2, 0xC2, 0x92, 0x99, 0x3A, 0xE7, 0xD7, 0xF5, 0x96, 0x7A, 0x75, 0x7F, 0xDF, 0xEF, 0x6F, 0xB9,
+ 0xBF, 0xFB, 0xBB, 0xD5, 0x82, 0xDF, 0xD1, 0x61, 0x8C, 0x45, 0x7D, 0x70, 0x9A, 0xFD, 0x7F, 0x57,
+ 0x61, 0x57, 0xD5, 0x31, 0x17, 0x39, 0x9C, 0x83, 0xD8, 0xC1, 0xEF, 0xAF, 0x1A, 0xE6, 0xC9, 0x23,
+ 0x13, 0x41, 0x55, 0xA3, 0xB4, 0x75, 0xD2, 0x93, 0xB8, 0xBC, 0x27, 0xCC, 0xA6, 0x7E, 0x19, 0xDD,
+ 0xBA, 0x5B, 0xBB, 0xBC, 0x07, 0x02, 0x28, 0x78, 0x82, 0xD1, 0xA2, 0x60, 0x6D, 0x59, 0x52, 0x8F,
+ 0x1D, 0xC5, 0x40, 0xFE, 0xD6, 0xF5, 0x14, 0xBF, 0xED, 0x1B, 0x3E, 0xBC, 0x67, 0x92, 0x3C, 0x9A,
+ 0x03, 0xAE, 0x44, 0x84, 0xC7, 0xDB, 0x56, 0xFA, 0x3C, 0x3A, 0x61, 0x7A, 0x26, 0x43, 0x96, 0x59,
+ 0xEB, 0xD6, 0x6A, 0xC7, 0x09, 0x16, 0x46, 0x05, 0xF4, 0x03, 0x79, 0x01, 0xBE, 0x03, 0x03, 0x34,
+ 0x81, 0x19, 0x21, 0x18, 0xF3, 0x05, 0x7B, 0x95, 0x10, 0xBB, 0x8A, 0x3E, 0xFB, 0xCE, 0x1B, 0x56,
+ 0xD3, 0x77, 0xEC, 0x89, 0x4D, 0x5E, 0x5A, 0xFA, 0x5C, 0x9D, 0x59, 0xF2, 0xAC, 0x72, 0x87, 0x39,
+ 0x71, 0xD5, 0x09, 0xFF, 0x7F, 0x11, 0xF0, 0xD3, 0x17, 0x67, 0xC9, 0xA1, 0x99, 0xB0, 0x39, 0xBE,
+ 0x19, 0xE6, 0x78, 0x5F, 0xA1, 0xD1, 0x17, 0x4B, 0xFF, 0x8C, 0x96, 0x11, 0x17, 0x59, 0xC7, 0xD9,
+ 0xC6, 0xB1, 0xCE, 0x41, 0x9F, 0x14, 0xE4, 0x3C, 0x89, 0x54, 0x02, 0x94, 0x48, 0x14, 0x70, 0x80,
+ 0x75, 0x60, 0x8E, 0x4A, 0x53, 0xC0, 0x9C, 0x27, 0xD8, 0x2D, 0x04, 0x8F, 0x67, 0x24, 0xF7, 0x07,
+ 0xE8, 0x47, 0x2E, 0x52, 0xDF, 0x19, 0xBF, 0x3B, 0xBC, 0xD6, 0x55, 0x44, 0xC8, 0x6E, 0xBF, 0xCC,
+ 0x99, 0xCD, 0x3D, 0x9C, 0xB2, 0x76, 0xD5, 0xFF, 0x5B, 0x02, 0x7E, 0xBE, 0x6B, 0x92, 0x3E, 0xD1,
+ 0x64, 0x8F, 0xA9, 0x70, 0xF5, 0x89, 0x05, 0xBE, 0xBF, 0xBB, 0xB1, 0xAA, 0xE5, 0xD4, 0xD5, 0x06,
+ 0xF1, 0x76, 0xE3, 0xC4, 0xEB, 0x8D, 0xA3, 0x22, 0x05, 0xE4, 0x3C, 0x41, 0xD1, 0x83, 0xAC, 0x27,
+ 0x08, 0x24, 0xC8, 0x14, 0x7C, 0x9B, 0x80, 0x36, 0x09, 0xDA, 0x41, 0x4B, 0x3B, 0xEA, 0x1A, 0x1A,
+ 0xDA, 0x61, 0x1C, 0x28, 0x41, 0xC3, 0x13, 0xEE, 0x79, 0x0F, 0xEE, 0xC9, 0x48, 0x73, 0xC7, 0x3A,
+ 0x6F, 0x66, 0xCB, 0x56, 0x3D, 0xA0, 0x4F, 0xC8, 0x69, 0xE6, 0xB4, 0xE4, 0xFC, 0x91, 0xEC, 0xBF,
+ 0x3D, 0x01, 0x8F, 0xFE, 0x6A, 0x2B, 0xBB, 0x4B, 0xEB, 0xA9, 0x98, 0x39, 0x76, 0xDB, 0x0A, 0xAB,
+ 0xBC, 0xEA, 0xB2, 0x3A, 0xFE, 0xBB, 0x0D, 0xF2, 0xDF, 0x6B, 0xCB, 0x29, 0x91, 0x75, 0x4A, 0x20,
+ 0xA8, 0x64, 0x04, 0xBD, 0x19, 0x41, 0xCE, 0x13, 0x2C, 0x16, 0xC1, 0xEE, 0x38, 0x8A, 0x38, 0x20,
+ 0x34, 0x30, 0x1B, 0x39, 0xA6, 0x42, 0x8B, 0x76, 0x90, 0x91, 0x10, 0x48, 0xF6, 0x79, 0xC2, 0xDD,
+ 0x9E, 0xF7, 0xF8, 0xCA, 0xE5, 0x37, 0xFB, 0xDB, 0xEF, 0x7B, 0x6F, 0xCC, 0x25, 0xA3, 0x9A, 0xA7,
+ 0x0E, 0x29, 0xCE, 0x58, 0x92, 0xFB, 0xB7, 0x21, 0xE0, 0x91, 0xFD, 0x73, 0x9C, 0x55, 0xAE, 0xF2,
+ 0x9D, 0xC3, 0x15, 0x86, 0x5D, 0x35, 0xFB, 0x12, 0xA5, 0xAB, 0x62, 0x27, 0x3F, 0xA8, 0x11, 0xE7,
+ 0xB6, 0x0C, 0x2A, 0x32, 0x8E, 0x9E, 0x40, 0xB0, 0xAC, 0xA0, 0x28, 0x78, 0xA2, 0x33, 0x8A, 0x7B,
+ 0x8D, 0xE3, 0xB4, 0x95, 0x0B, 0x8D, 0xE3, 0x50, 0xD3, 0x72, 0xA4, 0x65, 0x51, 0x42, 0x50, 0xF0,
+ 0xC0, 0x97, 0xE2, 0xD9, 0x8C, 0x74, 0xFF, 0x34, 0x98, 0x71, 0xDF, 0xD8, 0xDF, 0x10, 0x53, 0xEB,
+ 0x8A, 0x9A, 0x99, 0x58, 0x72, 0xD1, 0x8A, 0xFC, 0xEF, 0x96, 0x80, 0x7B, 0x76, 0xD6, 0xE9, 0x0F,
+ 0x0C, 0x4F, 0xCD, 0x78, 0xAC, 0xC8, 0x9B, 0xD1, 0xAA, 0x96, 0x1F, 0x8E, 0x91, 0xEF, 0x6D, 0x69,
+ 0xD7, 0x53, 0xD7, 0x09, 0xC4, 0xD1, 0xA2, 0x62, 0x28, 0x2F, 0x51, 0x42, 0xBC, 0x66, 0xD0, 0xC7,
+ 0x3F, 0x1C, 0xD3, 0xA1, 0x63, 0x6F, 0xD5, 0x10, 0x19, 0x47, 0xD1, 0x97, 0xE4, 0x7D, 0x11, 0x65,
+ 0x25, 0xDF, 0xCF, 0x7A, 0x7C, 0xE2, 0xA1, 0xC9, 0xE0, 0xC9, 0x2B, 0x07, 0x1A, 0xB4, 0x2C, 0xBC,
+ 0x79, 0x55, 0xF1, 0x77, 0x43, 0xC0, 0x3D, 0xCF, 0xCF, 0x90, 0x55, 0xF0, 0xAB, 0x39, 0x9F, 0x35,
+ 0x25, 0x77, 0x66, 0x4D, 0x8B, 0x7F, 0x88, 0x0C, 0x17, 0xD7, 0x62, 0x27, 0x1A, 0xDA, 0xE1, 0x2B,
+ 0xC1, 0xEA, 0x1E, 0x45, 0x7F, 0x4E, 0x26, 0xC0, 0x7F, 0x7B, 0xE8, 0x13, 0x65, 0x05, 0xD4, 0x63,
+ 0xC7, 0xAE, 0x19, 0x43, 0x2D, 0x76, 0xE4, 0x3D, 0x41, 0x29, 0x10, 0xE4, 0x3D, 0xB1, 0xBD, 0xA0,
+ 0xDC, 0xC7, 0x2E, 0xAC, 0x34, 0xEE, 0x7C, 0x6A, 0xCE, 0x37, 0xA1, 0x15, 0x5C, 0xBE, 0xA6, 0xFC,
+ 0xDB, 0x25, 0xE0, 0x7B, 0xCF, 0xCD, 0x90, 0x53, 0x8E, 0xB7, 0x6C, 0xAF, 0xF0, 0x8D, 0x75, 0xF5,
+ 0x37, 0x37, 0x0D, 0x9F, 0x69, 0x6A, 0xB7, 0xA1, 0x1A, 0x39, 0x5A, 0xC6, 0xE1, 0x29, 0xC1, 0x89,
+ 0x15, 0x8F, 0xFE, 0x9C, 0xE4, 0x77, 0x80, 0xBD, 0x73, 0x48, 0xA0, 0x16, 0x3B, 0x76, 0x4C, 0x6B,
+ 0xEA, 0xDA, 0x91, 0x51, 0x82, 0x1E, 0x5F, 0x52, 0x0A, 0xC4, 0xE1, 0x82, 0xE7, 0xFE, 0xE6, 0x94,
+ 0x5C, 0xFD, 0xA6, 0xFD, 0x61, 0x10, 0x87, 0x16, 0xAE, 0x5A, 0x5B, 0xF9, 0xED, 0x10, 0x70, 0xCF,
+ 0x73, 0x53, 0x64, 0x14, 0xFC, 0x7C, 0xAA, 0xC0, 0x86, 0x52, 0x78, 0x45, 0xC3, 0x88, 0x2F, 0xD4,
+ 0x22, 0xB7, 0x76, 0x2E, 0xB2, 0xC4, 0xD6, 0x81, 0x10, 0xAC, 0x2C, 0x7B, 0x8C, 0x94, 0xD4, 0xEF,
+ 0x08, 0xF6, 0x02, 0xA5, 0x05, 0x4C, 0xB5, 0x2C, 0x3B, 0xA6, 0x35, 0xDA, 0x3A, 0x7C, 0x29, 0x28,
+ 0x07, 0x92, 0xDE, 0xAC, 0x9C, 0x2B, 0x2A, 0xF7, 0xF1, 0x8D, 0xF9, 0xD9, 0x7F, 0xDC, 0xD3, 0xCA,
+ 0xE9, 0xD8, 0x49, 0xAE, 0x3C, 0xF1, 0xE5, 0x49, 0x78, 0x45, 0x02, 0x7E, 0xB6, 0x65, 0x0F, 0x85,
+ 0x5C, 0x86, 0x87, 0x66, 0x0A, 0x0C, 0xE7, 0x38, 0xAF, 0x1E, 0xBB, 0x9B, 0x6A, 0x91, 0x5D, 0x3F,
+ 0x1B, 0x3A, 0x62, 0xE7, 0x70, 0x40, 0x5F, 0xCE, 0x63, 0x5D, 0x9F, 0x8F, 0xFA, 0xED, 0x17, 0x6A,
+ 0xC7, 0x1C, 0xCE, 0xB9, 0x8E, 0xD2, 0x7B, 0xAB, 0x86, 0x03, 0x55, 0x8D, 0x00, 0x3C, 0x29, 0xE8,
+ 0xC9, 0x48, 0xFA, 0xB2, 0x72, 0xAA, 0xE8, 0xF1, 0x97, 0xEF, 0x28, 0xEF, 0xBB, 0xF9, 0xFE, 0xFA,
+ 0x52, 0x67, 0x10, 0x5C, 0xB6, 0xB6, 0xF7, 0xD7, 0x27, 0xC0, 0x39, 0xF8, 0xCA, 0xD3, 0x73, 0xF4,
+ 0xA8, 0xE8, 0xD4, 0xD9, 0xD8, 0xBB, 0xB9, 0x1A, 0xD9, 0x4D, 0x33, 0x2D, 0x43, 0xEC, 0x12, 0x37,
+ 0xF7, 0x94, 0xE0, 0xA4, 0xBE, 0x80, 0xBE, 0xAC, 0x24, 0x75, 0x86, 0xDF, 0x00, 0xDD, 0x02, 0x8D,
+ 0x1C, 0xB8, 0xF6, 0x24, 0xE2, 0xC0, 0x5A, 0x43, 0xD6, 0x4B, 0x94, 0x0A, 0x2D, 0x84, 0x56, 0xF2,
+ 0xEC, 0x64, 0x4C, 0x33, 0x76, 0x08, 0x01, 0x9E, 0x84, 0xDE, 0xAC, 0xA2, 0x3F, 0xA7, 0xC6, 0xCB,
+ 0x9E, 0xFD, 0x8F, 0x7B, 0x9B, 0xFE, 0xDD, 0x67, 0x97, 0xE6, 0x88, 0x1B, 0x35, 0x2E, 0x38, 0xED,
+ 0xC4, 0xD7, 0x4E, 0xC0, 0x37, 0x9F, 0x3C, 0x08, 0x52, 0x92, 0x51, 0xF4, 0x1F, 0x89, 0xBC, 0x2F,
+ 0x57, 0x43, 0x7B, 0xED, 0x54, 0xD3, 0x10, 0xA6, 0x48, 0x9D, 0x80, 0xBE, 0xAC, 0xE2, 0xA4, 0xBE,
+ 0x00, 0x29, 0x39, 0xFE, 0xA4, 0xFE, 0x5A, 0x80, 0x2F, 0x76, 0x0F, 0x07, 0xD6, 0x6A, 0x7A, 0x02,
+ 0x38, 0x7D, 0xB8, 0x40, 0x64, 0x0C, 0x4F, 0xBD, 0x54, 0x25, 0x72, 0x1E, 0xFB, 0xEB, 0x30, 0x56,
+ 0x35, 0x9D, 0xCB, 0x7D, 0x29, 0x18, 0xC8, 0x4B, 0x06, 0x72, 0xEA, 0xE9, 0x5E, 0xCF, 0xFC, 0x61,
+ 0x9D, 0xCC, 0xD6, 0xEB, 0x4F, 0x2E, 0x1C, 0xD7, 0x32, 0xC7, 0x55, 0xF5, 0xAE, 0x87, 0xB6, 0x60,
+ 0x72, 0x15, 0xCE, 0x29, 0x4F, 0xC9, 0x7B, 0xA6, 0x47, 0x6E, 0x9C, 0x0D, 0xED, 0xDF, 0x4E, 0x36,
+ 0xB4, 0xD7, 0xD0, 0xC9, 0xAF, 0x84, 0x4C, 0x7E, 0xBA, 0xB2, 0x12, 0xB0, 0xA4, 0xE8, 0xFD, 0x06,
+ 0x66, 0xEF, 0xC2, 0xED, 0x1C, 0xCE, 0x5A, 0x04, 0x0E, 0x87, 0x40, 0xC8, 0x34, 0xA1, 0x9A, 0x98,
+ 0xC1, 0xBC, 0xE4, 0x75, 0x4B, 0x0B, 0xE4, 0x14, 0x78, 0x4A, 0xB1, 0x7F, 0xA6, 0xC9, 0xD3, 0x2F,
+ 0x55, 0x99, 0x8C, 0x3C, 0x76, 0xCC, 0x58, 0x8C, 0x13, 0x1D, 0x40, 0x19, 0x4F, 0xB0, 0xA4, 0xE0,
+ 0x31, 0x90, 0x93, 0xB7, 0x0C, 0xFB, 0xD1, 0x0D, 0x4D, 0x2B, 0xAB, 0x9E, 0x89, 0xB8, 0x72, 0xE3,
+ 0xC8, 0x31, 0xE3, 0x1E, 0x37, 0x6A, 0xDF, 0xAA, 0x7F, 0xCA, 0x78, 0x5C, 0xE0, 0x47, 0x53, 0x43,
+ 0x6F, 0xAC, 0x85, 0xF6, 0xFD, 0xD3, 0xF5, 0xD8, 0xAB, 0xB6, 0x34, 0xDA, 0x18, 0x8C, 0xB5, 0x68,
+ 0x63, 0xC1, 0x39, 0x32, 0x0A, 0xB4, 0x71, 0xC4, 0xDA, 0xFE, 0x46, 0x12, 0x45, 0x31, 0x26, 0x0E,
+ 0x59, 0x5E, 0x70, 0x9C, 0x36, 0xE8, 0x51, 0x10, 0x21, 0xAD, 0x56, 0x83, 0x28, 0x6C, 0xB2, 0xB4,
+ 0x20, 0xD8, 0xB4, 0xAC, 0x40, 0xC9, 0x97, 0x6C, 0xDD, 0x77, 0x80, 0x7D, 0x13, 0x47, 0x58, 0x51,
+ 0xC9, 0xB1, 0x7E, 0x30, 0x4F, 0xC6, 0x85, 0x48, 0x13, 0xA1, 0xB5, 0xC6, 0x18, 0x83, 0x36, 0x86,
+ 0x46, 0xA8, 0x99, 0xA8, 0x45, 0xCC, 0xB6, 0xEC, 0x3B, 0x26, 0x63, 0x75, 0xFD, 0x77, 0xF4, 0x00,
+ 0x81, 0x6D, 0xBD, 0x7A, 0x0F, 0xF8, 0xC1, 0x63, 0xDB, 0x99, 0xB2, 0x25, 0xF2, 0x52, 0x17, 0xC7,
+ 0xE3, 0xDC, 0x57, 0x26, 0x6B, 0xFA, 0xFA, 0x89, 0xBA, 0x26, 0xC6, 0x21, 0xA4, 0x44, 0xC8, 0xA4,
+ 0xC0, 0xC9, 0xF9, 0x92, 0x93, 0x07, 0x32, 0x04, 0xF2, 0x37, 0x5B, 0x52, 0x58, 0x6B, 0xC8, 0x49,
+ 0xCD, 0xE9, 0x4B, 0x72, 0xAC, 0xEA, 0xCB, 0xE3, 0x49, 0xC1, 0x74, 0x23, 0xE2, 0xA9, 0x03, 0xD3,
+ 0x14, 0x32, 0x3E, 0xA7, 0x8F, 0x54, 0x08, 0x54, 0xB2, 0x72, 0x98, 0x6B, 0xB6, 0x70, 0xCE, 0x51,
+ 0x29, 0xE4, 0x70, 0x08, 0xB6, 0x1F, 0x9C, 0xE5, 0xB6, 0x2D, 0x87, 0x99, 0x8C, 0x33, 0x48, 0xCF,
+ 0x4F, 0x6D, 0xEA, 0xF0, 0x84, 0x60, 0xB0, 0xE0, 0x31, 0x52, 0xF2, 0x7F, 0x35, 0xE0, 0xC7, 0xD7,
+ 0xC5, 0x4E, 0xEE, 0x56, 0x71, 0x9D, 0xB7, 0x6F, 0x5A, 0xFD, 0xCA, 0x1E, 0x30, 0x68, 0x27, 0x19,
+ 0x0B, 0xB3, 0x4C, 0x84, 0xEA, 0xD2, 0x6A, 0x53, 0xBF, 0x65, 0xAA, 0x1E, 0xD2, 0x8C, 0x35, 0xDA,
+ 0xD8, 0x84, 0x65, 0x9D, 0x88, 0xB3, 0x16, 0x63, 0x1D, 0x91, 0xB1, 0xBF, 0xB6, 0xB4, 0xA2, 0x88,
+ 0x2C, 0x11, 0x67, 0x2E, 0xCD, 0xB1, 0xBA, 0x37, 0x07, 0xCE, 0x11, 0x6B, 0x43, 0x29, 0x50, 0x9C,
+ 0x73, 0x42, 0x1F, 0xA7, 0x2D, 0x2D, 0xA3, 0x70, 0x98, 0x74, 0xEC, 0x42, 0xE0, 0x53, 0xCA, 0x66,
+ 0x98, 0xAB, 0x37, 0xA9, 0x37, 0x5B, 0x9C, 0x3C, 0x54, 0xE2, 0xCC, 0x65, 0x79, 0x6C, 0x73, 0x96,
+ 0x38, 0x0C, 0xD1, 0x5A, 0xA3, 0xB5, 0x25, 0x8C, 0x0D, 0x93, 0xF5, 0x88, 0x99, 0xA6, 0x3E, 0xBD,
+ 0xAA, 0xE5, 0xBB, 0xAF, 0x7D, 0xF6, 0x1A, 0xA1, 0xCC, 0xB1, 0x5E, 0x70, 0x8C, 0xE9, 0xA6, 0x1B,
+ 0x31, 0xF7, 0x3E, 0x77, 0x84, 0xDE, 0x9C, 0x2A, 0x6E, 0x3B, 0x14, 0x7E, 0xFD, 0xE0, 0x5C, 0xF4,
+ 0x8E, 0x89, 0x5A, 0x8C, 0x41, 0x20, 0x94, 0x48, 0x62, 0x5F, 0x08, 0x1C, 0x82, 0x52, 0x46, 0x72,
+ 0x62, 0x7F, 0x8E, 0x5F, 0xCF, 0x01, 0x1C, 0xC6, 0x68, 0x7A, 0x7C, 0xC3, 0x79, 0x2B, 0x4A, 0x8C,
+ 0xF4, 0xE4, 0xB0, 0xCE, 0xE1, 0x52, 0xE9, 0x56, 0x31, 0x36, 0x1A, 0x29, 0x25, 0x9E, 0x94, 0x38,
+ 0xE7, 0x90, 0x52, 0x72, 0x60, 0x72, 0x8A, 0x17, 0xC6, 0x0E, 0x72, 0xEE, 0x29, 0xEB, 0x90, 0x42,
+ 0xF0, 0xBD, 0xAD, 0xE3, 0xDC, 0xFF, 0x62, 0x1D, 0x82, 0x22, 0x88, 0xA4, 0x1E, 0x51, 0x02, 0x06,
+ 0x0B, 0x3E, 0x2B, 0x2B, 0xC1, 0xF6, 0x01, 0x3F, 0xBE, 0x26, 0x76, 0x62, 0x97, 0x98, 0x1D, 0xE3,
+ 0x0F, 0x2E, 0x3D, 0xFB, 0xF8, 0x1E, 0xD0, 0x9B, 0xBF, 0x86, 0xC3, 0x35, 0xCD, 0x4B, 0x35, 0x73,
+ 0x66, 0xB5, 0x19, 0x5F, 0x38, 0x53, 0x0D, 0x09, 0x23, 0xDD, 0xB1, 0xBA, 0xD6, 0x36, 0x15, 0x43,
+ 0x14, 0x1B, 0xC2, 0x58, 0x13, 0xC5, 0xE6, 0x35, 0x8A, 0xA6, 0x15, 0x86, 0xE4, 0x08, 0x39, 0x67,
+ 0x24, 0xCF, 0xD2, 0x72, 0x06, 0x6D, 0x0C, 0xD6, 0xDA, 0x8E, 0x98, 0xF4, 0xBD, 0xB3, 0x06, 0x09,
+ 0x34, 0x5A, 0x2D, 0x9A, 0x61, 0x88, 0x73, 0x0E, 0xA3, 0x35, 0x4B, 0x2A, 0x3D, 0xAC, 0x18, 0x1A,
+ 0x24, 0xD6, 0x1A, 0xE1, 0x2C, 0x67, 0x8E, 0x56, 0x28, 0xAA, 0x98, 0x28, 0x6C, 0xA5, 0x5E, 0x60,
+ 0x08, 0x63, 0xC3, 0x54, 0x3D, 0x64, 0xBA, 0x19, 0xAF, 0x6B, 0x38, 0xEF, 0xF7, 0x0E, 0xAC, 0x18,
+ 0x81, 0xB0, 0x3E, 0x0F, 0xEF, 0x31, 0xA5, 0xDB, 0xE3, 0x7B, 0x9F, 0xE0, 0x6D, 0xA7, 0x0D, 0xCA,
+ 0x5F, 0xBC, 0x30, 0xF5, 0x81, 0xC3, 0x33, 0xAD, 0x4B, 0x27, 0x6B, 0x11, 0xB1, 0x4D, 0x0A, 0x1E,
+ 0xE7, 0x1C, 0xB6, 0x2D, 0xD6, 0x82, 0x75, 0x94, 0x32, 0x49, 0xCC, 0x69, 0x6B, 0x31, 0xAF, 0x52,
+ 0xE2, 0x58, 0x93, 0x17, 0x11, 0xE7, 0x9F, 0x50, 0x62, 0xB4, 0x92, 0xEF, 0x58, 0xBE, 0x9B, 0x80,
+ 0xB6, 0x27, 0xB4, 0xBF, 0x53, 0x42, 0xD2, 0x88, 0x22, 0xAC, 0x73, 0x28, 0x29, 0xB1, 0xC6, 0xD0,
+ 0x57, 0xCA, 0x03, 0x82, 0x5D, 0x07, 0x8F, 0xD0, 0x88, 0x2D, 0x4F, 0xEE, 0x9D, 0xA2, 0x6E, 0x14,
+ 0x4E, 0x48, 0xAC, 0x75, 0x29, 0x91, 0x16, 0x4F, 0x08, 0x59, 0x0C, 0x84, 0xBF, 0x7C, 0xF2, 0xC0,
+ 0x5D, 0x3A, 0xD7, 0xD7, 0x3A, 0xE3, 0xC4, 0xE5, 0xDC, 0xF7, 0x93, 0x9F, 0x00, 0x30, 0x6F, 0xFE,
+ 0xAA, 0xB6, 0x34, 0x77, 0x3E, 0x7D, 0x88, 0x83, 0x73, 0xE1, 0x92, 0x5A, 0x23, 0xBA, 0x64, 0xA6,
+ 0x16, 0xD2, 0x0A, 0x63, 0x9C, 0x92, 0x08, 0x27, 0x3B, 0x09, 0xB0, 0x3D, 0xA7, 0x5A, 0x63, 0xA9,
+ 0xB5, 0x62, 0x8A, 0x19, 0x85, 0x7B, 0x95, 0xC5, 0xBF, 0xB3, 0x86, 0x9C, 0x88, 0x79, 0xE3, 0xCA,
+ 0x32, 0x2B, 0x2A, 0x39, 0x8C, 0xB5, 0xC9, 0xE7, 0x29, 0x01, 0xC7, 0x86, 0x40, 0x5A, 0xFD, 0x09,
+ 0x41, 0xDE, 0x0F, 0x68, 0xE9, 0x98, 0x50, 0x08, 0x02, 0x25, 0xA9, 0xB7, 0x22, 0xB6, 0x1F, 0x38,
+ 0x48, 0x23, 0x76, 0x6C, 0xDE, 0x35, 0xC9, 0x44, 0xCD, 0x21, 0xB2, 0x60, 0xB5, 0x49, 0xA2, 0xDB,
+ 0x81, 0xC1, 0x31, 0x5D, 0x83, 0x5A, 0x5E, 0xBD, 0x3E, 0xEF, 0xAB, 0x0D, 0xDA, 0x8A, 0x07, 0x97,
+ 0xAE, 0xDF, 0xD4, 0xB9, 0xF7, 0x3C, 0x02, 0x4A, 0xD9, 0xA5, 0x7C, 0xFE, 0xBE, 0x47, 0x30, 0xC6,
+ 0x9E, 0x36, 0x5B, 0x0F, 0xD7, 0xD4, 0x1A, 0x21, 0x51, 0x6C, 0x91, 0x4E, 0x21, 0x9C, 0x03, 0xE9,
+ 0xD2, 0xF9, 0xBF, 0xDD, 0xC7, 0x11, 0xCC, 0xD4, 0x05, 0x81, 0x08, 0x5E, 0xD5, 0xE2, 0xC7, 0x59,
+ 0x43, 0x40, 0xC4, 0xD9, 0xAB, 0x4B, 0xAC, 0xEE, 0xCF, 0x77, 0x80, 0xB5, 0xDD, 0x5F, 0x00, 0xDA,
+ 0x18, 0x62, 0xAD, 0xF1, 0x3D, 0x6F, 0x1E, 0x78, 0x21, 0x04, 0xCE, 0x19, 0x7C, 0x21, 0xF0, 0x94,
+ 0x62, 0xA6, 0xD1, 0xE4, 0xC1, 0x67, 0x77, 0xD3, 0x34, 0x8A, 0xC7, 0xF6, 0xCE, 0xF2, 0x52, 0x1D,
+ 0xBC, 0x6C, 0x19, 0x61, 0x00, 0x6B, 0x8E, 0xA6, 0x37, 0xE7, 0xA8, 0x3A, 0xCB, 0x6C, 0xC3, 0xEF,
+ 0xAB, 0x54, 0x32, 0xE7, 0xE9, 0x33, 0x56, 0x3E, 0x68, 0x6F, 0x7F, 0x72, 0x71, 0x02, 0x76, 0x1E,
+ 0xDE, 0xC3, 0xDA, 0xB5, 0x9F, 0xE6, 0x33, 0xDF, 0x7E, 0xD7, 0x59, 0xD5, 0x7A, 0x58, 0x6A, 0x34,
+ 0x23, 0x34, 0x02, 0x89, 0x43, 0x38, 0x09, 0x52, 0x22, 0x84, 0x9C, 0xD7, 0xE0, 0x98, 0xAE, 0x59,
+ 0x8A, 0xBE, 0x40, 0xBD, 0x42, 0x26, 0x74, 0xD6, 0xA2, 0x6C, 0xC4, 0xA6, 0x55, 0x45, 0x4E, 0x19,
+ 0x2E, 0xE2, 0xAC, 0xE5, 0x70, 0xB5, 0xCE, 0xC1, 0xA9, 0x19, 0x96, 0x0F, 0xF6, 0x91, 0xF5, 0x3C,
+ 0xF6, 0x1F, 0x99, 0x62, 0xC7, 0xD8, 0x21, 0xF2, 0x19, 0x9F, 0xB3, 0xD7, 0xAD, 0x86, 0x2E, 0xF0,
+ 0x6D, 0x32, 0xA4, 0x94, 0x60, 0x0C, 0xB3, 0xF5, 0x26, 0xFB, 0xA7, 0x1A, 0xEC, 0x98, 0x74, 0x1C,
+ 0x6A, 0x2A, 0x94, 0x9F, 0xC7, 0x38, 0x0F, 0x8C, 0x65, 0xDE, 0x5A, 0xD4, 0x39, 0x9A, 0x06, 0x66,
+ 0x1A, 0xA1, 0x18, 0xCA, 0x8B, 0xB3, 0x46, 0x1E, 0xFE, 0x65, 0xBE, 0xB6, 0x6C, 0x6D, 0x63, 0xD1,
+ 0x24, 0xB8, 0xEB, 0x50, 0x95, 0xDD, 0xBB, 0x3F, 0x9C, 0x0B, 0xC3, 0xF8, 0xB4, 0x6A, 0xAD, 0x45,
+ 0x2B, 0x8C, 0x3A, 0x09, 0x25, 0x8E, 0x0D, 0x3A, 0xD6, 0xC9, 0xFB, 0x38, 0x11, 0x13, 0x6B, 0xAA,
+ 0x8D, 0x88, 0xC9, 0x6A, 0x8B, 0x28, 0xD6, 0x84, 0xD1, 0xF1, 0x24, 0x26, 0x6C, 0x35, 0xD8, 0x30,
+ 0xE4, 0xF3, 0xFA, 0x91, 0x12, 0xCE, 0x59, 0xB4, 0xB5, 0xFC, 0xEC, 0x99, 0xE7, 0xF8, 0x97, 0xFB,
+ 0x1F, 0xE7, 0xB1, 0x1D, 0xFB, 0x88, 0xB4, 0xE6, 0xBE, 0x67, 0x76, 0x72, 0xFF, 0x73, 0x63, 0x84,
+ 0x5A, 0xE0, 0x8C, 0xC1, 0xA6, 0x9E, 0x91, 0xE8, 0xA0, 0x3B, 0x7A, 0x5A, 0x6B, 0x29, 0xE7, 0x72,
+ 0x28, 0x95, 0xE1, 0x70, 0x55, 0x63, 0x45, 0x06, 0xE3, 0x64, 0x92, 0x9C, 0xDB, 0x7A, 0xB6, 0x45,
+ 0x27, 0x3A, 0xCC, 0xD5, 0x43, 0x42, 0xED, 0x4E, 0xCE, 0x0D, 0xAD, 0xEE, 0x0F, 0xCA, 0x83, 0x8B,
+ 0x7B, 0xC0, 0xBE, 0x23, 0x75, 0xE6, 0x9A, 0x71, 0xB9, 0xDE, 0x8C, 0x56, 0xD7, 0x9B, 0x11, 0x51,
+ 0xAC, 0xC1, 0x3A, 0xA4, 0x73, 0x08, 0xA5, 0x40, 0x0A, 0x84, 0xB4, 0x2C, 0x9C, 0x3D, 0x27, 0xE6,
+ 0x42, 0x3C, 0x01, 0xFE, 0x22, 0xCB, 0x41, 0xE7, 0x1C, 0x56, 0x87, 0x6C, 0x18, 0xF6, 0x39, 0x6F,
+ 0x55, 0x05, 0x81, 0xC3, 0x68, 0x8B, 0x13, 0x82, 0x6C, 0x90, 0x65, 0xC3, 0xAA, 0x13, 0x58, 0xBD,
+ 0x64, 0x80, 0x83, 0x33, 0x55, 0x7C, 0x3F, 0xE0, 0xCC, 0xB5, 0x2B, 0x58, 0xD6, 0x57, 0xC6, 0xA4,
+ 0x6E, 0xEC, 0x52, 0xE0, 0x5E, 0x1A, 0x12, 0x52, 0x0A, 0x0E, 0x4C, 0x4E, 0xF3, 0xC4, 0xCE, 0xFD,
+ 0xBC, 0xFE, 0x84, 0x11, 0x9E, 0x3A, 0xD0, 0xE0, 0x70, 0x2B, 0x46, 0xFA, 0x92, 0x45, 0xEB, 0xBA,
+ 0x34, 0xA7, 0xD4, 0x9A, 0x50, 0x6F, 0xC5, 0x4B, 0xAC, 0x63, 0xD4, 0x58, 0xB7, 0x3F, 0xD2, 0x86,
+ 0xC0, 0x53, 0xF3, 0x09, 0x68, 0x45, 0x31, 0x51, 0x20, 0x07, 0xEA, 0xAD, 0x78, 0xB8, 0xD1, 0x8C,
+ 0x88, 0x63, 0x8D, 0x74, 0x0E, 0x9B, 0xDE, 0xA8, 0x93, 0x04, 0x17, 0x0C, 0xA4, 0xB5, 0xE1, 0xB0,
+ 0x70, 0x0C, 0x14, 0x03, 0x04, 0xDD, 0x6D, 0x30, 0x87, 0xD1, 0x11, 0xAB, 0x7A, 0x04, 0x97, 0xAC,
+ 0xED, 0xC5, 0x17, 0x0E, 0xAD, 0x93, 0xE5, 0xAB, 0x76, 0x50, 0xCC, 0x7A, 0x5C, 0xBC, 0x71, 0x2D,
+ 0x47, 0xE6, 0x6A, 0xFC, 0x62, 0xEB, 0x6E, 0xCE, 0x5D, 0xB7, 0x92, 0x91, 0x4A, 0x21, 0x99, 0x51,
+ 0x8C, 0xED, 0xB8, 0xBC, 0x52, 0xAA, 0x13, 0x0A, 0x5B, 0x5F, 0x1C, 0xE3, 0xD1, 0x1D, 0xBB, 0x39,
+ 0xFF, 0xD4, 0x93, 0x18, 0x1D, 0x2A, 0x53, 0x50, 0x86, 0x28, 0x6C, 0xE1, 0x09, 0x6F, 0x71, 0x02,
+ 0x70, 0x38, 0xEB, 0x68, 0x86, 0x8E, 0x46, 0x18, 0xE7, 0x6B, 0xAD, 0x68, 0xB4, 0x15, 0xE9, 0x4E,
+ 0xD2, 0x9E, 0x47, 0x80, 0xB3, 0x0E, 0x9C, 0x1B, 0x6C, 0x85, 0x51, 0x3E, 0x0C, 0x23, 0x74, 0x6C,
+ 0x69, 0xF3, 0x2A, 0x9C, 0x4A, 0x92, 0xA0, 0x68, 0xCF, 0x02, 0xF3, 0xD3, 0xDE, 0x74, 0xD5, 0x60,
+ 0x8D, 0xA5, 0x27, 0xE7, 0xA7, 0x39, 0xD2, 0x61, 0x4D, 0xCC, 0x70, 0xCE, 0x72, 0xF9, 0xBA, 0x61,
+ 0x8A, 0x3E, 0x44, 0x71, 0xDC, 0x89, 0x67, 0x84, 0xC0, 0x13, 0x82, 0xF1, 0xA9, 0x59, 0x1E, 0x7A,
+ 0x76, 0x37, 0x67, 0x9D, 0x74, 0x02, 0x4B, 0x7A, 0x0A, 0x84, 0x5A, 0x23, 0x21, 0x99, 0xEE, 0x94,
+ 0x42, 0x4A, 0x89, 0x94, 0x02, 0x63, 0x2D, 0x0F, 0x6C, 0xDD, 0xC1, 0xF6, 0x7D, 0x2F, 0x71, 0xF9,
+ 0x1B, 0x36, 0xB0, 0x7A, 0xA8, 0x97, 0xF1, 0xD9, 0x1A, 0x47, 0x66, 0xAB, 0x18, 0x53, 0x80, 0xD8,
+ 0x2C, 0xA2, 0x97, 0xE8, 0x10, 0xD0, 0xC2, 0xD2, 0x0C, 0x75, 0x50, 0x6F, 0xE9, 0xC1, 0xBD, 0x13,
+ 0xB5, 0xCE, 0xE2, 0x70, 0x1E, 0x01, 0x49, 0xB9, 0xE9, 0x7A, 0x1A, 0xCD, 0xD8, 0x8F, 0xA2, 0x18,
+ 0x6D, 0xDC, 0xD1, 0xFE, 0xBD, 0x03, 0xA4, 0x4D, 0x93, 0xE0, 0xD1, 0x59, 0xA0, 0x9B, 0xE9, 0xC9,
+ 0xAA, 0x49, 0xCA, 0xD8, 0xAC, 0x87, 0xB3, 0x9A, 0xA2, 0x8C, 0xB8, 0xFC, 0xA4, 0x41, 0x86, 0xF2,
+ 0x8A, 0x28, 0xD6, 0x1D, 0xF0, 0xD6, 0x5A, 0x02, 0xDF, 0xA3, 0x11, 0xC5, 0xDC, 0xFD, 0xE8, 0x36,
+ 0xAE, 0xDA, 0x74, 0x2A, 0xFD, 0xA5, 0x1C, 0x5F, 0xFA, 0xE1, 0x66, 0x7A, 0xF3, 0x19, 0xAE, 0x3D,
+ 0xF7, 0x74, 0x02, 0xA5, 0x10, 0x29, 0xF8, 0x7A, 0x2B, 0xE2, 0x07, 0x8F, 0x6D, 0xE1, 0xF0, 0x4C,
+ 0x8D, 0xB7, 0x9D, 0xFB, 0x3A, 0x46, 0xFA, 0xCA, 0xEC, 0x99, 0x98, 0xE5, 0xAB, 0x3F, 0x7D, 0x9A,
+ 0xF1, 0x19, 0x8D, 0xCC, 0x95, 0x70, 0xC6, 0x1C, 0xA3, 0x4F, 0x32, 0x15, 0x3A, 0x9C, 0xB3, 0xC4,
+ 0x56, 0xD0, 0x0A, 0x63, 0xA9, 0xB5, 0xE9, 0xFD, 0xFB, 0x3B, 0xB7, 0xF2, 0xD7, 0xD7, 0x9C, 0x7A,
+ 0x2C, 0x01, 0x61, 0xA4, 0xD1, 0xC6, 0x64, 0xA7, 0xE7, 0x1A, 0xAA, 0x5E, 0x6F, 0xE1, 0x94, 0x4A,
+ 0x3C, 0xC0, 0x81, 0xB0, 0x0E, 0x94, 0x44, 0x08, 0x97, 0x8E, 0xB3, 0xB8, 0xBB, 0x4D, 0x6A, 0x4D,
+ 0xA3, 0x29, 0xE8, 0xCD, 0x68, 0x2E, 0xDE, 0xD8, 0xC7, 0xEA, 0xFE, 0x0C, 0xB1, 0x8E, 0x3B, 0xD7,
+ 0x0B, 0x21, 0xF0, 0x3C, 0x45, 0x23, 0xB6, 0x6C, 0xD9, 0x73, 0x08, 0x27, 0x3D, 0xEA, 0x51, 0xCC,
+ 0xB6, 0xAD, 0xE3, 0x4C, 0xD7, 0x22, 0x7A, 0x8B, 0x05, 0x3C, 0xCF, 0x47, 0x4A, 0x81, 0x92, 0x92,
+ 0xC3, 0xB3, 0x55, 0x6E, 0x7F, 0xE0, 0x71, 0x10, 0x8A, 0x3F, 0xB8, 0xF0, 0x0D, 0xF4, 0x17, 0xF3,
+ 0x3C, 0xB1, 0x73, 0x8C, 0xAF, 0xFD, 0xF4, 0x57, 0xEC, 0x99, 0x15, 0xF8, 0x85, 0x41, 0x9C, 0x93,
+ 0xA0, 0xCD, 0x22, 0x3A, 0x25, 0x5D, 0x1B, 0xE7, 0x2C, 0x42, 0xC0, 0x6C, 0x3D, 0xA4, 0x15, 0xE9,
+ 0x7C, 0xF4, 0xF5, 0x2F, 0xE3, 0xBE, 0x7A, 0xFD, 0xB1, 0x04, 0xE0, 0x2C, 0x38, 0x27, 0xC3, 0x48,
+ 0x73, 0x64, 0xA6, 0x4E, 0xA1, 0x90, 0x21, 0x48, 0xEF, 0x23, 0xAC, 0x43, 0xD8, 0xA4, 0x18, 0x7A,
+ 0xB9, 0xB6, 0x8F, 0x73, 0x96, 0xA8, 0xDE, 0xE4, 0xE2, 0x0D, 0x15, 0x36, 0xAD, 0x28, 0xA7, 0x45,
+ 0xCD, 0x51, 0xF0, 0x8D, 0x48, 0xF3, 0xE3, 0x87, 0xB7, 0x70, 0x70, 0xAE, 0xC5, 0x29, 0x2B, 0x47,
+ 0x58, 0xB3, 0x74, 0x80, 0x6A, 0xA3, 0xC9, 0x8A, 0xC1, 0x5E, 0xCE, 0x3B, 0x65, 0x35, 0xF9, 0xC0,
+ 0x43, 0x09, 0x90, 0x42, 0xB0, 0x63, 0xEC, 0x10, 0xB7, 0xFE, 0xEC, 0x51, 0x46, 0x06, 0xFB, 0xB8,
+ 0xEE, 0xFC, 0x33, 0x08, 0x3C, 0xC9, 0x77, 0x1F, 0xDE, 0xCA, 0x37, 0x1F, 0x7A, 0x9E, 0x19, 0x93,
+ 0xC7, 0xCF, 0xF7, 0x63, 0x44, 0x90, 0xEC, 0xA7, 0x61, 0x8E, 0xA7, 0x10, 0xCE, 0x5A, 0xEA, 0xA1,
+ 0xA6, 0x9A, 0xF7, 0xB0, 0xCE, 0x49, 0xD8, 0xDF, 0x89, 0x14, 0x6F, 0xE1, 0xC5, 0x02, 0x17, 0x49,
+ 0x9C, 0x0D, 0xC3, 0x88, 0x56, 0x6C, 0xE8, 0xED, 0x15, 0xF8, 0x90, 0x14, 0x42, 0x4E, 0x21, 0xE4,
+ 0xCB, 0xF4, 0xBD, 0x9C, 0xC5, 0xC4, 0x2D, 0xCE, 0x5D, 0x99, 0xE3, 0x9A, 0xD7, 0x2D, 0x45, 0x89,
+ 0x24, 0x61, 0x4A, 0x29, 0x13, 0xCB, 0x2B, 0xC5, 0x0B, 0x2F, 0x1D, 0xE1, 0xAE, 0x47, 0xB6, 0x93,
+ 0x2F, 0xF4, 0xF0, 0xEE, 0x8B, 0xCF, 0x66, 0x49, 0xC9, 0xC7, 0x51, 0x42, 0x2A, 0xD5, 0xF1, 0x5A,
+ 0x21, 0x24, 0x9B, 0xB7, 0xEE, 0xE0, 0xB6, 0x5F, 0x3C, 0xCE, 0xB9, 0xA7, 0x9E, 0xC4, 0x35, 0x6F,
+ 0x3C, 0x8D, 0xD9, 0x7A, 0x93, 0xAF, 0xFC, 0xE8, 0x49, 0xEE, 0xDD, 0x32, 0x86, 0x0E, 0xFA, 0xF0,
+ 0xB2, 0x3D, 0x18, 0x82, 0x14, 0xF7, 0xE2, 0xE0, 0x93, 0x54, 0xE4, 0xA8, 0x37, 0x23, 0xC2, 0x30,
+ 0x06, 0x5B, 0x40, 0x38, 0x17, 0x52, 0xBE, 0x36, 0x8D, 0xE9, 0x85, 0x04, 0xE0, 0x10, 0x82, 0x9A,
+ 0x12, 0x4E, 0x0B, 0x2C, 0xCD, 0x96, 0x66, 0x7A, 0x56, 0x50, 0x2E, 0x83, 0x9F, 0xF1, 0x93, 0x30,
+ 0x90, 0xB2, 0xD3, 0xA9, 0x59, 0xF8, 0x5B, 0x1D, 0x87, 0x9C, 0x3C, 0xA8, 0xF8, 0xE3, 0xF3, 0x57,
+ 0xD1, 0x5B, 0xCC, 0x62, 0xEC, 0xD1, 0x84, 0x24, 0x84, 0xC0, 0x5A, 0xCB, 0xCA, 0xE1, 0x01, 0xDE,
+ 0x79, 0xE1, 0x26, 0xF2, 0xF9, 0x1C, 0x7D, 0x85, 0x00, 0xEB, 0x1C, 0x52, 0x29, 0x84, 0x48, 0xE2,
+ 0x3D, 0xD2, 0x86, 0x6F, 0xDF, 0xFF, 0x4B, 0xEE, 0x7D, 0x62, 0x3B, 0xEF, 0xBA, 0xF4, 0x8D, 0x5C,
+ 0xF6, 0xFA, 0x93, 0xD9, 0xBA, 0x67, 0x9C, 0x2F, 0xFF, 0xF0, 0x31, 0x9E, 0x19, 0xAF, 0xA3, 0x72,
+ 0x03, 0x48, 0xBF, 0x84, 0xC1, 0x7B, 0x79, 0xCB, 0xA7, 0xE0, 0x9B, 0xA1, 0xA6, 0xDA, 0x08, 0xC9,
+ 0x28, 0xF0, 0xA4, 0x73, 0x52, 0x30, 0x77, 0xD5, 0x47, 0x2E, 0x46, 0xA4, 0x5E, 0x79, 0x8C, 0x07,
+ 0x38, 0xEB, 0x26, 0x03, 0x4F, 0x46, 0xCA, 0x39, 0x30, 0x9A, 0x30, 0x0C, 0x99, 0xAD, 0x42, 0xC1,
+ 0xE6, 0x08, 0x32, 0x3E, 0x42, 0x2A, 0x90, 0xB6, 0x8B, 0xE3, 0x24, 0x49, 0x58, 0x1D, 0x33, 0x98,
+ 0x33, 0xFC, 0xE9, 0xC5, 0xEB, 0x58, 0x31, 0x58, 0x46, 0x1B, 0x8B, 0x27, 0xE7, 0x13, 0x04, 0x82,
+ 0xA2, 0xE7, 0x71, 0xED, 0x79, 0x1B, 0xD3, 0x69, 0x2D, 0xB1, 0xB6, 0x10, 0x49, 0xBC, 0x4F, 0x57,
+ 0xEB, 0x7C, 0xE9, 0xCE, 0x9F, 0xF0, 0xFC, 0xFE, 0x43, 0xFC, 0xC5, 0x75, 0x57, 0xB0, 0x71, 0xF5,
+ 0x08, 0x77, 0x3F, 0xBC, 0x95, 0xFF, 0xFD, 0x93, 0xA7, 0x38, 0xD4, 0xF4, 0xF1, 0xF3, 0x43, 0x38,
+ 0x2F, 0x8F, 0x71, 0x32, 0xA9, 0xF8, 0xDC, 0xC2, 0x9A, 0x24, 0x19, 0x43, 0x08, 0xB0, 0xD6, 0xD1,
+ 0x8C, 0x74, 0xB2, 0x96, 0x31, 0x06, 0x25, 0x15, 0x81, 0x14, 0x71, 0xA0, 0xC4, 0x91, 0x37, 0x9D,
+ 0xBA, 0x94, 0xB6, 0x0D, 0xE7, 0x11, 0x90, 0xF1, 0x15, 0xD9, 0x40, 0x4D, 0xE4, 0x33, 0x6A, 0xCA,
+ 0x97, 0x0C, 0x38, 0xA3, 0x41, 0x0B, 0xE2, 0x50, 0x50, 0x75, 0x90, 0x33, 0x96, 0x20, 0xE3, 0x27,
+ 0xE5, 0x68, 0x57, 0x18, 0x58, 0x6B, 0xC8, 0x8A, 0x16, 0x7F, 0xF2, 0xA6, 0xF5, 0xBC, 0x61, 0xF5,
+ 0x10, 0xC6, 0x3A, 0x3C, 0x71, 0x14, 0xBD, 0x58, 0x10, 0x32, 0xF3, 0xE6, 0x76, 0x40, 0x29, 0xC5,
+ 0xCE, 0x03, 0x07, 0xF9, 0xEC, 0xAD, 0xF7, 0x20, 0xA4, 0xC7, 0x27, 0xDE, 0xF7, 0x4E, 0x0A, 0x19,
+ 0x9F, 0xCF, 0xDE, 0xFE, 0x33, 0xBE, 0xF7, 0xD8, 0x6E, 0x22, 0x59, 0xC6, 0xCB, 0x55, 0x30, 0x22,
+ 0x9B, 0xD4, 0xFA, 0x2F, 0x63, 0x75, 0x00, 0xE3, 0x1C, 0xAD, 0xC8, 0x10, 0xC7, 0x1A, 0x67, 0x1D,
+ 0xCE, 0x1A, 0x3C, 0x5F, 0x90, 0xF3, 0x65, 0xAB, 0xB7, 0x10, 0x8C, 0x6B, 0x63, 0x16, 0xAF, 0x03,
+ 0x86, 0x2B, 0x39, 0x56, 0x0E, 0xF7, 0xCC, 0x94, 0x72, 0xC1, 0xBE, 0x8C, 0x2F, 0x4F, 0x12, 0x46,
+ 0xE3, 0x84, 0xC0, 0x49, 0x81, 0x89, 0x05, 0x0D, 0xE7, 0x88, 0x8D, 0x21, 0x13, 0xF8, 0x48, 0x25,
+ 0x93, 0xA2, 0xC7, 0x59, 0x9C, 0x6E, 0xF2, 0xCE, 0x37, 0xAD, 0xE2, 0xF7, 0x36, 0xAD, 0x4A, 0x00,
+ 0x09, 0xD7, 0x01, 0xBD, 0x10, 0x7C, 0x1B, 0x78, 0xFB, 0x3B, 0x01, 0x6C, 0x7E, 0xE6, 0x59, 0x3E,
+ 0xFF, 0xED, 0x1F, 0xB2, 0x61, 0xCD, 0x4A, 0xDE, 0x7F, 0xED, 0x9B, 0xD9, 0x77, 0x68, 0x92, 0xBF,
+ 0xF9, 0xFA, 0x0F, 0x79, 0x62, 0xCF, 0x0C, 0x32, 0xDB, 0x87, 0x0C, 0x4A, 0x18, 0xFC, 0xE3, 0xBA,
+ 0x7C, 0x77, 0x43, 0x39, 0x36, 0x96, 0x58, 0x1B, 0xAC, 0x4D, 0x57, 0x95, 0xD6, 0x82, 0x31, 0x64,
+ 0x94, 0x4F, 0x39, 0xE7, 0xCF, 0x64, 0x7C, 0x6F, 0x6F, 0xE0, 0x29, 0x02, 0x4F, 0x1D, 0x4B, 0xC0,
+ 0x89, 0xCB, 0x7A, 0xD9, 0x74, 0xE2, 0x50, 0xF5, 0x8E, 0x9F, 0xFB, 0xCF, 0x16, 0x73, 0xFE, 0x65,
+ 0xC2, 0x59, 0xAC, 0x8E, 0x71, 0x32, 0x5D, 0x8D, 0x09, 0x88, 0xA3, 0xA4, 0x5E, 0xF0, 0x3C, 0x85,
+ 0xE7, 0x49, 0x4C, 0xDC, 0xE2, 0x8A, 0x8D, 0x43, 0xFC, 0xC9, 0x65, 0x1B, 0x08, 0x3C, 0x0F, 0xEB,
+ 0xE6, 0x83, 0x6F, 0x2F, 0x6D, 0x93, 0x82, 0xE6, 0xA8, 0x57, 0x48, 0x29, 0x89, 0xA2, 0x98, 0xDB,
+ 0xEE, 0xDB, 0xCC, 0x37, 0x7E, 0xFC, 0x20, 0xD7, 0x5D, 0xFC, 0x46, 0xAE, 0xBD, 0xF8, 0x2C, 0x7E,
+ 0xF4, 0xE8, 0x36, 0xBE, 0xF8, 0xBD, 0x87, 0x19, 0xAB, 0x82, 0x9F, 0x1B, 0xC4, 0x79, 0x79, 0x2C,
+ 0xAA, 0x03, 0xFE, 0x38, 0x5D, 0x73, 0xAC, 0x75, 0xC4, 0xC6, 0xA6, 0x79, 0xC7, 0xB5, 0xC3, 0x39,
+ 0x69, 0xA8, 0x58, 0x4B, 0x7F, 0x31, 0xA0, 0x9C, 0x95, 0x2F, 0xCE, 0x4E, 0x8C, 0x1F, 0x6E, 0x36,
+ 0x8F, 0x92, 0x38, 0x8F, 0x80, 0x4D, 0x27, 0x0E, 0xF1, 0xC7, 0xFF, 0xE3, 0xFB, 0x76, 0xDD, 0x8A,
+ 0xFE, 0xC7, 0x2B, 0xC5, 0x6C, 0xE4, 0x09, 0x02, 0xA3, 0x35, 0x4E, 0x26, 0xE0, 0x3B, 0x2E, 0xEF,
+ 0x1C, 0x91, 0xB5, 0xB4, 0x9A, 0x11, 0xA7, 0x8D, 0x16, 0xF9, 0xD0, 0x3B, 0x36, 0xD1, 0x5B, 0xCC,
+ 0x26, 0x71, 0xDF, 0x65, 0xF1, 0x76, 0x29, 0xDB, 0x9E, 0x05, 0x3A, 0x5E, 0x20, 0x25, 0xD3, 0xB3,
+ 0x73, 0x7C, 0xF1, 0xB6, 0xEF, 0xF3, 0xD0, 0x96, 0x17, 0xF8, 0x8B, 0xEB, 0xDF, 0xCA, 0xC6, 0x35,
+ 0xA3, 0xFC, 0xCF, 0x6F, 0xDD, 0xC7, 0xB7, 0x1F, 0x7C, 0x8E, 0x96, 0x28, 0xE2, 0x65, 0x2B, 0x58,
+ 0x99, 0x41, 0x58, 0x12, 0x2B, 0x2E, 0x38, 0x5C, 0x97, 0x2E, 0xD6, 0xBA, 0xA3, 0xC0, 0xA1, 0x33,
+ 0xF7, 0x63, 0x2D, 0xCE, 0x18, 0xF2, 0x81, 0x62, 0xA4, 0xBF, 0x40, 0x3E, 0x90, 0x4F, 0x7E, 0xEB,
+ 0x3F, 0x9F, 0x3B, 0xBB, 0xE6, 0xDD, 0x9F, 0x5A, 0x9C, 0x80, 0xC3, 0x33, 0x4D, 0x36, 0xAE, 0x1A,
+ 0x64, 0xA8, 0xAF, 0xF0, 0xC4, 0x40, 0x6F, 0xE1, 0x60, 0x36, 0x50, 0x2B, 0xC2, 0x30, 0xC2, 0xC5,
+ 0x02, 0x8B, 0x40, 0x72, 0x74, 0x1D, 0x60, 0x75, 0x4C, 0x7F, 0xC1, 0x71, 0xE3, 0x75, 0x67, 0xB2,
+ 0x7A, 0xA8, 0x27, 0xA9, 0xF1, 0x3B, 0xEB, 0xF6, 0xF9, 0x56, 0x5F, 0x08, 0x7E, 0xF7, 0x81, 0x71,
+ 0x3E, 0xFD, 0xF5, 0x3B, 0x98, 0x6D, 0x84, 0x7C, 0xF2, 0xCF, 0xDE, 0x4D, 0x6C, 0x1C, 0x1F, 0xFA,
+ 0xC7, 0x3B, 0xF8, 0xE5, 0x8E, 0x09, 0x44, 0xB6, 0x17, 0x15, 0x94, 0x92, 0x29, 0xCE, 0x42, 0xFA,
+ 0xE7, 0x18, 0xF4, 0x36, 0x2D, 0x71, 0xAD, 0x5B, 0xE4, 0xCB, 0xB6, 0xF5, 0x8D, 0xC1, 0x17, 0x8E,
+ 0x25, 0x3D, 0x39, 0xFA, 0x8B, 0x99, 0x66, 0x5F, 0xB9, 0xF8, 0xD0, 0x45, 0xFF, 0xF0, 0xA4, 0xDD,
+ 0xF7, 0xF0, 0x77, 0x17, 0x27, 0x60, 0xB8, 0x37, 0xCF, 0x77, 0x36, 0xEF, 0x60, 0xD3, 0xFA, 0xE5,
+ 0xBB, 0x1F, 0xDD, 0xBA, 0xFF, 0x91, 0x4A, 0x29, 0xB7, 0x62, 0x6E, 0xAE, 0x8E, 0xD5, 0x71, 0x52,
+ 0x55, 0x76, 0x7A, 0x0C, 0x86, 0x40, 0x69, 0xFE, 0xFC, 0xAD, 0x67, 0x73, 0xC1, 0xA9, 0xCB, 0x89,
+ 0xD3, 0x15, 0x5B, 0x27, 0xE6, 0x84, 0x40, 0x76, 0xAD, 0xE1, 0x9D, 0x4B, 0xAA, 0x47, 0x29, 0x04,
+ 0x8F, 0x3E, 0xB3, 0x9D, 0x4F, 0xFD, 0xEB, 0x77, 0x59, 0xB3, 0x7C, 0x29, 0x1F, 0x7C, 0xCF, 0xDB,
+ 0xF9, 0xE5, 0xB6, 0x17, 0xF9, 0x5F, 0xDF, 0xD9, 0xCC, 0xFE, 0x19, 0x83, 0x9F, 0x1B, 0x40, 0xB4,
+ 0x5D, 0x7E, 0xA1, 0xD5, 0xD3, 0xAD, 0x38, 0x97, 0xEE, 0x47, 0x1E, 0xFD, 0x23, 0xBA, 0x92, 0x80,
+ 0xEB, 0xAC, 0xFE, 0x9C, 0xB1, 0xF8, 0xD2, 0x31, 0x50, 0xCC, 0x30, 0x50, 0xCE, 0xD0, 0x5B, 0xCC,
+ 0xEC, 0x2A, 0x17, 0x82, 0x47, 0x85, 0x08, 0xF1, 0x8B, 0x95, 0xC5, 0x09, 0x00, 0xB8, 0xE2, 0x0D,
+ 0xAB, 0xB8, 0xEA, 0xC6, 0x5B, 0x9A, 0x97, 0x9F, 0xB9, 0xE6, 0x9E, 0xE1, 0x81, 0xD2, 0x35, 0x07,
+ 0x0F, 0x4E, 0x66, 0x9A, 0x51, 0x04, 0xC2, 0x75, 0xDC, 0xCE, 0xC4, 0x96, 0x6B, 0x2E, 0x58, 0xC3,
+ 0x1F, 0x5E, 0xB2, 0x01, 0x1D, 0xC7, 0xA9, 0x15, 0x5C, 0x7B, 0x12, 0x4A, 0x9E, 0x80, 0xEA, 0x02,
+ 0xDF, 0xF6, 0x8A, 0x1F, 0x3C, 0xF0, 0x18, 0x37, 0xDF, 0x79, 0x2F, 0x57, 0x5C, 0x70, 0x16, 0x6F,
+ 0x3A, 0x63, 0x03, 0x37, 0xDD, 0xFD, 0x10, 0xB7, 0xFE, 0x7C, 0x1B, 0x4D, 0x97, 0xC7, 0xCB, 0xF6,
+ 0x63, 0x65, 0x16, 0x61, 0x45, 0xE2, 0xBA, 0x8B, 0xB9, 0xFC, 0xF1, 0x1E, 0x3A, 0xE8, 0x5E, 0x03,
+ 0xB9, 0xD4, 0xF2, 0x0A, 0xFA, 0x0B, 0x19, 0xCA, 0x59, 0x45, 0x5F, 0x29, 0x4B, 0x4F, 0x21, 0xF3,
+ 0x93, 0xF7, 0x5C, 0xBC, 0x7E, 0xEC, 0xB6, 0x5F, 0xEC, 0xE0, 0xCF, 0xFE, 0xDB, 0x87, 0x8E, 0x4F,
+ 0xC0, 0xBE, 0xC3, 0x73, 0xFC, 0xFE, 0x9B, 0x4E, 0x61, 0xA0, 0x52, 0xB8, 0x6F, 0x74, 0xB8, 0xB2,
+ 0xED, 0xC5, 0x3D, 0xD9, 0x33, 0x5A, 0x47, 0x5A, 0x10, 0x77, 0x0F, 0x6D, 0x38, 0x30, 0x7E, 0x88,
+ 0xC3, 0xD3, 0x73, 0x0C, 0x57, 0x0A, 0x49, 0xB3, 0x22, 0xB5, 0xBA, 0x50, 0x2A, 0x59, 0x09, 0x76,
+ 0x85, 0x41, 0x18, 0xC5, 0xDC, 0x72, 0xCF, 0x7D, 0xFC, 0xE2, 0x89, 0xAD, 0xBC, 0xFF, 0xFA, 0xAB,
+ 0xC9, 0x64, 0x73, 0xFC, 0xD5, 0x97, 0xEE, 0xE4, 0xE1, 0xE7, 0x0F, 0x23, 0x32, 0x15, 0x54, 0xA6,
+ 0x88, 0x13, 0xFE, 0xD1, 0xD8, 0x7D, 0xAD, 0x47, 0x1A, 0x07, 0x6D, 0x0F, 0xCC, 0x7A, 0x92, 0xBE,
+ 0x62, 0x40, 0xCE, 0x13, 0x94, 0x32, 0x1E, 0x83, 0x3D, 0xB9, 0x89, 0x4A, 0x31, 0xFB, 0x9D, 0x4F,
+ 0x7F, 0xFB, 0x51, 0xF3, 0xF5, 0x9F, 0x1F, 0x9C, 0xF7, 0xD3, 0x63, 0x4A, 0xBA, 0x93, 0x57, 0xF4,
+ 0xB3, 0x62, 0xB8, 0xC2, 0xBB, 0x2E, 0x39, 0xE5, 0xC0, 0xC8, 0x50, 0xCF, 0xAD, 0x23, 0x4B, 0x7A,
+ 0x6D, 0xE0, 0x49, 0x9C, 0x8E, 0xB1, 0x71, 0x8C, 0x8B, 0x23, 0x84, 0x73, 0x3C, 0xBC, 0x65, 0x2F,
+ 0x9F, 0xFC, 0xDA, 0xF7, 0xA9, 0x35, 0x93, 0x56, 0xB5, 0x6B, 0x2B, 0x61, 0x8F, 0x6E, 0x62, 0x00,
+ 0xCC, 0x56, 0x6B, 0x7C, 0xE1, 0x5F, 0xEF, 0x60, 0xE7, 0xBE, 0x71, 0x3E, 0xFA, 0xBE, 0x7F, 0xC7,
+ 0xD8, 0x54, 0x9D, 0x0F, 0x7C, 0xEE, 0x76, 0x36, 0x3F, 0x37, 0x89, 0xCC, 0xF6, 0x23, 0xFD, 0x12,
+ 0x4E, 0x78, 0x09, 0x78, 0x6B, 0xE7, 0x09, 0xAF, 0x20, 0xDD, 0xD7, 0x38, 0x63, 0xC0, 0x18, 0x8A,
+ 0x81, 0x64, 0xB0, 0x14, 0x90, 0x55, 0xE0, 0x0B, 0x47, 0x7F, 0x4F, 0x8E, 0x81, 0x9E, 0xFC, 0x8F,
+ 0xD7, 0x2C, 0xEB, 0x7D, 0x6C, 0xB0, 0x27, 0xC7, 0x27, 0xDE, 0xB3, 0x7E, 0x1E, 0xDE, 0x45, 0x9F,
+ 0x68, 0x78, 0xDB, 0x7B, 0x6E, 0xE0, 0xEC, 0x2B, 0xDF, 0xC3, 0x60, 0x6F, 0x71, 0xAC, 0xD6, 0x08,
+ 0x2F, 0x9A, 0x98, 0x9C, 0x5D, 0x5A, 0xAF, 0x37, 0xD2, 0x8D, 0xCB, 0xA4, 0x06, 0x12, 0x52, 0xF2,
+ 0xC2, 0x9E, 0x71, 0xB0, 0x31, 0xE7, 0x9C, 0xB6, 0x16, 0x29, 0x8E, 0xBA, 0xBC, 0x73, 0x16, 0xA5,
+ 0x14, 0x63, 0x87, 0x27, 0xF9, 0xD2, 0xAD, 0x77, 0xB1, 0x6C, 0x68, 0x80, 0x6B, 0x2F, 0xBF, 0x88,
+ 0x7F, 0xFE, 0xFE, 0xC3, 0x7C, 0xEE, 0xF6, 0xCD, 0x4C, 0xB5, 0x02, 0xFC, 0x6C, 0x2F, 0x42, 0x65,
+ 0x93, 0x4D, 0x0C, 0x77, 0x34, 0x7E, 0x5F, 0xB3, 0xA4, 0x44, 0x28, 0x1C, 0xBD, 0x85, 0x80, 0xDE,
+ 0x82, 0x8F, 0x87, 0x45, 0x3A, 0x43, 0x4F, 0x21, 0x60, 0xF5, 0x48, 0xFF, 0xC4, 0xE8, 0x70, 0xE5,
+ 0xBF, 0xEE, 0x1A, 0x9B, 0x7A, 0xE1, 0x5D, 0x97, 0xAC, 0xE7, 0x8C, 0x13, 0x97, 0xBD, 0xBC, 0x07,
+ 0x00, 0xBC, 0xEB, 0xD2, 0x53, 0x39, 0x61, 0x49, 0x85, 0xF7, 0xFF, 0xF9, 0x97, 0xF7, 0xAC, 0x1C,
+ 0xE9, 0xFF, 0xA7, 0x55, 0xA3, 0x43, 0xAD, 0x5C, 0xC6, 0x07, 0x13, 0xE3, 0x74, 0x84, 0x8B, 0x63,
+ 0x30, 0x60, 0xC8, 0x72, 0xD3, 0x9D, 0x8F, 0x70, 0xF3, 0x5D, 0x9B, 0x41, 0xC8, 0xD4, 0xF2, 0x1A,
+ 0x29, 0x24, 0xDB, 0x76, 0xED, 0xE5, 0x96, 0xBB, 0x7F, 0xC2, 0x65, 0xE7, 0x9E, 0xC9, 0xC6, 0x53,
+ 0x4E, 0xE6, 0x23, 0x9F, 0xBF, 0x9D, 0xAF, 0xFE, 0xE0, 0x57, 0x84, 0xA2, 0x8C, 0x97, 0xE9, 0x01,
+ 0x19, 0x24, 0xC1, 0xFB, 0x2A, 0xAD, 0x8D, 0x4D, 0x4A, 0x5F, 0xD7, 0x65, 0x7D, 0x67, 0x4C, 0xD2,
+ 0x66, 0xF7, 0x04, 0xC3, 0x3D, 0x59, 0x2A, 0x39, 0x0F, 0x65, 0x0D, 0xC2, 0x18, 0xB2, 0x9E, 0x60,
+ 0x49, 0x5F, 0x89, 0xA1, 0x4A, 0xF1, 0xD6, 0xD3, 0x4F, 0x5C, 0xFA, 0xE0, 0xE8, 0x50, 0x99, 0x07,
+ 0xB6, 0x8C, 0x1D, 0x83, 0xF5, 0xB8, 0xCF, 0xB4, 0x5C, 0xF1, 0xCE, 0xF7, 0x71, 0xE9, 0xA5, 0x1B,
+ 0x59, 0x39, 0xD2, 0xBF, 0xAB, 0xD6, 0x08, 0xD7, 0xCF, 0xCC, 0xD5, 0x4F, 0x99, 0x9B, 0xAD, 0x61,
+ 0x8D, 0xE9, 0x2C, 0x71, 0x85, 0x90, 0xC4, 0x16, 0x1E, 0xDF, 0xF6, 0x02, 0xA5, 0xBC, 0xCF, 0xE9,
+ 0x27, 0xAD, 0x40, 0x08, 0xC1, 0xA3, 0x5B, 0x9F, 0x67, 0xDB, 0xCE, 0x3D, 0x5C, 0x7D, 0xE9, 0x05,
+ 0x3C, 0xBB, 0x77, 0x82, 0xBF, 0xFE, 0xE2, 0x77, 0xD9, 0xB6, 0x7F, 0x0E, 0x2F, 0xD7, 0x8B, 0xF4,
+ 0xF2, 0x20, 0xD5, 0xC2, 0xCC, 0xB6, 0xE0, 0x38, 0x4E, 0x93, 0xBD, 0x63, 0xF9, 0x84, 0x80, 0x40,
+ 0x0A, 0x7A, 0x0B, 0x01, 0x7D, 0xC5, 0x0C, 0x19, 0x05, 0xC2, 0x1A, 0xB0, 0x06, 0x5F, 0x3A, 0x06,
+ 0x7B, 0x0B, 0xAC, 0x5A, 0x3E, 0xF0, 0xCC, 0x09, 0x4B, 0x7B, 0xFF, 0x6A, 0xEF, 0x4B, 0xD3, 0x87,
+ 0x8E, 0xCC, 0x35, 0xF8, 0xD3, 0xAB, 0xDF, 0x70, 0xCC, 0x2D, 0x5F, 0xB6, 0x97, 0xED, 0x9C, 0xE3,
+ 0x23, 0x5F, 0xF8, 0x01, 0xC3, 0xFD, 0xE5, 0x33, 0x1E, 0x7B, 0x66, 0xF7, 0x2D, 0x0F, 0x3F, 0xF1,
+ 0xDC, 0xBA, 0x89, 0x89, 0x69, 0xAC, 0x13, 0xA0, 0x14, 0x42, 0x79, 0x08, 0x4F, 0x62, 0x6D, 0x4C,
+ 0xCE, 0x0B, 0xB9, 0xE1, 0xBA, 0xF3, 0x39, 0xF3, 0x94, 0x15, 0xF8, 0x9E, 0x60, 0x74, 0x64, 0x19,
+ 0x37, 0xDD, 0xFE, 0x33, 0x6E, 0xB9, 0xF7, 0x49, 0x42, 0x0A, 0xA8, 0x6C, 0x19, 0x21, 0x03, 0xE8,
+ 0xB4, 0xD5, 0x5F, 0xE5, 0x86, 0x62, 0x17, 0x49, 0xED, 0xFA, 0xC2, 0x93, 0x82, 0x62, 0xCE, 0xA7,
+ 0x9C, 0x0B, 0x08, 0x94, 0x40, 0xB8, 0xC4, 0x3B, 0x84, 0xB5, 0x28, 0x61, 0xA9, 0x14, 0x73, 0xAC,
+ 0x5D, 0xB9, 0x64, 0x76, 0xDD, 0xCA, 0xA1, 0x1B, 0x3E, 0xFD, 0xAD, 0x27, 0xBF, 0x79, 0xEB, 0xC7,
+ 0xAF, 0xE2, 0xE0, 0xAC, 0xE6, 0xDA, 0x0B, 0x4F, 0x7E, 0xF5, 0x1E, 0x00, 0xB0, 0xF6, 0xDC, 0x6B,
+ 0x19, 0x19, 0xAC, 0x70, 0xC3, 0xF5, 0x7F, 0xFB, 0xD2, 0x75, 0xEF, 0xB9, 0x6C, 0x3A, 0x36, 0xF6,
+ 0x92, 0xE9, 0xE9, 0x6A, 0x36, 0x6C, 0xB6, 0xDA, 0xFD, 0xC3, 0x64, 0xEA, 0x13, 0x8A, 0xD8, 0x08,
+ 0x1E, 0x79, 0x66, 0x27, 0xE3, 0x47, 0xA6, 0x59, 0x35, 0x3A, 0xC2, 0xA7, 0x6E, 0xBE, 0x9B, 0xEF,
+ 0x6D, 0x7E, 0x0E, 0xEB, 0xF5, 0x20, 0xFD, 0x22, 0x42, 0xFA, 0xB4, 0x5B, 0x54, 0x9D, 0x95, 0xC8,
+ 0xAB, 0x88, 0xEF, 0x76, 0x43, 0x03, 0xE7, 0xF0, 0xA4, 0xA0, 0x94, 0xF3, 0x18, 0x28, 0x65, 0x29,
+ 0x67, 0x3D, 0x3C, 0xE1, 0x10, 0x2E, 0xB1, 0xBA, 0xB0, 0x06, 0xE9, 0x0C, 0xA5, 0x5C, 0xC0, 0x8A,
+ 0x91, 0x7E, 0xBD, 0x72, 0xD9, 0xC0, 0x67, 0x2F, 0xD9, 0xB4, 0xE6, 0x4B, 0xAF, 0x5B, 0x3B, 0x60,
+ 0x9A, 0x91, 0xE6, 0xBA, 0x8B, 0x4E, 0x5D, 0x14, 0xE3, 0xCB, 0x12, 0xF0, 0x82, 0x38, 0x95, 0xB7,
+ 0x9F, 0xBF, 0x9E, 0xF3, 0xAF, 0x3C, 0x9B, 0x2B, 0xCE, 0x3B, 0xF5, 0xB9, 0x83, 0x93, 0x73, 0x26,
+ 0x36, 0xF6, 0xDC, 0xD9, 0xD9, 0xAA, 0x1F, 0x85, 0x61, 0x92, 0x14, 0xD3, 0x82, 0x45, 0x08, 0x09,
+ 0xD2, 0x63, 0xFF, 0xA1, 0x59, 0xEE, 0x7D, 0x78, 0x3B, 0x7B, 0x0F, 0xD7, 0xF1, 0x82, 0x12, 0xB2,
+ 0x93, 0xE8, 0x5C, 0x32, 0x5D, 0x39, 0x9B, 0x36, 0x57, 0xEC, 0xCB, 0x82, 0x4F, 0x4A, 0x59, 0x87,
+ 0xC4, 0x91, 0xF5, 0x25, 0x3D, 0xF9, 0xC4, 0xD5, 0x4B, 0x59, 0x2F, 0x59, 0x66, 0xBB, 0x04, 0xB4,
+ 0xE8, 0x80, 0xB7, 0x14, 0xB2, 0x3E, 0xA3, 0xCB, 0xFA, 0xDD, 0xE8, 0xB2, 0xFE, 0x7F, 0x1E, 0xEA,
+ 0x2F, 0xFF, 0x8D, 0xD1, 0xB6, 0xFE, 0xF4, 0xCE, 0x43, 0x7C, 0xF2, 0x5F, 0x1E, 0x60, 0xE4, 0x8C,
+ 0xB7, 0x52, 0x5C, 0x77, 0x19, 0xB3, 0xCF, 0xFE, 0xF8, 0xD5, 0x11, 0xD0, 0x73, 0xE5, 0x27, 0x31,
+ 0xD6, 0x32, 0x35, 0x53, 0xE7, 0xC7, 0x8F, 0xEF, 0xE2, 0xE3, 0xFF, 0xE1, 0x02, 0xBB, 0x7D, 0xFF,
+ 0xF4, 0x93, 0xBE, 0x92, 0xBE, 0xC5, 0x9D, 0x3D, 0x3B, 0x57, 0xF3, 0xA2, 0x56, 0x88, 0xB3, 0xA6,
+ 0xCB, 0xAA, 0x02, 0x21, 0x14, 0x0E, 0x0F, 0xA9, 0x32, 0x20, 0xD2, 0x32, 0xA3, 0x03, 0xD6, 0x76,
+ 0x48, 0xC0, 0x76, 0xC5, 0x73, 0x97, 0xE0, 0x2C, 0x12, 0x4B, 0xA0, 0x24, 0xC5, 0xAC, 0x47, 0x6F,
+ 0x21, 0xA0, 0x27, 0x1F, 0x90, 0x0B, 0x54, 0x62, 0x71, 0x6B, 0xBB, 0xC0, 0x5B, 0xB0, 0x1A, 0x89,
+ 0xA3, 0x90, 0xF5, 0x59, 0xBE, 0xB4, 0x8F, 0xE5, 0x4B, 0xFB, 0xEF, 0x40, 0x79, 0x37, 0x7E, 0xF4,
+ 0x8F, 0x2E, 0x3C, 0xFC, 0xC3, 0x83, 0x23, 0xF2, 0xF1, 0xE7, 0xC7, 0xC8, 0x67, 0x7C, 0x96, 0x0F,
+ 0x94, 0x78, 0xF1, 0xE0, 0x2C, 0x76, 0xF4, 0x42, 0xEC, 0x9E, 0xFB, 0x5F, 0x3E, 0x07, 0x8C, 0xBC,
+ 0xFD, 0xBF, 0x13, 0xC6, 0x86, 0xD8, 0x58, 0x02, 0x4F, 0x89, 0x30, 0xD2, 0x38, 0x10, 0xD5, 0x47,
+ 0x76, 0x8A, 0xF7, 0x7F, 0xFC, 0xBA, 0x12, 0x71, 0xF4, 0xD1, 0x67, 0x77, 0xEC, 0xFB, 0x4F, 0xDB,
+ 0x9F, 0x7B, 0x31, 0x37, 0x3B, 0x53, 0x4D, 0x16, 0x22, 0x52, 0xA5, 0x9B, 0x27, 0x5D, 0x67, 0xA9,
+ 0x40, 0x76, 0x6F, 0xA9, 0xB5, 0x5B, 0xEA, 0x47, 0x37, 0x58, 0x45, 0x5A, 0x40, 0x29, 0x25, 0xF1,
+ 0x3D, 0x45, 0x26, 0x50, 0x64, 0x03, 0x8F, 0xC0, 0x53, 0x28, 0x99, 0x36, 0x4D, 0xD2, 0x90, 0x11,
+ 0x38, 0x84, 0x73, 0x08, 0x12, 0x42, 0x85, 0xB3, 0x28, 0x01, 0xC5, 0x7C, 0x86, 0x91, 0xA5, 0x03,
+ 0x6E, 0xC9, 0x70, 0xDF, 0x9D, 0x73, 0x4D, 0x7D, 0xE3, 0x97, 0xBF, 0x76, 0xFF, 0xDE, 0xE2, 0x09,
+ 0x03, 0x90, 0x2C, 0x24, 0xAC, 0x00, 0x2B, 0xA5, 0x64, 0x76, 0xAE, 0xE1, 0xCE, 0x58, 0xBF, 0x9C,
+ 0xFE, 0x9E, 0x1C, 0xF7, 0x7E, 0xF6, 0xBD, 0xC7, 0xF7, 0x80, 0x81, 0x8D, 0x57, 0xB2, 0xB4, 0xAF,
+ 0xC8, 0x4C, 0x2D, 0x14, 0xAD, 0x48, 0x0B, 0x92, 0xE9, 0xD2, 0x0B, 0x46, 0xFA, 0x82, 0xCD, 0xCF,
+ 0xEC, 0xC5, 0xCF, 0x66, 0x9F, 0x3A, 0x69, 0xC5, 0x60, 0x54, 0x2C, 0x64, 0x4F, 0x0B, 0xC3, 0x28,
+ 0x17, 0xB6, 0x42, 0x9C, 0xD1, 0x47, 0x2D, 0x6B, 0xDB, 0x96, 0xB2, 0x88, 0xD4, 0xE5, 0x85, 0x4B,
+ 0xF6, 0x18, 0x14, 0xC9, 0xE3, 0x6C, 0x81, 0x92, 0xE4, 0x03, 0x45, 0x21, 0xA3, 0x28, 0xE5, 0x7C,
+ 0xCA, 0x39, 0x9F, 0x52, 0xC6, 0x23, 0xEB, 0x2B, 0x7C, 0x49, 0xBA, 0x1F, 0x69, 0x13, 0x4B, 0xBB,
+ 0x64, 0x5E, 0x17, 0xCE, 0x20, 0xAC, 0xEE, 0xC4, 0x7B, 0x20, 0x05, 0xBD, 0xE5, 0x02, 0xA3, 0xCB,
+ 0x06, 0xA3, 0x9E, 0x4A, 0xE9, 0xDB, 0x5B, 0xF6, 0x4C, 0xFE, 0xFD, 0x6D, 0x3F, 0x7F, 0xF6, 0x48,
+ 0x71, 0xA0, 0x94, 0xCE, 0xB1, 0x47, 0x0D, 0x6C, 0xAD, 0x25, 0x97, 0x0B, 0xB8, 0xEA, 0x9C, 0x93,
+ 0x68, 0x86, 0x9A, 0x0F, 0xDF, 0xF8, 0x5F, 0xB8, 0xEB, 0xFF, 0xDC, 0xB4, 0x88, 0x07, 0x9C, 0xFF,
+ 0x31, 0x0A, 0xD9, 0x00, 0x29, 0x05, 0xCE, 0x39, 0x91, 0xEA, 0xAC, 0x00, 0x1F, 0xC8, 0x00, 0x39,
+ 0x6D, 0x6C, 0xA6, 0x98, 0xCF, 0xE4, 0x2F, 0xDA, 0xB8, 0xFC, 0x2A, 0x11, 0x87, 0x37, 0xEC, 0xDD,
+ 0x3B, 0xBE, 0x6A, 0x7C, 0x7C, 0x82, 0x66, 0xB3, 0x99, 0xF6, 0x03, 0x12, 0xEB, 0x0B, 0x25, 0x91,
+ 0x4A, 0xCD, 0x93, 0xF6, 0x66, 0x87, 0x52, 0xE9, 0x76, 0x7B, 0xBB, 0x84, 0xEE, 0xB4, 0xC8, 0x44,
+ 0x47, 0x73, 0x21, 0xDA, 0x0F, 0x45, 0xBA, 0xA4, 0x35, 0x8F, 0x43, 0xE0, 0x50, 0x02, 0xB2, 0xD9,
+ 0x80, 0x81, 0xBE, 0x1E, 0x06, 0x06, 0x7B, 0xA7, 0x5B, 0x56, 0xDE, 0xF6, 0xC0, 0xD6, 0x03, 0xDF,
+ 0x7A, 0x69, 0xB2, 0x36, 0xE3, 0x7B, 0x32, 0x22, 0xF9, 0xEF, 0x93, 0x56, 0x7A, 0x0E, 0x81, 0x18,
+ 0xD0, 0x4A, 0x0A, 0x7B, 0xCE, 0xA9, 0xA3, 0xEE, 0x47, 0x9F, 0xF9, 0xA6, 0xBB, 0xEB, 0xA1, 0xCF,
+ 0x72, 0xF5, 0xB9, 0x27, 0x2F, 0xE2, 0x01, 0xA3, 0x17, 0x12, 0xCF, 0x35, 0x50, 0x59, 0x5F, 0xC8,
+ 0x64, 0x1D, 0xAB, 0x80, 0x00, 0xC8, 0x02, 0x45, 0xA0, 0x2C, 0xA5, 0xE8, 0x8D, 0xB5, 0xED, 0xDB,
+ 0x31, 0x36, 0x3D, 0xE3, 0x67, 0x33, 0x2F, 0xAE, 0x1C, 0x19, 0x2C, 0xF4, 0xF5, 0x14, 0x87, 0x04,
+ 0x78, 0xCE, 0x18, 0x04, 0x16, 0x25, 0x93, 0xAC, 0xED, 0x49, 0x50, 0x42, 0xA0, 0x64, 0xD2, 0x29,
+ 0x92, 0x24, 0x22, 0x52, 0x0B, 0xCB, 0xD4, 0xA5, 0x85, 0x33, 0xF3, 0x2C, 0x9E, 0x48, 0x12, 0xE7,
+ 0xC2, 0x26, 0xF7, 0x94, 0x58, 0xB2, 0xBE, 0x47, 0x6F, 0xA5, 0xC8, 0xB2, 0xA5, 0x03, 0xA6, 0x50,
+ 0x2E, 0xBD, 0xB0, 0xF3, 0x70, 0xED, 0xF6, 0x9F, 0x3D, 0xBD, 0xEF, 0xF1, 0x5A, 0x33, 0xCA, 0x78,
+ 0x4A, 0x16, 0x52, 0x23, 0xB5, 0x9F, 0x96, 0x4A, 0xD8, 0x4B, 0x43, 0xC1, 0x5A, 0xE7, 0xC2, 0x48,
+ 0xBB, 0xBF, 0xFC, 0xE8, 0x3B, 0xF9, 0xE5, 0x96, 0xFD, 0x3C, 0x75, 0xDF, 0xAD, 0xC7, 0x12, 0x50,
+ 0x38, 0xF9, 0xCD, 0x54, 0x7A, 0x8B, 0x44, 0xDA, 0x08, 0x29, 0x84, 0x24, 0x59, 0x30, 0x05, 0x40,
+ 0x1E, 0x28, 0x03, 0xBD, 0x40, 0xBF, 0x10, 0x0C, 0x48, 0x21, 0x06, 0x0F, 0x4D, 0x37, 0xBC, 0x03,
+ 0x53, 0x8D, 0x03, 0x95, 0x9E, 0xE2, 0xDC, 0x8A, 0x65, 0x03, 0xA5, 0x9E, 0x52, 0xBE, 0x20, 0x85,
+ 0x94, 0xAE, 0xAB, 0x7A, 0x4B, 0x2C, 0x67, 0x3B, 0xC0, 0x65, 0x1A, 0xCB, 0x12, 0xDB, 0x05, 0xD6,
+ 0xCE, 0x07, 0x9E, 0x82, 0x97, 0x24, 0x44, 0x66, 0x03, 0x9F, 0xDE, 0x9E, 0x22, 0x4B, 0x87, 0xFB,
+ 0xE9, 0x1B, 0xE8, 0x9D, 0x3E, 0xDC, 0x30, 0x8F, 0x6D, 0x7E, 0xEE, 0xE0, 0x43, 0xBB, 0xC6, 0x67,
+ 0x66, 0x85, 0xA0, 0x24, 0x84, 0x28, 0xA4, 0x46, 0x0A, 0xBA, 0x42, 0xDB, 0x92, 0xF4, 0xD0, 0x34,
+ 0x60, 0x85, 0x10, 0xB6, 0x15, 0x6A, 0xFA, 0x4A, 0x39, 0xB7, 0xEB, 0xC0, 0x24, 0xFB, 0x1E, 0xBF,
+ 0xEB, 0x58, 0x02, 0xD6, 0x5F, 0x70, 0x1D, 0x2B, 0x86, 0x7B, 0x38, 0x3C, 0x5D, 0x97, 0x2E, 0x8D,
+ 0xFD, 0x94, 0xD5, 0x36, 0x01, 0x15, 0xA0, 0xAF, 0x2D, 0x52, 0x88, 0x5E, 0xAD, 0x6D, 0x79, 0x7C,
+ 0xAA, 0xD6, 0x3C, 0x52, 0x8B, 0x0F, 0xF6, 0xF4, 0x94, 0x1A, 0xCB, 0x96, 0xF4, 0x65, 0x06, 0x7A,
+ 0xCB, 0x99, 0x6C, 0x36, 0x90, 0x2A, 0xDD, 0x5D, 0x92, 0x0B, 0xAC, 0xDF, 0x26, 0xA1, 0x9D, 0xD4,
+ 0xDA, 0x16, 0x4E, 0xBC, 0x24, 0x79, 0x04, 0x37, 0x1B, 0xF8, 0x14, 0x8B, 0x39, 0x06, 0xFA, 0x7A,
+ 0x18, 0x1E, 0xEE, 0xB7, 0xA5, 0x4A, 0xCF, 0xDC, 0x74, 0xC4, 0xCE, 0x27, 0x76, 0x4F, 0x3E, 0xB3,
+ 0x6D, 0xEF, 0xE4, 0xC1, 0x30, 0xD2, 0x9E, 0x94, 0x22, 0x9F, 0xEA, 0x17, 0xA4, 0xBA, 0xB6, 0x9F,
+ 0x59, 0x35, 0xA9, 0xEB, 0x47, 0xED, 0x10, 0x20, 0xE9, 0x9C, 0xB9, 0xB1, 0x23, 0x73, 0xEE, 0xE0,
+ 0x74, 0x83, 0xE6, 0x0B, 0xF7, 0x1D, 0xBB, 0x1C, 0x56, 0x69, 0x5C, 0x2E, 0xD8, 0x67, 0x6C, 0x27,
+ 0x42, 0x95, 0x0E, 0xE2, 0xA7, 0x03, 0x06, 0x40, 0x46, 0x08, 0x32, 0x02, 0x91, 0x99, 0xA9, 0x35,
+ 0x79, 0xF4, 0x85, 0xE6, 0xDE, 0x52, 0x3E, 0x33, 0x31, 0x3A, 0x50, 0x1C, 0x58, 0x32, 0xB4, 0x64,
+ 0xC9, 0xE0, 0x12, 0xD7, 0x6F, 0xA2, 0xB0, 0xD0, 0x6A, 0xB6, 0xBC, 0x56, 0x2B, 0x24, 0x8A, 0x22,
+ 0x74, 0x6C, 0xB0, 0xF6, 0x68, 0x67, 0x56, 0x4A, 0x81, 0x54, 0x12, 0xDF, 0xF3, 0x08, 0x02, 0x9F,
+ 0x4C, 0x26, 0x20, 0x9B, 0xCD, 0x90, 0xCB, 0x65, 0x8D, 0xF4, 0xFD, 0x56, 0xD3, 0x30, 0xB3, 0x6F,
+ 0xA6, 0x75, 0x68, 0xCF, 0xC4, 0xF4, 0x91, 0xA9, 0xB9, 0x56, 0xDD, 0xE1, 0xAC, 0x14, 0x22, 0x07,
+ 0x22, 0x4E, 0xC1, 0xB5, 0x5D, 0x3D, 0xEE, 0xD2, 0xCB, 0x4B, 0xF5, 0x95, 0xA9, 0x74, 0xF2, 0x9D,
+ 0x36, 0x4E, 0xD8, 0x74, 0xBD, 0x7E, 0x0C, 0x01, 0xA6, 0xF3, 0x9C, 0xCE, 0xBC, 0x8F, 0xDB, 0x71,
+ 0xD4, 0xCD, 0x6A, 0x98, 0x4A, 0x7B, 0x5F, 0xDA, 0x09, 0x21, 0xAC, 0x00, 0xAF, 0xD6, 0x88, 0xEC,
+ 0xB6, 0xBD, 0x93, 0x8D, 0xE7, 0x95, 0x1C, 0xAB, 0x14, 0x32, 0xB9, 0xC1, 0x9E, 0x5C, 0xB9, 0xBF,
+ 0x58, 0xAE, 0x94, 0xCB, 0xB2, 0xE4, 0x4B, 0xF2, 0x9E, 0x20, 0x27, 0x70, 0x7E, 0xB2, 0xA9, 0x97,
+ 0xF4, 0x4B, 0xA4, 0x94, 0x0E, 0x21, 0x63, 0xED, 0x68, 0xC5, 0x96, 0x66, 0x2B, 0xB6, 0xF5, 0xF1,
+ 0xE9, 0x70, 0xF6, 0xD0, 0xCC, 0xDC, 0xDC, 0x74, 0xAD, 0xD5, 0x88, 0x62, 0xA3, 0x11, 0x38, 0x29,
+ 0x84, 0x15, 0x49, 0x73, 0xBC, 0xAD, 0x4B, 0x9C, 0xEA, 0xD1, 0xEA, 0xD2, 0xA9, 0x93, 0xF8, 0xDA,
+ 0xF1, 0xDF, 0x6D, 0xCE, 0xC0, 0x57, 0xAE, 0xFD, 0xF6, 0x18, 0x02, 0x76, 0x8D, 0x4F, 0x93, 0xCF,
+ 0xD4, 0x88, 0x8D, 0x71, 0x4A, 0xCA, 0x36, 0x70, 0x9D, 0x82, 0x6E, 0x74, 0x25, 0x19, 0xD2, 0x41,
+ 0x9A, 0x69, 0xEC, 0x65, 0xD3, 0xCF, 0x93, 0xC7, 0x78, 0x84, 0xF0, 0x9C, 0x73, 0x72, 0xAA, 0xDA,
+ 0x94, 0x47, 0xE6, 0x9A, 0x07, 0x85, 0x40, 0x7A, 0x4A, 0xAA, 0x8C, 0xEF, 0x79, 0xB9, 0x8C, 0xE7,
+ 0x67, 0x7D, 0x15, 0x28, 0x21, 0x54, 0xBA, 0x45, 0xE3, 0xAC, 0xC5, 0x46, 0xDA, 0xE8, 0x46, 0x18,
+ 0xC7, 0xAD, 0xC8, 0xC4, 0xDA, 0x58, 0x6B, 0x9D, 0xB3, 0x49, 0x57, 0x5E, 0x38, 0x29, 0x85, 0x65,
+ 0x7E, 0x4C, 0xEB, 0x2E, 0xBD, 0xDA, 0x04, 0x34, 0x80, 0x2A, 0x30, 0x9B, 0x9E, 0x1B, 0xE9, 0x77,
+ 0x6D, 0x22, 0x9C, 0xA7, 0x04, 0x6F, 0x39, 0x7B, 0x2D, 0xBB, 0xC7, 0xA6, 0xF8, 0xE9, 0x62, 0x04,
+ 0xD4, 0x1B, 0x21, 0xF5, 0x23, 0x73, 0xE4, 0xFA, 0x8A, 0xDD, 0x96, 0x6F, 0x03, 0x6D, 0x67, 0x56,
+ 0x9D, 0xBE, 0xAF, 0x02, 0xB9, 0x14, 0x7C, 0x9B, 0x98, 0xB6, 0x78, 0x80, 0x12, 0x42, 0x28, 0x95,
+ 0xFC, 0xC3, 0x98, 0xB4, 0xD6, 0xC9, 0x46, 0x2B, 0x16, 0xF5, 0x56, 0x24, 0xE9, 0xD8, 0xE0, 0xA8,
+ 0x6B, 0x0A, 0x91, 0xB4, 0xD4, 0x84, 0x48, 0xB6, 0x23, 0x94, 0xE8, 0x80, 0xEE, 0x06, 0xDF, 0x4D,
+ 0x40, 0xDB, 0x1B, 0x23, 0x8E, 0x4E, 0x7B, 0x0D, 0xA0, 0x96, 0xEA, 0x56, 0x4D, 0x3F, 0x8B, 0x01,
+ 0xE3, 0x9C, 0x73, 0xC3, 0xBD, 0x25, 0xF7, 0xBA, 0x93, 0x96, 0x52, 0xC8, 0x07, 0x8B, 0x13, 0x80,
+ 0x10, 0xE4, 0xFB, 0x4B, 0x48, 0x21, 0x3A, 0x2D, 0xC0, 0x54, 0xC9, 0xB0, 0x2B, 0xB9, 0x84, 0xE9,
+ 0x20, 0x6D, 0xCB, 0xB7, 0xE3, 0xAE, 0x1B, 0x7C, 0x3B, 0x06, 0xDB, 0x71, 0xA8, 0x20, 0x9D, 0xF2,
+ 0x11, 0xB2, 0xB3, 0x39, 0x37, 0x9F, 0x04, 0xD7, 0x75, 0xB6, 0x5D, 0xE7, 0xE3, 0x59, 0x7F, 0x31,
+ 0x12, 0x42, 0xE6, 0xD7, 0x01, 0xED, 0x24, 0x68, 0x00, 0xE7, 0xFB, 0xCA, 0x7D, 0xE0, 0xBA, 0x73,
+ 0x78, 0x70, 0xCB, 0x5E, 0x3E, 0xB7, 0x28, 0x01, 0x0F, 0x7E, 0x02, 0xF9, 0xE6, 0x4F, 0x2C, 0x8C,
+ 0x7F, 0xDD, 0xA5, 0x8C, 0x4E, 0x6F, 0xEE, 0x2F, 0x22, 0x0B, 0x81, 0x77, 0x13, 0xD0, 0x9D, 0x8C,
+ 0xDA, 0x49, 0xF5, 0x78, 0xC7, 0xF1, 0x08, 0x68, 0x8F, 0x6F, 0xBA, 0xA4, 0x1D, 0xEB, 0x71, 0x97,
+ 0x44, 0x5D, 0x9F, 0xB5, 0xAF, 0x77, 0x80, 0xDB, 0xB6, 0x65, 0x3F, 0x1B, 0xFE, 0xE8, 0xF3, 0x8C,
+ 0x4D, 0xCC, 0xC1, 0xA2, 0x04, 0x1C, 0xAB, 0x48, 0xFB, 0xDC, 0x4D, 0x40, 0xDC, 0x65, 0xD5, 0xC5,
+ 0xC0, 0x76, 0xBF, 0x6E, 0x17, 0x53, 0x62, 0x81, 0xBC, 0x12, 0x01, 0xDD, 0x63, 0x2E, 0x46, 0x84,
+ 0x59, 0x40, 0x48, 0x77, 0x88, 0x98, 0x45, 0xAE, 0x47, 0x08, 0xE1, 0x0A, 0x03, 0x45, 0x76, 0x8D,
+ 0x4D, 0x71, 0xFD, 0x25, 0x1B, 0xE7, 0xB9, 0xDE, 0x31, 0x47, 0x71, 0xBE, 0x17, 0x74, 0x5F, 0xDB,
+ 0x0D, 0xA0, 0xFB, 0xB5, 0x5C, 0xE4, 0xBB, 0xEE, 0xCF, 0xBA, 0x85, 0x45, 0xCE, 0x0B, 0x09, 0x5F,
+ 0x48, 0xC4, 0x42, 0x42, 0x16, 0x92, 0xB3, 0xF0, 0xBC, 0xF0, 0xF7, 0x9D, 0xA3, 0x76, 0xEF, 0xC7,
+ 0x8E, 0x01, 0xF5, 0x6A, 0x49, 0x58, 0x4C, 0xF1, 0x85, 0xC4, 0x74, 0xBF, 0x7E, 0x25, 0xC0, 0xAF,
+ 0x74, 0x1C, 0x8F, 0x90, 0xC5, 0xC8, 0xE1, 0x65, 0xCE, 0x8B, 0x82, 0x07, 0xF8, 0xBF, 0xBC, 0x7A,
+ 0x38, 0x97, 0x7C, 0xD1, 0xFC, 0xA1, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61,
+ 0x74, 0x65, 0x3A, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x00, 0x32, 0x30, 0x32, 0x30, 0x2D, 0x30,
+ 0x33, 0x2D, 0x31, 0x39, 0x54, 0x31, 0x30, 0x3A, 0x35, 0x30, 0x3A, 0x35, 0x38, 0x2B, 0x30, 0x30,
+ 0x3A, 0x30, 0x30, 0x62, 0x40, 0x28, 0xF1, 0x00, 0x00, 0x00, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64,
+ 0x61, 0x74, 0x65, 0x3A, 0x6D, 0x6F, 0x64, 0x69, 0x66, 0x79, 0x00, 0x32, 0x30, 0x31, 0x39, 0x2D,
+ 0x30, 0x31, 0x2D, 0x30, 0x38, 0x54, 0x31, 0x35, 0x3A, 0x35, 0x34, 0x3A, 0x32, 0x33, 0x2B, 0x30,
+ 0x30, 0x3A, 0x30, 0x30, 0x8A, 0xEF, 0xF9, 0x19, 0x00, 0x00, 0x00, 0x20, 0x74, 0x45, 0x58, 0x74,
+ 0x73, 0x6F, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x00, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F,
+ 0x2F, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x6D, 0x61, 0x67, 0x69, 0x63, 0x6B, 0x2E, 0x6F, 0x72, 0x67,
+ 0xBC, 0xCF, 0x1D, 0x9D, 0x00, 0x00, 0x00, 0x18, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D,
+ 0x62, 0x3A, 0x3A, 0x44, 0x6F, 0x63, 0x75, 0x6D, 0x65, 0x6E, 0x74, 0x3A, 0x3A, 0x50, 0x61, 0x67,
+ 0x65, 0x73, 0x00, 0x31, 0xA7, 0xFF, 0xBB, 0x2F, 0x00, 0x00, 0x00, 0x18, 0x74, 0x45, 0x58, 0x74,
+ 0x54, 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x49, 0x6D, 0x61, 0x67, 0x65, 0x3A, 0x3A, 0x48, 0x65,
+ 0x69, 0x67, 0x68, 0x74, 0x00, 0x31, 0x32, 0x38, 0x43, 0x7C, 0x41, 0x80, 0x00, 0x00, 0x00, 0x17,
+ 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x49, 0x6D, 0x61, 0x67, 0x65,
+ 0x3A, 0x3A, 0x57, 0x69, 0x64, 0x74, 0x68, 0x00, 0x31, 0x32, 0x38, 0xD0, 0x8D, 0x11, 0xDD, 0x00,
+ 0x00, 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x4D, 0x69,
+ 0x6D, 0x65, 0x74, 0x79, 0x70, 0x65, 0x00, 0x69, 0x6D, 0x61, 0x67, 0x65, 0x2F, 0x70, 0x6E, 0x67,
+ 0x3F, 0xB2, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x17, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75, 0x6D,
+ 0x62, 0x3A, 0x3A, 0x4D, 0x54, 0x69, 0x6D, 0x65, 0x00, 0x31, 0x35, 0x34, 0x36, 0x39, 0x36, 0x32,
+ 0x38, 0x36, 0x33, 0x1F, 0x1E, 0xB3, 0x01, 0x00, 0x00, 0x00, 0x12, 0x74, 0x45, 0x58, 0x74, 0x54,
+ 0x68, 0x75, 0x6D, 0x62, 0x3A, 0x3A, 0x53, 0x69, 0x7A, 0x65, 0x00, 0x31, 0x39, 0x32, 0x37, 0x34,
+ 0x42, 0x0A, 0x19, 0xAB, 0x42, 0x00, 0x00, 0x00, 0x56, 0x74, 0x45, 0x58, 0x74, 0x54, 0x68, 0x75,
+ 0x6D, 0x62, 0x3A, 0x3A, 0x55, 0x52, 0x49, 0x00, 0x66, 0x69, 0x6C, 0x65, 0x3A, 0x2F, 0x2F, 0x2F,
+ 0x64, 0x61, 0x74, 0x61, 0x2F, 0x77, 0x77, 0x77, 0x72, 0x6F, 0x6F, 0x74, 0x2F, 0x77, 0x77, 0x77,
+ 0x2E, 0x65, 0x61, 0x73, 0x79, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x6E, 0x65, 0x74, 0x2F, 0x63, 0x64,
+ 0x6E, 0x2D, 0x69, 0x6D, 0x67, 0x2E, 0x65, 0x61, 0x73, 0x79, 0x69, 0x63, 0x6F, 0x6E, 0x2E, 0x63,
+ 0x6E, 0x2F, 0x66, 0x69, 0x6C, 0x65, 0x73, 0x2F, 0x32, 0x2F, 0x32, 0x39, 0x31, 0x36, 0x35, 0x2E,
+ 0x70, 0x6E, 0x67, 0xBF, 0x98, 0x5F, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E, 0x44, 0xAE,
+ 0x42, 0x60, 0x82
+};
+
+void *get_window_icon_raw_data(int *len)
+{
+ *len = (int)sizeof(window_icon_hexData);
+ return window_icon_hexData;
+}
+
diff --git a/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c b/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c
index 77fcebff..31131578 100644
--- a/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c
+++ b/LinuxGUI/Ventoy2Disk/Web/ventoy_http.c
@@ -31,6 +31,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -160,9 +161,10 @@ static int ventoy_http_save_cfg(void)
{
FILE *fp;
- fp = fopen("./Ventoy2Disk.ini", "w");
+ fp = fopen(g_ini_file, "w");
if (!fp)
{
+ vlog("Failed to open %s code:%d\n", g_ini_file, errno);
return 0;
}
@@ -180,7 +182,7 @@ static int ventoy_http_load_cfg(void)
char line[256];
FILE *fp;
- fp = fopen("./Ventoy2Disk.ini", "r");
+ fp = fopen(g_ini_file, "r");
if (!fp)
{
return 0;
@@ -1499,7 +1501,7 @@ int ventoy_http_start(const char *ip, const char *port)
{
"listening_ports", "24680",
"document_root", "WebUI",
- "error_log_file", VTOY_LOG_FILE,
+ "error_log_file", g_log_file,
"request_timeout_ms", "10000",
NULL
};
diff --git a/LinuxGUI/Ventoy2Disk/main_gtk.c b/LinuxGUI/Ventoy2Disk/main_gtk.c
index 55609919..1957a430 100644
--- a/LinuxGUI/Ventoy2Disk/main_gtk.c
+++ b/LinuxGUI/Ventoy2Disk/main_gtk.c
@@ -8,10 +8,15 @@
#include
#include
#include
+#include
+#include
#include
#include
#include "ventoy_gtk.h"
+char g_log_file[PATH_MAX];
+char g_ini_file[PATH_MAX];
+
static int set_image_from_pixbuf(GtkBuilder *pBuilder, const char *id, const void *pData, int len)
{
GtkImage *pImage = NULL;
@@ -53,6 +58,7 @@ int early_msgbox(GtkMessageType type, GtkButtonsType buttons, const char *str)
int main(int argc, char *argv[])
{
+ int i;
int len;
const void *pData = NULL;
GtkWidget *pWidget = NULL;
@@ -74,6 +80,20 @@ int main(int argc, char *argv[])
return 1;
}
+ snprintf(g_log_file, sizeof(g_log_file), "log.txt");
+ snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini");
+ for (i = 0; i < argc; i++)
+ {
+ if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0)
+ {
+ snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]);
+ }
+ else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0)
+ {
+ snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]);
+ }
+ }
+
ventoy_log_init();
vlog("================================================\n");
@@ -113,6 +133,7 @@ int main(int argc, char *argv[])
on_init_window(pBuilder);
g_signal_connect(G_OBJECT(pWidget), "delete_event", G_CALLBACK(on_exit_window), NULL);
+ g_signal_connect(G_OBJECT(pWidget), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_main();
diff --git a/LinuxGUI/Ventoy2Disk/main_webui.c b/LinuxGUI/Ventoy2Disk/main_webui.c
index e12208ef..2b782cc5 100644
--- a/LinuxGUI/Ventoy2Disk/main_webui.c
+++ b/LinuxGUI/Ventoy2Disk/main_webui.c
@@ -7,12 +7,17 @@
#include
#include
#include
+#include
+#include
#include
#include
#include
#include
#include
+char g_log_file[PATH_MAX];
+char g_ini_file[PATH_MAX];
+
int ventoy_log_init(void);
void ventoy_log_exit(void);
@@ -30,6 +35,7 @@ void ventoy_signal_stop(int sig)
int main(int argc, char **argv)
{
+ int i;
int rc;
const char *ip = "127.0.0.1";
const char *port = "24680";
@@ -50,6 +56,20 @@ int main(int argc, char **argv)
port = argv[2];
}
+ snprintf(g_log_file, sizeof(g_log_file), "log.txt");
+ snprintf(g_ini_file, sizeof(g_ini_file), "./Ventoy2Disk.ini");
+ for (i = 0; i < argc; i++)
+ {
+ if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0)
+ {
+ snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]);
+ }
+ else if (argv[i] && argv[i + 1] && strcmp(argv[i], "-i") == 0)
+ {
+ snprintf(g_ini_file, sizeof(g_ini_file), "%s", argv[i + 1]);
+ }
+ }
+
ventoy_log_init();
vlog("===============================================\n");
diff --git a/LinuxGUI/Ventoy2Disk/ventoy_gui.c b/LinuxGUI/Ventoy2Disk/ventoy_gui.c
index d0c92037..795f3fd2 100644
--- a/LinuxGUI/Ventoy2Disk/ventoy_gui.c
+++ b/LinuxGUI/Ventoy2Disk/ventoy_gui.c
@@ -9,9 +9,11 @@
#include
#include
#include
+#include
#include
#include
#include
+#include "ventoy_json.h"
#define LIB_FLAG_GTK2 (1 << 0)
#define LIB_FLAG_GTK3 (1 << 1)
@@ -31,6 +33,7 @@
#define LD_CACHE_FILE "/etc/ld.so.cache"
#define INT2STR_YN(a) ((a) == 0 ? "NO" : "YES")
+static char g_log_file[PATH_MAX];
static char *g_log_buf = NULL;
extern char ** environ;
@@ -78,7 +81,9 @@ struct cache_file_new
(((addr) + __alignof__ (struct cache_file_new) -1) \
& (~(__alignof__ (struct cache_file_new) - 1)))
-static void vlog(const char *Fmt, ...)
+#define vlog(fmt, args...) ventoy_syslog(0, fmt, ##args)
+
+void ventoy_syslog(int level, const char *Fmt, ...)
{
int buflen;
char *buf = NULL;
@@ -87,6 +92,8 @@ static void vlog(const char *Fmt, ...)
time_t stamp;
struct tm ttm;
FILE *fp;
+
+ (void)level;
time(&stamp);
localtime_r(&stamp, &ttm);
@@ -106,7 +113,7 @@ static void vlog(const char *Fmt, ...)
vsnprintf(buf, buflen, Fmt, arg);
va_end(arg);
- fp = fopen("log.txt", "a+");
+ fp = fopen(g_log_file, "a+");
if (fp)
{
fprintf(fp, "[%04u/%02u/%02u %02u:%02u:%02u] %s",
@@ -116,10 +123,12 @@ static void vlog(const char *Fmt, ...)
fclose(fp);
}
+ #if 0
printf("[%04u/%02u/%02u %02u:%02u:%02u] %s",
ttm.tm_year + 1900, ttm.tm_mon, ttm.tm_mday,
ttm.tm_hour, ttm.tm_min, ttm.tm_sec,
buf);
+ #endif
}
static int is_gtk_env(void)
@@ -223,16 +232,16 @@ static int detect_qt_version(int libflag)
return 5;
}
- if (qt4 > 0)
- {
- return 4;
- }
-
if (qt6 > 0)
{
return 6;
}
+ if (qt4 > 0)
+ {
+ return 4;
+ }
+
return 0;
}
@@ -622,7 +631,7 @@ static int ld_cache_lib_check(const char *lib, int *flag)
if (((*flag) & LIB_FLAG_QT4) == 0)
{
- if (strncmp(lib, "libqt4", 6) == 0)
+ if (strncmp(lib, "libQt4", 6) == 0)
{
vlog("LIB:<%s>\n", lib);
*flag |= LIB_FLAG_QT4;
@@ -632,7 +641,7 @@ static int ld_cache_lib_check(const char *lib, int *flag)
if (((*flag) & LIB_FLAG_QT5) == 0)
{
- if (strncmp(lib, "libqt5", 6) == 0)
+ if (strncmp(lib, "libQt5", 6) == 0)
{
vlog("LIB:<%s>\n", lib);
*flag |= LIB_FLAG_QT5;
@@ -642,7 +651,7 @@ static int ld_cache_lib_check(const char *lib, int *flag)
if (((*flag) & LIB_FLAG_QT6) == 0)
{
- if (strncmp(lib, "libqt6", 6) == 0)
+ if (strncmp(lib, "libQt6", 6) == 0)
{
vlog("LIB:<%s>\n", lib);
*flag |= LIB_FLAG_QT6;
@@ -783,6 +792,176 @@ static int parse_ld_cache(int *flag)
return 0;
}
+static int gui_type_check(VTOY_JSON *pstNode)
+{
+ FILE *fp = NULL;
+ const char *env = NULL;
+ const char *arch = NULL;
+ const char *srctype = NULL;
+ const char *srcname = NULL;
+ const char *condition = NULL;
+ const char *expression = NULL;
+ char line[1024];
+
+ arch = vtoy_json_get_string_ex(pstNode, "arch");
+ srctype = vtoy_json_get_string_ex(pstNode, "type");
+ srcname = vtoy_json_get_string_ex(pstNode, "name");
+ condition = vtoy_json_get_string_ex(pstNode, "condition");
+ expression = vtoy_json_get_string_ex(pstNode, "expression");
+
+ if (srctype == NULL || srcname == NULL || condition == NULL)
+ {
+ return 0;
+ }
+
+ if (arch && NULL == strstr(arch, VTOY_GUI_ARCH))
+ {
+ return 0;
+ }
+
+ vlog("check <%s> <%s> <%s>\n", srctype, srcname, condition);
+
+ if (strcmp(srctype, "file") == 0)
+ {
+ if (access(srcname, F_OK) == -1)
+ {
+ return 0;
+ }
+
+ if (strcmp(condition, "exist") == 0)
+ {
+ vlog("File %s exist\n", srcname);
+ return 1;
+ }
+ else if (strcmp(condition, "contains") == 0)
+ {
+ fp = fopen(srcname, "r");
+ if (fp == NULL)
+ {
+ return 0;
+ }
+
+ while (fgets(line, sizeof(line), fp))
+ {
+ if (strstr(line, expression))
+ {
+ vlog("File %s contains %s\n", srcname, expression);
+ fclose(fp);
+ return 1;
+ }
+ }
+
+ fclose(fp);
+ return 0;
+ }
+ }
+ else if (strcmp(srctype, "env") == 0)
+ {
+ env = getenv(srcname);
+ if (env == NULL)
+ {
+ return 0;
+ }
+
+ if (strcmp(condition, "exist") == 0)
+ {
+ vlog("env %s exist\n", srcname);
+ return 1;
+ }
+ else if (strcmp(condition, "equal") == 0)
+ {
+ if (strcmp(expression, env) == 0)
+ {
+ vlog("env %s is %s\n", srcname, env);
+ return 1;
+ }
+ return 0;
+ }
+ else if (strcmp(condition, "contains") == 0)
+ {
+ if (strstr(env, expression))
+ {
+ vlog("env %s is %s contains %s\n", srcname, env, expression);
+ return 1;
+ }
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+static int read_file_to_buf(const char *FileName, int ExtLen, void **Bufer, int *BufLen)
+{
+ int FileSize;
+ FILE *fp = NULL;
+ void *Data = NULL;
+
+ fp = fopen(FileName, "rb");
+ if (fp == NULL)
+ {
+ vlog("Failed to open file %s", FileName);
+ return 1;
+ }
+
+ fseek(fp, 0, SEEK_END);
+ FileSize = (int)ftell(fp);
+
+ Data = malloc(FileSize + ExtLen);
+ if (!Data)
+ {
+ fclose(fp);
+ return 1;
+ }
+
+ fseek(fp, 0, SEEK_SET);
+ fread(Data, 1, FileSize, fp);
+
+ fclose(fp);
+
+ *Bufer = Data;
+ *BufLen = FileSize;
+
+ return 0;
+}
+
+static int distro_check_gui_env(char *type, int len, int *pver)
+{
+ int size;
+ int length;
+ char *pBuf = NULL;
+ VTOY_JSON *pstNode = NULL;
+ VTOY_JSON *pstJson = NULL;
+
+ vlog("distro_check_gui_env ...\n");
+
+ if (access("./tool/distro_gui_type.json", F_OK) == -1)
+ {
+ vlog("distro_gui_type.json file not exist\n");
+ return 0;
+ }
+
+ read_file_to_buf("./tool/distro_gui_type.json", 1, (void **)&pBuf, &size);
+ pBuf[size] = 0;
+
+ pstJson = vtoy_json_create();
+ vtoy_json_parse(pstJson, pBuf);
+
+ for (pstNode = pstJson->pstChild; pstNode; pstNode = pstNode->pstNext)
+ {
+ if (gui_type_check(pstNode->pstChild))
+ {
+ length = (int)snprintf(type, len, "%s", vtoy_json_get_string_ex(pstNode->pstChild, "gui"));
+ *pver = type[length - 1] - '0';
+ type[length - 1] = 0;
+ break;
+ }
+ }
+
+ vtoy_json_destroy(pstJson);
+ return pstNode ? 1 : 0;
+}
+
static int detect_gui_exe_path(const char *curpath, char *pathbuf, int buflen)
{
int ret;
@@ -860,7 +1039,12 @@ static int detect_gui_exe_path(const char *curpath, char *pathbuf, int buflen)
}
else if ((LIB_FLAG_GTK & libflag) > 0 && (LIB_FLAG_QT & libflag) > 0)
{
- if (is_gtk_env())
+ if (distro_check_gui_env(line, sizeof(line), &ver))
+ {
+ guitype = line;
+ vlog("distro_check_gui <%s%d> ...\n", line, ver);
+ }
+ else if (is_gtk_env())
{
guitype = "gtk";
ver = detect_gtk_version(libflag);
@@ -872,8 +1056,9 @@ static int detect_gui_exe_path(const char *curpath, char *pathbuf, int buflen)
}
else
{
- vlog("Current X environment is NOT supported.\n");
- return 1;
+ vlog("Can not distinguish GTK and QT, default use GTK.\n");
+ guitype = "gtk";
+ ver = detect_gtk_version(libflag);
}
}
else
@@ -989,8 +1174,19 @@ int real_main(int argc, char **argv)
int main(int argc, char **argv)
{
+ int i;
int ret;
+ snprintf(g_log_file, sizeof(g_log_file), "log.txt");
+ for (i = 0; i < argc; i++)
+ {
+ if (argv[i] && argv[i + 1] && strcmp(argv[i], "-l") == 0)
+ {
+ snprintf(g_log_file, sizeof(g_log_file), "%s", argv[i + 1]);
+ break;
+ }
+ }
+
g_log_buf = malloc(MAX_LOG_BUF);
if (!g_log_buf)
{
diff --git a/LinuxGUI/build_gtk.sh b/LinuxGUI/build_gtk.sh
index 86fd6131..6e7aa518 100644
--- a/LinuxGUI/build_gtk.sh
+++ b/LinuxGUI/build_gtk.sh
@@ -81,15 +81,19 @@ build_func() {
rm -f ../INSTALL/tool/$toolDir/Ventoy2Disk.${gtkver}_$libsuffix
cp -a Ventoy2Disk.${gtkver}_$libsuffix ../INSTALL/tool/$toolDir/Ventoy2Disk.${gtkver}
- $1 -D_FILE_OFFSET_BITS=64 Ventoy2Disk/ventoy_gui.c -DVTOY_GUI_ARCH="\"$toolDir\"" -o VentoyGUI.$toolDir
- cp -a VentoyGUI.$toolDir ../INSTALL/
+ $1 -O2 -D_FILE_OFFSET_BITS=64 Ventoy2Disk/ventoy_gui.c Ventoy2Disk/Core/ventoy_json.c -I Ventoy2Disk/Core -DVTOY_GUI_ARCH="\"$toolDir\"" -o VentoyGUI.$toolDir
+ cp -a VentoyGUI.$toolDir ../INSTALL/
}
+
build_func "gcc" '64' 'x86_64' 'gtk2'
build_func "gcc" '64' 'x86_64' 'gtk3'
+
build_func "gcc -m32" '32' 'i386' 'gtk2'
build_func "gcc -m32" '32' 'i386' 'gtk3'
build_func "aarch64-linux-gnu-gcc" 'aa64' 'aarch64' 'gtk3'
+
+export PATH=/opt/mips-loongson-gcc8-linux-gnu-2021-02-08/bin/:$PATH
build_func "mips-linux-gnu-gcc -mips64r2 -mabi=64" 'm64e' 'mips64el' 'gtk3'
diff --git a/LinuxGUI/build_qt.sh b/LinuxGUI/build_qt.sh
new file mode 100644
index 00000000..dd5b44c1
--- /dev/null
+++ b/LinuxGUI/build_qt.sh
@@ -0,0 +1,168 @@
+#!/bin/bash
+
+force_copy() {
+ [ -e "$2" ] && rm -f "$2"
+ cp -a "$1" "$2"
+}
+
+compile_file() {
+ name=$(basename $2)
+ obj=${name%.*}
+
+ echo "$1 ${obj}.o ..."
+ $1 -O2 -Wall -std=gnu99 -Wno-unused-function -Wno-format-truncation -Wno-address-of-packed-member -DSTATIC=static -DINIT= -D_FILE_OFFSET_BITS=64 \
+ -I./Ventoy2Disk \
+ -I./Ventoy2Disk/Core \
+ -I./Ventoy2Disk/Web \
+ -I./Ventoy2Disk/QT \
+ -I./Ventoy2Disk/Include \
+ -I./Ventoy2Disk/Lib/libhttp/include \
+ -I./Ventoy2Disk/Lib/fat_io_lib/include \
+ -I./Ventoy2Disk/Lib/xz-embedded/linux/include \
+ -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux \
+ -I./Ventoy2Disk/Lib/xz-embedded/userspace \
+ -I ./Ventoy2Disk/Lib/exfat/src/libexfat \
+ -I ./Ventoy2Disk/Lib/exfat/src/mkfs \
+ -I ./Ventoy2Disk/Lib/fat_io_lib \
+ -c $2 -o ${obj}.o
+}
+
+compile_dir() {
+ dir=$1
+ for i in $(ls $dir/*.c); do
+ compile_file "$2" "$i"
+ done
+}
+
+compile_lib() {
+ compile_dir ./Ventoy2Disk/Core "$1"
+ compile_dir ./Ventoy2Disk/Web "$1"
+ compile_dir ./Ventoy2Disk/QT "$1"
+ compile_dir ./Ventoy2Disk/Lib/exfat/src/libexfat "$1"
+ compile_dir ./Ventoy2Disk/Lib/exfat/src/mkfs "$1"
+ compile_dir ./Ventoy2Disk/Lib/fat_io_lib "$1"
+ compile_file "$1" Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c
+
+ rm -f libVentoyQT_$3.a
+ $2 -rcs libVentoyQT_$3.a *.o
+ rm -f *.o
+}
+
+build_qt() {
+ echo "$1 main.o ..."
+ $1 -c $2 $3 -o main.o ./Ventoy2Disk/QT/main.cpp
+
+ echo "$1 partcfgdialog.o ..."
+ $1 -c $2 $3 -o partcfgdialog.o ./Ventoy2Disk/QT/partcfgdialog.cpp
+
+ echo "$1 ventoy2diskwindow.o ..."
+ $1 -c $2 $3 -o ventoy2diskwindow.o ./Ventoy2Disk/QT/ventoy2diskwindow.cpp
+
+ echo "$1 moc_partcfgdialog.o ..."
+ $1 -c $2 $3 -o moc_partcfgdialog.o ./Ventoy2Disk/QT/build/moc_partcfgdialog.cpp
+
+ echo "$1 moc_ventoy2diskwindow.o ..."
+ $1 -c $2 $3 -o moc_ventoy2diskwindow.o ./Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp
+
+ echo "$1 Ventoy2Disk.qt5_${6} ..."
+ $1 $4 -o Ventoy2Disk.qt5_${6} *.o $5
+ rm -f *.o
+}
+
+build_qt_app() {
+
+ DEFINES="-DQT_CHECK_EUID -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB"
+ CXXFLAGS="-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $DEFINES -Wno-deprecated-declarations -Wno-deprecated-copy"
+ INCPATH=" -I./Ventoy2Disk -I. -I./Ventoy2Disk/Core -I./Ventoy2Disk/Web -I./Ventoy2Disk/QT -I./Ventoy2Disk/QT/build -I./Ventoy2Disk/Include -I./Ventoy2Disk/Lib/libhttp/include -I./Ventoy2Disk/Lib/fat_io_lib/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I./Ventoy2Disk/Lib/xz-embedded/userspace -I./Ventoy2Disk/Lib/exfat/src/libexfat -I./Ventoy2Disk/Lib/fat_io_lib -I$QT_INC_PATH -I$QT_INC_PATH/QtWidgets -I$QT_INC_PATH/QtGui -I$QT_INC_PATH/QtCore -I. -I."
+
+ SUBLIBS="./libVentoyQT_${2}.a"
+ LIBS="$SUBLIBS $QT_LIB_PATH/libQt5Widgets.so $QT_LIB_PATH/libQt5Gui.so $QT_LIB_PATH/libQt5Core.so -lpthread"
+
+ build_qt "$1" "$CXXFLAGS" "$INCPATH" "$LFLAGS" "$LIBS" "$3"
+}
+
+# build QT5 for i386
+build_qt_i386() {
+ QT_INC_PATH="./EXLIB/i386/usr/include/i386-linux-gnu/qt5"
+ QT_LIB_PATH="./EXLIB/i386/usr/lib/i386-linux-gnu"
+ DEFINES="-DQT_CHECK_EUID -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB"
+ CXXFLAGS="-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $DEFINES -Wno-deprecated-declarations"
+ INCPATH=" -I./Ventoy2Disk -I. -I./Ventoy2Disk/Core -I./Ventoy2Disk/Web -I./Ventoy2Disk/QT -I./Ventoy2Disk/QT/build -I./Ventoy2Disk/Include -I./Ventoy2Disk/Lib/libhttp/include -I./Ventoy2Disk/Lib/fat_io_lib/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I./Ventoy2Disk/Lib/xz-embedded/userspace -I./Ventoy2Disk/Lib/exfat/src/libexfat -I./Ventoy2Disk/Lib/fat_io_lib -I$QT_INC_PATH -I$QT_INC_PATH/QtWidgets -I$QT_INC_PATH/QtGui -I$QT_INC_PATH/QtCore -I."
+ LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH -Wl,-rpath-link,./EXLIB/i386/lib/i386-linux-gnu -L./EXLIB/i386/lib/i386-linux-gnu"
+ SUBLIBS="./libVentoyQT_i386.a"
+ LIBS="$SUBLIBS $QT_LIB_PATH/libQt5Widgets.so $QT_LIB_PATH/libQt5Gui.so $QT_LIB_PATH/libQt5Core.so -lpthread"
+
+ compile_lib "gcc -m32" "ar" "i386"
+ build_qt "g++ -m32" "$CXXFLAGS" "$INCPATH" "$LFLAGS" "$LIBS" "32"
+}
+
+
+#build QT5 for x86_64
+build_qt_x86_64() {
+ compile_lib "gcc" "ar" "x86_64"
+ QT_INC_PATH="/opt/Qt5.9.0/5.9/gcc_64/include"
+ QT_LIB_PATH="/opt/Qt5.9.0/5.9/gcc_64/lib"
+ LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH"
+ build_qt_app "g++" "x86_64" "64"
+
+ force_copy Ventoy2Disk.qt5_64 ../INSTALL/tool/x86_64/Ventoy2Disk.qt5
+ rm -f ./libVentoyQT_x86_64.a
+}
+
+
+# build QT5 for arm64
+build_qt_aarch64() {
+ compile_lib "aarch64-linux-gnu-gcc" "aarch64-linux-gnu-ar" "aarch64"
+ QT_INC_PATH="./EXLIB/aarch64/usr/include/qt5"
+ QT_LIB_PATH="./EXLIB/aarch64/usr/lib64"
+ LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH -Wl,-rpath-link,./EXLIB/aarch64/lib64 -L./EXLIB/aarch64/lib64"
+ build_qt_app "aarch64-linux-gnu-g++" "aarch64" "aa64"
+
+ force_copy Ventoy2Disk.qt5_aa64 ../INSTALL/tool/aarch64/Ventoy2Disk.qt5
+ rm -f ./libVentoyQT_aarch64.a
+}
+
+# build QT5 for mips64
+build_qt_mips64el() {
+ QT_INC_PATH="./EXLIB/mips64el/usr/include/mips64el-linux-gnuabi64/qt5"
+ QT_LIB_PATH="./EXLIB/mips64el/usr/lib/mips64el-linux-gnuabi64"
+ DEFINES="-DQT_CHECK_EUID -DQT_DEPRECATED_WARNINGS -DSTATIC=static -DINIT= -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB"
+ CXXFLAGS="-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $DEFINES -Wno-deprecated-declarations"
+ INCPATH=" -I./Ventoy2Disk -I. -I./Ventoy2Disk/Core -I./Ventoy2Disk/Web -I./Ventoy2Disk/QT -I./Ventoy2Disk/QT/build -I./Ventoy2Disk/Include -I./Ventoy2Disk/Lib/libhttp/include -I./Ventoy2Disk/Lib/fat_io_lib/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux -I./Ventoy2Disk/Lib/xz-embedded/userspace -I./Ventoy2Disk/Lib/exfat/src/libexfat -I./Ventoy2Disk/Lib/fat_io_lib -I$QT_INC_PATH -I$QT_INC_PATH/QtWidgets -I$QT_INC_PATH/QtGui -I$QT_INC_PATH/QtCore -I."
+ LFLAGS="-Wl,-O1 -Wl,-rpath-link,$QT_LIB_PATH -L$QT_LIB_PATH -Wl,-rpath-link,./EXLIB/mips64el/lib/mips64el-linux-gnuabi64 -L./EXLIB/mips64el/lib/mips64el-linux-gnuabi64"
+ SUBLIBS="./libVentoyQT_mips64el.a"
+ LIBS="$SUBLIBS $QT_LIB_PATH/libQt5Widgets.so $QT_LIB_PATH/libQt5Gui.so $QT_LIB_PATH/libQt5Core.so -lpthread"
+
+ export PATH=/opt/mips-loongson-gcc8-linux-gnu-2021-02-08/bin/:$PATH
+ compile_lib "mips-linux-gnu-gcc -mips64r2 -mabi=64" "mips-linux-gnu-ar" "mips64el"
+ build_qt "mips-linux-gnu-g++ -mips64r2 -mabi=64" "$CXXFLAGS" "$INCPATH" "$LFLAGS" "$LIBS" "m64e"
+
+ force_copy Ventoy2Disk.qt5_m64e ../INSTALL/tool/mips64el/Ventoy2Disk.qt5
+ rm -f ./libVentoyQT_mips64el.a
+}
+
+
+####################################################################
+####################################################################
+####################################################################
+####################################################################
+
+sed "s#../Ventoy2Disk#..#g" -i ./Ventoy2Disk/QT/build/moc_partcfgdialog.cpp
+sed "s#../Ventoy2Disk#..#g" -i ./Ventoy2Disk/QT/build/moc_ventoy2diskwindow.cpp
+
+#build qt5 i386 in centos 8 environment
+if [ "$1" = "VENTOY_I386_QT_BUILD" ]; then
+ echo "build i386 qt ..."
+ build_qt_i386
+ exit 0
+fi
+
+
+
+chroot /opt/CentOS8 sh /buildqt.sh
+force_copy ./Ventoy2Disk.qt5_32 ../INSTALL/tool/i386/Ventoy2Disk.qt5
+rm -f ./libVentoyQT_i386.a
+
+build_qt_x86_64
+build_qt_aarch64
+build_qt_mips64el
diff --git a/vtoyjump/vtoyjump/vtoyjump.c b/vtoyjump/vtoyjump/vtoyjump.c
index f4cdd409..68586a4a 100644
--- a/vtoyjump/vtoyjump/vtoyjump.c
+++ b/vtoyjump/vtoyjump/vtoyjump.c
@@ -588,6 +588,7 @@ static int VentoyAttachVirtualDisk(HANDLE Handle, const char *IsoPath)
int VentoyMountISOByAPI(const char *IsoPath)
{
+ int i;
HANDLE Handle;
DWORD Status;
WCHAR wFilePath[512] = { 0 };
@@ -598,10 +599,12 @@ int VentoyMountISOByAPI(const char *IsoPath)
if (IsUTF8Encode(IsoPath))
{
+ Log("This is UTF8 encoding");
MultiByteToWideChar(CP_UTF8, 0, IsoPath, (int)strlen(IsoPath), wFilePath, (int)(sizeof(wFilePath) / sizeof(WCHAR)));
}
else
{
+ Log("This is ANSI encoding");
MultiByteToWideChar(CP_ACP, 0, IsoPath, (int)strlen(IsoPath), wFilePath, (int)(sizeof(wFilePath) / sizeof(WCHAR)));
}
@@ -610,19 +613,36 @@ int VentoyMountISOByAPI(const char *IsoPath)
OpenParameters.Version = OPEN_VIRTUAL_DISK_VERSION_1;
- Status = OpenVirtualDisk(&StorageType, wFilePath, VIRTUAL_DISK_ACCESS_READ, 0, &OpenParameters, &Handle);
- if (Status != ERROR_SUCCESS)
- {
- if (ERROR_VIRTDISK_PROVIDER_NOT_FOUND == Status)
- {
- Log("VirtualDisk for ISO file is not supported in current system");
- }
- else
- {
- Log("Failed to open virtual disk ErrorCode:%u", Status);
- }
- return 1;
- }
+ for (i = 0; i < 10; i++)
+ {
+ Status = OpenVirtualDisk(&StorageType, wFilePath, VIRTUAL_DISK_ACCESS_READ, 0, &OpenParameters, &Handle);
+ if (ERROR_FILE_NOT_FOUND == Status || ERROR_PATH_NOT_FOUND == Status)
+ {
+ Log("OpenVirtualDisk ErrorCode:%u, now wait and retry...", Status);
+ Sleep(1000);
+ }
+ else
+ {
+ if (ERROR_SUCCESS == Status)
+ {
+ Log("OpenVirtualDisk success");
+ }
+ else if (ERROR_VIRTDISK_PROVIDER_NOT_FOUND == Status)
+ {
+ Log("VirtualDisk for ISO file is not supported in current system");
+ }
+ else
+ {
+ Log("Failed to open virtual disk ErrorCode:%u", Status);
+ }
+ break;
+ }
+ }
+
+ if (Status != ERROR_SUCCESS)
+ {
+ return 1;
+ }
Log("OpenVirtualDisk success");
@@ -1210,48 +1230,68 @@ static int ProcessUnattendedInstallation(const char *script)
static int VentoyHook(ventoy_os_param *param)
{
+ int i;
int rc;
- CHAR Letter = 'A';
+ BOOL find = FALSE;
+ CHAR Letter;
+ DWORD Drives;
DISK_EXTENT DiskExtent;
- DWORD Drives = GetLogicalDrives();
UINT8 UUID[16];
CHAR IsoPath[MAX_PATH];
- Log("Logical Drives=0x%x Path:<%s>", Drives, param->vtoy_img_path);
+ Log("VentoyHook Path:<%s>", param->vtoy_img_path);
if (IsUTF8Encode(param->vtoy_img_path))
{
Log("This file is UTF8 encoding\n");
}
- while (Drives)
- {
- if (Drives & 0x01)
+ for (i = 0; i < 5; i++)
+ {
+ Letter = 'A';
+ Drives = GetLogicalDrives();
+ Log("Logic Drives: 0x%x", Drives);
+
+ while (Drives)
{
- sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path);
- if (IsFileExist("%s", IsoPath))
+ if (Drives & 0x01)
{
- Log("File exist under %C:", Letter);
- if (GetPhyDiskUUID(Letter, UUID, &DiskExtent) == 0)
+ sprintf_s(IsoPath, sizeof(IsoPath), "%C:\\%s", Letter, param->vtoy_img_path);
+ if (IsFileExist("%s", IsoPath))
{
- if (memcmp(UUID, param->vtoy_disk_guid, 16) == 0)
+ Log("File exist under %C:", Letter);
+ if (GetPhyDiskUUID(Letter, UUID, &DiskExtent) == 0)
{
- Log("Disk UUID match");
- break;
+ if (memcmp(UUID, param->vtoy_disk_guid, 16) == 0)
+ {
+ Log("Disk UUID match");
+ find = TRUE;
+ break;
+ }
}
}
+ else
+ {
+ Log("File NOT exist under %C:", Letter);
+ }
}
- else
- {
- Log("File NOT exist under %C:", Letter);
- }
+
+ Drives >>= 1;
+ Letter++;
}
- Drives >>= 1;
- Letter++;
- }
+ if (find)
+ {
+ break;
+ }
+ else
+ {
+ Log("Now wait and retry ...");
+ Sleep(1000);
+ }
+ }
- if (Drives == 0)
+ if (find == FALSE)
{
Log("Failed to find ISO file");
return 1;