@@ -93,6 +94,7 @@
查看这个 [milestones](https://github.com/BeyondDimension/SteamTools/milestones) 来了解我们下一步的开发计划,并随时提出问题。
## ⌨️ 开发环境
+### Windows与Mac环境构建要求
[Visual Studio 2022](https://visualstudio.microsoft.com/zh-hans/vs) 或 [Visual Studio 2022 for Mac](https://visualstudio.microsoft.com/zh-hans/vs/mac)
- 系统要求
- [Windows 11 版本 21H2 或更高版本:家庭版、专业版、专业教育版、专业工作站版、企业版和教育版](https://learn.microsoft.com/zh-cn/visualstudio/releases/2022/system-requirements)
@@ -116,6 +118,29 @@
[Android Studio Electric Eel 或更高版本](https://developer.android.google.cn/studio)
[Xcode 14 或更高版本](https://developer.apple.com/xcode)
+### 龙芯版构建特殊要求
+龙芯版Watt Toolkit仅支持在龙芯3A5000及以上含LSX的LoongArch真机或用X86 Linux的.net 9交叉编译构建,构建原则遵循[Software Development and Build Convention for LoongArch™ Architectures](https://github.com/loongson/la-softdev-convention)。
+龙芯版构建仅构建新世界版本。
+- 系统要求
+ - [AOSC OS 12 或更高版本](https://aosc.io/download)
+ - loongnix 25 或更高版本
+ - [Deepin 25 或更高版本](https://www.deepin.org/zh/download/)
+ - Yongbao 2.9 或更高版本
+ - [Alpine Linux 3.21.0 或更高版本](https://alpinelinux.org/downloads/)
+ - [GXDE OS 15.14.2 或更高版本](https://www.gxde.top/)
+ - [Debian 13 或更高版本](https://www.debian.org/)
+- 工作负荷
+ - .NET版本
+ - [.NET 9.0及以上](https://github.com/loongson-community/dotnet-unofficial-build)
+ - vscodium
+ - [vscodium 1.96.2.24355及以上](https://github.com/VSCodium/vscodium)
+ - Web 和云
+ - ASP.NET 和 Web 开发
+ - 桌面应用
+ - .NET 桌面开发
+
+[SkiaSharp](https://github.com/mono/SkiaSharp)
+
## 🏗️ [项目结构](./src/README.md)
详见 [./src/README.md](./src/README.md)
From 27bc5e669fcaefaa12be2ad32bd5d52b3d703a6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Sat, 4 Jan 2025 17:16:49 +0800
Subject: [PATCH 03/96] Add LoongArch64 build script
Add LoongArch64 build script
---
build/loongarch build/neko_build.sh | 8 ++++++++
1 file changed, 8 insertions(+)
create mode 100644 build/loongarch build/neko_build.sh
diff --git a/build/loongarch build/neko_build.sh b/build/loongarch build/neko_build.sh
new file mode 100644
index 00000000000..58f3410704e
--- /dev/null
+++ b/build/loongarch build/neko_build.sh
@@ -0,0 +1,8 @@
+set -e
+dotnet workload restore src/BD.WTTS.Client.Avalonia.App/BD.WTTS.Client.Avalonia.App.csproj
+dotnet build -c Release src/BD.WTTS.Client.AppHost/BD.WTTS.Client.AppHost.csproj --nologo -v q --property:WarningLevel=1 --property:DebugType=pdbonly -a loongarch64 -o "realbuild/"
+dotnet build -c Release src/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy/BD.WTTS.Client.Plugins.Accelerator.ReverseProxy.csproj --nologo -v q --property:WarningLevel=1 --property:DebugType=pdbonly -a loongarch64 -o "realbuild/"
+dotnet build -c Release src/BD.WTTS.Client.Avalonia.App/BD.WTTS.Client.Avalonia.App.csproj --nologo -v q --property:WarningLevel=1 --property:DebugType=pdbonly -a loongarch64 -o "realbuild/"
+dotnet build -c Release src/BD.WTTS.Client.Avalonia.Designer.HostApp/BD.WTTS.Client.Avalonia.Designer.HostApp.csproj --nologo -v q --property:WarningLevel=1 --property:DebugType=pdbonly -a loongarch64 -o "realbuild/"
+#dotnet test src/BD.WTTS.UnitTest/BD.WTTS.UnitTest.csproj -c Release -p:GeneratePackageOnBuild=false --nologo -v q --property:WarningLevel=1 --property:DebugType=pdbonly -a loongarch64 -o "realbuild/"
+echo "Done!"
From 4eb12ca5dbb25cbbc7da3c41684da13fc8882023 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Sat, 4 Jan 2025 17:29:28 +0800
Subject: [PATCH 04/96] Add LoongArch64 Library Support
---
src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs b/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs
index f3059e8301c..7dfdf5bf607 100644
--- a/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs
+++ b/src/BD.WTTS.Client/Helpers/GlobalDllImportResolver.cs
@@ -43,6 +43,8 @@ static string GetRID()
Architecture.Arm64 => "linux-arm64", // 在 64 位 ARM 上运行的 Linux 发行版本,如 Raspberry Pi Model 3 及更高版本上的 Ubuntu 服务器 64 位
Architecture.Arm => "linux-arm", // 在 ARM 上运行的 Linux 发行版本,如 Raspberry Pi Model 2 及更高版本上的 Raspbian
Architecture.Armv6 => "linux-armv6",
+ Architecture.LoongArch64 => "linux-loongarch64", // 在龙芯 LoongArch64 上运行的 Linux 发行版本
+ Architecture.RiscV64 => "linux-riscv64", // 在 RISC-V 64 位上运行的 Linux 发行版本
_ => throw new PlatformNotSupportedException(),
};
#else
From 34e0507eafe8fb8d23398fdbf220a78eed5c53ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Sun, 5 Jan 2025 16:41:54 +0800
Subject: [PATCH 05/96] =?UTF-8?q?=E6=A0=87=E8=AE=B0=E7=BB=9F=E4=B8=80?=
=?UTF-8?q?=E4=BD=BF=E7=94=A8.NET=209.0=E4=BD=BF=E5=BE=97=E9=BE=99?=
=?UTF-8?q?=E8=8A=AF=E6=96=B0=E4=B8=96=E7=95=8C=E4=BB=A3=E7=A0=81=E4=B8=8E?=
=?UTF-8?q?=E4=B8=BB=E7=BA=BF=E4=B8=80=E8=87=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
由于.NET 9.0才在龙芯中构建主线新世界版本,为保证龙芯版与主线代码尽可能保持一致,本项目建议使用.NET 9.0与C# 13。
完善操作系统相关要求并补充最低CPU要求。
---
README.md | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 7588fa92cc3..7dcc8222d7f 100644
--- a/README.md
+++ b/README.md
@@ -13,8 +13,8 @@
[](https://github.com/BeyondDimension/SteamTools/network/members)

[](https://github.com/BeyondDimension/SteamTools/search?l=c%23)
-[](https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-7)
-[](https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-11)
+[](https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-9/overview)
+[](https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-13)
[](https://afdian.com/@rmbgame)
[](https://ko-fi.com/rmbgame)
@@ -62,7 +62,10 @@
7. 游戏工具
@@ -71,6 +83,7 @@ See details [./doc/download-guide.en.md](./doc/download-guide.en.md)
Read what we [milestones](https://github.com/BeyondDimension/SteamTools/milestones), and feel free to ask questions.
## ⌨️ Development Environment
+### Windows and Mac
[Visual Studio 2022](https://visualstudio.microsoft.com/vs)
[Visual Studio 2022 for Mac](https://visualstudio.microsoft.com/vs/mac)
[JetBrains Rider](https://www.jetbrains.com/rider)
@@ -79,6 +92,29 @@ Read what we [milestones](https://github.com/BeyondDimension/SteamTools/mileston
[Android Studio Electric Eel Or Higher](https://developer.android.com/studio)
[Xcode 14 Or Higher](https://developer.apple.com/xcode)
+### Special Requirements for Building LoongArch64 Version
+The LoongArch64 version of Watt Toolkit only supports building on LoongArch64 physical machines with LSX, such as Loongson 3A5000 and above; or using X86 Linux to cross compilated dotnet 9. The building principles follow the [Software Development and Build Convention for LoongArch™ Architectures](https://github.com/loongson/la-softdev-convention).
+The LoongArch64 version only builds the New World version.
+- System requirements
+ - [AOSC OS 12 or higher is required](https://aosc.io/download)
+ - loongnix 25 or higher is required
+ - [Deepin 25 or higher is required](https://www.deepin.org/zh/download/)
+ - Yongbao 2.9 or higher is required
+ - [Alpine Linux 3.21.0 or higher is required](https://alpinelinux.org/downloads/)
+ - [GXDE OS 15.14.2 or higher is required](https://www.gxde.top/)
+ - [Debian 13 or higher is required](https://www.debian.org/)
+- Work load
+ - .NET version
+ - [.NET 9.0 and above](https://github.com/loongson-community/dotnet-unofficial-build)
+ - vscodium
+ - [vscodium 1.96.2.24355 and above](https://github.com/VSCodium/vscodium)
+ - Web and Cloud
+ - ASP.NET and Web Development
+ - Desktop applications
+ - .NET desktop development
+
+[SkiaSharp](https://github.com/mono/SkiaSharp)
+
## 🏗️ Project Structure
See details [./src/README.md](./src/README.md)
From 61ba400662a5f5eae7a58573e832b5a0a01855cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Sun, 5 Jan 2025 17:58:45 +0800
Subject: [PATCH 08/96] Update README.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加对于兆芯和飞腾使用该程序描述。
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 74ce0828e31..d87ead57559 100644
--- a/README.md
+++ b/README.md
@@ -80,8 +80,10 @@
## 🔲 支持的处理器
### X86处理器
- 满足上述操作系统安装最低要求及以上的的x86-64 CPU
+- 对于兆芯处理器,建议使用KX-U6780A及以上处理器以保障程序可以流畅运行。
### ARM处理器
- ARM V8(aarch64)及以上CPU
+- 对于飞腾处理器,建议使用飞腾D2000及以上处理器以保障程序可以流畅运行。
### 龙芯
- 3A5000及以上含有LSX扩展指令的LoongArch64 CPU。MIPS(LoongISA)、LoongArch32或不含有LSX扩展指令的,如3A4000、2K0300,在此不受支持。
From 193147f545d84d8588facf6687b9943489e234e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Mon, 6 Jan 2025 10:50:21 +0800
Subject: [PATCH 09/96] Update README.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
完善编译定义
---
README.md | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/README.md b/README.md
index d87ead57559..53b1ed21c24 100644
--- a/README.md
+++ b/README.md
@@ -152,8 +152,13 @@
- 桌面应用
- .NET 桌面开发
+### 编译libskiasharp.so时,需定义标签png_init_filter_functions_lsx
+### 具体可参考:[[1]](https://github.com/AOSC-Dev/aosc-os-abbs/blob/1190e02603c6d42771541b2c3b5d4e45d6f3d00f/app-web/thunderbird/autobuild/patches/0014-AOSCOS-Add-missing-loongarch-lsx-code-for-libpng.patch#L472)[[2]](https://github.com/phorcys/loongarch-debian-patches/blob/f452592ce8a9442a2d3c4e82273a8aad5c5fe382/patches/libpng1.6/libpng1.6.patch#L591)[[3]](https://github.com/xen0n/loongson-overlay/blob/17a0da775a19878f96a9e587f6c439df1ec8611f/mail-client/thunderbird/files/firefox-128.5-loong/0010-Vendor-missing-loongarch-files-of-libpng.patch#L469)[[4]](https://github.com/ravynsoft/ravynos/blob/49ffed929700e2e2e4f6fcacc8640b9c95d4750e/lib/libpng/loongarch/loongarch_lsx_init.c#L32)[[5]](https://github.com/winlibs/libpng/blob/44baa877767133e5ebd5121fb5cdc6ef046e2269/loongarch/loongarch_lsx_init.c#L32)
+
[SkiaSharp](https://github.com/mono/SkiaSharp)
+[harfbuzz](https://github.com/harfbuzz/harfbuzz)
+
## 🏗️ [项目结构](./src/README.md)
详见 [./src/README.md](./src/README.md)
From ec5a1d305a17aa99998994175a93311173167e82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Mon, 6 Jan 2025 11:10:38 +0800
Subject: [PATCH 10/96] Update open-source-library.md
---
doc/open-source-library.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/doc/open-source-library.md b/doc/open-source-library.md
index ebb76732599..b8429376a79 100644
--- a/doc/open-source-library.md
+++ b/doc/open-source-library.md
@@ -76,3 +76,5 @@
* [.NET Runtime](https://github.com/dotnet/runtime)
* [Fluent UI System Icons](https://github.com/microsoft/fluentui-system-icons)
* [Material design icons](https://github.com/google/material-design-icons)
+For LoongArch64, it also included:
+* [libpng](https://github.com/winlibs/libpng)
From 9be4b563471400d4ac2e1747608c88e0321c421b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Mon, 6 Jan 2025 11:11:10 +0800
Subject: [PATCH 11/96] Update open-source-library.md
---
doc/open-source-library.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/open-source-library.md b/doc/open-source-library.md
index b8429376a79..43beb0d9082 100644
--- a/doc/open-source-library.md
+++ b/doc/open-source-library.md
@@ -76,5 +76,6 @@
* [.NET Runtime](https://github.com/dotnet/runtime)
* [Fluent UI System Icons](https://github.com/microsoft/fluentui-system-icons)
* [Material design icons](https://github.com/google/material-design-icons)
+
For LoongArch64, it also included:
* [libpng](https://github.com/winlibs/libpng)
From 158fbba5efbfca58c3d4519067efd6f1c1832d25 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Mon, 6 Jan 2025 23:56:03 +0800
Subject: [PATCH 12/96] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 53b1ed21c24..bfcc72367b5 100644
--- a/README.md
+++ b/README.md
@@ -65,7 +65,7 @@
## 🖥️ 支持的操作系统
### 下面所列操作系统均为该操作系统的x86-64版本。Windows 7、8.1等旧版Windows用户或32位操作系统用户请在Release中下载旧版使用。
### ARM用户请下载Release中的稳定版或自行构建。
-### 龙芯版目前仍处于dev构建阶段,尚未构建出稳定软件包,还望等待。
+### 龙芯版目前仍处于dev构建阶段,尚未构建出稳定软件包,还望等待。运行Watt Toolkit龙芯版需达到Linux内核>=6.6、glibc>=2.40的要求。deepin 23、loongnix 25用户需先sudo apt install libpng-dev方可正常使用该软件。
- Windows 11
- Windows 10 版本 1809(OS 内部版本 17763)或更高版本
- macOS 10.15 或更高版本
From 8765655382019dfa9867229dd61c0bb4f4ca7045 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Tue, 7 Jan 2025 00:14:05 +0800
Subject: [PATCH 13/96] Update README.en.md
---
README.en.md | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/README.en.md b/README.en.md
index a5ff50d46df..eeb8d3742b3 100644
--- a/README.en.md
+++ b/README.en.md
@@ -53,7 +53,7 @@ See details [./doc/download-guide.en.md](./doc/download-guide.en.md)
## 🖥️ Supported Operating Systems
### The operating systems listed below are all x86-64 versions of the respective operating systems. Users of older Windows versions such as Windows 7, 8.1, or 32-bit operating systems are advised to download the older versions from the Release section for use.
### ARM Processor users, please download the stable version from the Release section or build it yourself.
-### The LoongArch64 version is currently in the dev build stage, and stable software packages have not yet been built. Please wait.
+### The LoongArch64 version is currently in the dev build stage, and stable software packages have not yet been built. Please wait. To run the LoongArch64 version of Watt Toolkit, you need to meet the requirements of Linux kernel>=6.6 and glibc>=2.40. Users of deepin 23 and loongnix 25 need to first run "sudo apt install libpng-dev" before being able to use the software normally.
- Windows 11
- Windows 10 version 1809(OS internal version 17763) or higher is required
- macOS 10.15 or higher is required
@@ -68,8 +68,10 @@ See details [./doc/download-guide.en.md](./doc/download-guide.en.md)
## 🔲 Supported Processors
### X86 Processor
- An x86-64 CPU that meets or exceeds the minimum requirements for the installation of the aforementioned operating system
+- For Zhaoxin processors, it is recommended to use KX-U6780A or above to ensure smooth program execution.
### ARM Processor
- CPUs supporting ARM V8 (aarch64) or above
+- For Phytium processor, it is recommended to use the Phytium D2000 or above to ensure smooth program execution.
### Loongson Processor
- LoongArch64 CPUs with LSX extension instructions, such as 3A5000 and above. MIPS (LoongISA), LoongArch32, or CPUs without LSX extension instructions, such as 3A4000 and 2K0300, are not supported.
@@ -113,8 +115,13 @@ The LoongArch64 version only builds the New World version.
- Desktop applications
- .NET desktop development
+### When compiling libskiasharp.so, it is necessary to define the tag png_init_filter_functions_lsx
+### For specific reference, please see: [[1]](https://github.com/AOSC-Dev/aosc-os-abbs/blob/1190e02603c6d42771541b2c3b5d4e45d6f3d00f/app-web/thunderbird/autobuild/patches/0014-AOSCOS-Add-missing-loongarch-lsx-code-for-libpng.patch#L472)[[2]](https://github.com/phorcys/loongarch-debian-patches/blob/f452592ce8a9442a2d3c4e82273a8aad5c5fe382/patches/libpng1.6/libpng1.6.patch#L591)[[3]](https://github.com/xen0n/loongson-overlay/blob/17a0da775a19878f96a9e587f6c439df1ec8611f/mail-client/thunderbird/files/firefox-128.5-loong/0010-Vendor-missing-loongarch-files-of-libpng.patch#L469)[[4]](https://github.com/ravynsoft/ravynos/blob/49ffed929700e2e2e4f6fcacc8640b9c95d4750e/lib/libpng/loongarch/loongarch_lsx_init.c#L32)[[5]](https://github.com/winlibs/libpng/blob/44baa877767133e5ebd5121fb5cdc6ef046e2269/loongarch/loongarch_lsx_init.c#L32)
+
[SkiaSharp](https://github.com/mono/SkiaSharp)
+[harfbuzz](https://github.com/harfbuzz/harfbuzz)
+
## 🏗️ Project Structure
See details [./src/README.md](./src/README.md)
From 2aa866daff0f6c37e62252dc4fd269c277b2c0a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=B1=E9=9B=B2=E3=81=AA=E3=81=AE?=
<87938880+4Darmygeometry@users.noreply.github.com>
Date: Tue, 7 Jan 2025 00:20:56 +0800
Subject: [PATCH 14/96] =?UTF-8?q?=E6=B7=BB=E5=8A=A0libpng=E5=89=8D?=
=?UTF-8?q?=E7=BD=AE=E4=BE=9D=E8=B5=96=E6=89=80=E9=9C=80=E7=9A=84loongarch?=
=?UTF-8?q?64=20c=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
libpng/loongson/filter_lsx_intrinsics.c | 412 ++++++++++++++++++++++++
libpng/loongson/loongarch_lsx_init.c | 65 ++++
2 files changed, 477 insertions(+)
create mode 100644 libpng/loongson/filter_lsx_intrinsics.c
create mode 100644 libpng/loongson/loongarch_lsx_init.c
diff --git a/libpng/loongson/filter_lsx_intrinsics.c b/libpng/loongson/filter_lsx_intrinsics.c
new file mode 100644
index 00000000000..003c340acde
--- /dev/null
+++ b/libpng/loongson/filter_lsx_intrinsics.c
@@ -0,0 +1,412 @@
+/* filter_lsx_intrinsics.c - LSX optimized filter functions
+ *
+ * Copyright (c) 2021 Loongson Technology Corporation Limited
+ * All rights reserved.
+ * Copyright (c) 2018 Cosmin Truta
+ * Copyright (c) 2016 Glenn Randers-Pehrson
+ * Contributed by Jin Bo (jinbo@loongson.cn)
+ *
+ * This code is released under the libpng license.
+ * For conditions of distribution and use, see the disclaimer
+ * and license in png.h
+ */
+
+#include "../pngpriv.h"
+
+#ifdef PNG_READ_SUPPORTED
+
+#if PNG_LOONGARCH_LSX_IMPLEMENTATION == 1 /* intrinsics code from pngpriv.h */
+
+#include `eeispotoT44J}AI_IMfz?rig>;bN~V N=L#W>?N@4~@J$Vz*YBCi1oA%zZ*0`KY*f9J?`nWV@zAu@eZp7M7Yov9*mn9`v
zSacg&(F~(8!x;QrUgl(YeDFfRX3J9e^|{9Iy92vqdY!C}v|XBT=CjjO5CNe0T|~PX
zWn509)eQ>HnGyZGCMWjZebO%zSQ>o}uED-YGs54yZ+@A>1JJU`&-?KaWvY>WzFUR^
z6?6WI4Q*lbGJ{d8bDr|CNa#- Gg{1-{Q*~ElcOO|uLW{bE!%W>
z9~nORc8_iZK_A%gxhfW^*|?ss$~9l_**iO$-Y#D4j>U(9;jRZzrp;5hY`)DD$;sUk
z( -bb7NSH=KraQW$WkBjl3L$2We9SuT-Q8GaebOKNpF|KRfu;feSf
z;P@ETVJP#e@`b-H8Keh}Pc;4B+eA9mk45sCqP-Ct#mHryFMucHEN0ae`s7IKzGJd}
zHc93d$D@xIS9B(}27XCZ8tNv*R%qzKM?bWR6JF%KDSQ}pt
z0Ankb(rc|l4ghA8IX|(7UD`kn;W+doCmmmto-dzBpWjT#s7{vClau?R)eC-Nle`55
z1Z>?A_w(LX_3VR8$b>MT9&5`pM+o!|m=%4aLvCAZN`9xqAqTA1S-g0GD()v5jc>VE
z>utipz#4Slp-9uWKdxn9X#I=M@-5M7v5--%TzeeaC@2HqcKehd%L8U2QZ$IuU^;m)
z-o98<4xio}gPD+J(wvf{8qW(uwa=~Wa9#Lf!bmg9*-0Of42)@P^#p^jb_RFAmElXc
z42_%^L8~05EK{I`r$813w-NV0t~iQtKL~1t%ScH^0MQV=YwtT%#NufH;K;2iXYP&h{@G_cn=EAE4xF;wNUD9X
z-rY$TAG1u%<5AAIUw&Tj+=}F^uWyWaXGbM)NX`MJ=3D9e*N5;zZaCkWLMw$FnMEEP
zsim37Rw3Gt)_nhD{J@8
M*I
zgHCdfmai7m>b4$~bTJ*j!0mITTHI4c$}{<1jm9$tzZ|a&`{LvjG|~7eELKkFq1TEH
zU`|gBJr`%ob<#Cz_gUT6Tbm52AhADJ6HFY@P{nGt`+Lh1!8zUxj)v&-f3o;Luie~(
zo2ySB2|+CCBL9do_HGJXk7T)Fo62<
{s#~1=%Mrm;$4~K
z=FLf6XHS*aKFTChz9maKFX*J9Fcv;zF!pz0yc~AL)-(Ns)>F?Ziy~R_W2|XL&G>uw
z_Pw8@NVawT99MLQm)$MY4^Y-w;MBj}FiPK5<2xT@sRlf5UrD)~%X?B=E;&8f!OCb_
zhVQQ__{Uyo1v$07h6=xI?h0?(L9exTXLhsAl`_Y1P9M5jBw((F++a6skoV-UYyINF
zP`rP*5+O@;G%-7sA3L^9pu^23(>4Bn>!CZd))|~NSF95U@l>YR+M`^#=`~gcrTHtl
zN=QEm5x0pz;+JoImg?qY)a?cR@wKmT7tO&=Ks}e}DYpzF6*?6v>etz`J*z;?P7Ni-
z^@-Mo$@p*LWjYy$B5S;$aEUN*p`S!xT0azNDypB+zFuu!r+xZ!Opp2hQHl*p*yJ5r
zev|G*BiLu!Dkj}YH2%UgN|*$f46W*5#QA4N7IRiw_QU*#*oig1cU;UY9)s0-NS@do
zy}{(AZ`A`^9rS+CE6As4*NF+Zm<}k^l5iRW1~CkLZ0Un|eXOtT+Z2dhBg=M*8Y~nc
zR$GLw=P$notLR-23f_uxBQF3+JldstD9)FRs6Di1jT#79^
zs^%IcPe@y%Z<|fkhdRBBWt;BpJf0Aj)^8MZ#oR$C
Jt&sJ2aiwJ0${|X~+ZYvBk`L
ze{~a`VgGeWar&|#Nc2Y)zvzb|c-_L7!1P;PP0kfiq=mxN5edd8h@G`0q=Fu3e12S*
z<=uqG7k3IgMSr`Keu=uBSBk}I5}2i~DK@}^J0u|y#=JaS5>rzC6ji?9
t9Q`8MorJ{QY6(HJ&IWT?
zk(3G1$6?`}9-?dV4P>FCnffp5k(c3J3}tJpIcA3FSLmm%9Hil^UP;;J