Compare commits

..
50 Commits
Author SHA1 Message Date
Belim bf362cb52f Merge pull request #117 from bovirus/main
Italian language update
2025-04-04 16:10:43 +02:00
bovirus 46576df1e4 Italian language update 2025-03-31 17:55:34 +02:00
Belim d235ddb4f0 Merge pull request #108 from rdavydov/ru
Add Russian translation
2025-03-06 13:47:07 +01:00
Roman Davydov cc979ca76d Add Locales\Strings.ru.resx to csproj 2025-03-02 16:43:36 +03:00
Roman Davydov 135aa16d97 Add Russian locale 2025-03-02 16:37:18 +03:00
Belim 7f43086d80 Merge pull request #96 from Sopor/patch-1
Add Swedish translation
2025-02-20 18:19:49 +01:00
I'm an OSK user, are you? f02cf945a9 Add Swedish translation 2025-02-20 17:37:51 +01:00
Belim d18651c6f3 Merge pull request #94 from Celer21/main
Add Czech translation
2025-02-20 15:18:43 +01:00
Václav Vytiska 71f5e68343 Rename Strings.cs.resx to Strings.cs-CZ.resx 2025-02-20 14:25:04 +01:00
Celer21 2a5d709e5f Add Czech translation 2025-02-20 13:34:56 +01:00
Belim 003d6d177a Merge pull request #87 from muhammadbahaa2001/main
Create Strings.ar.resx
2025-02-19 18:37:22 +01:00
Belim 9902f48d47 Merge pull request #90 from jacobnicked/main
Polish localization - Strings.pl.resx
2025-02-19 18:36:55 +01:00
Jacob Nicked 00bfa8ae9a Add files via upload
Polish localization
2025-02-15 19:16:11 +01:00
Jacob Nicked e1d9df55d8 Add files via upload
Polish localization
2025-02-15 19:11:35 +01:00
muhammadbahaa2001 5f1d4d1d43 Create Strings.ar.resx
Added Arabic, and I'm waiting for the next release :)
2025-02-14 22:25:46 +02:00
Belim 9896611d65 Merge branch 'main' of https://github.com/builtbybel/Flyby11 2025-02-14 10:17:05 +01:00
Belim 989020214c Update locales 2025-02-14 10:16:54 +01:00
Belim 15d1f5ecf8 Merge pull request #78 from bovirus/main
Italian language update
2025-02-13 16:43:23 +01:00
Belim 031478ef71 Merge pull request #83 from navjotjsingh/patch-1
Fix the releases URL
2025-02-13 16:43:03 +01:00
Navjot Singh 07d549ab39 Fix the releases URL
Currently it points to an older release. This new link ensures it will always point to the latest release.
2025-02-13 20:14:01 +05:30
bovirus 14c0348a77 Italian language update 2025-02-12 13:33:14 +01:00
Belim 347af94a7c Merge pull request #77 from SaiyajinK/patch-1
French translation
2025-02-12 11:32:02 +01:00
SaiyajinK aba271c936 Create Strings.fr.resx
French translation added.
2025-02-12 01:28:38 +01:00
Belim cb9d7a4d67 Merge pull request #73 from bovirus/main
Italian language update
2025-02-11 20:36:47 +01:00
Belim 018c787b09 Merge pull request #74 from reindex-ot/main
Add Japanese
2025-02-11 20:36:36 +01:00
Re*Index. (ot_inc) 90ae8d423d Add Japanese 2025-02-11 22:59:41 +09:00
bovirus e587a86756 Italian language update 2025-02-11 14:38:17 +01:00
Belim 9bf78793c7 Merge branch 'main' of https://github.com/builtbybel/Flyby11 2025-02-11 12:08:37 +01:00
Belim 1a56cf3432 Add Locales to 1.5 2025-02-11 12:08:16 +01:00
Belim e4b603e79a Update README.md 2025-02-03 16:32:27 +01:00
Belim 2f63bde9a3 Merge branch 'main' of https://github.com/builtbybel/Flyby11 2025-02-03 16:16:52 +01:00
Belim 6da412f0d8 Push 1.2 Legacy 2025-02-03 16:16:38 +01:00
Belim 545b2f487a Update README.md 2024-12-14 18:38:12 +01:00
Belim 9851f46157 Merge pull request #29 from NKJensen/patch-1
Update README.md (point to the Releases section - helpful advice for new github users)
2024-12-14 18:37:32 +01:00
Niels Kristian "Ænkå" Jensen e7dfdaedec Update README.md
Minor clarification to the README.md file
2024-11-20 10:27:15 +01:00
Belim b8a8fa58bb Merge branch 'main' of https://github.com/builtbybel/Flyby11 2024-10-30 21:33:51 +01:00
Belim 9ff59e15a4 Init-0.14 2024-10-30 21:33:40 +01:00
Belim 655ad8fc16 Update Resore all built-in apps.ps1 2024-10-28 17:57:59 +01:00
Belim c4fb8ef510 Update Uninstall OneDrive.ps1 2024-10-28 17:57:31 +01:00
Belim f2a9f78155 Update Create Restore Point.ps1 2024-10-28 17:57:17 +01:00
Belim 41d97ab904 Update Restart Explorer.ps1 2024-10-28 17:56:54 +01:00
Belim 256ae0cfdb Windows Old Remover 2024-10-28 16:56:00 +01:00
Belim b847323d11 Add files via upload 2024-10-28 16:55:00 +01:00
Belim 98a41f8ca8 Update plugins_manifest.json 2024-10-28 15:45:42 +01:00
Belim 186f1c6216 Update plugins_manifest.json 2024-10-28 15:45:13 +01:00
Belim 329b96e4c7 Windows Rollback Timer 2024-10-28 15:43:49 +01:00
Belim d23582262d Update plugins_manifest.json 2024-10-28 13:09:18 +01:00
Belim f31bc66ec5 Add plugins (beta) 2024-10-28 12:28:14 +01:00
Belim f1db5ae1e1 Merge branch 'main' of https://github.com/builtbybel/Flyby11 2024-10-26 09:25:55 +02:00
Belim b2f5ae8979 push 0.13 2024-10-26 09:25:41 +02:00
51 changed files with 5220 additions and 1904 deletions

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.12.35527.113
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flyby11", "FlybyScript\Flyby11.csproj", "{503AF34B-7544-4C43-A099-2B948C3FF49A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{503AF34B-7544-4C43-A099-2B948C3FF49A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{503AF34B-7544-4C43-A099-2B948C3FF49A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{503AF34B-7544-4C43-A099-2B948C3FF49A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{503AF34B-7544-4C43-A099-2B948C3FF49A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
-25
View File
@@ -1,25 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35327.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlybyScript", "FlybyScript\FlybyScript.csproj", "{66DDC36A-9095-4053-941C-8829D44F5F20}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{66DDC36A-9095-4053-941C-8829D44F5F20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66DDC36A-9095-4053-941C-8829D44F5F20}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66DDC36A-9095-4053-941C-8829D44F5F20}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66DDC36A-9095-4053-941C-8829D44F5F20}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {81315C08-1240-44F0-AAEF-36C5A1C885B8}
EndGlobalSection
EndGlobal
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<configuration> <configuration>
<startup> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup> </startup>
</configuration> </configuration>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

+281
View File
@@ -0,0 +1,281 @@
namespace Flyby11
{
partial class CanIUpgradeView
{
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Vom Komponenten-Designer generierter Code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
this.btnBack = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.linkPCHealthCheckApp = new System.Windows.Forms.LinkLabel();
this.statusLabel = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.btnWindowsUpdate = new System.Windows.Forms.Button();
this.linkHardwareSpecs = new System.Windows.Forms.LinkLabel();
this.label3 = new System.Windows.Forms.Label();
this.btnPatch = new System.Windows.Forms.Button();
this.label7 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// btnBack
//
this.btnBack.AutoSize = true;
this.btnBack.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control;
this.btnBack.FlatAppearance.BorderSize = 0;
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnBack.Font = new System.Drawing.Font("Segoe MDL2 Assets", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnBack.ForeColor = System.Drawing.Color.DarkGray;
this.btnBack.Location = new System.Drawing.Point(0, 0);
this.btnBack.Name = "btnBack";
this.btnBack.Size = new System.Drawing.Size(34, 29);
this.btnBack.TabIndex = 232;
this.btnBack.Text = "...";
this.btnBack.UseVisualStyleBackColor = true;
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoEllipsis = true;
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.Black;
this.label1.Location = new System.Drawing.Point(12, 55);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(534, 17);
this.label1.TabIndex = 233;
this.label1.Text = "An existing Windows 10 device can be upgraded to Windows 11 if it meets the follo" +
"wing criteria:";
//
// label2
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label2.AutoEllipsis = true;
this.label2.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label2.Location = new System.Drawing.Point(33, 89);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(513, 36);
this.label2.TabIndex = 234;
this.label2.Text = "1. The device is running a currently supported version of Windows 10. If the devi" +
"ce isn\'t currently running a supported version of Windows 10, upgrade to a suppo" +
"rted version of Windows 10.";
//
// label4
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label4.AutoEllipsis = true;
this.label4.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label4.ForeColor = System.Drawing.Color.Black;
this.label4.Location = new System.Drawing.Point(12, 161);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(534, 17);
this.label4.TabIndex = 236;
this.label4.Text = "To see if a Windows 10 device is eligible to upgrade to Windows 11, follow one of" +
" these options:";
//
// label5
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label5.AutoEllipsis = true;
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label5.Location = new System.Drawing.Point(33, 194);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(135, 16);
this.label5.TabIndex = 237;
this.label5.Text = "1. Download and run the";
//
// linkPCHealthCheckApp
//
this.linkPCHealthCheckApp.ActiveLinkColor = System.Drawing.Color.RoyalBlue;
this.linkPCHealthCheckApp.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.linkPCHealthCheckApp.AutoEllipsis = true;
this.linkPCHealthCheckApp.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkPCHealthCheckApp.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkPCHealthCheckApp.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(180)))));
this.linkPCHealthCheckApp.Location = new System.Drawing.Point(165, 194);
this.linkPCHealthCheckApp.Name = "linkPCHealthCheckApp";
this.linkPCHealthCheckApp.Size = new System.Drawing.Size(394, 16);
this.linkPCHealthCheckApp.TabIndex = 261;
this.linkPCHealthCheckApp.TabStop = true;
this.linkPCHealthCheckApp.Text = "WhyNotWin11 app to confirm your device meets the minimum system requirements";
this.linkPCHealthCheckApp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkPCHealthCheckApp_LinkClicked);
//
// statusLabel
//
this.statusLabel.AutoEllipsis = true;
this.statusLabel.BackColor = System.Drawing.Color.Gainsboro;
this.statusLabel.Dock = System.Windows.Forms.DockStyle.Bottom;
this.statusLabel.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.statusLabel.Location = new System.Drawing.Point(0, 552);
this.statusLabel.Name = "statusLabel";
this.statusLabel.Size = new System.Drawing.Size(561, 33);
this.statusLabel.TabIndex = 262;
this.statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label6
//
this.label6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label6.AutoEllipsis = true;
this.label6.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label6.Location = new System.Drawing.Point(33, 220);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(523, 27);
this.label6.TabIndex = 263;
this.label6.Text = "2. Select the following Windows Update shortcut and then select the Check for upd" +
"ates button:";
//
// btnWindowsUpdate
//
this.btnWindowsUpdate.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(180)))));
this.btnWindowsUpdate.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnWindowsUpdate.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(180)))));
this.btnWindowsUpdate.FlatAppearance.BorderSize = 2;
this.btnWindowsUpdate.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(160)))));
this.btnWindowsUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnWindowsUpdate.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 12.5F, System.Drawing.FontStyle.Bold);
this.btnWindowsUpdate.ForeColor = System.Drawing.Color.White;
this.btnWindowsUpdate.Location = new System.Drawing.Point(47, 249);
this.btnWindowsUpdate.Name = "btnWindowsUpdate";
this.btnWindowsUpdate.Size = new System.Drawing.Size(161, 35);
this.btnWindowsUpdate.TabIndex = 264;
this.btnWindowsUpdate.TabStop = false;
this.btnWindowsUpdate.Text = "Windows Update";
this.btnWindowsUpdate.UseCompatibleTextRendering = true;
this.btnWindowsUpdate.UseVisualStyleBackColor = false;
this.btnWindowsUpdate.Click += new System.EventHandler(this.btnWindowsUpdate_Click);
//
// linkHardwareSpecs
//
this.linkHardwareSpecs.ActiveLinkColor = System.Drawing.Color.RoyalBlue;
this.linkHardwareSpecs.AutoEllipsis = true;
this.linkHardwareSpecs.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkHardwareSpecs.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkHardwareSpecs.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(180)))));
this.linkHardwareSpecs.Location = new System.Drawing.Point(144, 134);
this.linkHardwareSpecs.Name = "linkHardwareSpecs";
this.linkHardwareSpecs.Size = new System.Drawing.Size(402, 16);
this.linkHardwareSpecs.TabIndex = 265;
this.linkHardwareSpecs.TabStop = true;
this.linkHardwareSpecs.Text = "the minimum hardware specifications to run Windows 11.";
this.linkHardwareSpecs.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkHardwareSpecs_LinkClicked);
//
// label3
//
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label3.AutoEllipsis = true;
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label3.Location = new System.Drawing.Point(34, 134);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(111, 16);
this.label3.TabIndex = 266;
this.label3.Text = "2. The device meets";
//
// btnPatch
//
this.btnPatch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(180)))));
this.btnPatch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnPatch.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(180)))));
this.btnPatch.FlatAppearance.BorderSize = 2;
this.btnPatch.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(103)))), ((int)(((byte)(160)))));
this.btnPatch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnPatch.Font = new System.Drawing.Font("Segoe UI Variable Display Semib", 12.5F, System.Drawing.FontStyle.Bold);
this.btnPatch.ForeColor = System.Drawing.Color.White;
this.btnPatch.Location = new System.Drawing.Point(47, 344);
this.btnPatch.Name = "btnPatch";
this.btnPatch.Size = new System.Drawing.Size(161, 35);
this.btnPatch.TabIndex = 267;
this.btnPatch.TabStop = false;
this.btnPatch.Text = "Patch Installation";
this.btnPatch.UseCompatibleTextRendering = true;
this.btnPatch.UseVisualStyleBackColor = false;
this.btnPatch.Click += new System.EventHandler(this.btnPatch_Click);
//
// label7
//
this.label7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label7.AutoEllipsis = true;
this.label7.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label7.Location = new System.Drawing.Point(33, 288);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(513, 40);
this.label7.TabIndex = 268;
this.label7.Text = "3. Your device does not meet the official requirements for Windows 11? You can ap" +
"ply a compatibility patch to enable the Inplace Upgrade via Windows Update.";
//
// CanIUpgradeView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.AutoScroll = true;
this.Controls.Add(this.label7);
this.Controls.Add(this.btnPatch);
this.Controls.Add(this.label3);
this.Controls.Add(this.linkHardwareSpecs);
this.Controls.Add(this.btnWindowsUpdate);
this.Controls.Add(this.label6);
this.Controls.Add(this.statusLabel);
this.Controls.Add(this.linkPCHealthCheckApp);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.btnBack);
this.Name = "CanIUpgradeView";
this.Size = new System.Drawing.Size(561, 585);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnBack;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.LinkLabel linkPCHealthCheckApp;
private System.Windows.Forms.Label statusLabel;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Button btnWindowsUpdate;
private System.Windows.Forms.LinkLabel linkHardwareSpecs;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button btnPatch;
private System.Windows.Forms.Label label7;
}
}
+237
View File
@@ -0,0 +1,237 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Security.Principal;
using System.Windows.Forms;
using Views;
namespace Flyby11
{
public partial class CanIUpgradeView : UserControl
{
private IsoHandler isoHandler;
public CanIUpgradeView()
{
InitializeComponent();
isoHandler = new IsoHandler(UpdateStatusLabel);
SetStyle();
}
private void SetStyle()
{
// Segoe MDL2 Assets
btnBack.Text = "\uE72B";
}
// Update the status label
private void UpdateStatusLabel(string message)
{
statusLabel.Text = message;
statusLabel.Refresh(); // Ensure the label updates in real-time
}
private void btnBack_Click(object sender, EventArgs e)
{
SwitchView.GoBack(this.Parent as Panel);
}
private async void linkPCHealthCheckApp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
string installAssistantUrl = "https://github.com/rcmaehl/WhyNotWin11/releases/download/2.6.1.1/WhyNotWin11.exe";
await isoHandler.DownloadMediaTool(installAssistantUrl, "WhyNotWin11.exe");
}
private void linkHardwareSpecs_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://www.microsoft.com/windows/windows-11-specifications?ocid=smc_marvel_ups_support_win11");
}
private void btnWindowsUpdate_Click(object sender, EventArgs e)
{
try
{
// Open Windows Update settings
Process.Start(new ProcessStartInfo
{
FileName = "ms-settings:windowsupdate",
UseShellExecute = true
});
// Trigger update check via PowerShell
Process.Start(new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = "-Command \"Start-WindowsUpdate -Confirm:$false\"",
UseShellExecute = false,
CreateNoWindow = true
});
UpdateStatusLabel("Checking for updates...");
}
catch (Exception ex)
{
UpdateStatusLabel($"Error starting Windows Update: {ex.Message}");
}
}
private void btnPatch_Click(object sender, EventArgs e)
{
// Check if the application is running with Administrator privileges
if (!IsRunningAsAdministrator())
{
// Request elevation (UAC prompt) and restart the application with admin rights
UpdateStatusLabel("This application needs to be run as Administrator. Restarting as Administrator...");
RunAsAdministrator();
return;
}
UpdateStatusLabel("Checking patch status...");
// Check if the patch has already been applied
if (IsPatchApplied())
{
UpdateStatusLabel("Patch is already applied. No further action needed.");
}
else
{
// If patch not applied, attempt to apply the patch
UpdateStatusLabel("Applying patch...");
if (ApplyPatch())
{
UpdateStatusLabel("Patch applied successfully! You are ready for the upgrade.");
}
else
{
// UpdateStatusLabel("Failed to apply the patch. Please try again.");
}
}
}
// Helper method to check if the application is running as Administrator
private bool IsRunningAsAdministrator()
{
var identity = System.Security.Principal.WindowsIdentity.GetCurrent();
var principal = new System.Security.Principal.WindowsPrincipal(identity);
return principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator);
}
// Helper method to restart the application with Administrator privileges
private void RunAsAdministrator()
{
ProcessStartInfo processStartInfo = new ProcessStartInfo
{
FileName = Application.ExecutablePath,
Verb = "runas" // This triggers the UAC prompt
};
Process.Start(processStartInfo);
Application.Exit(); // Exit the current application to prevent further execution
}
private bool IsPatchApplied()
{
try
{
using (Process process = new Process())
{
process.StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = "/c reg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\HwReqChk\" /v HwReqChkVars",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
process.WaitForExit();
if (!string.IsNullOrWhiteSpace(error))
{
UpdateStatusLabel($"Registry query failed: {error}");
return false;
}
if (output.Contains("HwReqChkVars"))
{
UpdateStatusLabel("Patch is already applied.");
return true;
}
UpdateStatusLabel("Patch is not applied.");
return false;
}
}
catch (Exception ex)
{
UpdateStatusLabel($"Error checking patch status: {ex.Message}");
return false;
}
}
private bool ApplyPatch()
{
try
{
string[] commands = new[]
{
"reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\HwReqChk\" /f",
"reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\HwReqChk\" /v HwReqChkVars /t REG_MULTI_SZ /d \"SQ_SecureBootCapable=TRUE\\0SQ_SecureBootEnabled=TRUE\\0SQ_TpmVersion=2\\0SQ_RamMB=8192\" /f",
"reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\CompatMarkers\" /f",
"reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Shared\" /f",
"reg delete \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\TargetVersionUpgradeExperienceIndicators\" /f",
"reg add \"HKLM\\SYSTEM\\Setup\\MoSetup\" /f /v AllowUpgradesWithUnsupportedTPMOrCPU /t REG_DWORD /d 1"
};
List<Process> processes = new List<Process>();
foreach (string command in commands)
{
Process process = new Process();
process.StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = $"/c {command}",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
process.Start();
processes.Add(process);
}
foreach (Process process in processes)
{
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
if (!string.IsNullOrWhiteSpace(error))
{
// UpdateStatusLabel($"Error applying patch: {error}");
return false;
}
if (!string.IsNullOrWhiteSpace(output))
{
UpdateStatusLabel($"{output}");
}
}
UpdateStatusLabel("Patch applied successfully!");
return true;
}
catch (Exception ex)
{
UpdateStatusLabel($"Error applying patch: {ex.Message}");
return false;
}
}
}
}
File renamed without changes.
+210
View File
@@ -0,0 +1,210 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Net;
using System.Windows.Forms;
namespace Flyby11
{
public class FAQHandler
{
private readonly Panel _faqPanel;
private readonly Action<string> _updateStatus;
public FAQHandler(Panel faqPanel, Action<string> updateStatus)
{
_faqPanel = faqPanel;
_updateStatus = updateStatus;
}
public void InitializeFAQ()
{
_faqPanel.AutoScroll = true;
_faqPanel.Controls.Clear();
var faqContentPanel = new FlowLayoutPanel
{
Dock = DockStyle.Fill,
AutoScroll = true,
Padding = new Padding(10),
FlowDirection = FlowDirection.TopDown,
WrapContents = false
};
AddTitle(faqContentPanel);
AddISOFAQ(faqContentPanel);
AddOtherFAQs(faqContentPanel);
_faqPanel.Controls.Add(faqContentPanel);
}
private void AddTitle(FlowLayoutPanel parent)
{
AddLabel(parent, "Frequently Asked Questions (FAQ)", new Font("Arial", 10, FontStyle.Bold), DockStyle.Top, ContentAlignment.MiddleCenter, 10);
}
private void AddISOFAQ(FlowLayoutPanel parent)
{
// Q: Where can I get the latest Windows 11 ISO?
AddLabel(parent, "Q: Where can I get the latest Windows 11 ISO?", new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, "A: You can download the latest ISO from the official Microsoft website or use the Fido Downloader.", new Font("Arial", 10), ContentAlignment.TopLeft, 10);
// Create a FlowLayoutPanel to place the links next to each other
var linkPanel = new FlowLayoutPanel
{
AutoSize = true,
FlowDirection = FlowDirection.LeftToRight,
WrapContents = true
};
// Microsoft link
AddFAQItem(linkPanel, "Microsoft Site", "https://www.microsoft.com/software-download/windows11");
// Fido Downloader link (with text and URL, using AddFAQItemWithScript)
AddFAQItemWithScript(linkPanel, "Download via Fido (Recommended)", "or", "https://raw.githubusercontent.com/pbatard/Fido/refs/heads/master/Fido.ps1");
// Add the FlowLayoutPanel to the parent (FAQ panel)
parent.Controls.Add(linkPanel);
}
private void AddFAQItem(FlowLayoutPanel parent, string linkText, string linkUrl)
{
// Create and add the link label with the provided text and URL
var linkLabel = new LinkLabel
{
Text = linkText,
Font = new Font("Arial", 10, FontStyle.Underline),
LinkColor = Color.Blue,
AutoSize = true,
Padding = new Padding(10),
TextAlign = ContentAlignment.TopLeft
};
linkLabel.LinkClicked += (sender, e) => System.Diagnostics.Process.Start(linkUrl);
parent.Controls.Add(linkLabel);
}
private void AddFAQItemWithScript(FlowLayoutPanel parent, string linkText, string description, string scriptUrl)
{
// Create and add the description label
AddLabel(parent, description, new Font("Arial",9), ContentAlignment.TopLeft, 10);
// Create and add the link label
var linkLabel = new LinkLabel
{
Text = linkText,
Font = new Font("Arial", 10, FontStyle.Underline),
LinkColor = Color.Blue,
AutoSize = true,
Padding = new Padding(10),
TextAlign = ContentAlignment.TopLeft
};
linkLabel.LinkClicked += async (sender, e) =>
{
string tempScriptPath = Path.Combine(Path.GetTempPath(), "Fido.ps1");
try
{
using (var client = new WebClient())
{
await client.DownloadFileTaskAsync(new Uri(scriptUrl), tempScriptPath);
_updateStatus("Fido downloaded successfully! Now running the script...");
System.Diagnostics.Process.Start(new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-ExecutionPolicy Bypass -File \"{tempScriptPath}\"",
Verb = "runas",
CreateNoWindow = true,
UseShellExecute = true
});
}
}
catch (Exception ex)
{
_updateStatus("Error downloading or running the script: " + ex.Message);
}
};
parent.Controls.Add(linkLabel);
}
private void AddLabel(FlowLayoutPanel parent, string text, Font font, ContentAlignment alignment, int padding = 0)
{
var label = new Label
{
Text = text,
Font = font,
Padding = new Padding(padding),
TextAlign = alignment,
AutoSize = true
};
parent.Controls.Add(label);
}
private void AddLabel(FlowLayoutPanel parent, string text, Font font, DockStyle dock, ContentAlignment alignment, int padding = 0)
{
var label = new Label
{
Text = text,
Font = font,
Padding = new Padding(padding),
Dock = dock,
TextAlign = alignment,
AutoSize = true
};
parent.Controls.Add(label);
}
private void AddFAQItem(FlowLayoutPanel parent, string question, string answer, string linkText, string linkUrl)
{
AddLabel(parent, question, new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, answer, new Font("Arial", 10), ContentAlignment.TopLeft, 10);
var linkLabel = new LinkLabel
{
Text = linkText,
Font = new Font("Arial", 10, FontStyle.Underline),
LinkColor = Color.Blue,
AutoSize = true,
Padding = new Padding(10),
TextAlign = ContentAlignment.TopLeft
};
linkLabel.LinkClicked += (sender, e) => System.Diagnostics.Process.Start(linkUrl);
parent.Controls.Add(linkLabel);
}
private void AddOtherFAQs(FlowLayoutPanel parent)
{
// Q: How can I support the developer?
AddFAQItem(parent, "Q: How can I support the developer?", "A: If you've successfully installed Windows 11 and saved some money, feel free to leave a little something as a thank-you here.", "Click here to donate and show your support.", "https://www.paypal.com/donate?hosted_button_id=MY7HX4QLYR4KG");
// Q: How does the setup process work once the ISO is mounted?
AddLabel(parent, "Q: How does the setup process work once the ISO is mounted?", new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, "A: Once the ISO is mounted, the setup process runs in the background. The Windows installer starts, guiding you through the steps required to install Windows 11 on your machine.", new Font("Arial", 10), ContentAlignment.TopLeft, 10);
// Q: What if I encounter issues during installation?
AddLabel(parent, "Q: What if I encounter issues during installation?", new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, "A: Please check the error messages and report it on GitHub.", new Font("Arial", 10), ContentAlignment.TopLeft, 10);
// Q: What is the setup path for Windows 11?
AddLabel(parent, "Q: What is the setup path for Windows 11?", new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, "A: The setup path is typically found under the 'sources' folder on the mounted ISO drive.", new Font("Arial", 10), ContentAlignment.TopLeft, 10);
// Q: Is it legal to use this method?
AddLabel(parent, "Q: Is it legal to use this method?", new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, "A: Yes, Microsoft has left a backdoor open. This method leverages a feature of the Windows 11 setup process that uses the Windows Server variant of the installation. Unlike the regular Windows 11 setup, this variant skips most hardware compatibility checks.", new Font("Arial", 10), ContentAlignment.TopLeft, 10);
// Q: What are my alternatives if my PC is not supported?
AddLabel(parent, "Q: What are my alternatives if my PC is not supported?", new Font("Arial", 10, FontStyle.Bold), ContentAlignment.TopLeft, 10);
AddLabel(parent, "A: According to Microsoft, you should throw your PC away. I would suggest installing Linux on it and moving away from Windows.", new Font("Arial", 10), ContentAlignment.TopLeft, 10);
// Q: Who is the developer?
AddFAQItem(parent, "Q: Who is the developer?", "A: The developer is Belim, also known as Builtbybel, who has contributed a lot of code to the Windows community.", "Click here to learn more about the developer's work.", "https://github.com/BuiltByBel");
}
}
}
@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{66DDC36A-9095-4053-941C-8829D44F5F20}</ProjectGuid> <ProjectGuid>{503AF34B-7544-4C43-A099-2B948C3FF49A}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<RootNamespace>FlybyScript</RootNamespace> <RootNamespace>Flyby11</RootNamespace>
<AssemblyName>FlybyScript</AssemblyName> <AssemblyName>Flyby11</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic> <Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>x64</PlatformTarget> <PlatformTarget>x64</PlatformTarget>
@@ -40,9 +39,6 @@
<ApplicationIcon>AppIcon.ico</ApplicationIcon> <ApplicationIcon>AppIcon.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
@@ -56,9 +52,15 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Helper\Views.cs" /> <Compile Include="CanIUpgradeView.cs">
<Compile Include="Patcher\ScriptPatcher.cs" /> <SubType>UserControl</SubType>
<Compile Include="Helper\Logger.cs" /> </Compile>
<Compile Include="CanIUpgradeView.Designer.cs">
<DependentUpon>CanIUpgradeView.cs</DependentUpon>
</Compile>
<Compile Include="FAQHandler.cs" />
<Compile Include="IsoHandler.cs" />
<Compile Include="Locales\Strings.Designer.cs" />
<Compile Include="MainForm.cs"> <Compile Include="MainForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@@ -67,17 +69,22 @@
</Compile> </Compile>
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Patcher\PSPatcher.cs" /> <Compile Include="SwitchView.cs" />
<Compile Include="Patcher\NativePatcher.cs" /> <EmbeddedResource Include="CanIUpgradeView.resx">
<Compile Include="Views\ExperienceView.cs"> <DependentUpon>CanIUpgradeView.cs</DependentUpon>
<SubType>UserControl</SubType> </EmbeddedResource>
</Compile> <EmbeddedResource Include="Locales\Strings.ar.resx" />
<Compile Include="Views\ExperienceView.Designer.cs"> <EmbeddedResource Include="Locales\Strings.cs-CZ.resx" />
<DependentUpon>ExperienceView.cs</DependentUpon> <EmbeddedResource Include="Locales\Strings.de.resx" />
</Compile> <EmbeddedResource Include="Locales\Strings.fr.resx" />
<EmbeddedResource Include="Locales\Strings.it.resx" />
<EmbeddedResource Include="Locales\Strings.ja.resx" />
<EmbeddedResource Include="Locales\Strings.pl.resx" />
<EmbeddedResource Include="Locales\Strings.resx" />
<EmbeddedResource Include="Locales\Strings.ru.resx" />
<EmbeddedResource Include="Locales\Strings.tr.resx" />
<EmbeddedResource Include="MainForm.resx"> <EmbeddedResource Include="MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon> <DependentUpon>MainForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx"> <EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
@@ -89,11 +96,7 @@
<DependentUpon>Resources.resx</DependentUpon> <DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime> <DesignTime>True</DesignTime>
</Compile> </Compile>
<EmbeddedResource Include="Views\ExperienceView.resx">
<DependentUpon>ExperienceView.cs</DependentUpon>
</EmbeddedResource>
<None Include="app.manifest" /> <None Include="app.manifest" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput> <LastGenOutput>Settings.Designer.cs</LastGenOutput>
-37
View File
@@ -1,37 +0,0 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace FlybyScript
{
public class Logger
{
private RichTextBox rtbDescription;
public Logger(RichTextBox rtbDescription)
{
this.rtbDescription = rtbDescription;
}
public void Log(string message, Color color)
{
if (rtbDescription.InvokeRequired)
{
rtbDescription.Invoke(new Action(() => LogMessage(message, color)));
}
else
{
LogMessage(message, color);
}
}
private void LogMessage(string message, Color color)
{
rtbDescription.SelectionColor = color;
rtbDescription.AppendText($"{message}\n");
rtbDescription.ScrollToCaret();
}
}
}
+254
View File
@@ -0,0 +1,254 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Flyby11
{
public class IsoHandler
{
private static readonly HttpClient httpClient = new HttpClient();
private readonly Action<string> _updateStatus;
public IsoHandler(Action<string> updateStatus)
{
_updateStatus = updateStatus;
}
public async Task HandleIso(string isoPath)
{
try
{
_updateStatus("Mounting the ISO... Hang tight!");
await ExecutePowerShellCommand($"Mount-DiskImage -ImagePath \"{isoPath}\"");
string driveLetter = await GetMountedDriveLetter();
if (string.IsNullOrEmpty(driveLetter))
{
_updateStatus("Failed to mount the ISO. Please try again.");
MessageBox.Show("Failed to mount the ISO.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
_updateStatus("ISO mounted successfully! Let's get this Windows 11 ready!");
string setupPath = Path.Combine(driveLetter, "sources", "setupprep.exe");
if (File.Exists(setupPath))
{
await RunSetupWithAdminRights(setupPath);
}
else
{
_updateStatus($"Setup file not found in {driveLetter}. Aborting.");
MessageBox.Show($"Setup file not found in {driveLetter}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
_updateStatus($"Oops! Something went wrong: {ex.Message}");
MessageBox.Show($"Error: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private async Task<string> GetMountedDriveLetter()
{
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
if (drive.DriveType == DriveType.CDRom && drive.IsReady)
{
return drive.Name.Substring(0, 2);
}
}
return null;
}
private async Task ExecutePowerShellCommand(string command)
{
using (var process = new Process())
{
process.StartInfo.FileName = "powershell.exe";
process.StartInfo.Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"{command}\"";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.Start();
await process.WaitForExitAsync();
}
}
private async Task RunSetupWithAdminRights(string setupPath)
{
try
{
_updateStatus("Starting the setup process with elevated privileges...");
var startInfo = new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"Start-Process '{setupPath}' -ArgumentList '/product server' -Verb runas\"",
Verb = "runas",
UseShellExecute = true,
CreateNoWindow = false
};
_updateStatus("Almost there! We're getting the setup ready...");
using (var process = Process.Start(startInfo))
{
if (process != null)
{
await process.WaitForExitAsync();
}
}
_updateStatus("You're ready to install Windows 11 on unsupported hardware! Ignore the 'Windows Server' prompt; you're all set!");
MessageBox.Show("Windows 11 installation can now proceed. Please follow the instructions in the setup window.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
_updateStatus($"Error: {ex.Message}");
MessageBox.Show($"Error: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// Create unattend.xml file in the sources\$OEM$\$$\Panther directory
/// </summary>
/// <param name="usbDrive">The USB drive where the unattend.xml will be created.</param>
public void CreateUnattendXml(string usbDrive)
{
string unattendDir = Path.Combine(usbDrive, "sources", "$OEM$", "$$", "Panther");
Directory.CreateDirectory(unattendDir); // Create the directory if it doesn't exist
string unattendPath = Path.Combine(unattendDir, "unattend.xml");
// Check if the file already exists
if (!File.Exists(unattendPath))
{
// Create the unattend.xml content
string xmlContent = @"<unattend xmlns='urn:schemas-microsoft-com:unattend'>
<settings pass='disabled'>
<component xmlns:wcm='http://schemas.microsoft.com/WMIConfig/2002/State' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' name='Microsoft-Windows-Setup' processorArchitecture='amd64' language='neutral' publicKeyToken='31bf3856ad364e35' versionScope='nonSxS'>
<UserData>
<ProductKey>
<Key/>
</ProductKey>
</UserData>
<RunSynchronous>
<RunSynchronousCommand wcm:action='add'>
<Order>1</Order>
<Path>reg add HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action='add'>
<Order>2</Order>
<Path>reg add HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action='add'>
<Order>3</Order>
<Path>reg add HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
<settings pass='specialize'>
<component xmlns:wcm='http://schemas.microsoft.com/WMIConfig/2002/State' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' name='Microsoft-Windows-Deployment' processorArchitecture='amd64' language='neutral' publicKeyToken='31bf3856ad364e35' versionScope='nonSxS'>
<RunSynchronous>
<RunSynchronousCommand wcm:action='add'>
<Order>1</Order>
<Path>reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE /v BypassNRO /t REG_DWORD /d 1 /f</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
</unattend>";
File.WriteAllText(unattendPath, xmlContent);
_updateStatus("Created unattend.xml in the sources\\$OEM$\\$$\\Panther directory.");
}
else
{
_updateStatus("unattend.xml already exists in the sources\\$OEM$\\$$\\Panther directory.");
// Display a message box to inform the user
MessageBox.Show("The patch has already been applied. The 'unattend.xml' file already exists in the specified directory.",
"Patch Already Applied",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
}
/// <summary>
/// Downloads a specified tool (Media Creation Tool or Installation Assistant) from a provided URL.
/// </summary>
/// <param name="downloadUrl">The URL of the tool to download.</param>
/// <param name="fileName">The name of the file to save.</param>
/// <returns>A task representing the asynchronous operation.</returns>
public async Task DownloadMediaTool(string downloadUrl, string fileName)
{
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
saveFileDialog.Filter = "Executable Files (*.exe)|*.exe";
saveFileDialog.Title = $"Save {fileName}";
saveFileDialog.FileName = fileName;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string destinationPath = saveFileDialog.FileName;
try
{
_updateStatus($"Preparing to download {fileName}...");
_updateStatus("Download may take some time, please wait...");
var response = await httpClient.GetAsync(downloadUrl);
response.EnsureSuccessStatusCode();
using (var fileStream = new FileStream(destinationPath, FileMode.Create, FileAccess.Write, FileShare.None))
{
await response.Content.CopyToAsync(fileStream);
}
_updateStatus($"{fileName} download completed successfully!");
// Start the downloaded tool
_updateStatus($"Starting {fileName}...");
Process.Start(new ProcessStartInfo
{
FileName = destinationPath,
UseShellExecute = true // To run .exe files
});
}
catch (Exception ex)
{
_updateStatus($"An error occurred while downloading {fileName}: {ex.Message}");
}
}
else
{
_updateStatus($"{fileName} download canceled by user.");
}
}
}
}
public static class ProcessExtensions
{
public static async Task WaitForExitAsync(this Process process)
{
var tcs = new TaskCompletionSource<bool>();
process.EnableRaisingEvents = true;
process.Exited += (sender, args) => tcs.TrySetResult(true);
await tcs.Task;
}
}
}
+522
View File
@@ -0,0 +1,522 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Dieser Code wurde von einem Tool generiert.
// Laufzeitversion:4.0.30319.42000
//
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
// der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Flyby11.Locales {
using System;
/// <summary>
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
/// </summary>
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class Strings {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Strings() {
}
/// <summary>
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Flyby11.Locales.Strings", typeof(Strings).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die You&apos;re ready to install Windows 11 on unsupported hardware! Ignore the &apos;Windows Server&apos; prompt; you&apos;re all set! ähnelt.
/// </summary>
public static string _debugInstallReady {
get {
return ResourceManager.GetString("_debugInstallReady", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Starting the setup process with elevated privileges... ähnelt.
/// </summary>
public static string _debugInstallRunElevated {
get {
return ResourceManager.GetString("_debugInstallRunElevated", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Oops! Something went wrong: ähnelt.
/// </summary>
public static string _debugStatusHandleIsoEx {
get {
return ResourceManager.GetString("_debugStatusHandleIsoEx", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Mounting the ISO... Hang tight! ähnelt.
/// </summary>
public static string _debugStatusMounting {
get {
return ResourceManager.GetString("_debugStatusMounting", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Failed to mount the ISO. Please try again. ähnelt.
/// </summary>
public static string _debugStatusMountingFailed {
get {
return ResourceManager.GetString("_debugStatusMountingFailed", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die ISO mounted successfully! Let&apos;s get this Windows 11 ready! ähnelt.
/// </summary>
public static string _debugStatusMountingSuccess {
get {
return ResourceManager.GetString("_debugStatusMountingSuccess", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Almost there! We&apos;re getting the setup ready... ähnelt.
/// </summary>
public static string _debugStatusRunning {
get {
return ResourceManager.GetString("_debugStatusRunning", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Setup file not found in ähnelt.
/// </summary>
public static string _debugStatusSetupFileNotFound {
get {
return ResourceManager.GetString("_debugStatusSetupFileNotFound", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die 1. The device is running a currently supported version of Windows 10. If the device isn&apos;t currently running a supported version of Windows 10, upgrade to a supported version of Windows 10. ähnelt.
/// </summary>
public static string ciuView_lblPtAns {
get {
return ResourceManager.GetString("ciuView_lblPtAns", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die 2. The device meets ähnelt.
/// </summary>
public static string ciuView_lblPtAns2 {
get {
return ResourceManager.GetString("ciuView_lblPtAns2", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die 1. Download and run the ähnelt.
/// </summary>
public static string ciuView_lblPtAns3 {
get {
return ResourceManager.GetString("ciuView_lblPtAns3", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die 2. Select the following Windows Update shortcut and then select the Check for updates button: ähnelt.
/// </summary>
public static string ciuView_lblPtAns4 {
get {
return ResourceManager.GetString("ciuView_lblPtAns4", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die 3. Your device does not meet the official requirements for Windows 11? You can apply a compatibility patch to enable the Inplace Upgrade via Windows Update. ähnelt.
/// </summary>
public static string ciuView_lblPtAns5 {
get {
return ResourceManager.GetString("ciuView_lblPtAns5", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die An existing Windows 10 device can be upgraded to Windows 11 if it meets the following criteria: ähnelt.
/// </summary>
public static string ciuView_lblPtHdr {
get {
return ResourceManager.GetString("ciuView_lblPtHdr", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die To see if a Windows 10 device is eligible to upgrade to Windows 11, follow one of these options: ähnelt.
/// </summary>
public static string ciuView_lblPtHdr2 {
get {
return ResourceManager.GetString("ciuView_lblPtHdr2", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die the minimum hardware specifications to run Windows 11. ähnelt.
/// </summary>
public static string ciuView_linkPtAns2 {
get {
return ResourceManager.GetString("ciuView_linkPtAns2", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die WhyNotWin11 app to confirm your device meets the minimum system requirements ähnelt.
/// </summary>
public static string ciuView_linkPtAns3 {
get {
return ResourceManager.GetString("ciuView_linkPtAns3", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Bypass patch canceled by user. ähnelt.
/// </summary>
public static string compPatch_debugCancel {
get {
return ResourceManager.GetString("compPatch_debugCancel", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die User attempted to select a non-removable drive. ähnelt.
/// </summary>
public static string compPatch_debugNotRemovableDrive {
get {
return ResourceManager.GetString("compPatch_debugNotRemovableDrive", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die No USB drive selected for patching. ähnelt.
/// </summary>
public static string compPatch_debugNoUSBDrive {
get {
return ResourceManager.GetString("compPatch_debugNoUSBDrive", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Failed to apply bypass patch: ähnelt.
/// </summary>
public static string compPatch_msgFailedEx {
get {
return ResourceManager.GetString("compPatch_msgFailedEx", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die The selected path is not a removable drive. Please select a USB drive. ähnelt.
/// </summary>
public static string compPatch_msgNotRemovableDrive {
get {
return ResourceManager.GetString("compPatch_msgNotRemovableDrive", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Select the USB drive containing your Windows 11 installation files.\nThis feature adds a compatibility patch to bypass certain system requirements.\nCompatible with drives prepared by any tool, including Rufus. Ensure the drive is ready! ähnelt.
/// </summary>
public static string compPatch_msgSelectDrive {
get {
return ResourceManager.GetString("compPatch_msgSelectDrive", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die This will apply compatibility bypass settings on the selected USB drive. Continue? ähnelt.
/// </summary>
public static string compPatch_msgSelectDriveConfirm {
get {
return ResourceManager.GetString("compPatch_msgSelectDriveConfirm", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Bypass patch applied successfully! ähnelt.
/// </summary>
public static string compPatch_msgSuccess {
get {
return ResourceManager.GetString("compPatch_msgSuccess", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Flyby11 Upgrading Assistant ähnelt.
/// </summary>
public static string ctl_FormTitle {
get {
return ResourceManager.GetString("ctl_FormTitle", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Apply Compatibility Patch to ISO (Clean Install) ähnelt.
/// </summary>
public static string ctl_inkCompPatch {
get {
return ResourceManager.GetString("ctl_inkCompPatch", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Can I upgrade to Windows 11? ähnelt.
/// </summary>
public static string ctl_linkCiuv {
get {
return ResourceManager.GetString("ctl_linkCiuv", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Select from computer ähnelt.
/// </summary>
public static string ctl_linkSelectComputer {
get {
return ResourceManager.GetString("ctl_linkSelectComputer", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Did the upgrade work? ähnelt.
/// </summary>
public static string ctl_linkVote {
get {
return ResourceManager.GetString("ctl_linkVote", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Drag and drop the Windows 11 ISO to patch it and install on unsupported hardware (Inplace Upgrade). ähnelt.
/// </summary>
public static string ctl_statusLabel {
get {
return ResourceManager.GetString("ctl_statusLabel", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: You can download the latest ISO from the official Microsoft website or use the Fido Downloader. ähnelt.
/// </summary>
public static string faq_a1 {
get {
return ResourceManager.GetString("faq_a1", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: If you&apos;ve successfully installed Windows 11 and saved some money, feel free to leave a little something as a thank-you here. ähnelt.
/// </summary>
public static string faq_a2 {
get {
return ResourceManager.GetString("faq_a2", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Click here to donate and show your support. ähnelt.
/// </summary>
public static string faq_a2Link {
get {
return ResourceManager.GetString("faq_a2Link", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: Once the ISO is mounted, the setup process runs in the background. The Windows installer starts, guiding you through the steps required to install Windows 11 on your machine. ähnelt.
/// </summary>
public static string faq_a3 {
get {
return ResourceManager.GetString("faq_a3", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: Please check the error messages and report it on GitHub. ähnelt.
/// </summary>
public static string faq_a4 {
get {
return ResourceManager.GetString("faq_a4", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: Yes, Microsoft has left a backdoor open. This method leverages a feature of the Windows 11 setup process that uses the Windows Server variant of the installation. Unlike the regular Windows 11 setup, this variant skips most hardware compatibility checks. ähnelt.
/// </summary>
public static string faq_a5 {
get {
return ResourceManager.GetString("faq_a5", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: According to Microsoft, you should throw your PC away. I would suggest installing Linux on it and moving away from Windows. ähnelt.
/// </summary>
public static string faq_a6 {
get {
return ResourceManager.GetString("faq_a6", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die A: The developer is Belim, also known as Builtbybel, who has contributed a lot of code to the Windows community. ähnelt.
/// </summary>
public static string faq_a7 {
get {
return ResourceManager.GetString("faq_a7", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Click here to learn more about the developer&apos;s work. ähnelt.
/// </summary>
public static string faq_a7Link {
get {
return ResourceManager.GetString("faq_a7Link", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Download via Fido (Recommended) ähnelt.
/// </summary>
public static string faq_downloadFido {
get {
return ResourceManager.GetString("faq_downloadFido", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Microsoft Site ähnelt.
/// </summary>
public static string faq_downloadMS {
get {
return ResourceManager.GetString("faq_downloadMS", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Frequently Asked Questions (FAQ) ähnelt.
/// </summary>
public static string faq_header {
get {
return ResourceManager.GetString("faq_header", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: Where can I get the latest Windows 11 ISO? ähnelt.
/// </summary>
public static string faq_q1 {
get {
return ResourceManager.GetString("faq_q1", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: How can I support the developer? ähnelt.
/// </summary>
public static string faq_q2 {
get {
return ResourceManager.GetString("faq_q2", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: How does the setup process work once the ISO is mounted? ähnelt.
/// </summary>
public static string faq_q3 {
get {
return ResourceManager.GetString("faq_q3", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: What if I encounter issues during installation? ähnelt.
/// </summary>
public static string faq_q4 {
get {
return ResourceManager.GetString("faq_q4", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: Is it legal to use this method? ähnelt.
/// </summary>
public static string faq_q5 {
get {
return ResourceManager.GetString("faq_q5", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: What are my alternatives if my PC is not supported? ähnelt.
/// </summary>
public static string faq_q6 {
get {
return ResourceManager.GetString("faq_q6", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Q: Who is the developer? ähnelt.
/// </summary>
public static string faq_q7 {
get {
return ResourceManager.GetString("faq_q7", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Windows 11 installation can now proceed. Please follow the instructions in the setup window. ähnelt.
/// </summary>
public static string msg_InstallReady {
get {
return ResourceManager.GetString("msg_InstallReady", resourceCulture);
}
}
}
}
+282
View File
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>تم إلغاء التصحيح بواسطة المستخدم.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>حاول المستخدم اختيار محرك أقراص غير قابل للإزالة.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>لم يتم اختيار أي محرك أقراص USB للتصحيح.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>فشل في تطبيق التصحيح:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>المسار المحدد ليس محرك أقراص قابل للإزالة. يرجى اختيار محرك أقراص USB.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>اختر محرك أقراص USB الذي يحتوي على ملفات تثبيت Windows 11 الخاصة بك.\nتضيف هذه الميزة تصحيح توافق لتجاوز متطلبات النظام معينة.\nمتوافق مع الأقراص المعدة بواسطة أي أداة، بما في ذلك Rufus. تأكد من أن المحرك جاهز!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>سيتم تطبيق إعدادات تجاوز التوافق على محرك أقراص USB المحدد. هل تريد المتابعة؟</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>تم تطبيق التصحيح بنجاح!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>مساعد ترقية Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>تطبيق تصحيح التوافق على ISO (تثبيت نظيف)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>هل يمكنني الترقية إلى Windows 11؟</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>هل نجحت الترقية؟</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>اسحب وأفلت ملف ISO الخاص بـ Windows 11 لتصحيحه وتثبيته على الأجهزة غير المدعومة (ترقية مكانية).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>ج: يمكنك تنزيل أحدث ISO من الموقع الرسمي لشركة Microsoft أو استخدام Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>ج: إذا قمت بتثبيت Windows 11 بنجاح ووفرت بعض المال، فلا تتردد في ترك شيء صغير كعلامة شكر هنا.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>انقر هنا للتبرع وإظهار دعمك.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>ج: بمجرد تحميل ISO، يتم تشغيل عملية الإعداد في الخلفية. يبدأ مثبت Windows، موجهًا إياك خلال الخطوات المطلوبة لتثبيت Windows 11 على جهازك.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>ج: يرجى التحقق من رسائل الخطأ والإبلاغ عنها على GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>ج: نعم، تركت Microsoft بابًا خلفيًا مفتوحًا. تستفيد هذه الطريقة من ميزة في عملية إعداد Windows 11 تستخدم إصدار Windows Server من التثبيت. على عكس إعداد Windows 11 العادي، تتخطى هذه النسخة معظم فحوصات توافق الأجهزة.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>ج: وفقًا لشركة Microsoft، يجب عليك التخلص من جهاز الكمبيوتر الخاص بك. أوصي بتثبيت Linux عليه والابتعاد عن Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>ج: المطور هو Belim، المعروف أيضًا باسم Builtbybel، الذي ساهم بالكثير من الشيفرة في مجتمع Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>انقر هنا لمعرفة المزيد عن عمل المطور.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>تنزيل عبر Fido (موصى به)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>موقع Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>الأسئلة الشائعة (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>س: أين يمكنني الحصول على أحدث Windows 11 ISO؟</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>س: كيف يمكنني دعم المطور؟</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>س: كيف تعمل عملية الإعداد بمجرد تحميل ISO؟</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>س: ماذا لو واجهت مشاكل أثناء التثبيت؟</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>س: هل من القانوني استخدام هذه الطريقة؟</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>س: ما هي البدائل إذا لم يكن جهازي مدعومًا؟</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>س: من هو المطور؟</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. الجهاز يعمل بإصدار مدعوم حاليًا من Windows 10. إذا لم يكن الجهاز يعمل بإصدار مدعوم حاليًا من Windows 10، قم بالترقية إلى إصدار مدعوم من Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. الجهاز يلبي</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. قم بتنزيل وتشغيل</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. اختر اختصار تحديث Windows التالي ثم اختر زر التحقق من التحديثات:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. جهازك لا يلبي المتطلبات الرسمية لـ Windows 11؟ يمكنك تطبيق تصحيح التوافق لتمكين الترقية المكانية عبر تحديث Windows.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>يمكن ترقية جهاز Windows 10 الحالي إلى Windows 11 إذا كان يلبي المعايير التالية:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>للتحقق مما إذا كان جهاز Windows 10 مؤهلاً للترقية إلى Windows 11، اتبع إحدى هذه الخيارات:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>المواصفات الدنيا للأجهزة لتشغيل Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>تطبيق WhyNotWin11 لتأكيد أن جهازك يلبي الحد الأدنى من متطلبات النظام</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>يمكن الآن متابعة تثبيت Windows 11. يرجى اتباع التعليمات في نافذة الإعداد.</value>
<comment>تثبيت</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>أنت جاهز لتثبيت Windows 11 على الأجهزة غير المدعومة! تجاهل رسالة 'Windows Server'؛ أنت جاهز!</value>
<comment>تثبيت</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>بدء عملية الإعداد بامتيازات مرتفعة...</value>
<comment>تثبيت</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>عذرًا! حدث خطأ ما:</value>
<comment>تحميل</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>يتم تحميل ISO... انتظر قليلاً!</value>
<comment>تحميل</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>فشل تحميل ISO. يرجى المحاولة مرة أخرى.</value>
<comment>تحميل</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>تم تحميل ISO بنجاح! دعنا نجعل هذا Windows 11 جاهزًا!</value>
<comment>تحميل</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>قريبًا! نحن نستعد للإعداد...</value>
<comment>تثبيت</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>لم يتم العثور على ملف الإعداد في</value>
<comment>تحميل</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>اختر من الكمبيوتر</value>
</data>
</root>
+282
View File
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Bypass patch zrušen uživatelem.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Uživatel nevybral výměné zařízení.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Nebyl vybrán USB disk pro záplatování.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Chyba při aplikování "bypass" záplaty:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Zvolená cesta není vyměnitelný disk. Prosím zvolte USB disk.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Vyberte USB disk obsahující instalační soubory Windows 11. \nTato funkce přidává kompatibilní záplatu, která obejde určité systémové požadavky. \nKompatibilní s disky připravenými jakýmkoli nástrojem, včetně Rufus. Ujistěte se, že je disk připraven!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Tímto se na vybraný USB disk použijí nastavení pro obejití kompatibility ("bypass"). Pokračovat?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Záplata pro obejití ("bypass") byla úspěšně aplikována!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Asistent pro upgrade Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Použít záplatu pro kompatibility na ISO (čistá instalace)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Mohu upgradovat na Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Fungoval upgrade?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Přetáhněte Windows 11 ISO, abyste jej opravili a nainstalovali na nepodporovaný hardware (místní upgrade).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>O: Můžete si stáhnout nejnovější ISO z oficiálních stránek Microsoftu nebo použít Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>O: Pokud jste úspěšně nainstalovali Windows 11 a ušetřili nějaké peníze, neváhejte zde zanechat malý příspěvek jako poděkování.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Klikněte zde, abyste přispěli a vyjádřili svou podporu.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>O: Jakmile je ISO připojeno, proces instalace běží na pozadí. Instalátor Windows se spustí a provede vás kroky potřebnými k instalaci Windows 11 na váš počítač.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>O: Zkontrolujte prosím chybové zprávy a nahlaste je na GitHubu.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>O: Ano, Microsoft nechal otevřená zadní vrátka. Tato metoda využívá funkci instalačního procesu Windows 11, která používá variantu instalace Windows Server. Na rozdíl od běžné instalace Windows 11 tato varianta přeskočí většinu kontrol kompatibility hardwaru.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>O: Podle Microsoftu byste měli svůj počítač vyhodit. Doporučil bych na něj nainstalovat Linux a přejít od Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>O: Vývojářem je Belim, známý také jako Builtbybel, který přispěl velkým množstvím kódu do komunity Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Klikněte zde, abyste se dozvěděli více o práci vývojáře.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Stáhnout přes Fido (doporučeno)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Web Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Často kladené dotazy (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>Q: Kde mohu získat nejnovější ISO Windows 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>Q: Jak mohu podpořit vývojáře?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>Q: Jak funguje proces instalace, jakmile je ISO připojeno?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>Q: Co když narazím na problémy během instalace?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>Q: Je legální použít tuto metodu?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>Q: Jaké mám alternativy, pokud můj počítač není podporován?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>Q: Kdo je vývojář?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Zařízení používá aktuálně podporovanou verzi Windows 10. Pokud zařízení nepoužívá podporovanou verzi Windows 10, upgradujte na podporovanou verzi Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Zařízení splňuje...</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Stáhněte a spusťte...</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Vyberte následující zástupce Windows Update a poté vyberte tlačítko Zkontrolovat aktualizace:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Vaše zařízení nesplňuje oficiální požadavky pro Windows 11? Můžete použít kompatibilní patch, který umožní Inplace Upgrade prostřednictvím Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Stávající zařízení s Windows 10 lze upgradovat na Windows 11, pokud splňuje následující kritéria:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Chcete-li zjistit, zda je zařízení s Windows 10 způsobilé k upgradu na Windows 11, postupujte podle jedné z těchto možností:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>minimální hardwarové požadavky pro spuštění Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>Aplikace WhyNotWin11 pro potvrzení, že vaše zařízení splňuje minimální systémové požadavky.</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Instalace Windows 11 může nyní pokračovat. Postupujte prosím podle pokynů v okně nastavení.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Jste připraveni nainstalovat Windows 11 na nepodporovaný hardware! Ignorujte výzvu 'Windows Server'; jste připraveni!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Zahájení procesu instalace s vyššími oprávněními...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Jejda! Něco se pokazilo:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Připojování ISO... Vydržte!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Nepodařilo se připojit ISO. Zkuste to prosím znovu.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO úspěšně připojeno! Pojďme připravit tento Windows 11!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Skoro hotovo! Připravujeme instalaci...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Instalační soubor nebyl nalezen v...</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Vyberte z počítače.</value>
</data>
</root>
+273
View File
@@ -0,0 +1,273 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Umgehungspatch vom Benutzer abgebrochen.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Benutzer hat versucht, ein nicht entfernbares Laufwerk auszuwählen.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Es wurde kein USB-Laufwerk für den Patch ausgewählt.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Fehler beim Anwenden des Umgehungspatches:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Der ausgewählte Pfad ist kein entfernbares Laufwerk. Bitte wähle ein USB-Laufwerk aus.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Wähle das USB-Laufwerk aus, das deine Windows 11-Installationsdateien enthält.\nDiese Funktion fügt einen Kompatibilitäts-Patch hinzu, um bestimmte Systemanforderungen zu umgehen.\nKompatibel mit Laufwerken, die mit jedem Tool vorbereitet wurden, einschließlich Rufus. Stelle sicher, dass das Laufwerk bereit ist!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Dies wird die Kompatibilitäts-Umgehungseinstellungen auf das ausgewählte USB-Laufwerk anwenden. Fortfahren?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Umgehungspatch wurde erfolgreich angewendet!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 Upgrade-Assistent</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Kompatibilitäts-Patch auf ISO anwenden (Saubere Installation)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Kann ich auf Windows 11 upgraden?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Hat das Upgrade funktioniert?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Ziehe die Windows 11 ISO hierher, um sie zu patchen und auf nicht unterstützter Hardware zu installieren (Inplace-Upgrade).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>A: Du kannst die neueste ISO von der offiziellen Microsoft-Website herunterladen oder den Fido Downloader verwenden.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>A: Wenn du Windows 11 erfolgreich installiert hast und dabei etwas Geld gespart hast, kannst du hier gerne ein kleines Dankeschön hinterlassen.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Klicke hier, um zu spenden und deine Unterstützung zu zeigen.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>A: Sobald die ISO eingebunden ist, läuft der Setup-Prozess im Hintergrund. Der Windows-Installer startet und führt dich durch die erforderlichen Schritte, um Windows 11 auf deinem Gerät zu installieren.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>A: Bitte überprüfe die Fehlermeldungen und melde sie auf GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>A: Ja, Microsoft hat eine Hintertür offen gelassen. Diese Methode nutzt eine Funktion des Windows 11-Setup-Prozesses, die die Windows Server-Variante der Installation verwendet. Im Gegensatz zum normalen Windows 11-Setup überspringt diese Variante die meisten Hardware-Kompatibilitätsprüfungen.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>A: Laut Microsoft solltest du deinen PC wegwerfen. Ich würde empfehlen, Linux darauf zu installieren und von Windows wegzugehen.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>A: Der Entwickler ist Belim, auch bekannt als Builtbybel, der viel Code zur Windows-Community beigetragen hat.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Klicke hier, um mehr über die Arbeit des Entwicklers zu erfahren.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Herunterladen über Fido (Empfohlen)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsoft-Website</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Häufig gestellte Fragen (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>F: Wo kann ich die neueste Windows 11 ISO herunterladen?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>F: Wie kann ich den Entwickler unterstützen?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>F: Wie funktioniert der Setup-Prozess, sobald die ISO eingebunden ist?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>F: Was, wenn ich während der Installation auf Probleme stoße?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>F: Ist es legal, diese Methode zu verwenden?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>F: Was sind meine Alternativen, wenn mein PC nicht unterstützt wird?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>F: Wer ist der Entwickler?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Auf dem Gerät läuft eine aktuell unterstützte Version von Windows 10. Wenn auf dem Gerät aktuell keine unterstützte Version von Windows 10 läuft, führen Sie ein Upgrade auf eine unterstützte Version von Windows 10 durch.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Das Gerät erfüllt</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Prüfen mit der App</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Wählen Sie die folgende Windows Update-Verknüpfung und dann die Schaltfläche Nach Updates suchen:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Ihr Gerät erfüllt nicht die offiziellen Anforderungen für Windows 11? Sie können einen Kompatibilitätspatch anwenden, um das Inplace Upgrade über Windows Update zu ermöglichen.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Ein vorhandenes Windows 10-Gerät kann auf Windows 11 aktualisiert werden, wenn es die folgenden Kriterien erfüllt:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Um festzustellen, ob ein Windows 10-Gerät für ein Upgrade auf Windows 11 berechtigt ist, folgen Sie einer dieser Optionen:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>die Mindesthardwarespezifikationen zum Ausführen von Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>WhyNotWin11-App, um zu bestätigen, dass Ihr Gerät die Mindestsystemanforderungen erfüllt</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Die Windows 11-Installation kann jetzt fortgesetzt werden. Bitte folge den Anweisungen im Setup-Fenster.</value>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Du bist bereit, Windows 11 auf nicht unterstützter Hardware zu installieren! Einfach die Meldung „Windows Server“ ignorieren – und los geht's!</value>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Der Setup-Prozess wird mit erhöhten Berechtigungen gestartet...</value>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Ups! Da ist etwas schiefgelaufen:</value>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>ISO wird eingebunden... Bleib dran!</value>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Das Einbinden der ISO ist fehlgeschlagen. Bitte versuche es erneut.</value>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO erfolgreich eingebunden! Los geht's mit der Vorbereitung von Windows 11!</value>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Fast geschafft! Wir bereiten den Setup vor...</value>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Setup-Datei nicht gefunden in</value>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Vom Computer auswählen</value>
</data>
</root>
+278
View File
@@ -0,0 +1,278 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Patch de contournement annulé par l'utilisateur.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>L'utilisateur a tenté de sélectionner un lecteur non amovible.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Aucune clé USB sélectionnée pour le correctif.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Échec de l'application du correctif de contournement :</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Le chemin sélectionné n'est pas un lecteur amovible. Veuillez sélectionner une clé USB.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Sélectionnez la clé USB contenant vos fichiers d'installation de Windows 11.\nCette fonctionnalité ajoute un correctif de compatibilité pour contourner certaines exigences système.\nCompatible avec les lecteurs préparés par n'importe quel outil, y compris Rufus. Assurez-vous que le lecteur est prêt !</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Cela appliquera les paramètres de contournement de compatibilité sur la clé USB sélectionnée. Continuer ?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Le patch de contournement a été appliqué avec succès !</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Assistant de mise à niveau Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Appliquer le correctif de compatibilité à l'ISO (installation propre)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Puis-je passer à Windows 11 ?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>La mise à niveau a-t-elle fonctionné ?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Glissez et déposez l'ISO Windows 11 pour le corriger et l'installer sur du matériel non pris en charge (mise à niveau sur place).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>R : Vous pouvez télécharger la dernière version ISO à partir du site Web officiel de Microsoft ou utiliser Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>R : Si vous avez réussi à installer Windows 11 et à économiser de l'argent, n'hésitez pas à laisser un petit quelque chose en guise de remerciement ici.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Cliquez ici pour faire un don et montrer votre soutien.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>R : Une fois l'ISO monté, le processus d'installation s'exécute en arrière-plan. Le programme d'installation de Windows démarre et vous guide à travers les étapes requises pour installer Windows 11 sur votre ordinateur.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>R : Veuillez vérifier les messages d’erreur et les signaler sur GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>R : Oui, Microsoft a laissé une porte dérobée ouverte. Cette méthode exploite une fonctionnalité du processus d’installation de Windows 11 qui utilise la variante Windows Server de l’installation. Contrairement à l’installation standard de Windows 11, cette variante ignore la plupart des vérifications de compatibilité matérielle.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>R : Selon Microsoft, vous devriez jeter votre PC. Je vous suggère d'installer Linux dessus et d'abandonner Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>R : Le développeur est Belim, également connu sous le nom de Builtbybel, qui a contribué de nombreux codes à la communauté Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Cliquez ici pour en savoir plus sur le travail du développeur.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Télécharger via Fido (recommandé)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Site Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Questions fréquemment posées (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>Q : Où puis-je obtenir la dernière version ISO de Windows 11 ?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>Q : Comment puis-je soutenir le développeur ?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>Q : Comment fonctionne le processus de configuration une fois l'ISO monté ?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>Q : Que faire si je rencontre des problèmes lors de l’installation ?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>Q : Est-il légal d’utiliser cette méthode ?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>Q : Quelles sont mes alternatives si mon PC n’est pas pris en charge ?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>Q : Qui est le développeur ?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. L'appareil exécute une version actuellement prise en charge de Windows 10. Si l'appareil n'exécute pas actuellement une version prise en charge de Windows 10, effectuez une mise à niveau vers une version prise en charge de Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. L'appareil répond</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Téléchargez et exécutez le</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Sélectionnez le raccourci Windows Update suivant, puis sélectionnez le bouton Rechercher les mises à jour :</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Votre appareil ne répond pas aux exigences officielles de Windows 11 ? Vous pouvez appliquer un correctif de compatibilité pour activer la mise à niveau sur place via Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Un appareil Windows 10 existant peut être mis à niveau vers Windows 11 s'il répond aux critères suivants :</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Pour voir si un appareil Windows 10 est éligible à la mise à niveau vers Windows 11, suivez l'une de ces options :</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>les spécifications matérielles minimales pour exécuter Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>Application WhyNotWin11 pour confirmer que votre appareil répond à la configuration minimale requise</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>L'installation de Windows 11 peut maintenant commencer. Veuillez suivre les instructions dans la fenêtre d'installation.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Vous êtes prêt à installer Windows 11 sur du matériel non pris en charge ! Ignorez l'invite « Windows Server » : vous êtes prêt !</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Démarrage du processus de configuration avec des privilèges élevés...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Oups ! Une erreur s'est produite :</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Montage de l'ISO... Accrochez-vous !</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Impossible de monter l'ISO. Veuillez réessayer.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>L'ISO a été monté avec succès ! Préparons ce Windows 11 !</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Nous y sommes presque ! préparation de l'installation...</value>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Fichier d'installation introuvable dans</value>
<comment>Mounting</comment>
</data>
</root>
+282
View File
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Installazione patch bypass annullata dall'utente.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>L'utente ha selezionato un'unità non rimovibile.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Nessuna unità USB selezionata per l'installazione della patch.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Impossibile applicare la patch bypass:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Il percorso selezionato non è un'unità rimovibile.\nSeleziona un'unità USB.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Seleziona l'unità USB contenente i file di installazione di Windows 11.\ntQuesta funzione aggiunge una patch di compatibilità per bypassare determinati requisiti di sistema.\nÈ compatibile con le unità preparate da qualsiasi strumento, incluso Rufus.\nAssicurati che l'unità sia pronta!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Ciò applicherà le impostazioni di bypass compatibilità nell'unità USB selezionata.\nVuoi continuare?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Patch bypass applicata correttamente!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Assistente aggiornamento Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Applica patch compatibilità a file ISO (installazione pulita)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Posso eseguire l'aggiornamento a Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>L'aggiornamento ha funzionato? Segnalacelo!</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Trascina e rilascia il file ISO di Windows per patcharlo ed installare con hardware non supportato (aggiornamento inplace).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>R: puoi scaricare la versione ISO più recente dal sito web ufficiale di Microsoft o usare il downloader di Fido.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>R: se hai installato correttamente Windows 11 e hai risparmiato un po' di soldi, non esitare a lasciare qualcosa come ringraziamento qui.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Clic qui per donare e dimostrare il tuo supporto.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>R: una volta montato il file ISO, il processo di configurazione verrà eseguito in background. Il programma di installazione di Windows si avvia, guidando i passaggi necessari per installare Windows 11 nel dispositivo.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>R: controlla i messaggi di errore e segnalali in GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>R: sì, Microsoft ha lasciato aperto un backdoor. Questo metodo sfrutta una funzione del processo di configurazione di Windows 11 che usa la variante di Windows Server dell'installazione. A differenza della normale configurazione di Windows 11, questa variante salta la maggior parte dei controlli di compatibilità hardware.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>R: secondo Microsoft, dovresti buttare via il PC. Io ti suggerisco di installarci Linux e di lasciar stare Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>R: lo sviluppatore è Belim, noto anche come Buildbybel, che ha contribuito molto al codice alla comunità di Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Fai clic qui per saperne di più sui lavori dello sviluppatore.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Scarica tramite Fido (consigliato)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Download dal sito Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Domande frequenti (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>D: dove posso scaricare il file ISO della versione più recente di Windows 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>D: come posso supportare lo sviluppatore?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>D: come funziona il processo di configurazione una volta montato il file ISO?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>D: e se riscontro problemi durante l'installazione?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>D: è legale usare questo metodo?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>D: quali sono le alternative se l'hardware del PC non è supportato?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>D: chi è lo sviluppatore?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Il dispositivo contiene una versione di Windows 10 attualmente supportata. Se nel dispositivo non è attualmente in esecuzione una versione supportata di Windows 10, aggiorna ad una versione supportata di Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Il dispositivo soddisfa</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Download ed esecuzione di</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Seleziona il collegamento di Windows Update, quindi seleziona il pulsante 'Controlla aggiornamenti':</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Il dispositivo non soddisfa i requisiti ufficiali per Windows 11? È possibile applicare una patch di compatibilità per abilitare l'aggiornamento inplace tramite Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Un dispositivo con una installazione Windows 10 esistente può essere aggiornata a Windows 11 se soddisfa i seguenti criteri:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Per vedere se un dispositivo Windows 10 è idoneo a passare a Windows 11, segui una di queste opzioni:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>Le specifiche hardware minime per eseguire Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>l'app WhyNotwin11 per confermare se il dispositivo soddisfa i requisiti minimi di sistema</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>L'installazione di Windows 11 può ora procedere. Segui le istruzioni nella finestra di configurazione.</value>
<comment>Installa</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Sei pronto per installare Windows 11 con hardware non supportato! Ignora il prompt "Windows Server"; tutto è pronto!</value>
<comment>Installa</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Avvio processo configurazione con privilegi elevati ...</value>
<comment>Installa</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Oops! Qualcosa è andato storto:</value>
<comment>Montaggio</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Montaggio file...</value>
<comment>Montaggio</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Impossibile montare il file ISO. Riprova.</value>
<comment>Montaggio</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>File ISO montato correttamente! Procediamo con l'installazione di Windows 11!</value>
<comment>Montaggio</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Ci siamo quasi! Preparazione installazione ...</value>
<comment>Installazione</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>File configurazione non trovato in</value>
<comment>Montaggio</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Seleziona dal computer</value>
</data>
</root>
+278
View File
@@ -0,0 +1,278 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>バイパスパッチはユーザーによってキャンセルされました。</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>ユーザーがリムーバブルでないドライブを選択しようとしました。</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>パッチを適用する USB ドライブが選択されていません。</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>バイパスパッチの適用に失敗しました:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>選択したパスはリムーバブルドライブではありません。USB ドライブを選択してください。</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Windows 11 インストールファイルを含む USB ドライブを選択します。\nこの機能は、特定のシステム要件を回避するための互換性パッチを追加します。\nRufus を含む任意のツールで準備されたドライブと互換性があります。\nドライブの準備ができていることを確認してください!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>選択した USB ドライブに互換性バイパス設定が適用されます。続行しますか?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>バイパスパッチが正常に適用されました。</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 アップグレードアシスタント</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>ISO に互換性パッチを適用する (クリーンインストール)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Windows 11 にアップグレードしますか?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>アップグレードは成功しましたか?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Windows 11 の ISO をドラッグ アンド ドロップでパッチを適用してサポートされていないハードウェアにインストール (インプレース アップグレード)</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>A: 最新の ISO は Microsoft の公式 ウェブサイトからダウンロードか、Fido Downloader が使用できます。</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>A: Windows 11 を正常にインストールできてコストが節約できた場合は、ぜひこちらで感謝の気持ちをお伝えください。</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>寄付をして開発をサポートするには、ここをクリックしてください。</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>A: ISO がマウントされるとセットアップ プロセスがバックグラウンドで実行されます。Windows インストーラーが起動し、マシンに Windows 11 をインストールするための必要な手順が案内されます。</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>A: エラーメッセージを確認して GitHub で報告してください。</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>A: はい、Microsoft は、このバックドアを開いたままにしています。この方法は、Windows Server バリアントのインストールを使用する Windows 11 セットアップ プロセスの機能を活用します。通常の Windows 11 セットアップと異なり、このバリアントはほとんどのハードウェア互換性のチェックをスキップします。</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>A: Microsoft によると PC を廃棄した方が良いそうです。Linux をインストールして Windows から離れることを推奨します。</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>A: 開発者は、Windows コミュニティに多くのコードを提供してきた、Builtbybel としても知られている Belim 氏です。</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>開発者の作業の詳細については、ここをクリックしてください。</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Fido を使用してダウンロード (推奨)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsoft のサイト</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>よくある質問 (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>Q: 最新の Windows 11 ISO はどこから入手できますか?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>Q: 開発者に寄付するにはどうすればいいですか?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>Q: ISO がマウントされた後、セットアップ プロセスはどのように機能しますか?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>Q: インストール中に問題が発生した場合はどうすれば良いですか?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>Q: この方法を使用することは合法ですか?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>Q: 使用している PC がサポートされていない場合の代替手段は何でしょうか?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>Q: 開発者は誰ですか?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. デバイスは現在サポートされているバージョンの Windows 10 を実行しています。デバイスが現在サポートされている Windows 10 を実行していない場合は、サポートされている Windows 10 にアップグレードしてください。</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. このデバイス</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. ダウンロードして実行する</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. 次の Windows Update ショートカットを選択して「更新プログラムの確認」ボタンを選択します:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. 使用しているデバイスは Windows 11 の公式要件を満たしていませんか?互換性パッチを適用して、Windows Update 経由でのインプレース アップグレードを有効化することができます。</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>既存の Windows 10 デバイスは、次の条件を満たしている場合に Windows 11 にアップグレードできます:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Windows 10 デバイスが Windows 11 にアップグレードできるかどうかを確認するには、次のいずれかのオプションに従ってください。</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>Windows 11 を実行するための最小ハードウェア仕様である。</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>WhyNotWin11 アプリは、デバイスが最小のシステム要件を満たしているかどうかを確認できます</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Windows 11 のインストールを続行できます。セットアップ ウィンドウの指示に従ってください。</value>
<comment>インストール</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>サポートされていないハードウェアに Windows 11 をインストールする準備ができました。「Windows Server」のプロンプトは無視してください。これで準備完了です!</value>
<comment>インストール</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>昇格された権限でセットアップ プロセスを開始しています...</value>
<comment>インストール</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>おっと!問題が発生しました:</value>
<comment>マウント中</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>ISO をマウント中です... しばらくお待ちください!</value>
<comment>マウント中</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>ISO のマウントに失敗しました。再度お試しください。</value>
<comment>マウント中</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO のマウントに成功しました! Windows 11 を準備します!</value>
<comment>マウント中</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>もうすぐです!セットアップを準備しています...</value>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>セットアップファイルが見つかりません</value>
<comment>マウント中</comment>
</data>
</root>
+282
View File
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Łatka pomijająca została anulowana przez użytkownika.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Użytkownik próbował wybrać niewysuwalny nośnik.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Brak wybranego nośnika USB do aplikowania łatki.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Aplikacja pomijającej łatki zakończyła się niepowodzeniem:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Wybrana ścieżka nie jest wysuwalnym nośnikiem. Wybierz nośnik USB.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Wybierz nośnik USB zawierający instalator Windowsa 11.\nTa funkcja dodaje kompatybilną łatką do pominięcia pewnych wymagań systemowych.\nKompatybilny z nośnikami przygotowanymi przez dowolne narzędzie, w tym Rufusa. Upewnij się, że ten nośnik jest gotowy!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>To zaaplikuje ustawienia pomijające wymagania na tym wybranym nośniku USB. Czy chcesz kontynuować?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Łatka pomijająca wymagania systemowe została pomyślnie zaaplikowana!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 Asystent Uaktualnienia</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Zaaplikuj łatkę kompatybilności do obrazu ISO (czysta instalacja)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Czy mogę zaktualizować do Windowsa 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Czy te uaktualnienie zadziałało?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Przeciągnij i upuść obraz ISO Windowsa 11, żeby go załatać i zainstalować na niewspieranym sprzęcie (aktualizacja na miejscu).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>O: Możesz pobrać najnowszy obraz ISO z oficjalnej strony Microsoft lub użyć pobieracza Fido.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>O: Jeśli udało ci się zainstalować system Windows 11 i zaoszczędzić trochę pieniędzy, możesz zostawić tutaj małe podziękowanie.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Kliknij tutaj, aby wesprzeć mnie i okazać Twoje wsparcie.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>O: Po zamontowaniu obrazu ISO proces instalacji przebiega w tle. Zostanie uruchomiony instalator systemu Windows, który poprowadzi użytkownika przez kolejne kroki wymagane do zainstalowania systemu Windows 11 na komputerze.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>O: Proszę sprawdzić wiadomości błędów i zgłosić je na GitHubie.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>O: Tak, Microsoft pozostawił otwartą furtkę. Ta metoda wykorzystuje funkcję procesu instalacji systemu Windows 11, która wykorzystuje wariant instalacji systemu Windows Server. W przeciwieństwie do zwykłej instalacji systemu Windows 11, ten wariant pomija większość kontroli zgodności sprzętu.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>O: Według Microsoftu, powinieneś/-naś wyrzucić swój komputer. Poleciłbym instalację Linuxa na nim i oddalić się od Windowsa.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>O: Deweloperem jest Belim, znany również jako Builtbybel, który wniósł wiele kodu do społeczności Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Kliknij tutaj, aby dowiedzieć się więcej o pracy dewelopera.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Pobierz przez Fido (rekomendowane)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Strona Microsoftu</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Najczęściej zadawane pytanie (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>P: Gdzie mogę pobrać najnowszy obraz ISO Windowsa 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>P: Jak mogę wesprzeć dewelopera?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>P: Jak przebiega proces instalacji po zainstalowaniu pliku ISO?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>P: Co jeśli napotkam problemy podczas instalacji?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>P: Czy korzystanie z tej metody jest legalne?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>P: Jakie mam alternatywy, jeśli mój komputer nie jest wspierany?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>P: Kto jest deweloperem?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Na urządzeniu działa aktualnie obsługiwana wersja systemu Windows 10. Jeśli na urządzeniu nie działa obecnie obsługiwana wersja systemu Windows 10, należy uaktualnić system do obsługiwanej wersji systemu Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Urządzenie spełnia wymagania</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Pobierz i uruchom</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Wybierz następujący skrót Windows Update, a następnie wybierz przycisk Sprawdź aktualizacje:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Twoje urządzenie nie spełnia oficjalnych wymagań systemu Windows 11? Możesz zastosować poprawkę zgodności, aby włączyć aktualizację w miejscu za pośrednictwem Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Istniejące urządzenie z systemem Windows 10 może zostać uaktualnione do systemu Windows 11, jeśli spełnia następujące kryteria:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Aby sprawdzić, czy urządzenie z systemem Windows 10 kwalifikuje się do uaktualnienia do systemu Windows 11, wykonaj jedną z poniższych opcji:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>minimalne specyfikacje sprzętowe umożliwiające uruchomienie systemu Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>Aplikacja WhyNotWin11, aby potwierdzić, że urządzenie spełnia minimalne wymagania systemowe</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Teraz można kontynuować instalację systemu Windows 11. Postępuj zgodnie z instrukcjami wyświetlanymi w oknie instalacji.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Możesz zainstalować system Windows 11 na nieobsługiwanym sprzęcie! Zignoruj monit „Windows Server”; wszystko gotowe!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Rozpoczęcie procesu instalacji z podwyższonymi uprawnieniami...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Ups! Coś poszło nie tak:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Montowanie obrazu ISO... Trzymaj się mocno!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Montowanie obrazu ISO zakończyło się niepowodzeniem. Spróbuj ponownie.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>Obraz ISO został zamontowany pomyślnie! Przygotujmy Windowsa 11!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Już prawie! Przygotowujemy konfigurację, aby była gotowa...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Nie znaleziono pliku konfiguracyjnego w</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Wybierz z komputera</value>
</data>
</root>
+282
View File
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Bypass patch canceled by user.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>User attempted to select a non-removable drive.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>No USB drive selected for patching.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Failed to apply bypass patch:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>The selected path is not a removable drive. Please select a USB drive.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Select the USB drive containing your Windows 11 installation files.\nThis feature adds a compatibility patch to bypass certain system requirements.\nCompatible with drives prepared by any tool, including Rufus. Ensure the drive is ready!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>This will apply compatibility bypass settings on the selected USB drive. Continue?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Bypass patch applied successfully!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 Upgrading Assistant</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Apply Compatibility Patch to ISO (Clean Install)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Can I upgrade to Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Did the upgrade work?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Drag and drop the Windows 11 ISO to patch it and install on unsupported hardware (Inplace Upgrade).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>A: You can download the latest ISO from the official Microsoft website or use the Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>A: If you've successfully installed Windows 11 and saved some money, feel free to leave a little something as a thank-you here.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Click here to donate and show your support.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>A: Once the ISO is mounted, the setup process runs in the background. The Windows installer starts, guiding you through the steps required to install Windows 11 on your machine.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>A: Please check the error messages and report it on GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>A: Yes, Microsoft has left a backdoor open. This method leverages a feature of the Windows 11 setup process that uses the Windows Server variant of the installation. Unlike the regular Windows 11 setup, this variant skips most hardware compatibility checks.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>A: According to Microsoft, you should throw your PC away. I would suggest installing Linux on it and moving away from Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>A: The developer is Belim, also known as Builtbybel, who has contributed a lot of code to the Windows community.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Click here to learn more about the developer's work.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Download via Fido (Recommended)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsoft Site</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Frequently Asked Questions (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>Q: Where can I get the latest Windows 11 ISO?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>Q: How can I support the developer?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>Q: How does the setup process work once the ISO is mounted?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>Q: What if I encounter issues during installation?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>Q: Is it legal to use this method?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>Q: What are my alternatives if my PC is not supported?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>Q: Who is the developer?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. The device is running a currently supported version of Windows 10. If the device isn't currently running a supported version of Windows 10, upgrade to a supported version of Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. The device meets</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Download and run the</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Select the following Windows Update shortcut and then select the Check for updates button:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Your device does not meet the official requirements for Windows 11? You can apply a compatibility patch to enable the Inplace Upgrade via Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>An existing Windows 10 device can be upgraded to Windows 11 if it meets the following criteria:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>To see if a Windows 10 device is eligible to upgrade to Windows 11, follow one of these options:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>the minimum hardware specifications to run Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>WhyNotWin11 app to confirm your device meets the minimum system requirements</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Windows 11 installation can now proceed. Please follow the instructions in the setup window.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>You're ready to install Windows 11 on unsupported hardware! Ignore the 'Windows Server' prompt; you're all set!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Starting the setup process with elevated privileges...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Oops! Something went wrong:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Mounting the ISO... Hang tight!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Failed to mount the ISO. Please try again.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO mounted successfully! Let's get this Windows 11 ready!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Almost there! We're getting the setup ready...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Setup file not found in</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Select from computer</value>
</data>
</root>
+223
View File
@@ -0,0 +1,223 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Установка патча совместимости отменена пользователем.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Пользователь пытался выбрать несъемный диск.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>USB-накопитель для установки патча не выбран.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Не удалось применить патч совместимости:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Выбранный путь не является съемным диском. Пожалуйста, выберите USB-накопитель.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Выберите USB-накопитель с файлами установки Windows 11.\nЭта функция добавляет патч совместимости для обхода определенных системных требований.\nСовместимо с накопителями, подготовленными любым инструментом, включая Rufus. Убедитесь, что накопитель готов!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Это применит настройки обхода совместимости на выбранном USB-накопителе. Продолжить?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Патч совместимости успешно применен!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Помощник по обновлению Flyby11</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Применить патч совместимости к ISO (чистая установка)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Могу ли я обновиться до Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Получилось ли обновление?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Перетащите ISO-файл Windows 11 для применения патча и установки на неподдерживаемом оборудовании (обновление на месте).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>О: Вы можете скачать последний ISO-файл с официального сайта Microsoft или использовать Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>О: Если вы успешно установили Windows 11 и сэкономили деньги, не стесняйтесь оставить небольшое пожертвование в знак благодарности здесь.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Нажмите здесь, чтобы пожертвовать и поддержать проект.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>О: После монтирования ISO-файла процесс установки запускается в фоновом режиме. Установщик Windows запустится и проведет вас через необходимые шаги для установки Windows 11 на ваш компьютер.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>О: Пожалуйста, проверьте сообщения об ошибках и сообщите о проблеме на GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>О: Да, Microsoft оставила лазейку. Этот метод использует особенность процесса установки Windows 11, которая использует серверный вариант установки. В отличие от обычной установки Windows 11, этот вариант пропускает большинство проверок совместимости оборудования.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>О: По мнению Microsoft, вам следует выбросить свой ПК. Я бы предложил установить на него Linux и отказаться от Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>О: Разработчик - Belim, также известный как Builtbybel, который внес большой вклад в сообщество Windows.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Нажмите здесь, чтобы узнать больше о работе разработчика.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Скачать через Fido (рекомендуется)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Сайт Microsoft</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Часто задаваемые вопросы (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>В: Где взять свежий ISO-файл Windows 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>В: Как я могу поддержать разработчика?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>В: Как работает процесс установки после монтирования ISO?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>В: Что делать, если возникли проблемы во время установки?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>В: Законно ли использовать этот метод?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>В: Какие есть альтернативы, если мой ПК не поддерживается?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>В: Кто разработчик?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Устройство работает на поддерживаемой версии Windows 10. Если устройство сейчас не работает на поддерживаемой версии Windows 10, обновите его до поддерживаемой версии Windows 10.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Устройство соответствует</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Скачайте и запустите</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Выберите следующий ярлык Windows Update и нажмите кнопку "Проверить наличие обновлений":</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Ваше устройство не соответствует официальным требованиям Windows 11? Вы можете применить патч совместимости для включения обновления на месте через Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Существующее устройство с Windows 10 может быть обновлено до Windows 11, если оно соответствует следующим критериям:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Чтобы проверить, может ли устройство с Windows 10 быть обновлено до Windows 11, выполните один из следующих вариантов:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>минимальным требованиям к оборудованию для запуска Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>приложение WhyNotWin11, чтобы подтвердить, что ваше устройство соответствует минимальным системным требованиям</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Установка Windows 11 может быть продолжена. Пожалуйста, следуйте инструкциям в окне установки.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Вы готовы к установке Windows 11 на неподдерживаемом оборудовании! Игнорируйте сообщение о 'Windows Server' - всё готово!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Запуск процесса установки с повышенными привилегиями...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Упс! Что-то пошло не так:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Монтирование ISO... Подождите!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Не удалось смонтировать ISO. Пожалуйста, попробуйте снова.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO успешно смонтирован! Давайте подготовим эту Windows 11!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Почти готово! Подготавливаем установку...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Файл установки не найден в</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Выбрать с компьютера</value>
</data>
</root>
+282
View File
@@ -0,0 +1,282 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Förbikoppling avbruten av användaren.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Användaren försökte välja en icke flyttbar enhet.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Ingen USB-enhet har valts för modifiering.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Det gick inte att utföra modifieringen av förbikopplingen:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Den valda sökvägen är inte en flyttbar enhet. Välj en USB-enhet.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Välj USB-enheten som innehåller dina Windows 11-installationsfiler.\nDen här funktionen lägger till en kompatibilitetsändring för att kringgå vissa systemkrav.\nKompatibel med enheter förberedda av alla verktyg, inklusive Rufus. Se till att enheten är klar!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Detta kommer att verkställa ändringar för förbikoppling av kompatibilitet på den valda USB-enheten. Fortsätta?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Förbikoppling klar!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 uppgraderingsassistent</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Applicera kompatibilitetskorrigering på ISO-filen (ren installation)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Kan jag uppgradera till Windows 11?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Fungerade uppgraderingen?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Dra och släpp Windows 11 ISO-filen för att förbikoppla och installera den på hårdvara som inte stöds (uppgradering på plats).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>A: Du kan ladda ner den senaste ISO-filen från den officiella Microsoft-webbplatsen eller använda Fido Downloader.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>A: Om du lyckas installera Windows 11 och sparat lite pengar, lämna gärna något som tack för hjälpen här.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Klicka här för att donera och visa ditt stöd.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>A: När ISO-filen är monterad körs installationsprocessen i bakgrunden. Windows-installationsprogrammet startar och guidar dig genom stegen som krävs för att installera Windows 11 på din dator.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>A: Kontrollera felmeddelandena och rapportera det på GitHub.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>A: Ja, Microsoft har lämnat en bakdörr öppen. Den här metoden utnyttjar en funktion i installationsprocessen för Windows 11 som använder Windows Server-varianten av installationen. Till skillnad från den vanliga Windows 11-installationen hoppar denna variant över de flesta kontroller av hårdvarukompatibilitet.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>A: Enligt Microsoft bör du slänga din dator. Jag skulle föreslå att du installerar Linux på den och överger Windows.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>A: Utvecklaren är Belim även känd som Builtbybel som har bidragit med mycket kod till Windows-communityt.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Klicka här för att lära dig mer om utvecklarens arbete.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Ladda ner via Fido (rekommenderas)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsofts webbplats</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Vanliga frågor (FAQ)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>Q: Var kan jag få tag i den senaste ISO-filen med Windows 11?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>Q: Hur kan jag stöda utvecklaren?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>Q: Hur fungerar installationsprocessen när ISO-filen är monterad?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>Q: Vad händer om jag stöter på problem under installationen?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>Q: Är det lagligt att använda denna metoden?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>Q: Vilka är mina alternativ om min dator inte stöds?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>Q: Vem är utvecklaren?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Enheten kör en version av Windows 10 som stöds för närvarande. Om enheten för närvarande inte kör en version av Windows 10 som stöds, uppgradera till en version av Windows 10 som stöds.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Enheten uppfyller</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. Ladda ner och kör</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Välj följande genväg för Windows Update och välj sedan knappen sök efter uppdateringar:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Din enhet uppfyller inte de officiella kraven för Windows 11? Du kan använda en kompatibilitetskorrigering för att aktivera uppgradering på plats via Windows Update.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>En befintlig Windows 10-enhet kan uppgraderas till Windows 11 om den uppfyller följande kriterier:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>För att kontrollera om en Windows 10-enhet är lämplig att uppgradera till Windows 11, följ ett av dessa alternativ:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>de minsta hårdvaruspecifikationerna för att köra Windows 11.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>WhyNotWin11-appen för att bekräfta att din enhet uppfyller de lägsta systemkraven</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Installationen av Windows 11 kan nu fortsätta. Följ instruktionerna i installationsfönstret.</value>
<comment>Install</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Du är redo att installera Windows 11 på hårdvaran som inte stöds! Ignorera fönstret om 'Windows Server'; du är klar!</value>
<comment>Install</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Startar installationsprocessen med förhöjda privilegier...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Hoppsan! Något gick fel:</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>Monterar ISO-filen... Snart klart!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>Det gick inte att montera ISO-filen. Försök igen.</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO-filen monterad! Låt oss göra Windows 11 klar!</value>
<comment>Mounting</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Nästan där! Vi förbereder installationen...</value>
<comment>Install</comment>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Installationsfilen hittades inte i</value>
<comment>Mounting</comment>
</data>
<data name="ctl_linkSelectComputer" xml:space="preserve">
<value>Välj från datorn</value>
</data>
</root>
+278
View File
@@ -0,0 +1,278 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="compPatch_debugCancel" xml:space="preserve">
<value>Baypas yaması kullanıcı tarafından iptal edildi.</value>
</data>
<data name="compPatch_debugNotRemovableDrive" xml:space="preserve">
<value>Kullanıcı çıkarılamayan bir sürücü seçmeye çalıştı.</value>
</data>
<data name="compPatch_debugNoUSBDrive" xml:space="preserve">
<value>Yama için USB sürücüsü seçilmedi.</value>
</data>
<data name="compPatch_msgFailedEx" xml:space="preserve">
<value>Baypas yaması uygulanamadı:</value>
</data>
<data name="compPatch_msgNotRemovableDrive" xml:space="preserve">
<value>Seçilen yol çıkarılabilir bir sürücü değil. Lütfen bir USB sürücüsü seçin.</value>
</data>
<data name="compPatch_msgSelectDrive" xml:space="preserve">
<value>Windows 11 kurulum dosyalarınızı içeren USB sürücüsünü seçin.\nBu özellik, belirli sistem gereksinimlerini atlatmak için bir uyumluluk yaması ekler.\nRufus dahil olmak üzere herhangi bir araç tarafından hazırlanan sürücülerle uyumludur. Sürücünün hazır olduğundan emin olun!</value>
</data>
<data name="compPatch_msgSelectDriveConfirm" xml:space="preserve">
<value>Bu, seçili USB sürücüsünde uyumluluk atlama ayarlarını uygulayacaktır. Devam etmek istiyor musunuz?</value>
</data>
<data name="compPatch_msgSuccess" xml:space="preserve">
<value>Baypas yaması başarıyla uygulandı!</value>
</data>
<data name="ctl_FormTitle" xml:space="preserve">
<value>Flyby11 Yükseltme Asistanı</value>
</data>
<data name="ctl_inkCompPatch" xml:space="preserve">
<value>Uyumluluk Yaması'nı ISO'ya Uygula (Temiz Kurulum)</value>
</data>
<data name="ctl_linkCiuv" xml:space="preserve">
<value>Windows 11'e yükseltebilir miyim?</value>
</data>
<data name="ctl_linkVote" xml:space="preserve">
<value>Yükseltme işe yaradı mı?</value>
</data>
<data name="ctl_statusLabel" xml:space="preserve">
<value>Windows 11 ISO'yu sürükleyip bırakarak yama yapın ve desteklenmeyen donanımlara yükleyin (Yerinde Yükseltme).</value>
</data>
<data name="faq_a1" xml:space="preserve">
<value>C: En son ISO'yu resmi Microsoft web sitesinden indirebilir veya Fido Downloader'ı kullanabilirsiniz.</value>
</data>
<data name="faq_a2" xml:space="preserve">
<value>C: Windows 11'i başarıyla kurduysanız ve biraz para biriktirdiyseniz, buraya teşekkür amaçlı küçük bir şey bırakmaktan çekinmeyin.</value>
</data>
<data name="faq_a2Link" xml:space="preserve">
<value>Bağışta bulunmak ve desteğinizi göstermek için buraya tıklayın.</value>
</data>
<data name="faq_a3" xml:space="preserve">
<value>C: ISO yüklendikten sonra kurulum süreci arka planda çalışır. Windows yükleyicisi başlar ve makinenize Windows 11'i yüklemek için gereken adımlarda size rehberlik eder.</value>
</data>
<data name="faq_a4" xml:space="preserve">
<value>C: Lütfen hata mesajlarını kontrol edin ve GitHub'a bildirin.</value>
</data>
<data name="faq_a5" xml:space="preserve">
<value>C: Evet, Microsoft bir arka kapıyı açık bıraktı. Bu yöntem, kurulumun Windows Server varyantını kullanan Windows 11 kurulum sürecinin bir özelliğinden yararlanır. Normal Windows 11 kurulumunun aksine, bu varyant çoğu donanım uyumluluk denetimini atlar.</value>
</data>
<data name="faq_a6" xml:space="preserve">
<value>C: Microsoft'a göre, bilgisayarınızı atmalısınız. Ben ona Linux kurmanızı ve Windows'tan uzaklaşmanızı öneririm.</value>
</data>
<data name="faq_a7" xml:space="preserve">
<value>C: Geliştirici, Windows topluluğuna çok sayıda kod katkıda bulunan, aynı zamanda Builtbybel olarak da bilinen Belim'dir.</value>
</data>
<data name="faq_a7Link" xml:space="preserve">
<value>Geliştiricinin çalışmaları hakkında daha fazla bilgi edinmek için buraya tıklayın.</value>
</data>
<data name="faq_downloadFido" xml:space="preserve">
<value>Fido üzerinden indirin (Önerilen)</value>
</data>
<data name="faq_downloadMS" xml:space="preserve">
<value>Microsoft Site</value>
</data>
<data name="faq_header" xml:space="preserve">
<value>Sıkça Sorulan Sorular (SSS)</value>
</data>
<data name="faq_q1" xml:space="preserve">
<value>S: En son Windows 11 ISO'sunu nereden edinebilirim?</value>
</data>
<data name="faq_q2" xml:space="preserve">
<value>S: Geliştiriciye nasıl destek olabilirim?</value>
</data>
<data name="faq_q3" xml:space="preserve">
<value>S: ISO yüklendikten sonra kurulum süreci nasıl işliyor?</value>
</data>
<data name="faq_q4" xml:space="preserve">
<value>S: Kurulum sırasında sorunlarla karşılaşırsam ne olur?</value>
</data>
<data name="faq_q5" xml:space="preserve">
<value>S: Bu yöntemi kullanmak yasal mı?</value>
</data>
<data name="faq_q6" xml:space="preserve">
<value>S: Bilgisayarım desteklenmiyorsa alternatiflerim nelerdir?</value>
</data>
<data name="faq_q7" xml:space="preserve">
<value>S: Geliştirici kimdir?</value>
</data>
<data name="ciuView_lblPtAns" xml:space="preserve">
<value>1. Cihaz şu anda desteklenen bir Windows 10 sürümü çalıştırıyor. Cihaz şu anda desteklenen bir Windows 10 sürümü çalıştırmıyorsa, desteklenen bir Windows 10 sürümüne yükseltin.</value>
</data>
<data name="ciuView_lblPtAns2" xml:space="preserve">
<value>2. Cihaz karşılar</value>
</data>
<data name="ciuView_lblPtAns3" xml:space="preserve">
<value>1. İndirin ve çalıştırın</value>
</data>
<data name="ciuView_lblPtAns4" xml:space="preserve">
<value>2. Aşağıdaki Windows Update kısayolunu seçin ve ardından Güncelleştirmeleri denetle düğmesini seçin:</value>
</data>
<data name="ciuView_lblPtAns5" xml:space="preserve">
<value>3. Cihazınız Windows 11'in resmi gereksinimlerini karşılamıyor mu? Windows Update aracılığıyla Yerinde Yükseltmeyi etkinleştirmek için bir uyumluluk yaması uygulayabilirsiniz.</value>
</data>
<data name="ciuView_lblPtHdr" xml:space="preserve">
<value>Mevcut bir Windows 10 cihazı, aşağıdaki ölçütleri karşılıyorsa Windows 11'e yükseltilebilir:</value>
</data>
<data name="ciuView_lblPtHdr2" xml:space="preserve">
<value>Bir Windows 10 cihazının Windows 11'e yükseltmeye uygun olup olmadığını görmek için şu seçeneklerden birini izleyin:</value>
</data>
<data name="ciuView_linkPtAns2" xml:space="preserve">
<value>Windows 11'i çalıştırmak için gereken minimum donanım özellikleri.</value>
</data>
<data name="ciuView_linkPtAns3" xml:space="preserve">
<value>Cihazınızın minimum sistem gereksinimlerini karşıladığını doğrulamak için WhyNotWin11 uygulaması</value>
</data>
<data name="msg_InstallReady" xml:space="preserve">
<value>Windows 11 kurulumu artık devam edebilir. Lütfen kurulum penceresindeki talimatları izleyin.</value>
<comment>Kur</comment>
</data>
<data name="_debugInstallReady" xml:space="preserve">
<value>Desteklenmeyen donanıma Windows 11 yüklemeye hazırsınız! 'Windows Server' istemini görmezden gelin; artık hazırsınız!</value>
<comment>Kur</comment>
</data>
<data name="_debugInstallRunElevated" xml:space="preserve">
<value>Kurulum süreci yükseltilmiş ayrıcalıklarla başlatılıyor...</value>
<comment>Kur</comment>
</data>
<data name="_debugStatusHandleIsoEx" xml:space="preserve">
<value>Oops! Bir şeyler ters gitti:</value>
<comment>Yükle</comment>
</data>
<data name="_debugStatusMounting" xml:space="preserve">
<value>ISO montajı... Sıkı durun!</value>
<comment>Yükle</comment>
</data>
<data name="_debugStatusMountingFailed" xml:space="preserve">
<value>ISO bağlanamadı. Lütfen tekrar deneyin.</value>
<comment>Yükle</comment>
</data>
<data name="_debugStatusMountingSuccess" xml:space="preserve">
<value>ISO başarıyla bağlandı! Hadi Windows 11'i hazırlayalım!</value>
<comment>Yükle</comment>
</data>
<data name="_debugStatusRunning" xml:space="preserve">
<value>Neredeyse bitti! Kurulumu hazırlıyoruz...</value>
</data>
<data name="_debugStatusSetupFileNotFound" xml:space="preserve">
<value>Kurulum dosyası bulunamadı</value>
<comment>Yükle</comment>
</data>
</root>
+120 -194
View File
@@ -1,4 +1,4 @@
namespace FlybyScript namespace Flyby11
{ {
partial class MainForm partial class MainForm
{ {
@@ -28,234 +28,160 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); this.panelDragDrop = new System.Windows.Forms.Panel();
this.treeSettings = new System.Windows.Forms.TreeView();
this.rtbDescription = new System.Windows.Forms.RichTextBox();
this.btnTogglePatch = new System.Windows.Forms.Button();
this.linkGitHub = new System.Windows.Forms.LinkLabel();
this.btnMountRun = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.linkLabel1 = new System.Windows.Forms.LinkLabel(); this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.linkLabel2 = new System.Windows.Forms.LinkLabel(); this.linkCompPatch = new System.Windows.Forms.LinkLabel();
this.statusLabel = new System.Windows.Forms.Label();
this.panelFAQ = new System.Windows.Forms.Panel();
this.linkAppDev = new System.Windows.Forms.LinkLabel();
this.panelContainer = new System.Windows.Forms.Panel();
this.panelMain = new System.Windows.Forms.Panel(); this.panelMain = new System.Windows.Forms.Panel();
this.linkChangeExperience = new System.Windows.Forms.LinkLabel(); this.panelDragDrop.SuspendLayout();
this.panelForm = new System.Windows.Forms.Panel(); this.panelContainer.SuspendLayout();
this.panelMain.SuspendLayout(); this.panelMain.SuspendLayout();
this.panelForm.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// treeSettings // panelDragDrop
// //
this.treeSettings.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.panelDragDrop.AllowDrop = true;
| System.Windows.Forms.AnchorStyles.Right))); this.panelDragDrop.Anchor = System.Windows.Forms.AnchorStyles.None;
this.treeSettings.BackColor = System.Drawing.Color.White; this.panelDragDrop.Controls.Add(this.linkLabel1);
this.treeSettings.BorderStyle = System.Windows.Forms.BorderStyle.None; this.panelDragDrop.Controls.Add(this.linkCompPatch);
this.treeSettings.CheckBoxes = true; this.panelDragDrop.Controls.Add(this.statusLabel);
this.treeSettings.Font = new System.Drawing.Font("Segoe UI Variable Small Light", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.panelDragDrop.Location = new System.Drawing.Point(47, 184);
this.treeSettings.ForeColor = System.Drawing.Color.Black; this.panelDragDrop.Name = "panelDragDrop";
this.treeSettings.FullRowSelect = true; this.panelDragDrop.Size = new System.Drawing.Size(436, 256);
this.treeSettings.Indent = 20; this.panelDragDrop.TabIndex = 0;
this.treeSettings.ItemHeight = 25; this.panelDragDrop.DragDrop += new System.Windows.Forms.DragEventHandler(this.panelDragDrop_DragDrop);
this.treeSettings.Location = new System.Drawing.Point(36, 168); this.panelDragDrop.DragEnter += new System.Windows.Forms.DragEventHandler(this.panelDragDrop_DragEnter);
this.treeSettings.Name = "treeSettings"; this.panelDragDrop.Paint += new System.Windows.Forms.PaintEventHandler(this.panelDragDrop_Paint);
this.treeSettings.ShowLines = false;
this.treeSettings.ShowNodeToolTips = true;
this.treeSettings.ShowPlusMinus = false;
this.treeSettings.ShowRootLines = false;
this.treeSettings.Size = new System.Drawing.Size(865, 172);
this.treeSettings.TabIndex = 200;
this.treeSettings.TabStop = false;
this.treeSettings.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.treeSettings_AfterCheck);
this.treeSettings.MouseMove += new System.Windows.Forms.MouseEventHandler(this.treeSettings_MouseMove);
//
// rtbDescription
//
this.rtbDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtbDescription.BackColor = System.Drawing.Color.White;
this.rtbDescription.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.rtbDescription.Font = new System.Drawing.Font("Segoe UI Variable Small Light", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtbDescription.ForeColor = System.Drawing.Color.Black;
this.rtbDescription.Location = new System.Drawing.Point(34, 346);
this.rtbDescription.Name = "rtbDescription";
this.rtbDescription.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.Vertical;
this.rtbDescription.Size = new System.Drawing.Size(867, 123);
this.rtbDescription.TabIndex = 199;
this.rtbDescription.TabStop = false;
this.rtbDescription.Text = "";
//
// btnTogglePatch
//
this.btnTogglePatch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnTogglePatch.BackColor = System.Drawing.Color.White;
this.btnTogglePatch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnTogglePatch.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(192)))));
this.btnTogglePatch.FlatAppearance.BorderSize = 2;
this.btnTogglePatch.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(192)))));
this.btnTogglePatch.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnTogglePatch.Font = new System.Drawing.Font("Segoe UI Variable Small", 11F);
this.btnTogglePatch.Location = new System.Drawing.Point(629, 497);
this.btnTogglePatch.Name = "btnTogglePatch";
this.btnTogglePatch.Size = new System.Drawing.Size(222, 40);
this.btnTogglePatch.TabIndex = 201;
this.btnTogglePatch.TabStop = false;
this.btnTogglePatch.Text = "Patch";
this.btnTogglePatch.UseCompatibleTextRendering = true;
this.btnTogglePatch.UseVisualStyleBackColor = false;
this.btnTogglePatch.Click += new System.EventHandler(this.btnTogglePatch_Click);
//
// linkGitHub
//
this.linkGitHub.ActiveLinkColor = System.Drawing.Color.Magenta;
this.linkGitHub.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.linkGitHub.AutoEllipsis = true;
this.linkGitHub.Font = new System.Drawing.Font("Segoe UI Variable Small", 8.75F);
this.linkGitHub.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkGitHub.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(65)))), ((int)(((byte)(17)))));
this.linkGitHub.Location = new System.Drawing.Point(169, 567);
this.linkGitHub.Name = "linkGitHub";
this.linkGitHub.Size = new System.Drawing.Size(45, 16);
this.linkGitHub.TabIndex = 202;
this.linkGitHub.TabStop = true;
this.linkGitHub.Text = "GitHub";
this.linkGitHub.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkGitHub_LinkClicked);
//
// btnMountRun
//
this.btnMountRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnMountRun.AutoEllipsis = true;
this.btnMountRun.BackColor = System.Drawing.Color.White;
this.btnMountRun.Cursor = System.Windows.Forms.Cursors.Hand;
this.btnMountRun.FlatAppearance.BorderColor = System.Drawing.Color.Gray;
this.btnMountRun.FlatAppearance.BorderSize = 2;
this.btnMountRun.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(192)))));
this.btnMountRun.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnMountRun.Font = new System.Drawing.Font("Segoe UI Variable Small", 11F);
this.btnMountRun.Location = new System.Drawing.Point(403, 497);
this.btnMountRun.Name = "btnMountRun";
this.btnMountRun.Size = new System.Drawing.Size(220, 40);
this.btnMountRun.TabIndex = 203;
this.btnMountRun.TabStop = false;
this.btnMountRun.Text = "Mount and Run ISO";
this.btnMountRun.UseVisualStyleBackColor = false;
this.btnMountRun.Click += new System.EventHandler(this.btnMountRun_Click);
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoEllipsis = true;
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Small Light", 21.25F);
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(192)))));
this.label1.Location = new System.Drawing.Point(30, 38);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(780, 82);
this.label1.TabIndex = 205;
this.label1.Text = "Utilize FlybyScript to Bypass Windows 11 Hardware Restrictions and Install on Uns" +
"upported Devices";
// //
// linkLabel1 // linkLabel1
// //
this.linkLabel1.ActiveLinkColor = System.Drawing.Color.Magenta; this.linkLabel1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.linkLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.linkLabel1.AutoEllipsis = true; this.linkLabel1.AutoEllipsis = true;
this.linkLabel1.Font = new System.Drawing.Font("Segoe UI Variable Small", 8.75F); this.linkLabel1.AutoSize = true;
this.linkLabel1.BackColor = System.Drawing.Color.Transparent;
this.linkLabel1.Cursor = System.Windows.Forms.Cursors.Hand;
this.linkLabel1.Font = new System.Drawing.Font("Segoe UI Variable Small", 8.25F);
this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; this.linkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkLabel1.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(164)))), ((int)(((byte)(239))))); this.linkLabel1.LinkColor = System.Drawing.Color.Gray;
this.linkLabel1.Location = new System.Drawing.Point(27, 567); this.linkLabel1.Location = new System.Drawing.Point(141, 230);
this.linkLabel1.Name = "linkLabel1"; this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(122, 16); this.linkLabel1.Size = new System.Drawing.Size(157, 15);
this.linkLabel1.TabIndex = 206; this.linkLabel1.TabIndex = 1;
this.linkLabel1.TabStop = true; this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "A Belim app creation"; this.linkLabel1.Text = "Can I upgrade to Windows 11?";
this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
// //
// linkLabel2 // linkCompPatch
// //
this.linkLabel2.ActiveLinkColor = System.Drawing.Color.Magenta; this.linkCompPatch.ActiveLinkColor = System.Drawing.Color.BlueViolet;
this.linkLabel2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.linkCompPatch.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.linkLabel2.AutoEllipsis = true; this.linkCompPatch.AutoSize = true;
this.linkLabel2.Font = new System.Drawing.Font("Segoe UI Variable Small", 8.75F); this.linkCompPatch.BackColor = System.Drawing.Color.Transparent;
this.linkLabel2.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline; this.linkCompPatch.Font = new System.Drawing.Font("Segoe UI Variable Small", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkLabel2.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(127)))), ((int)(((byte)(186)))), ((int)(((byte)(0))))); this.linkCompPatch.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkLabel2.Location = new System.Drawing.Point(235, 567); this.linkCompPatch.LinkColor = System.Drawing.Color.DimGray;
this.linkLabel2.Name = "linkLabel2"; this.linkCompPatch.Location = new System.Drawing.Point(95, 208);
this.linkLabel2.Size = new System.Drawing.Size(54, 16); this.linkCompPatch.Name = "linkCompPatch";
this.linkLabel2.TabIndex = 208; this.linkCompPatch.Size = new System.Drawing.Size(244, 15);
this.linkLabel2.TabStop = true; this.linkCompPatch.TabIndex = 211;
this.linkLabel2.Text = "0.11.31"; this.linkCompPatch.TabStop = true;
this.linkCompPatch.Text = "Apply Compatibility Patch to ISO (Clean Install)";
this.linkCompPatch.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkCompPatch_LinkClicked);
//
// statusLabel
//
this.statusLabel.Anchor = System.Windows.Forms.AnchorStyles.None;
this.statusLabel.AutoEllipsis = true;
this.statusLabel.BackColor = System.Drawing.Color.Transparent;
this.statusLabel.Font = new System.Drawing.Font("Segoe UI Variable Text Semibold", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.statusLabel.Location = new System.Drawing.Point(39, 44);
this.statusLabel.Name = "statusLabel";
this.statusLabel.Size = new System.Drawing.Size(352, 139);
this.statusLabel.TabIndex = 0;
this.statusLabel.Text = "Move ISO here";
this.statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panelFAQ
//
this.panelFAQ.AutoScroll = true;
this.panelFAQ.BackColor = System.Drawing.Color.Gainsboro;
this.panelFAQ.Dock = System.Windows.Forms.DockStyle.Right;
this.panelFAQ.Location = new System.Drawing.Point(561, 0);
this.panelFAQ.Name = "panelFAQ";
this.panelFAQ.Size = new System.Drawing.Size(359, 585);
this.panelFAQ.TabIndex = 207;
//
// linkAppDev
//
this.linkAppDev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.linkAppDev.AutoSize = true;
this.linkAppDev.BackColor = System.Drawing.Color.Gainsboro;
this.linkAppDev.Font = new System.Drawing.Font("Segoe UI Variable Small", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkAppDev.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkAppDev.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(35)))), ((int)(((byte)(115)))), ((int)(((byte)(193)))));
this.linkAppDev.Location = new System.Drawing.Point(821, -1);
this.linkAppDev.Name = "linkAppDev";
this.linkAppDev.Size = new System.Drawing.Size(99, 15);
this.linkAppDev.TabIndex = 208;
this.linkAppDev.TabStop = true;
this.linkAppDev.Text = "We live on GitHub";
this.linkAppDev.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkAppDev_LinkClicked);
//
// panelContainer
//
this.panelContainer.Controls.Add(this.panelMain);
this.panelContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelContainer.Location = new System.Drawing.Point(0, 0);
this.panelContainer.Name = "panelContainer";
this.panelContainer.Size = new System.Drawing.Size(561, 585);
this.panelContainer.TabIndex = 209;
// //
// panelMain // panelMain
// //
this.panelMain.Controls.Add(this.linkLabel2); this.panelMain.Controls.Add(this.panelDragDrop);
this.panelMain.Controls.Add(this.linkChangeExperience);
this.panelMain.Controls.Add(this.label1);
this.panelMain.Controls.Add(this.linkLabel1);
this.panelMain.Controls.Add(this.rtbDescription);
this.panelMain.Controls.Add(this.treeSettings);
this.panelMain.Controls.Add(this.btnMountRun);
this.panelMain.Controls.Add(this.btnTogglePatch);
this.panelMain.Controls.Add(this.linkGitHub);
this.panelMain.Dock = System.Windows.Forms.DockStyle.Fill; this.panelMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelMain.Location = new System.Drawing.Point(0, 0); this.panelMain.Location = new System.Drawing.Point(0, 0);
this.panelMain.Name = "panelMain"; this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(943, 592); this.panelMain.Size = new System.Drawing.Size(561, 585);
this.panelMain.TabIndex = 209; this.panelMain.TabIndex = 1;
//
// linkChangeExperience
//
this.linkChangeExperience.ActiveLinkColor = System.Drawing.Color.Fuchsia;
this.linkChangeExperience.AutoSize = true;
this.linkChangeExperience.Font = new System.Drawing.Font("Segoe UI Variable Small Semilig", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.linkChangeExperience.LinkBehavior = System.Windows.Forms.LinkBehavior.HoverUnderline;
this.linkChangeExperience.LinkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(192)))));
this.linkChangeExperience.Location = new System.Drawing.Point(33, 139);
this.linkChangeExperience.Name = "linkChangeExperience";
this.linkChangeExperience.Size = new System.Drawing.Size(209, 16);
this.linkChangeExperience.TabIndex = 10;
this.linkChangeExperience.TabStop = true;
this.linkChangeExperience.Text = "Change how you experience Windows";
this.linkChangeExperience.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkChangeExperience_LinkClicked);
//
// panelForm
//
this.panelForm.Controls.Add(this.panelMain);
this.panelForm.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelForm.Location = new System.Drawing.Point(0, 0);
this.panelForm.Name = "panelForm";
this.panelForm.Size = new System.Drawing.Size(943, 592);
this.panelForm.TabIndex = 210;
// //
// MainForm // MainForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.Color.White; this.AutoScroll = true;
this.ClientSize = new System.Drawing.Size(943, 592); this.BackColor = System.Drawing.Color.WhiteSmoke;
this.Controls.Add(this.panelForm); this.ClientSize = new System.Drawing.Size(920, 585);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Controls.Add(this.linkAppDev);
this.Controls.Add(this.panelContainer);
this.Controls.Add(this.panelFAQ);
this.Name = "MainForm"; this.Name = "MainForm";
this.Text = "Flyby11"; this.ShowIcon = false;
this.Load += new System.EventHandler(this.MainForm_Load); this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Flyby11 Upgrading Assistant";
this.panelDragDrop.ResumeLayout(false);
this.panelDragDrop.PerformLayout();
this.panelContainer.ResumeLayout(false);
this.panelMain.ResumeLayout(false); this.panelMain.ResumeLayout(false);
this.panelMain.PerformLayout();
this.panelForm.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout();
} }
#endregion #endregion
private System.Windows.Forms.TreeView treeSettings; private System.Windows.Forms.Panel panelDragDrop;
public System.Windows.Forms.RichTextBox rtbDescription; private System.Windows.Forms.Label statusLabel;
private System.Windows.Forms.Button btnTogglePatch; private System.Windows.Forms.Panel panelFAQ;
private System.Windows.Forms.LinkLabel linkGitHub; private System.Windows.Forms.LinkLabel linkAppDev;
private System.Windows.Forms.Button btnMountRun; private System.Windows.Forms.LinkLabel linkCompPatch;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Panel panelContainer;
private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.LinkLabel linkLabel2;
private System.Windows.Forms.Panel panelMain; private System.Windows.Forms.Panel panelMain;
private System.Windows.Forms.LinkLabel linkChangeExperience; private System.Windows.Forms.LinkLabel linkLabel1;
private System.Windows.Forms.Panel panelForm;
} }
} }
+106 -175
View File
@@ -1,219 +1,150 @@
using System; using System;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using Views; using Views;
namespace FlybyScript namespace Flyby11
{ {
public partial class MainForm : Form public partial class MainForm : Form
{ {
private Dictionary<TreeNode, bool> pendingChanges = new Dictionary<TreeNode, bool>(); // Store pending changes private readonly IsoHandler _isoHandler;
private PSPatcher PSPatcher; private readonly FAQHandler _faqHandler;
private Logger logger;
public MainForm() public MainForm()
{ {
InitializeComponent(); InitializeComponent();
_isoHandler = new IsoHandler(UpdateStatusLabel);
_faqHandler = new FAQHandler(panelFAQ, UpdateStatusLabel);
_faqHandler.InitializeFAQ();
// Initialize the logger UpdateStatusLabel("Drag and drop the Windows 11 ISO to patch it and install on unsupported hardware (Inplace Upgrade).");
logger = new Logger(rtbDescription);
// Set the default view to the main panel
SwitchView.DefaultView = panelMain;
} }
private async void MainForm_Load(object sender, EventArgs e) private void panelDragDrop_Paint(object sender, PaintEventArgs e)
{ {
// Add NativePatcher parent node var borderColor = Color.DodgerBlue;
TreeNode nativePatcherNode = new TreeNode("Native (Recommended)"); var borderThickness = 6;
treeSettings.Nodes.Add(nativePatcherNode);
// Add Method 1 as a child of NativePatcher // Draw a dotted border
TreeNode method1Node = new TreeNode("(Method 1) Inplace Upgrade via Server Setup"); var dashPattern = new float[] { 4, 2 }; // Dots and gaps
method1Node.Tag = "Method1"; using (var pen = new Pen(borderColor, borderThickness))
nativePatcherNode.Nodes.Add(method1Node);
// Add ScriptPatcher parent node
await ScriptPatcher.LoadPlugins("upgraider", treeSettings.Nodes, logger);
// Add PSPatcher parent node (for Dependencies)
PSPatcher = new PSPatcher();
PSPatcher.LoadPowerShellPlugins(treeSettings);
// Expand all nodes
ExpandAllNodes(treeSettings.Nodes);
}
private void ExpandAllNodes(TreeNodeCollection nodes)
{
foreach (TreeNode node in nodes)
{ {
node.Expand(); pen.DashPattern = dashPattern;
ExpandAllNodes(node.Nodes); pen.Alignment = System.Drawing.Drawing2D.PenAlignment.Center;
var rect = new Rectangle(
borderThickness / 2,
borderThickness / 2,
panelDragDrop.Width - borderThickness,
panelDragDrop.Height - borderThickness
);
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
e.Graphics.DrawRectangle(pen, rect);
}
using (var shadowBrush = new SolidBrush(Color.FromArgb(30, 0, 0, 0))) // Transparent shadow
{
var shadowRect = new Rectangle(6, 6, panelDragDrop.Width, panelDragDrop.Height);
e.Graphics.FillRectangle(shadowBrush, shadowRect);
} }
} }
private void treeSettings_AfterCheck(object sender, TreeViewEventArgs e) private void panelDragDrop_DragEnter(object sender, DragEventArgs e)
{ {
// Check if the node's checked status has changed // Check if the file is an ISO
if (e.Node.Checked) if (e.Data.GetDataPresent(DataFormats.FileDrop))
{ {
// Add the node and set its status to true (enabled) string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
pendingChanges[e.Node] = true; if (files.Length == 1 && Path.GetExtension(files[0]).Equals(".iso", StringComparison.OrdinalIgnoreCase))
e.Node.BackColor = Color.LightGreen; // Mark the node as active
// Check the type of node (either JSONPluginLoader/Patch or PowerShell script)
if (e.Node.Tag is ScriptPatcher jsonPlugin)
{ {
logger.Log($"Patch activated: {jsonPlugin.PlugID}", Color.Black); e.Effect = DragDropEffects.Copy;
}
else if (e.Node.Tag is string psScriptPath)
{
logger.Log($"PowerShell script activated: {Path.GetFileName(psScriptPath)}", Color.Black);
}
}
else
{
// Add the node and set its status to false (disabled)
pendingChanges[e.Node] = false;
e.Node.BackColor = Color.LightGray; // Mark the node as inactive
// Check the type of node again (either JSONPluginLoader or PowerShell script)
if (e.Node.Tag is ScriptPatcher jsonPlugin)
{
logger.Log($"Patch deactivated: {jsonPlugin.PlugID}", Color.Crimson);
}
else if (e.Node.Tag is string psScriptPath)
{
logger.Log($"PowerShell script deactivated: {Path.GetFileName(psScriptPath)}", Color.Crimson);
}
}
}
private async void btnTogglePatch_Click(object sender, EventArgs e)
{
btnTogglePatch.Enabled = false;
foreach (var entry in pendingChanges)
{
var node = entry.Key; // So, The TreeNode
bool shouldApply = entry.Value; // Whether this patch should be applied (true) or undone (false)
// Check if the entry is Method2 and if the patch is enabled
if (node.Tag?.ToString() == "Method1" && shouldApply)
{
// Start Method2 (Setup Server variant)
logger.Log("(Method 1) Automating Windows 11 Inplace Upgrade...", Color.Blue);
NativePatcher automation = new NativePatcher(logger);
await automation.AutomateWindowsInstallation();
node.BackColor = Color.LightGreen;
logger.Log("Method 1 Started: Windows 11 Installation Automated", Color.Black);
}
else if (node.Tag is ScriptPatcher plugin)
{
if (shouldApply)
{
// Apply the patch
logger.Log($"Applying patch: {plugin.PlugID}", Color.Blue);
plugin.PlugDoFeature();
node.BackColor = Color.LightGreen;
logger.Log($"Activated patch: {plugin.PlugID}", Color.Black);
}
else
{
// Undo the patch
logger.Log($"Undoing patch: {plugin.PlugID}", Color.Blue);
plugin.PlugUndoFeature();
node.BackColor = Color.LightGray;
logger.Log($"Deactivated patch: {plugin.PlugID}", Color.Crimson);
}
}
// Handle PowerShell scripts
else if (node.Tag is string psScriptPath)
{
if (shouldApply)
{
// Log and execute the PowerShell script
logger.Log($"Executing PowerShell script: {Path.GetFileName(psScriptPath)}", Color.Blue);
var PSPatcher = new PSPatcher();
await PSPatcher.ExecutePlugin(psScriptPath, logger);
node.BackColor = Color.LightGreen;
logger.Log($"Executed PowerShell script: {Path.GetFileName(psScriptPath)}", Color.Black);
}
else
{
// Log for deactivation (not reversible for PS scripts)
logger.Log($"PowerShell script cannot be undone: {Path.GetFileName(psScriptPath)}", Color.Crimson);
node.BackColor = Color.LightGray;
}
}
}
// Clear pending changes after applying
pendingChanges.Clear();
btnTogglePatch.Enabled = true;
}
private void treeSettings_MouseMove(object sender, MouseEventArgs e)
{
TreeNode node = treeSettings.GetNodeAt(e.Location);
if (node != null)
{
// Check if the node's Tag is the native "Method1"
if (node.Tag?.ToString() == "Method1")
{
rtbDescription.Text = "Inplace Upgrade via Server Setup\nThis method leverages the Windows Server variant of the Windows setup, " +
"which skips most hardware compatibility checks. It allows Windows 11 to be installed on unsupported PCs, " +
"bypassing the usual system requirements. Importantly, while the setup runs in server mode, " +
"it installs the standard Windows 11 (not the server version).\n\nHow it works:\n1. " +
"The app automatically downloads the Windows 11 version 24H2 ISO using the 'Fido' dependency script.\n2. " +
"The ISO image is mounted automatically.\n3. Simply follow the on-screen instructions to complete the upgrade.\n\n" +
"**Technical Note:** The POPCNT requirement cannot be bypassed; it is essential for running Windows 11 (24H2), as the operating system requires this feature to be supported by the CPU. " +
"POPCNT has been included in CPUs since around 2010. However, the patch is expected to work for most users with compatible hardware." +
"Please do not blame me; I am working within the constraints of what is technically possible."
;
}
else if (node.Tag is ScriptPatcher plugin) // Handle JSON plugin description
{
string pluginInfo = $"ID: {plugin.PlugID}\nHow-to:\n{plugin.PlugInfo}";
rtbDescription.Text = pluginInfo;
}
else if (node.Tag is string psScriptPath) // Handle PowerShell script description
{
rtbDescription.Clear();
string scriptInfo = $"PowerShell Script: {Path.GetFileName(psScriptPath)}\nPath: {psScriptPath}";
rtbDescription.Text = scriptInfo;
} }
else else
{ {
// Clear description if no node is hovered e.Effect = DragDropEffects.None;
rtbDescription.Clear();
} }
} }
} }
private void linkGitHub_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) private async void panelDragDrop_DragDrop(object sender, DragEventArgs e)
{
// Get the dropped file path
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
if (files.Length == 1)
{
string isoPath = files[0]; // Full path to the ISO file
await _isoHandler.HandleIso(isoPath); // Mount the ISO and start the setup process
}
}
// Update the status label
private void UpdateStatusLabel(string message)
{
statusLabel.Text = message;
statusLabel.Refresh(); // Ensure the label updates in real-time
}
private void linkAppDev_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{ {
Process.Start("https://github.com/builtbybel/Flyby11"); Process.Start("https://github.com/builtbybel/Flyby11");
} }
private async void btnMountRun_Click(object sender, EventArgs e) private void linkCompPatch_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{ {
NativePatcher patcher = new NativePatcher(logger); using (var folderDialog = new FolderBrowserDialog())
await patcher.RunSetupFromMountedISO(); {
folderDialog.Description = "Select the USB drive containing your Windows 11 installation files. " +
"This feature adds a compatibility patch to bypass certain system requirements. " +
"Compatible with drives prepared by any tool, including Rufus. Ensure the drive is ready!";
if (folderDialog.ShowDialog() == DialogResult.OK)
{
string selectedPath = folderDialog.SelectedPath;
var driveInfo = new DriveInfo(Path.GetPathRoot(selectedPath));
if (driveInfo.DriveType == DriveType.Removable && driveInfo.IsReady)
{
if (MessageBox.Show("This will apply compatibility bypass settings on the selected USB drive. Continue?",
"Apply Bypass Patch", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
try
{
_isoHandler.CreateUnattendXml(selectedPath);
MessageBox.Show("Bypass patch applied successfully!", "Apply Bypass Patch", MessageBoxButtons.OK, MessageBoxIcon.Information);
UpdateStatusLabel("Bypass patch applied successfully!");
}
catch (Exception ex)
{
UpdateStatusLabel($"Failed to apply bypass patch: {ex.Message}");
}
}
else
{
UpdateStatusLabel("Bypass patch canceled by user.");
}
}
else
{
MessageBox.Show("The selected path is not a removable drive. Please select a USB drive.", "Invalid Selection", MessageBoxButtons.OK, MessageBoxIcon.Error);
UpdateStatusLabel("User attempted to select a non-removable drive.");
}
}
else
{
UpdateStatusLabel("No USB drive selected for patching.");
}
}
} }
private void linkChangeExperience_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{ {
ExperienceView exprienceView = new ExperienceView(); CanIUpgradeView canIUpgradeView = new CanIUpgradeView();
SwitchView.SetView(exprienceView, panelForm); SwitchView.SetView(canIUpgradeView, panelContainer);
} }
} }
} }
-614
View File
@@ -117,618 +117,4 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAXl4AAAEAIACgjgAAFgAAACgAAABeAAAAvAAAAAEAIAAAAAAAEIoAABMLAAATCwAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAr5J1AP+PGAD/7csA//W3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+h0AKGWcQAAAAAA58qHAP/y6QD2+mIA+v6gAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9WOAP/sagDLuXgB+uCRA//y
rwP+u34D8PSDAPD/tgD45ZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//usAP/z
qAD46ooC//+XAPnulwD/+5wA/+6cALA3UwDy0KsA+NmnAP/osQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/7+qAP/qtgD92JUE8t2CAOnKhBn23oyO+N+NvPbekH3lto0J5aiPAPTXkwH+7H8AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/+mOAP//sQD98ZkD9deCAOvMgSv55pLV/uyW//3kkf/97JX//euVi/j5
mgD7uXwC//+fAP6ehwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADx150Ar8UPAKCdYgD/344E8dyHAOzPgTX65JDk/uiT//zh
jvn84Iz5/OOM/v/qkPP+5Y8p/+qSAP/soAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD17NwA2aqOAJBWAAD/95ED8t6KAOzQ
g0X65I/u/ueT//zhjfv94o3//eGM//zfiPv95Yv//u6Rcf/zjgD+86IC/f+5AP//sgAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2y5kA6OfcANzB
jQD/7YYD9uiRAO3SglP65I/2/uWT//zhjvv84oz//OGL/v3hiv/834f8/eSJ//7ojMS4y8cB////APP/
aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD32IAA67BjAOHEgQH//8sD//SSAO7SgmD65I/8/uSS//zijvv84o3//eGL/vzgif794If+/OCG/vze
g//954r3/e+TNv3+nwD+5I0C/tKBAP/QfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD85GcA8NJjAOSvSgH//7EB//yUAPHWg2795pD//uWT//3ij/z94o3//eKL/vzh
iv/94If//N+F/vzghP/63oH7/uaG//3liIb+5oYA/cZzBP7//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+o0A+/ODAOzWfwL//6AB//+mAPHXhHv96JL//uWS/v3i
jvz9447//OGL/v3hif/84Ij+/OCG/vzghP7834L/+96A+/zdf//96IfM//OfC/8A/wD+95YBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWlWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//Z0A+OSHAOzNdgIAAAAA///AAPDY
hIn96ZP//+WS/f3ij/3+447//eKL/vziiv/94Yf+/eCF//3fhP/934L//N6B/vzdfv773n39/+iD+v7l
hUT/5H8A/8t0BP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbnVoAOFasAK+Q
SADqvkgA69KDAJugWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADt5JUA/+2UAOzM
ewKNd0YA////APDXg5b96ZT//+WT/P3jj/7+447//eKL/v3hiv/84Yj+/OCG//3ghP/834L//N6A/vve
fv783n3/+9x6+vzffP/95oOO/+t6AP/FXQP0//8A/7lEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA77BTAP/g
NQDzxlwA0a5YA9uvVwLyyWkB38FzAN+5bwD///8A/70QAPadZwD/zF4A///aAAAAAAD//2QA08Z2AN2w
SQD06o8A+e2aAPTahgO2ZSUAllEiBvDXhKf96pX//+WT+v3jj/7+447//uOL/v3iiv/94Yj+/OGG//3g
hP/834L/+9+A//vefv/83X3+/N17//vbefz84Hn//ueA1/rfgBP70JEA/eFwAfv//wAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/3uCAOOdbgDKqWgAmWuuANyxYQDmyWMA6u60AP+iAAD8yU0D3rdSBfHHWwTowm4D7cdyAePC
fgAAAAAA/f9jANPHdgDYpkIA6dN+AObJewPdoU4Ax5RSD/LXhLb96pT//+aT+/3jkP7+5I7//eOM/v7i
iv/94oj+/eGG//zhhP/94IL//N+A//vefv/83n3/+917/vzcef/73Hf++9p0/P3hef//6IJN/eOGAP3u
YwL9/lIA//9XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9cnwDdnW0Ay6lcAMKfZQ7XsWRE3sRvLdDBeBmcrJoI/84wAPLH
WQDlym4A2M6AALmonQD//8gB/+mJA/rofQPq1X8D6MFoAvDQfgXXs10AzaJaGPLYhMT96ZX//+WU+f7k
j/7+5I7//uOM/v3jiv7+4oj//eGH//zhhf/94IL//d+B//zffv/73nz//N17//vceP783Hb+/Nx1//rZ
cvz94nf//+R6ov//gwD/+Y8B//9AAP7+LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+WawD/SmkA9KNdAvPDZwD0wmp36LRV/+ir
RfHwu1TZ8sVduO3EYprow2d26MZrVePEdDbeu30WAAAAAP/0kAD445UA//CSAP/qqADx1owA2atfKPPZ
hc/+6JX//+aU+f7kkP7/5I7//uON/v3ji//94on+/uKH//3hhP/84IP//eCB//3ff//83n3/+916//zd
ef/73Hf//Nt0/vvbc//62nH9/Ntw//3ideT854IZ+duIAPzwfgH9/4EAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/s0IAFf//AP8i
AAB3+rIC/r5Zs/OjQv/dkzP745Eu/+mhOP/qrUP/8blM//fEVv/6y17t+tVu3PjYecT43YOi+N6FfPfZ
f1P0zHg17st7bvfikub+65v//+WT+/7kkf//5Y/+/uSN/v3jjP7+44n+/eKH//7hhf/94YP//OCB//3f
f//93n3//N57//vdeP/83Hb/+9t1//zbc//72nH++9pu/vrYbP3+5HP//eJzY//gdAD+33IE//dpAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/wBtAPL3ZADW/9sA1NaSB/m3U8/3lTr/4ok0+9iKMPzZfiT734wr+uWaMfrppTn87K4///G8
Tf/71Wr//umF//70lv/+85v//uuW/f32q///9rT//+yf+/7mkv/+5Y/+/+SN/v7ki/7944r//uKI//7i
hv/94YP//eCB//zfgP/9333//d57//zdeP/73Hf//Nx0//vbcv/82nH++9pu/vvZbP762Gv7/d1t//3i
cK3/71IA/8lpA/rldAD+r3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA/6FYAP+hVQD6t2AB7NhzAPPafhj3slHp9po9/+9+Lf7khTL/2Icu/9p7
I//fiCn+45Iu/uWaM/3ooTf87rNE+/nOYPv/4H38/+mO/f/tlf7+8J/8/vSy/f7xqf//6Zb+/uSN/v/k
jP/+44n+/eOI//3ihf/+4YP//eCB//3gf//8337//d97//3eef/83Xf/+9x1//zbcv/72nD//Npu//vZ
bP/62Gr++tdo/fvaaP/+5W7n/NxsKPzVdgD93m4C//8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/VfQD/1n4A+sxsAfnMYgD40W0y+bNP/PWd
QP/xiTL+7nQo/+GCMP7Xgiv+2ngh/t6DJv7ijSr+5ZUv/+ecM//vtUT/+tJh///he//+6In+/+qM///w
nv/+9K/+/+2f//7mj/7/44r+/uKI//7ihv/94oP//eGC//7ggP/9337//N97//3eef/93Xf//Nx1//vc
cv/723H//Npu//vZbP/62Wr++9ho/vrXZv7612X6/dxn//zfaWv62mUA/OZqA///QgD//18AAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/qlYA/6pWAPq8
XAL90WYA+MtmUfy2UP/1oUH985I3//B9K/7sbyb+4H8v/9aAKf/ZdR/+3oEk/+KLKf7lkiz+5pow/vC3
Q/781GH+/+N7//7ohv7+6ov+//Gj//7yqf7+6pX//+SK//7ihv/94oT//uKC//3hgf/+4H7//d97//zf
ef/93nf//d12//zcc//73HD//Ntu//vabP/82Wr/+9hn//rYZf7712P/+tVh+/zdZP//5Gi37aZnA9cA
/wD91kYA/fvkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/7pCAP+7RQD6vlcD+8tnAPjFYHb8t1D/9aRB/PWZOv/xhy/+7nYn/utsJP/ffS3/1nwn/9lz
Hv/efyP/4okn/+SPKv7nmTD/8rtF/v3WY/7/5Hv+/ueC///rjP7/8qf//u+f///njf//4oT//uKD//7h
gf/94H7//t98//3fev/83nj//d52//3cdP/823H/+9tv//vabP/82Wr/+9lo//vYZv/612P++9dg//rW
Xv772GD+/dxh+P7gZyz71mUA++dkAf//XAD//1gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP90IQD/aAAA+bpDA/rBXAD3wV2W/LdP//aoRPv1njz/8o8z/u+A
K//tcSX/62kj/958LP/VeSX/2nMe/95+Iv/ihyX/5I0o/+icL//1wEj//tln///kfP/+53///+2Q//7y
pf//65T//uOG//7hgf/94X///eB8//7fev/93nj//N12//3dc//93HL//Ntv//vbbP/82mr/+9ln//vY
Zv/612T/+9Zh//rVXv771Vz/+tRb/P3eX//+4GF8/+dfAP/yWgP582QA6OhvAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+qUUA/9t4APKWMgLtgRYA9sBbtfu1
Tv/2q0b89qI+//SVNf7xhy7/7noo/+1uI//qZyL/3Xkr/9V2I//ZcRz/3n4h/+KGJP/jjCf/6qAx//fH
TP/+3Wn//uV5//7nfv//75b//vCf///oi//+4X///uB9//3gev/+33j//d52//zddP/93XL//dxv//zb
bf/72mr/+9lo//zYZf/72GP/+tdh//vWXv761Vv++9RZ//rUWPz82Fn//dpay+rUsgLFuxwB59JeALS6
OQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8yIAPfS
dwH/AAAA7/2xCPrBW9L4tE7/969I/PenQP/1mzj+8o4x//CBKv/udib/7Goi/+llIf/ceCr/1XQh/9px
HP/efSD/4YUk/+OKJv/spTP/+stQ//7fbP/+5Xj//uh////wm//+7Jb//+SC//7ge//94Hn//t53//3e
dP/83XL//dxv//3cbf/822v/+9lo//vZZf/82GP/+9dg//rWXv/71Vv++9RY//rUVv761FX++9RU//7e
V/f73Vk//9xaAPjbWAPh21UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP+1TQD2ymUC6OSIAPLTcSH9w1vi+LZO//ixSf33q0P+9aE6//SVM//xiC3/730o/+1z
JP/raCD/6GQg/9t3KP/UcR//2XAb/959IP/hhCL/5Ism/++sNf/80VP//+Fu//7ldf/+6oT///Cb//7p
iv//4nv//t92//3edf/+3XL//d1v//zcbf/922r//Npo//vZZv/82GP/+9hh//zXXv/71lv/+tRZ//vU
Vv7601T++tNS/vvUUvr92VH//NlTiPrSRgD93j8E+daBAP//JwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ykUA9sdjA+7IeADzxmc+/Mdc8vm4T//4tEv9965E/vam
Pf71mzb/848v//GDKv/veSb/7HEj/+tlH//nYx//2XQn/9RvHv/ZcBv/3n0g/+GDIv/kjCX/8rI4//3V
V///4m3//uVz///si//+7pT//+Z///7fdf/93nL//d1w//3cbf/822v//dto//zaZf/72WP/+9hh//zX
Xv/71lz/+9ZZ//rUVv/701T/+tNS/vrST//60k77+9RN//7eUc3001ES7LVDAPrUUAH//1wAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/IQAA/i0AAPauUgTyymgA9MRiVvzE
Wv/4uU/8+LVL/vewRf72qT//9aA4//SWMv/yii3/8H8o/+53JP/sbiH/6mMe/+ZgH//Zcib/020c/9lv
G//efB//4YEh/+WPJv/0ujv//tlZ///jbP/+5nT//+6P///riv/+4Xb//t1w//3dbv/93Gv//Nto//3a
Z//82WT//Nlg//vYXv/811v/+9ZZ//rVV//71FT/+9NQ//rST//50Uz++tFL/vvTSvz92Ev/+dVORvvU
SAD94EED//8AAP//JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6gzAPf/
/wD1t00F8bxVAPTGY3T7v1j/97hR+ve2TP73s0b+96xB//alOv/0nDT/8pEv//GGKv/vfSX/7XQh/+ts
IP/pYR3/5WAe/9dwJP/Tahv/2m8a/958H//hgCD/55Qn//fBP///3Fz//uNp//7oef/+7o///+d+//7f
b//93Gv//dtp//zbZv/82mP//Nlh//zYXv/711v//NZZ//vVVv/61FT/+9NS//rST//60Uz++dBJ/vrQ
SP/60Ef7/NZG//7dSpP/+UoA/+s/Av+7CwD/yjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP/AhQDr0GwA/rlYA/64QgD2xGGV+L1W//e5Uvr4uE3+97RI/vevQv/2qDz/9KA3//OX
Mf/yjiz/8IMo/+56I//scSH/62of/+hfHP/kXh3/1m4j/9JnGv/abxr/3nse/+CAH//pmSj/+sdC///f
Xf/+42f//up+///siP/+43P//txp//3bZ//82mT//dph//zZXv/72Fz//NdZ//zWVv/71VT/+tRR//vS
T//60kz/+dFJ//rQR/76z0X/+tBD/fzTQ//91UPg+tFHE/f/bAD+uzMA/0gAAP9nAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/1sA8r9uAP//JgG786EE/Mhisfm9V//2uVL7+LdO//e1
SP72sEP/9qs+//WkOP/0nDT/85Qu//GKKv/vgSb/7nci/+xvIP/pZx7/6F0a/+NcHf/VayL/0WYY/9pu
Gf/eeh3/4IAe/+ugK//8zkb//99d//7kaf/+7IL//+l+//7eav/922T//Npi//3ZXv/82Fz//NdZ//vW
Vv/81VP/+9RR//rTT//70kz/+tFJ//rQR//5z0T/+c5C/vrPQf/6zj/9/dc///zZRFb92UUA/NlAAv3m
RAD/60YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+716APLIWwGx2mgA47poEfzK
Y8r5v1j/9rlT+/e4UP/2tkr+9rJF//atQP/1pzr/9KA1//OZMP/ykCz/8Icn/+9/JP/tdSL/620e/+lm
HP/nWxn/4Vsc/9NpIP/RYxf/2m0Y/915G//ggB7/76kt//7USf//4F3//uVt//7rgv//5XL//ttj//3Z
X//82Vz//NhZ//zXVv/71lT/+9VR//zUTv/700z/+9FJ//rRRv/60ET/+s5B//nNP/76zj7/+s48+/3T
O//80zyp/881AP3gPgP33nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5bx0AOOt
gQDjuWwD16xVAOi/aSvzwl7z971X/va6VP33uVD/9rZL/vazR//1r0L/9ak8//SjN//znDL/8pUu//GN
Kv/whSX/7nwj/+1zIP/rax3/6GQb/+VYGP/fWhz/0mcf/9BhFv/ZbRj/3Xcb/+GCHv/ysC///9dL//7h
XP/+53L//+p7///gZv/92Vz//Nla//zXVv/81lT/+9VR//vUT//800z/+9NJ//rRR//70EP/+s9B//nO
P/75zTz++sw6/vrNOf37zTf//dY55PjUPyLz3S8A+dM+AvzGWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAz75VAKmMJACwTxIA//+3Av//hADpvGSa8MZi/+2+V/vzu1P/9bhQ/va2Tf71tEj/9q9D//Wr
Pf/1pjn/8580//KZL//xkyv/8Ysn/++CJP/teiH/7HEe/+ppHP/nYRr/5VUX/99YG//QZB7/0F8V/9ls
GP/cdhr/4oUe//a6Mv//203//uFd//7pdP//53D//ttc//3XV//911T//NZS//vVTv/81Ev//NNJ//vS
R//60ET/+89B//rPPv/5zTz/+s05//nLN/76zDb++sw0+/3SNP/60DZk+84tAPzTLAT/9gAA/vwpAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA8M1RALyhWwC+lVAB//+0Af//rQDhs2R289F4//DMbP3qw17+7L9X//C6
UP70t0z/9rRJ//WxRP/1rT//9Kg6//SjNv/ynDL/8ZYt//GQKf/wiSX/74Ei/+14IP/qcB3/6Gca/+Zf
Gf/kVBb/3Vca/89iG//QXhP/2WwX/9xzGf/lix//+cI1///cTP/+4mD//uhy///iY//92FX//NZR//zV
Tv/71Uz//NNI//zSRv/70UT/+tBB//vPPv/6zjv/+c05//rLN/76yzX/+csz//rLMfr7zC///dMysPLr
ewL//2EB+sYuAP/+VwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyJ5lANWiQADDlU4B////Af//2QDfsGF89t2K///s
mf7734f99NFz/+3FYf7qv1b/7bpO/vG1Sf/1sUX/9a5B//OpPf/zpDj/858z//KaL//xlCv/8I4n/++H
JP/ufyL/7Hce/+puG//oZBj/5V0X/+JRFf/cVRn/zl4b/89cEv/Yahb/23IX/+iTIP/7yTf//91O//7k
Zf//52v//t1X//3WTv/81Uz/+9RJ//zTRv/80kT/+9FB//rPPv/7zjv/+s05//nMNv/6yjT/+coy/vrK
MP/5yS/9+8ws//7RLe/3yjEq+8IqAP7UJAL//wAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmohoAK2GUwC8hjgCJgAAAP//
/wDis2WI+OCO///xof3+65r9/+uX//7ljv752X3/8Mpn/uq/V//quU3/7rNG//OuQv/0qz//86c6//Oi
Nf/ynDH/8Zct//CRKf/viyb/74Uj/+5+IP/rdRz/6mwa/+diGP/kWhf/4k8U/9pUGf/MXBn/z1sR/9hq
Ff/bcxf/65sh//3ROv//3lH//uVm//7jX//92E7//NVI//zURv/70kP//NFB//vQPv/6zzv/+844//rM
Nv/5yzT/+soy//nJL/75yC3++sos//rHKfv8yyj//tMtbv/dLQD/vBAD/rAAAP+1AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr5xrAMOn
cgDGm10DYwAAAP///wDluGmW++ST///xovv+65v9/uuZ//7rl/7/6pX//+mQ/v3hhP/20nD/7cNb/+i4
Tf/rskT/8Kw///OoO//yozj/8aA0//GZL//xlCv/8I8o/++KJf/uhCH/7Xwe/+tzG//pahn/5mAX/+NY
Ff/gTRP/2FIY/8tZF//PWhH/12kU/9x0Fv/vpiT//9U8//7fVf/+5WL//t5S//3UR//800P/+9JB//zR
Pv/80Dv/+844//vNNv/6zDT/+csx//rJL//5yC3/+ccq/vrIKf/5xyb8/Mwk//3OJsLDp0YC/88AAN//
bAD/RA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA3a5pAMOhXADRoFoDrDIAAA0AAATpvG2j/eiX///xovz+65v+/+yZ///smP7+65b//uqT/v7q
kf//6o///+aI//vbef/yy2P/6btP/+iyQ//sqjz/8aQ5//KgNf/xnDH/8Jct//CSKv/vjSf/7ogi/+6C
H//sexz/6nIa/+hoGP/kXxX/4VYU/95LEf/WUBj/yVcW/85ZD//XZxP/3XYV//OwJv//2ED//uBY///j
Wf/+2Uj//NJA//vRPv/80Dv/+885//rONv/7zDT/+ssx//nKLv/6ySz/+ccq//jGKP75xyb++sgk/vnF
If/9zCH3+9IrNP3cNwD8yR0C/70CAP+7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA5rBbAP7ObQDUrVoDwWkpAHwmAAzov3Cy/uyb///xo/r+7Jv+/+2b//7s
mf7/7Jb//uuV/v/rkv//6pD//umO//7pjP//6In//uKA//jVbf/uwlb/57JF/+epO//tojb/8J0z//CZ
MP/vlCz/748o/++LJP/uhiH/7YAe/+t5G//qcRn/52cW/+RdFP/gVRP/3UkR/9ROF//IVBT/zlgO/9Zl
Ev/fexb/97oo///aRP/+4Fb//99N//3UPv/80Tv//NA4//vONv/6zTP/+8ww//rLLv/5ySz/+sgq//nG
KP/4xSX/+cUj/vrGIf/4xB/8/csf//vLIoX6xSEA+cscA/HeAAD/8wMAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9aAAP/XfgDuumgEw3YtAKlSFxTow3PB/u+e///x
pPr+7Jz+/+6c//7tmv7+7Jf//+yW/v/rlP//65H//uqP///pjf/+6Yr//uiI///ohv//5oH//d52//TM
YP/quEr/5ak7/+mgM//umjH/75Yu/+6RKv/ujSf/7okj/+2EIP/sfx3/63gb/+lwGP/nZhX/41wT/99S
Ev/bRhD/0k0W/8dSEv/OVw3/1mMR/+ODF//6xCz//9tG//7gT//+20L//dE5//vPNf/8zjP/+8ww//vL
Lf/6yiv/+ckp//rHJ//5xST/+MQi/vjEIP76xSD++cQf/PvFHv/8yyHM9M44CwAAAAD61CgBAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+fD0A3aZgAO29bwDdqmAE0Y0/ALht
KB/qxXbN//Gh///xpPr+7Z3//+6d/v7tm///7Zn+/+yW/v/slP//65L//+uQ///qjf/+6ov//umI///p
hv/+6IP//ueB///nf//+43n/+tdq//DCUv/mrT7/5J8z/+mWL//tki3/7Y8p/+2LJv/thiL/7IIf/+x9
HP/qdxn/6W4W/+ZlFP/jWhP/3lAR/9lFEP/QSxX/xk8R/81WDf/WYhD/5o0Y//3LMP//20j//t5G//7V
OP/8zjL/+84w//vLLf/7yiv/+skp//nIJv/6xiT/+cUi//jDIP/5wx//+cQg/vnDH/74xB79/csg+vjF
JEX2vyYA+b8hA+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxYlKAP//
xgDltGgE3qFUAMF3MijryHnZ//Oj///xpfr+7p7//++e/v7um/7/7pr+/u6Y///tlf//7JP//+yQ///r
jv//64z//+qK///ph//+6YX//+iC//7nf//+5n3//uZ7///leP/932//9s5b/+u3Rf/joTT/5ZQt/+qP
Kv/tiij/64gl/+uEIf/rgB//6nsc/+l1GP/obhb/5mQT/+JZEv/dThD/10QP/85KFP/ETQ//zVUM/9Zj
EP/smRv//9I0///bQ//+2jv//dAx//vMLf/7yyv/+8oo//vJJv/6xyP/+sUh//nEIP/5wh//+MIg/vjD
IP74wx/++MIe+vrEHv/8yyOM/cQMAP29BQP452cA/rsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACKZjcAQxcAAAAAAADuxnYE5KRQAMWFPjXty3zi//Sm//7xpPr+76D///Ce/v7unP7/75r//u6Y///t
lv//7ZT//+yR///sj///643//+uL///qiP//6Yb//+mE//7ogP/+533//+d7//7mef/+5Xb//+V0///j
cP/82WP/8sRP/+apOf/hlS3/5osp/+qHJ//qhST/6oIh/+p9Hv/qeRv/6XMX/+dsFf/lZBP/4VgQ/9xN
D//WQg7/zEcU/8NLDv/NVAv/12YQ//CmHv//1DX//to8//7WMv/8zCr/+sso//vJJf/6yCL/+sYh//nF
IP/5xB//+MIg//fCH//4wh/++cMf//fBHvz5xR7//soh1vC5JhDzrS0A+r0oAfzZAwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zHkD3bNgAMqLQkLuzn/s//Wn//7xpfr+8KH///Cg/v7v
nv//75v+/+6Z/v/ul///7Zb//+2T///skP//647//+uM///rif//6of//+mE///pgv//6H///ud8//7n
ev/+5nf//+V0//7kcv/+42///+Ns//7gZv/50Vf/7LdB/+GbL//hiif/5oQm/+mCI//pfyD/6Hod/+h2
Gv/ochf/52wU/+VjEv/gWBD/2ksO/9NADv/JRRL/wUkM/8xSCv/abBH/9LIh///WM//+2DT//tAq//vJ
Jf/6ySL/+scg//rGH//5xR//+cMg//jCIP/3wR//+MEg/vjCH//3wR7+98Ae/PnEHv/5ySZI98UjAPnW
EwL/2AAA/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3MCUAAAAAADx14cD98tyAM+SSU/w0oT0//aq///y
pfr+8KL///Gh/v7wnv7/8J3+/++a///vmP//7pb//+2U///ukv//7I7//+yM///riv//64j//+qE///p
gv//6YD//+h9///nev//53j//+Z1//7lc///5G///uNs//7jav/+4mf//+Fk//3bW//0xkn/5qg1/9+N
J//igST/538j/+h8H//neB3/53Qa/+dvF//mahT/42IS/99XD//YSg3/0j4N/8ZDEv/ASAz/zFIL/952
E//5vCP//9Uv//7VKv/8yyL/+scg//rGIP/6xSD/+cQg//jDH//4wiD/98Ef//fAH//4wR/++MEf//a/
Hvv8xx7/+8kinP/WGQD/qAwC8fcAANn/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD//7oB8ct0ANid
UV3z2Ir7//es//7xpvv+8aP///Ki/v7wn///8Z3//vCc/v/wmf//75f//+6V///uk///7ZD//+2N///s
i///7In//+uG///rg///6oD//+l9///oe///53n//+d2///mc///5XD//uVt///kav/+42f//uJk//7g
Yf//4F7//99a//vUT//vuT3/4Zcr/96CI//jeyH/5nkg/+V2Hf/lcRn/5W0X/+RoFP/iYBH/3lYP/9hJ
Df/PPQ7/w0IS/79IC//MUw3/4YAW//zEJP//0yr//dEj//vHH//6xiD/+sUg//nEH//4wx//98Eg//fA
H//2vx/+98Af/vfAH//2vx79+L8d//nCH+XyyS8W//9oAOCvHAG4iQAAu40AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqpYAMHm
iADeu3MC77lpAN2nWk333o/7//mu//7ypvv+8qX///Gi/v7yof//8Z/+//Cc///wmv//75n//++W///v
lP//7pH//+2P///tjP//7Ir//+yH///rhf//6oL//+p////pe///6Xn//+d3///mdP//5nD//+Vt///k
a///5Gj//uNk//7iYf//4V7//uBa//7fV///31X//ttP//fJQ//opzH/3Icj/954H//jdh7/5HMc/+Nv
Gv/jaxf/42YU/+FgEv/dVhD/1kkN/8w9Dv/AQRL/vUYM/8tUD//mjxr//con///SJ//9zCD/+sYf//nF
IP/5wyD/+MIf//fBH//3wB//9r8f//e/H/72vx/+974e/vW8Hf38xR//+MQjX/nGJQD2xB0D7rECAO+0
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAADpxW4A//+9A///zgD54pOz/ves//7yqPn/8qX///Kk/v7yov7+8p/+//Ge//7x
nP7/8Jn///CW///wlP//75L//+6Q///ujf//7Yr//+yI///shf//64P//+qA///qff//6Xn//+h3///o
df//53L//+Zv///la///5Gj//+Nl///jYv//4l///uBb///fWP/+31T//t5Q//7dTv//3Ev//NVF//G7
N//hlCf/23oe/99yHf/icRv/4W0Z/+FpFv/hZRT/4F8S/9tWEf/USQ//yj4P/7xAEv+6RQz/zFoR/+ud
Hv/+zCf//s8l//vHIP/5xB//+MMg//jCH//3wB7/9r8e//a+Hv/2vR7/9r4f/va9Hv/1vR37+b8d//zD
IKr/sQAA/7sAA/nIMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vewAP/9swP//bAA//mxqf72q//+8qX1/vGk/f/z
ov7/86H///Ke//7ynP7+8Zr+//CY//7wlf7/75P+/++R///vj///7oz//+2I///thf//7IT//+uB///q
fv//6nv//+l4///odv//6HL//+dv///mbf//5Wn//+Vl///kYv//417//+Jc///gWf/+4FX//t9S//7e
Tv/+3Ur//ttI///bRf//2kH/+cs5/+moLP/bgiD/2nAb/99uGv/gaxj/4GcW/99jFf/eXxT/2lcT/9JJ
EP/HPRH/uT8S/7lFDf/QYhX/8Kkh//7NJv/9zCL/+cQg//jDH//4wR//98Af//e/H//2vR7/9bwf/va+
H//1vR7+9bwd/fa8Hf/9xR/m8b4kKO7HMAD3xCMC+nEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+VAP75hwD++K0C/fi1AP76
tkP++7T0/vSm//71pf/+8qD7/vCd/P7xnP3/8pv///GY//7xlv7+8JT+/++S/v7vj/7/743+/u6L///t
h/7/7IT//+yC///sf///63z//+p5///qdv//6XP//+dw///nbf//5mn//+Vn///kY///5GD//+Nc///i
Wf//4Vb//+BS///fT//+3kv//91H//7cRf/+2kH//tk+///ZO//+1Tj/87wv/+GSI//Xchv/22kZ/99p
GP/eZhf/3WIX/9xfFv/YVxX/z0oT/8Q9E/+3PhL/uUYP/9NsGf/0tCT//s0l//vIIP/4wh//+MIf//fA
H//2vh//9r0e//W8Hv/1vB/+9rwe/vW7Hf70uxz6+L4c//nAImb7uxcA+8MPA7YA/wD+3gAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD//wAA4oT/AP71bwH/9KMA/fSoQ//7raP/+6rh/vWj//74ov/+8pv//u+X/P7wlvv/8JX9//CT/v7w
kP//8I7//u+L/v7uiP7+7oX+/+2C//7tgP7/7H3//+t6///qd///6nT//+lw///obv//52r//+dm///l
ZP//5GD//+Rd///jWf//4lb//+FS///gTv//30v//91I//7dRf/+3EH//9o+//7ZOv/+1zj//9Y1///X
Mv/8zS7/66om/9p+Hf/WaBj/22YY/9xmGP/bYxj/2l8Y/9dYF//OSxX/wj4V/7Q9Ev+5RhH/2nkc//i9
JP/9zCP/+cQf//fBH//3vx7/9r4f//W8H//1ux7/9bse//W7Hv71ux3/87kc+/e8Hf/9wyC0vZArBAD/
/wDo2EUA+J4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP74/wD/+IYA//arAvzxnQD/9bIA/uyfG//6qVP/+qal//Wf6f77
oP/+85f//vCT//7xkPr/7oz6/u6K/f/vif//74b//+6D//7tgP7/7H7+/+x7///reP7/6nT//+py///p
bv//6Gr//+dn///mZf//5WH//+Rd///kWf//4lb//+JS///gT///30z//99I///eRf//3EH//9s+//7a
O//+2Tf//9g0//7WMf/+1S7//9Us///UKv/3vyX/4pMe/9RtGf/WYxn/2mUZ/9ljGf/YXxr/1loZ/85N
F//APhb/sTwT/7pJE//fhh//+sMl//zIIv/3wB//9r8f//a+H//1vB//9Lse//S6Hv/0uh7+9bod//O4
Hf71uRz++Lwd9vS/Jyv0wyYA/7kTAemVAADjkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAP/fAAD99asD//mKA/7r
ngD/96oA///PAP//phf++aBf/vWaq/78m+H+9ZL///KN//7xif/+7IT8/uyB/P7tgP3/7X7+/u17/v/s
eP7+63b+/uty/v/qb/7/6Wz+/+ho///oZf7/5mL//+Ve///lWv//5Ff//+NT///iT///4Ez//+BI///f
RP//3UH//9w+///bO///2jj//9k0//7YMf//1i7//tUs//7TKf/+0ib//9Mj//3NIv/vrCD/2Hwc/9Bj
Gv/WYxv/2GMb/9dgG//VWxv/zU4Z/78/F/+vPBP/vE0W/+aUIf/7xyT/+sMg//a+H//1vR7/9bwe//S6
Hv/0uR//9Lke//S4Hf70uB3/8bYc/Pu+Hf/7wCN4/8MmAOe4FQP/8gwA//8BAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA//PqAP/81AD+9KYB//mWA///fwH//80A/v+jAP3rhAD+85cj/vOSYP79lKb/9Yzr/vSH//7z
hP/+7H3//+t5/P/rePv+6nX9/+ty/v/qcP//6mz//+lp/v7oZv7+6GL+/+de///lW/7/5Vf//+RT///j
UP//4k3//+FJ///fQ///30H//94+///cOv//2zf//9k0///YMP//2C7//tYr//7VKP//0yb//tIj//7P
If//zyD//9Eh//jBIf/jlR//0Gsc/9BgHP/WYxz/12Ec/9RcHP/NTxr/vj8Y/646E//AVBf/7KMj//zH
Iv/3vh7/9bwf//W7H//0uh//87ge//O4Hf7zuB3+87cd//G2HPz2uBz/9rkdyvDOfgLJUAAB27YgAJZh
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//nwA//+nAP//fAD/+18A//eWAf7tmwP+9Y0D/v+mAP3u
kQDtkWAB/uyKH//6jGH+9IS1/vSA7P72fv/+7HX//+xy//7pbfr/52v7/+ho/v/pZf//6GL//+de/v7m
W/7+5lf+/+VU///kUP7/4kz//+JJ///hRf//30H//989///eO///3Df//9s0///ZMf//2C3//9cr///V
J//+1ST//tMi//7RIf//0CH//s8g//3NIP/+ziD//c0h//CxIP/XfR7/zGAd/9JhHf/WYh3/01wc/8xP
Gv+9Pxj/qzkT/8VeGf/ysCP/+sQg//W7Hv/0uh//9Lke//O3Hv/ztx7/8rce//K2Hf7ytRz+8LMb//u8
HvX3vCY9/70tAPGwHQPaqwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/4QA//dnAP/q
egD/1JAA//iiAP72lgL+8pEE//+4Af7ofQD//5QA//+eAP/6hiL98Xxt/vN5s//3dun+7G3//+1q///p
ZP7/5WD7/uZd/P/mWv3+5Vf+/+VT///kUP/+40z+/uJJ/v/hRf7+4UH//98+/v/eOv//3Tf//9w0///b
Mf//2S7//9gq///XJ///1ST//9Qi///SIP/+0SD//9Ah//7PIf/+ziH//Mwg//zLIP/+ziH/+cMg/+SZ
H//Oax7/zF0e/9NhHv/TXR3/zFAb/7o+GP+qORP/zGsb//e6Iv/4wB//9Lke//O4Hf/zth7/8rYe//K2
Hf7ytRz+8rQc/vGzG/r2thz/87UgiPu2EAD6rg4E2MVaAPuHAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD+7HgA/8qOAAAAAAAAAAAA+du0AP3ufQD++YIB/uiHAv/rbAH//4oA/f1+APq5
YAD+63Ir//Bwaf71bbb+7GT1/+9i///qW//+5FX//+RR+v7jTvr+4kv9/+JH///iRP/+4EH//uA9/v7f
Ov7/3jb//90z/v/cMP//2y3//9kq///YJ///1yP//9Uh///UIf//0yH//tEh///RIP/+0CH//s4h//3N
IP/8yyD/+8kh//vKIP/9zCD/8rQf/9d/H//JXx7/zl0e/9NeHf/MURv/uT0Y/6o4E//VfB7/+cEi//W5
Hv/zth7/8rYd//K1Hv/ytR3+8rQd/vGzHP/wshz78bIa//q6Hs3utSwR4KVXAPS2KAH/zAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+rAD//6gA/lv/AP7X
ggD/sTYA//F/Af3phQT+v2sD/ulpAP7pbQD+uU4E/vBmJf/0Y3H+61rA/+9X7v7rUf/+5Ur//+RH/v7g
Q/r+3j/8/988/v/fOv//3Tb//t0y/v/cL/7/2y3//top/v/ZJv7/1yL//9Yh/v/VIv/+1CL//9Mh//7R
If//0CD//tAh//7OIP/9zSH//Msg//zLIP/7yCD/+sYf//zJIP/5xCD/5Zwf/8tqH//JWR7/0Fwe/81T
HP+3PBj/rTsU/9+NH//6wSH/8rUe//K1Hv/xtB3/8bMe//GzHf/xshv+8LAc/vGwG/z2tBz/77MiRfK1
HgD3nBYD/wAAAP8xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD/14EA/8lbAP/mhAD/oX0A//+NAP/waAL+7mYD//8wAP7nbgD//2gA/+FaAP/y
Vi3+6E91/u5MuP/rRvP+5UH//uU9///eOP/+3DX8/twx/P/bLv7/2yv+/top///YJv//1yP+/9Yh/v/V
Iv7+1SH//9Qi/v7TIf/+0SH//9Eg//7QIP/+ziD//c0h//zLIP/8yiD/+8kg//rHH//5xSD/+cUf//vI
H//yth//2IMe/8ZcH//LWB7/zVUd/7Y8F/+vQBX/550h//i+H//xsh3/8bMe//CyHv/xsR3+8LEc/vCw
G//urhv687Ab//i3IZT/xw0A/6sAAv+nAAD/sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/6HwA/qGZAP/GPAD/+gAA/v8AAP7Z
YAD++VMB/+JeA//qRAL//FcA/uxNAP/pOAX+5kIx/u1Bcv7pPML/5Tb4/uYz//7dLv//2ir//tkn+v/X
JPv+1yH+/tYh///VIv/+1CL+/tQi/v7TIv7+0iH//9Eh/v7QIP/+zyH//s4h//3MIf/8yyD//Mof//vJ
H//6xyD/+sYg//nEH//4wR//+cUf//nDHv/noB7/zGse/8VVHv/LVR7/tTsX/7VKF//vrCH/9bke//Cv
Hf/wsR7/8LAd/++vHP7wrhv/7q0b/fOuGv/1sh3f57EwEuKiMwD0zRsA//8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP//UAD//3QA//8xAP/SWAD+/0QA/+xWAv7nTQT+/3oA/t89AP/xRgD4yzIE//E2Lv/l
MH7+4izG/uUp8f/cJP/+2SL//9ch/f/TIPv+1CD8/9Qg/v/SIP/+0iD+/9Ah/v7PIf7+ziD+/c4g/v3N
IP/8zCD+/Mog//zJH//7ySD/+scf//nGH//5xB//+MIe//fAHv/2vx//+MMe//K3H//Yhx7/xFsf/8dR
Hv+0Ohj/vlkZ//S1IP/xsh3/768e/++vHf/vrh3/760c/u6sG//sqRr99bAc//a0I1T4uyoA96wYAvur
BwD/qQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//MgD+0VgA//8NAP7YVwD//1EA/upPAP7m
OQL/9EkD6jMAAP/tNQD+5iwA7/8oAf7iJjv/4CN//+Ujwf7aIfz+2iH//9ch//7RH//+0R/7/9Af/P7P
IP7+zyD+/c4g//3MH//8zCD+/Mog/vvJH//7ySD++8gg/vrGH//6xR//+cQf//jCHv/4wR7/978e//W8
H//1vR7/98Ae/+ejHv/Mbh7/xFEf/7I2GP/Jaxv/9rkf/+6tHf/urh7/7q0d/+6sHP7uqxv/7Kka/POt
G//xrR2o/qgNAPisDgLc/04AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAP/+QAAAAAAA//9KAPzKAAD/9D0B/uo3A//jOgH+6CYA/9YjAP/bIQv93SE3/uQif/7Z
Ic/+2SH6/9gh//7PH//9zx/9/Mwf+vzLH/z8yx/+/Msf//vJH//6yB/++sYf/vrGH//5xB/++cMf//jC
Hv/4wR//98Af//a+H//2vR//9bse//O4Hv/2vR7/8rUd/9uKHv/EWh7/rzUZ/9V+HP/1uB//7Kkd/+6s
Hf7tqhz+7akb/uyoG/3sphr/9q4c4vSzKh3qs0YA87MjAvm3CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//QgD//ocA//9CAP7+WgD+9DAA/uEoA//c
GwT/slsA/dIiAP74NAD91igF/+MjO//WIIz+2CHN/tch+f3PH//8zx//+8oe/frHHvv6xx79+sce/vnF
Hv/5wx7++MId/vjCHv73wB7+9r8e/va+Hv/1vB7+9bwe//S7Hv/zuR7/8rUe//O2Hf/0uh3/6aYe/81v
Hv+yPRr/3Iwd//O0Hv/spx3/7akc/+yoG/7sphv+66Qa+/OqG//spx5h7aodAPGhGAT/AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+
PgD//2IA/v9GAP/QKAD+8EAA/9wsAf7cHAL/yQ8C9f+gAP/1NQD/0yEA/+klC/3SH0X/1yCH/9Yhz/7N
H//8zh//+8ge//jEHf74wx37+MId/PfBHv73wR7/9r8d//W9Hf71vB3+9bsd/vS5Hf/zuB3+8rYd//K1
Hv/xsx7/8LEe//K0Hf/ytB7/24oe/75WG//jmB3/760d/+umHP7rphv+66Qb/+qjGvrsoxn/86oeqP+P
AAD/mQAC5bIzAP6VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v0AAP/9AAD//wAA/6YAAP7AHAD+zRcC/9seA/xM
AAD8ziMA/8MiAP3GHQ//2SI8/9UhjP7LH9j+zh/5/MYd//fBHf/3wB379b0c+vS8HP31vB3/9Lod//O5
Hf/ytx3+8rYd/vG0Hf7xsh3/8LEd/u+wHf/urR3/7asd//KzHf/mnh3/14Ac/+ulHf/rpxz/66Qb/uqj
G//poRr97KIZ//KnHOnloR8k5KwiAOyjHQL6bQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v8AAP+u
AAD+OgAA/7AAAP/eAAD/3SAB/dEfA/7bFgP+1zMA/9AmAP/WIAD/6S8J/9IfR/3HHpT+yyDR/cQe//i+
Hf/3vh3/87kc/PK3HPvythz98rYc/vGzHP/wshz/8LAc/++uHf7urR3+7awd/+2pHf7rphz/7aod/+yn
Hf/poR3/6qUc/+qjG/7poRr+6aAa/ueeGfvsoBn/76UgZvSmFwD3nQkD/34AAP+FAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+1AAAAAAAA/9IAAP+QDAD+wTYA/9QrAP7gFQL/6A4Csf8AAP/a
KwD8wRoA/9UkFPvEHkr/ySCQ/cIe3Pi8Hf/5vB3/8rQb//CyG/3vsRz67q8b/O+uHP7urRz/7aoc/+yq
HP7rqBz+66Yc/+miHP/pohz+6aEc/+mgHP/poRz/6Z8a/uieGf/lnBn87aAZ/++iHbj/0wAA/1cAAPIA
JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP/M
AQD//wAA//8AAP//GwD+vhkD/LMTBP/cYAD6vCAA/7IgAPW9GhH/zB9I/MAenPm5Hd78uh3987Ac//Cu
G//urBv66qgb++uoG/3spxv/6qUb/+mjG/7ooRv+6J8b/ueeGv7mnBv+5pwb/uedGv7nnRr/5psZ/uWZ
GP/qmxn16qYlKvG7MgDpmhcB6nQAAOhxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAD//wAA/7oHAP//PAD/ziMB/M0ZBP3FBgL82SUA/8wkAP/E
IgD/4CgR+rweVfi2HZ39uB7Z9K0c//KrG//upxv/56Ia/eihGvzooRv9558b/uedG//mnBv/5Zka/+SY
Gv7lmBn+5ZgZ/uWZGf/klhj87ZsZ/+qcHnjumxsA4YgUBLuGAACzmwMAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+xAAD/jQgAAAAAAP//
AAD/n/8A69EhAOS2DwL/vRsC////APq9HwDsmRIA9LofG/m2HVL/th6e9asb5fSoHP/woxv/5pwa/+ac
Gvvkmhr645ga/OSXGv7jlRn/4pQa/+OVGf7jlBj/45UY++WVGP/olxrE0emwAv9MAAHpmSgA/zUAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD//wAA9dMAAP9FAADGqgAA/7INAP/HGQH6txsD8bgPA/PCLAD0rxwA/5Y1APnF
HRX+tR5X86cbqPSkHOHyoRv/5pca/+aXGf/hkxn735EZ++CQGf3hkRn/4ZEY/+COGP3ikBf/7Zga8uWX
IDncjiEA5JkaA9S0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyKoAAP+sAgD/qwAA/6QEAP+/
JwD5uyMB9agUA/+gAAH0oCcA/7smAPCNGAD/xSQY8KYcWvOjHKDznhvf6JQZ/+mTGf/gjRj/3IoY/d6M
GPvfjBf83YoW+eKMF//kkh1/6IYMAPGbBwSoWG8A/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAD//wUA/qcAAPygAAD/YwAA+b4SAf2uEwLvpxMD//9mAPOmGwDfVAIA6qkcHfWk
HVT0nRuj55Ea6OqPGf/iiRj/3YgX/9yIF/ffiBb/6Y8axM6MKgv/4/8A7JEuANGJAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+rQAA/6UAAP/QAAD/rwEA//8eAPC8
HQHxjBUE6HcBA/yrJwDxjhkA/3kmAPm2IxTynBxb544ZqOuOGeDliRf/5ogX/+uOG5UAAJoA/7UAAdN+
LAD1pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD/1wAA/KwAAAAAAACsuQQA4gAAAPLFOAD8rB0B1Z4OA/GEAgHuxzAA85kiANpmCADuox4f548ZXeSK
GmTVhiQN14UaANiDHQHOdBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8ogAASAAAAKiuAADs7gAA95IRAfSf
FQPgewoD5ME2AOOFEgDdexIAs99TANxqGQHbYxkA4jANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAC6rAAA7dQAAP5tAAD/sgMA/903AO6ZHALkgxEE4owQBOKNIgHifRoA4oAVAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/cAAA/7AAAAAAAAD/hw0A//9wAAAAAAD/ajMAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA///////////////8///////////////8///////////////8///////////////8////////
///////8///////////////8///////////////8///////////////8/////////h/////8////////
/f/////8////////+gv////8////////9Av////8////////6AX////8////////0AX////8////////
oAP////8///////+QAL////8///////8gAL////8///////5AAF////8///////2AAF////8///////s
AAF////8////x//QAAC////8/////B+gAAC////8////g+BAAAC////8///+gB+AAABf///8////AAAA
AABf///8////AAAAAABf///8///9AAAAAAAv///8///9AAAAAAAv///8///9AAAAAAAf///8///9AAAA
AAAX///8///9AAAAAAAX///8///9AAAAAAAH///8///6AAAAAAAL///8///6AAAAAAAL///8///6AAAA
AAAF///8///6AAAAAAAF///8///6AAAAAAAF///8///6AAAAAAAD///8///4AAAAAAAC///8///0AAAA
AAAC///8///0AAAAAAABf//8///0AAAAAAABf//8///IAAAAAAAAf//8//+QAAAAAAAAv//8//9gAAAA
AAAAv//8//7AAAAAAAAAf//8//0AAAAAAAAAX//8//oAAAAAAAAAX//8//QAAAAAAAAAL//8/+gAAAAA
AAAAL//8/9AAAAAAAAAAL//8/6AAAAAAAAAAF//8/0AAAAAAAAAAF//8/oAAAAAAAAAAF//8/QAAAAAA
AAAAC//8+gAAAAAAAAAAC//8+gAAAAAAAAAAC//8+gAAAAAAAAAABf/8+gAAAAAAAAAABf/8/QAAAAAA
AAAAA//8/sAAAAAAAAAAAv/8/zgAAAAAAAAAAv/8/8cAAAAAAAAAAP/8//jAAAAAAAAAAX/8//8cAAAA
AAAAAX/8///jgAAAAAAAAL/8///8YAAAAAAAAL/8////ngAAAAAAAL/8////8YAAAAAAAH/8/////nAA
AAAAAF/8/////84AAAAAAF/8//////jAAAAAAC/8//////84AAAAAC/8///////HAAAAAC/8///////8
4AAAABf8////////HAAAABf8////////84AAAB/8/////////nAAAAv8/////////44AAAv8////////
//nAAAP8//////////44AAX8///////////HAAX8///////////44AP8////////////HAX8////////
////44X8/////////////Hv8/////////////4f8///////////////8///////////////8////////
///////8///////////////8///////////////8///////////////8///////////////8
</value>
</data>
</root> </root>
-339
View File
@@ -1,339 +0,0 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
/*
* NativePatcher class is responsible for automating the Windows 11 24H2 installation process.
* It uses the Fido.ps1 script https://github.com/pbatard/Fido to download the ISO, mounts the ISO, and runs Server setupprep.exe
*/
namespace FlybyScript
{
public class NativePatcher
{
private Logger _logger;
private string _fidoScriptPath;
public NativePatcher(Logger logger)
{
this._fidoScriptPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "upgraider", "Fido.ps1");
this._logger = logger;
}
public async Task AutomateWindowsInstallation()
{
// Step 1: Download Windows 24H2 ISO using Fido.ps1
await DownloadISO();
// Step 2: Allow user to select the ISO after download
MessageBox.Show("Please select the ISO file to mount.", "ISO Selection", MessageBoxButtons.OK, MessageBoxIcon.Information);
// Step 3: Mount the ISO and get the mounted drive letter
string mountedDriveLetter = await MountISO();
if (string.IsNullOrEmpty(mountedDriveLetter))
{
_logger.Log("Failed to mount ISO. Exiting.", Color.Crimson);
return;
}
// Step 2: Run the setup process with the mounted drive letter
await RunSetup(mountedDriveLetter);
}
// Step 1: Download Windows 24H2 ISO by running the Fido.ps1 script
private async Task DownloadISO()
{
try
{
_logger.Log("Starting the download of the Windows 24H2 ISO...", Color.Blue);
// Run Fido.ps1 to download the ISO (PowerShell script)
string downloadCommand = $"& \"{_fidoScriptPath}\"";
await ExecutePowerShellCommand(downloadCommand);
_logger.Log("Windows 24H2 ISO download completed.", System.Drawing.Color.Green);
MessageBox.Show("Please wait for the ISO file to download, and then select the ISO file.",
"Information",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
_logger.Log("Please wait for the ISO file to download, and then select the ISO file. " +
"If you cancel the process here and wait for the ISO download, you will need to restart the patching process, " +
"but you can skip the ISO download.", System.Drawing.Color.Black);
}
catch (Exception ex)
{
_logger.Log($"Error during ISO download: {ex.Message}", System.Drawing.Color.Crimson);
}
}
private async Task<string> MountISO()
{
try
{
string isoFilePath = SelectISOFile();
if (!string.IsNullOrEmpty(isoFilePath))
{
MessageBox.Show($"Selected ISO file: {isoFilePath}. Now mounting the ISO.", "ISO Selected", MessageBoxButtons.OK, MessageBoxIcon.Information);
_logger.Log($"Mounting ISO: {isoFilePath}...", System.Drawing.Color.Blue);
string mountCommand = $"Mount-DiskImage -ImagePath \"{isoFilePath}\"";
await ExecutePowerShellCommand(mountCommand); // Run asynchronously for mounting
// After mounting, try to get the drive letter
string mountedDriveLetter = await GetMountedDriveLetter();
if (string.IsNullOrEmpty(mountedDriveLetter))
{
_logger.Log("Failed to get mounted drive letter.", System.Drawing.Color.Crimson);
return null;
}
else
{
_logger.Log($"ISO mounted successfully. Drive letter: {mountedDriveLetter}", System.Drawing.Color.Green);
return mountedDriveLetter; // Return the mounted drive letter
}
}
else
{
_logger.Log("No ISO file selected.", System.Drawing.Color.Black);
return null;
}
}
catch (Exception ex)
{
_logger.Log($"Error mounting ISO: {ex.Message}", System.Drawing.Color.Crimson);
return null;
}
}
private async Task RunSetup(string mountedDriveLetter)
{
try
{
// Check if the mounted drive is available
if (string.IsNullOrEmpty(mountedDriveLetter))
{
_logger.Log("No mounted drive found. Exiting.", System.Drawing.Color.Crimson);
return;
}
// Log the drive letter
_logger.Log($"Mounted drive letter: {mountedDriveLetter}", System.Drawing.Color.Gray);
// Build the path to the Sources folder
string sourcesFolderPath = Path.Combine(mountedDriveLetter, "sources");
// Path correct?
_logger.Log($"Checking Sources folder at: {sourcesFolderPath}", System.Drawing.Color.Gray);
// Check if Sources folder exists
if (Directory.Exists(sourcesFolderPath))
{
_logger.Log($"Found Sources folder at {sourcesFolderPath}. Opening CMD and running setupprep.exe.", System.Drawing.Color.Green);
// Prepare the CMD command to open cmd, then run 'setupprep.exe /product server'
string cmdCommand = $"/C \"cd /d {sourcesFolderPath} && start cmd /k setupprep.exe /product server\"";
// Execute the CMD command, which will open a new CMD window
ProcessStart(cmdCommand);
MessageBox.Show("Follow the Windows Server Setup window now. You can close the command window and the Flyby11 app.",
"Information",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
_logger.Log($"Sources folder not found at {sourcesFolderPath}.", System.Drawing.Color.Crimson);
}
}
catch (Exception ex)
{
_logger.Log($"Error running setupprep.exe: {ex.Message}", System.Drawing.Color.Crimson);
}
}
// btnMountRunSetup_Click: Run setup.exe from a mounted ISO on the fly
public async Task RunSetupFromMountedISO()
{
// Choose an ISO file
string isoFilePath = SelectISOFile();
if (isoFilePath == null) return;
try
{
// Mount the selected ISO
await ExecutePowerShellCommand($"Mount-DiskImage -ImagePath \"{isoFilePath}\"");
// Get the mounted drive letter
string mountedDriveLetter = await GetMountedDriveLetter();
if (string.IsNullOrEmpty(mountedDriveLetter))
{
_logger.Log("Failed to get mounted drive letter.", Color.Crimson);
return;
}
// Check if setup.exe exists and start it
string setupPath = Path.Combine(mountedDriveLetter, "setup.exe");
if (File.Exists(setupPath))
{
_logger.Log($"Found setup.exe at {setupPath}. Launching setup.", Color.Green);
Process.Start(new ProcessStartInfo
{
FileName = setupPath,
UseShellExecute = true,
CreateNoWindow = false
});
MessageBox.Show("Windows Setup has started. Follow the on-screen instructions.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
_logger.Log($"setup.exe not found at {setupPath}.", Color.Crimson);
}
}
catch (Exception ex)
{
_logger.Log($"Error running setup.exe: {ex.Message}", Color.Crimson);
}
}
private void ProcessStart(string command)
{
try
{
using (var process = new Process())
{
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = command;
process.StartInfo.UseShellExecute = true;
process.StartInfo.CreateNoWindow = false;
// Start the process
process.Start();
// Wait for the process to finish
process.WaitForExit();
}
}
catch (Exception ex)
{
_logger.Log($"Error executing CMD command: {ex.Message}", System.Drawing.Color.Crimson);
}
}
private async Task<string> ExecutePowerShellCommand(string command)
{
try
{
using (var process = new Process())
{
process.StartInfo.FileName = "powershell.exe";
process.StartInfo.Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"{command}\"";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
// Output and error handlers
var outputBuilder = new StringBuilder();
var errorBuilder = new StringBuilder();
process.OutputDataReceived += (sender, args) =>
{
if (args.Data != null)
{
outputBuilder.AppendLine(args.Data); // Collect output data
_logger.Log(args.Data, System.Drawing.Color.LightPink);
}
};
process.ErrorDataReceived += (sender, args) =>
{
if (args.Data != null)
{
errorBuilder.AppendLine(args.Data); // Collect error data
_logger.Log(args.Data, System.Drawing.Color.Crimson);
}
};
// Start the process
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
// Wait for the process to exit
await Task.Run(() => process.WaitForExit());
// Combine the full output and error logs
string output = outputBuilder.ToString();
string error = errorBuilder.ToString();
if (!string.IsNullOrEmpty(error))
{
_logger.Log(error, System.Drawing.Color.Crimson);
}
// Return the entire output of ps command
return output;
}
}
catch (Exception ex)
{
_logger.Log($"PowerShell command execution failed: {ex.Message}", System.Drawing.Color.Crimson);
return string.Empty; // Return an empty string if an error occurs
}
}
// Get the mounted drive letter
private async Task<string> GetMountedDriveLetter()
{
try
{
// List all the drives to find the mounted drive letter
var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
// Check if the drive is a CD/DVD and if it's mounted
if (drive.DriveType == DriveType.CDRom && drive.IsReady)
{
// Return the letter of the mounted drive
return drive.Name.Substring(0, 2);
}
}
return null; // Return null if no mounted drive is found
}
catch (Exception ex)
{
_logger.Log($"Error getting mounted drive letter: {ex.Message}", System.Drawing.Color.Crimson);
return null;
}
}
private string SelectISOFile()
{
using (var openFileDialog = new OpenFileDialog
{
Title = "Select Windows 11 ISO File",
Filter = "ISO Files (*.iso)|*.iso|All Files (*.*)|*.*",
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer)
})
{
return openFileDialog.ShowDialog() == DialogResult.OK ? openFileDialog.FileName : null;
}
}
}
}
-98
View File
@@ -1,98 +0,0 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using FlybyScript;
public class PSPatcher
{
public void LoadPowerShellPlugins(TreeView treeView)
{
var scriptDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "upgraider");
if (!Directory.Exists(scriptDirectory))
{
MessageBox.Show("upgraider directory does not exist.");
return;
}
// Create a Dependencies category in the TreeView
TreeNode dependencyCategory = new TreeNode("Dependencies");
treeView.Nodes.Add(dependencyCategory);
var scriptFiles = Directory.GetFiles(scriptDirectory, "*.ps1");
foreach (var file in scriptFiles)
{
var scriptName = Path.GetFileNameWithoutExtension(file);
// Create a TreeNode for each ps script
var scriptNode = new TreeNode
{
ToolTipText = file,
Text = $"{scriptName} [PS]",
Tag = file // Store the file path as the Tag
};
// Add the script node to the Dependecy category
dependencyCategory.Nodes.Add(scriptNode);
}
}
// Execute the selected PowerShell script
public async Task ExecutePlugin(string pluginPath, Logger logger)
{
try
{
using (var process = new Process())
{
process.StartInfo.FileName = "powershell.exe";
process.StartInfo.Arguments = $"-NoProfile -ExecutionPolicy Bypass -File \"{pluginPath}\"";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
var outputBuilder = new StringBuilder();
var errorBuilder = new StringBuilder();
// Handle output from PowerShell script
process.OutputDataReceived += (sender, e) =>
{
if (!string.IsNullOrEmpty(e.Data))
{
outputBuilder.AppendLine(e.Data);
logger.Log($"PowerShell script output: {e.Data}", System.Drawing.Color.Black);
}
};
// Handle error from PowerShell script
process.ErrorDataReceived += (sender, e) =>
{
if (!string.IsNullOrEmpty(e.Data))
{
errorBuilder.AppendLine(e.Data);
logger.Log($"PowerShell script error: {e.Data}", System.Drawing.Color.Crimson);
}
};
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
await Task.Run(() =>
{
process.WaitForExit();
});
logger.Log($"PowerShell script executed successfully: {pluginPath}", System.Drawing.Color.Green);
}
}
catch (Exception ex)
{
logger.Log($"Error executing PowerShell script: {pluginPath}. Exception: {ex.Message}", System.Drawing.Color.Crimson);
}
}
}
-238
View File
@@ -1,238 +0,0 @@
using Newtonsoft.Json;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
/*
* Imported from my xd-AntiSpy app https://github.com/builtbybel/xd-AntiSpy
*/
namespace FlybyScript
{
public class ScriptPatcher
{
public string PlugID { get; set; }
public string PlugInfo { get; set; }
public string[] PlugCheck { get; set; }
public string[] PlugDo { get; set; }
public string[] PlugUndo { get; set; }
public string PlugCategory { get; set; }
private Logger logger;
public ScriptPatcher(Logger logger)
{
this.logger = logger;
}
public bool PlugCheckFeature()
{
bool isFeatureActive = true;
foreach (var command in PlugCheck)
{
if (!ExecuteCommandAndCheckResult(command))
{
isFeatureActive = false;
break;
}
}
logger.Log($"Feature '{PlugID}' is {(isFeatureActive ? "active" : "inactive")}", System.Drawing.Color.Black);
return isFeatureActive;
}
// PlugCheck Helper to execute commands and check the result
private bool ExecuteCommandAndCheckResult(string command)
{
try
{
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "cmd.exe",
Arguments = $"/c {command}",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
process.WaitForExit();
// Read the output of the command
string output = process.StandardOutput.ReadToEnd();
// Check if output contains "1" (indicating active) or "0" (indicating inactive)
bool isActive = output.Contains("1");
// logger.Log($"Plugin executed successfully: {command}. Result: {(isActive ? "active" : "inactive")}", System.Drawing.Color.Black);
return isActive;
}
catch (Exception ex)
{
logger.Log($"Error executing plugin: {command}. Exception: {ex.Message}", System.Drawing.Color.Crimson);
return false;
}
}
public async void PlugDoFeature()
{
await ExecuteFeatureCommands(PlugDo);
}
public async void PlugUndoFeature()
{
await ExecuteFeatureCommands(PlugUndo);
}
private async Task ExecuteFeatureCommands(string[] commands)
{
foreach (var command in commands)
{
await ExecuteCommand(command);
}
}
private async Task ExecuteCommand(string command)
{
try
{
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = IsPowerShellCommand(command) ? "powershell.exe" : "cmd.exe",
Arguments = IsPowerShellCommand(command) ? $"-Command \"{command}\"" : $"/c \"{command}\"",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
// Event handler for handling output data
process.OutputDataReceived += (sender, e) =>
{
if (!string.IsNullOrEmpty(e.Data))
{
logger.Log($"Output: {e.Data}", System.Drawing.Color.Green);
}
};
// Event handler for handling error data
process.ErrorDataReceived += (sender, e) =>
{
if (!string.IsNullOrEmpty(e.Data))
{
logger.Log($"Error: {e.Data}", System.Drawing.Color.Crimson);
}
};
process.Start();
// Begin asynchronous reading of the output and error streams
process.BeginOutputReadLine();
process.BeginErrorReadLine();
// Wait for the process to exit
await process.WaitForExitAsync();
// Log command execution
logger.Log($"Plugin executed command: {command}", System.Drawing.Color.Green);
}
catch (Exception ex)
{
logger.Log($"Error executing plugin: {command}. Exception: {ex.Message}", System.Drawing.Color.Crimson);
}
}
// Determine if our command should be run with PowerShell
private bool IsPowerShellCommand(string command)
{
return command.StartsWith("powershell.exe") || command.Contains("Get-") || command.Contains("Set-");
}
// Get plugin information
public string GetPluginInformation()
{
return $"{PlugInfo.Replace("\\n", Environment.NewLine)}";
}
private static void AddToPluginCategory(TreeNodeCollection pluginCategory, TreeNode node, string category)
{
if (pluginCategory == null)
throw new ArgumentNullException(nameof(pluginCategory));
var existingCategory = pluginCategory.Cast<TreeNode>().FirstOrDefault(n => n.Text == category);
if (existingCategory == null)
{
existingCategory = new TreeNode(category)
{
BackColor = System.Drawing.Color.LightBlue,
ForeColor = System.Drawing.Color.Black
};
pluginCategory.Add(existingCategory);
}
existingCategory.Nodes.Add(node);
}
public static async Task LoadPlugins(string pluginDirectory, TreeNodeCollection pluginCategory, Logger logger)
{
if (Directory.Exists(pluginDirectory))
{
var pluginFiles = Directory.GetFiles(pluginDirectory, "*.json");
foreach (var file in pluginFiles)
{
// Exclude JSON files of our DLL Plugins as they are loaded separately
if (Path.GetFileName(file).IndexOf("Plugin", StringComparison.OrdinalIgnoreCase) >= 0)
continue;
try
{
var json = File.ReadAllText(file);
var plugin = JsonConvert.DeserializeObject<ScriptPatcher>(json);
if (plugin != null)
{
plugin.logger = logger; // Set logger for the plugin
// Execute all commands for the plugin to check its feature
bool isActive = plugin.PlugCheckFeature();
var pluginNode = new TreeNode(plugin.PlugID)
{
ToolTipText = plugin.PlugInfo,
Checked = isActive,
Tag = plugin // Store plugin object in Tag property
};
// Add to the appropriate category
AddToPluginCategory(pluginCategory, pluginNode, plugin.PlugCategory);
}
}
catch (Exception ex)
{
logger.Log($"Error loading plugin from file '{file}': {ex.Message}", System.Drawing.Color.Crimson);
}
}
}
}
}
}
// Extension method to make WaitForExit async in ExecuteCommand
public static class ProcessExtensions
{
public static async Task WaitForExitAsync(this Process process)
{
var tcs = new TaskCompletionSource<bool>();
process.EnableRaisingEvents = true;
process.Exited += (sender, args) => tcs.TrySetResult(true);
await tcs.Task;
}
}
+8 -2
View File
@@ -1,12 +1,18 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace FlybyScript namespace Flyby11
{ {
internal static class Program internal static class Program
{ {
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread] [STAThread]
private static void Main() static void Main()
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
+5 -5
View File
@@ -1,4 +1,4 @@
using System.Reflection; using System.Reflection;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Flyby11")] [assembly: AssemblyTitle("Flyby11")]
[assembly: AssemblyDescription("Bypassing Windows 11 hardware requirements")] [assembly: AssemblyDescription("Bypassing Windows 11 hardware requirements")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Builtbybel")] [assembly: AssemblyCompany("A Belim app creation")]
[assembly: AssemblyProduct("Flyby11")] [assembly: AssemblyProduct("Flyby11")]
[assembly: AssemblyCopyright("Copyright © 2024 A Belim app creation")] [assembly: AssemblyCopyright("Copyright © 2024 A Belim app creation")]
[assembly: AssemblyTrademark("Builtbybel")] [assembly: AssemblyTrademark("Builtbybel")]
@@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)] [assembly: ComVisible(false)]
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
[assembly: Guid("66ddc36a-9095-4053-941c-8829d44f5f20")] [assembly: Guid("503af34b-7544-4c43-a099-2b948c3ff49a")]
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
// //
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Buildnummer // Buildnummer
// Revision // Revision
// //
[assembly: AssemblyVersion("0.11.31")] [assembly: AssemblyVersion("1.2.100.0")]
[assembly: AssemblyFileVersion("0.11.31")] [assembly: AssemblyFileVersion("2025.2.20.0")]
+2 -2
View File
@@ -8,7 +8,7 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FlybyScript.Properties { namespace Flyby11.Properties {
using System; using System;
@@ -39,7 +39,7 @@ namespace FlybyScript.Properties {
internal static global::System.Resources.ResourceManager ResourceManager { internal static global::System.Resources.ResourceManager ResourceManager {
get { get {
if (object.ReferenceEquals(resourceMan, null)) { if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FlybyScript.Properties.Resources", typeof(Resources).Assembly); global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Flyby11.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp; resourceMan = temp;
} }
return resourceMan; return resourceMan;
+2 -2
View File
@@ -8,11 +8,11 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace FlybyScript.Properties { namespace Flyby11.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -1,5 +1,4 @@
using System.Linq; using System.Windows.Forms;
using System.Windows.Forms;
namespace Views namespace Views
{ {
-100
View File
@@ -1,100 +0,0 @@
namespace Views
{
partial class ExperienceView
{
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Verwendete Ressourcen bereinigen.
/// </summary>
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Vom Komponenten-Designer generierter Code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
this.btnBack = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.SuspendLayout();
//
// btnBack
//
this.btnBack.AutoSize = true;
this.btnBack.FlatAppearance.BorderColor = System.Drawing.SystemColors.Control;
this.btnBack.FlatAppearance.BorderSize = 0;
this.btnBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnBack.Font = new System.Drawing.Font("Segoe MDL2 Assets", 9.75F, System.Drawing.FontStyle.Bold);
this.btnBack.ForeColor = System.Drawing.Color.DarkGray;
this.btnBack.Location = new System.Drawing.Point(3, 3);
this.btnBack.Name = "btnBack";
this.btnBack.Size = new System.Drawing.Size(29, 25);
this.btnBack.TabIndex = 231;
this.btnBack.Text = "...";
this.btnBack.UseVisualStyleBackColor = true;
this.btnBack.Click += new System.EventHandler(this.btnBack_Click);
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoEllipsis = true;
this.label1.Font = new System.Drawing.Font("Segoe UI Variable Small Light", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(112)))), ((int)(((byte)(192)))));
this.label1.Location = new System.Drawing.Point(131, 201);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(780, 82);
this.label1.TabIndex = 232;
this.label1.Text = "This page is under development and will assist you in personalizing your installa" +
"tion.";
//
// linkLabel1
//
this.linkLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
this.linkLabel1.AutoEllipsis = true;
this.linkLabel1.Font = new System.Drawing.Font("Segoe UI Variable Small Light", 10.25F);
this.linkLabel1.LinkColor = System.Drawing.Color.Black;
this.linkLabel1.Location = new System.Drawing.Point(137, 310);
this.linkLabel1.Name = "linkLabel1";
this.linkLabel1.Size = new System.Drawing.Size(677, 19);
this.linkLabel1.TabIndex = 233;
this.linkLabel1.TabStop = true;
this.linkLabel1.Text = "In the meantime, you can enhance this app with xd-AntiSpy plugins by placing them" +
" in the \'upgraider\' folder.";
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
//
// ExperienceView
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.label1);
this.Controls.Add(this.btnBack);
this.Name = "ExperienceView";
this.Size = new System.Drawing.Size(1043, 484);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnBack;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.LinkLabel linkLabel1;
}
}
-38
View File
@@ -1,38 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Views
{
public partial class ExperienceView : UserControl
{
public ExperienceView()
{
InitializeComponent();
SetStyle();
}
private void SetStyle()
{
// Segoe MDL2 Assets
btnBack.Text = "\uE72B";
}
private void btnBack_Click(object sender, EventArgs e)
{
SwitchView.GoBack(this.Parent as Panel);
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
Process.Start("https://github.com/builtbybel/xd-AntiSpy/tree/main/plugins");
}
}
}
+1 -2
View File
@@ -16,7 +16,7 @@
Entfernen Sie dieses Element, wenn diese Virtualisierung aus Gründen der Abwärtskompatibilität Entfernen Sie dieses Element, wenn diese Virtualisierung aus Gründen der Abwärtskompatibilität
für die Anwendung erforderlich ist. für die Anwendung erforderlich ist.
--> -->
<requestedExecutionLevel level="highestAvailable" uiAccess="false" /> <requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges> </requestedPrivileges>
</security> </security>
</trustInfo> </trustInfo>
@@ -51,7 +51,6 @@
auch die Einstellung "'EnableWindowsFormsHighDpiAutoResizing" in der Datei "app.config" auf TRUE festgelegt werden. auch die Einstellung "'EnableWindowsFormsHighDpiAutoResizing" in der Datei "app.config" auf TRUE festgelegt werden.
Hierdurch können für die Anwendung lange Pfade verwendet werden. Weitere Informationen finden Sie unter https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation.--> Hierdurch können für die Anwendung lange Pfade verwendet werden. Weitere Informationen finden Sie unter https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation.-->
<application xmlns="urn:schemas-microsoft-com:asm.v3"> <application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings> <windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
-4
View File
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net481" />
</packages>
+6 -1
View File
@@ -1,6 +1,9 @@
# Flyby11 (FlybyScript) Windows 11 for All – No Specs, No Problem! # Flyby11 (FlybyScript) Windows 11 for All – No Specs, No Problem!
Flyby11 is a simple patcher that removes the annoying restrictions preventing you from installing Windows 11 (24H2) on unsupported hardware. Got an old PC? No TPM, Secure Boot, or your processor isn't supported? Flyby11 lets you install Windows 11 24H2 anyway. Flyby11 is a simple patcher that removes the annoying restrictions preventing you from installing Windows 11 (24H2) on unsupported hardware. Got an old PC? No TPM, Secure Boot, or your processor isn't supported? Flyby11 lets you install Windows 11 24H2 anyway.
No complicated steps. Just run the tool, and you'll be running Windows 11 on your outdated machine in no time. Think of it as sneaking through the back door without anyone noticing.
No complicated steps.
**Just run the tool (see ["Releases"](https://github.com/builtbybel/Flyby11/releases/latest) in the right side of the page, you may need to unpack a zip file), and you'll be running Windows 11 on your outdated machine in no time.**
Think of it as sneaking through the back door without anyone noticing.
# Technical Overview # Technical Overview
Flyby11 leverages a feature of the Windows 11 setup process that uses the Windows Server variant of the installation. This variant, unlike the regular Windows 11 setup, skips most hardware compatibility checks, allowing it to run on unsupported systems. Here’s a more technical breakdown of the process: Flyby11 leverages a feature of the Windows 11 setup process that uses the Windows Server variant of the installation. This variant, unlike the regular Windows 11 setup, skips most hardware compatibility checks, allowing it to run on unsupported systems. Here’s a more technical breakdown of the process:
@@ -11,3 +14,5 @@ Manual ISO Preparation: Flyby11 automates the download and mounting of the ISO,
This method is the same approach described in the official Windows documentation for upgrading unsupported systems, as [detailed in this article](https://support.microsoft.com/en-us/windows/ways-to-install-windows-11-e0edbbfb-cfc5-4011-868b-2ce77ac7c70e) This method is the same approach described in the official Windows documentation for upgrading unsupported systems, as [detailed in this article](https://support.microsoft.com/en-us/windows/ways-to-install-windows-11-e0edbbfb-cfc5-4011-868b-2ce77ac7c70e)
_Flyby11 offers all the currently working methods to bypass the restrictions for installing Windows 11 24H2 on unsupported hardware. The internet is full of guides showing how to get around the TPM, Secure Boot, and processor requirements, but Flyby11 does all that automatically for you._ _Flyby11 offers all the currently working methods to bypass the restrictions for installing Windows 11 24H2 on unsupported hardware. The internet is full of guides showing how to get around the TPM, Secure Boot, and processor requirements, but Flyby11 does all that automatically for you._
**Technical Note:** The POPCNT requirement cannot be bypassed; it is essential for running Windows 11 (24H2), as the operating system requires this feature to be supported by the CPU. POPCNT has been included in CPUs since around 2010. However, the patch is expected to work for most users with compatible hardware.Please do not blame me; I am working within the constraints of what is technically possible.
+1
View File
@@ -0,0 +1 @@
irm christitus.com/win | iex
+16
View File
@@ -0,0 +1,16 @@
{
"PlugID": "Clear Icon Cache",
"PlugInfo": "This feature clears the icon cache in Windows to resolve issues with icons displaying incorrectly.",
"PlugCheck": [],
"PlugCategory": "Tweaks (Plugins)",
"PlugDo": [
"ie4uinit.exe -show",
"taskkill /IM explorer.exe /F",
"DEL /A /Q \"%localappdata%\\IconCache.db\"",
"DEL /A /F /Q \"%localappdata%\\Microsoft\\Windows\\Explorer\\iconcache*\"",
"Start explorer.exe"
],
"PlugUndo": [
"powershell -Command \"Write-Output 'There is no undo operation for clearing the icon cache.'\""
]
}
+37
View File
@@ -0,0 +1,37 @@
# Run as Admin
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
Write-Warning "You need to run this script as an Administrator!"
exit
}
# Load Windows Forms assembly for MessageBox
Add-Type -AssemblyName System.Windows.Forms
# Define the restore point description and type
$description = "Flyby11 Restore Point"
$restorePointType = 12 # MODIFY_SETTINGS = 12
# Function to create restore point with progress reporting
function Create-RestorePoint {
Write-Host "Starting to create restore point..." -ForegroundColor Yellow
# Simulate progress
for ($i = 0; $i -le 100; $i += 10) {
Write-Progress -Activity "Creating Restore Point" -Status "$i% Complete" -PercentComplete $i
Start-Sleep -Milliseconds 300 # Simulate some work being done
}
# WMI query to create the restore point
$restorePoint = Get-WmiObject -List Win32_SystemRestore | ForEach-Object {
$_.CreateRestorePoint($description, $restorePointType, 100)
}
Write-Host "Restore point created successfully." -ForegroundColor Green
# Show completion message
[System.Windows.Forms.MessageBox]::Show("Restore point has been created successfully!", "Completion", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)
}
# Execute the restore point creation
Create-RestorePoint
+20
View File
@@ -0,0 +1,20 @@
{
"PlugID": "Hide Hidden File Extensions",
"PlugInfo": "This feature shows or hides hidden file extensions in Windows Explorer.",
"PlugCategory": "Tweaks (Plugins)",
"PlugCheck": [
"reg query HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideFileExt"
],
"PlugDo": [
"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideFileExt /t REG_DWORD /d 1 /f",
"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v ShowSuperHidden /t REG_DWORD /d 0 /f",
"taskkill /f /im explorer.exe",
"start explorer.exe"
],
"PlugUndo": [
"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideFileExt /t REG_DWORD /d 0 /f",
"reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v ShowSuperHidden /t REG_DWORD /d 1 /f",
"taskkill /f /im explorer.exe",
"start explorer.exe"
]
}
+172
View File
@@ -0,0 +1,172 @@
# Description:
# This script removes unwanted Apps that come with Windows. If you do not want
# to remove certain Apps comment out the corresponding lines below.
Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1
Import-Module -DisableNameChecking $PSScriptRoot\..\lib\New-FolderForced.psm1
Write-Output "Elevating privileges for this process"
do {} until (Elevate-Privileges SeTakeOwnershipPrivilege)
Write-Output "Uninstalling default apps"
$apps = @(
# default Windows 10 apps
"Microsoft.549981C3F5F10" #Cortana
"Microsoft.3DBuilder"
"Microsoft.Appconnector"
"Microsoft.BingFinance"
"Microsoft.BingNews"
"Microsoft.BingSports"
"Microsoft.BingTranslator"
"Microsoft.BingWeather"
#"Microsoft.FreshPaint"
"Microsoft.GamingServices"
"Microsoft.Microsoft3DViewer"
"Microsoft.MicrosoftOfficeHub"
"Microsoft.MicrosoftPowerBIForWindows"
"Microsoft.MicrosoftSolitaireCollection"
#"Microsoft.MicrosoftStickyNotes"
"Microsoft.MinecraftUWP"
"Microsoft.NetworkSpeedTest"
"Microsoft.Office.OneNote"
"Microsoft.People"
"Microsoft.Print3D"
"Microsoft.SkypeApp"
"Microsoft.Wallet"
#"Microsoft.Windows.Photos"
"Microsoft.WindowsAlarms"
#"Microsoft.WindowsCalculator"
"Microsoft.WindowsCamera"
"microsoft.windowscommunicationsapps"
"Microsoft.WindowsMaps"
"Microsoft.WindowsPhone"
"Microsoft.WindowsSoundRecorder"
#"Microsoft.WindowsStore" # can't be re-installed
"Microsoft.Xbox.TCUI"
"Microsoft.XboxApp"
"Microsoft.XboxGameOverlay"
"Microsoft.XboxGamingOverlay"
"Microsoft.XboxSpeechToTextOverlay"
"Microsoft.YourPhone"
"Microsoft.ZuneMusic"
"Microsoft.ZuneVideo"
"Microsoft.SkypeApp"
"Clipchamp.Clipchamp"
# Threshold 2 apps
"Microsoft.CommsPhone"
"Microsoft.ConnectivityStore"
"Microsoft.GetHelp"
"Microsoft.Getstarted"
"Microsoft.Messaging"
"Microsoft.Office.Sway"
"Microsoft.OneConnect"
"Microsoft.WindowsFeedbackHub"
# Creators Update apps
"Microsoft.Microsoft3DViewer"
#"Microsoft.MSPaint"
#Redstone apps
"Microsoft.BingFoodAndDrink"
"Microsoft.BingHealthAndFitness"
"Microsoft.BingTravel"
"Microsoft.WindowsReadingList"
# Redstone 5 apps
"Microsoft.MixedReality.Portal"
"Microsoft.ScreenSketch"
"Microsoft.XboxGamingOverlay"
# non-Microsoft
"2FE3CB00.PicsArt-PhotoStudio"
"46928bounde.EclipseManager"
"4DF9E0F8.Netflix"
"613EBCEA.PolarrPhotoEditorAcademicEdition"
"6Wunderkinder.Wunderlist"
"7EE7776C.LinkedInforWindows"
"89006A2E.AutodeskSketchBook"
"9E2F88E3.Twitter"
"A278AB0D.DisneyMagicKingdoms"
"A278AB0D.MarchofEmpires"
"ActiproSoftwareLLC.562882FEEB491" # next one is for the Code Writer from Actipro Software LLC
"CAF9E577.Plex"
"ClearChannelRadioDigital.iHeartRadio"
"D52A8D61.FarmVille2CountryEscape"
"D5EA27B7.Duolingo-LearnLanguagesforFree"
"DB6EA5DB.CyberLinkMediaSuiteEssentials"
"DolbyLaboratories.DolbyAccess"
"DolbyLaboratories.DolbyAccess"
"Drawboard.DrawboardPDF"
"Facebook.Facebook"
"Fitbit.FitbitCoach"
"Flipboard.Flipboard"
"GAMELOFTSA.Asphalt8Airborne"
"KeeperSecurityInc.Keeper"
"NORDCURRENT.COOKINGFEVER"
"PandoraMediaInc.29680B314EFC2"
"Playtika.CaesarsSlotsFreeCasino"
"ShazamEntertainmentLtd.Shazam"
"SlingTVLLC.SlingTV"
"SpotifyAB.SpotifyMusic"
"ThumbmunkeysLtd.PhototasticCollage"
"TuneIn.TuneInRadio"
"WinZipComputing.WinZipUniversal"
"XINGAG.XING"
"flaregamesGmbH.RoyalRevolt2"
"king.com.*"
"king.com.BubbleWitch3Saga"
"king.com.CandyCrushSaga"
"king.com.CandyCrushSodaSaga"
"BytedancePte.Ltd.TikTok"
"Facebook.InstagramBeta"
# apps which cannot be removed using Remove-AppxPackage
#"Microsoft.BioEnrollment"
#"Microsoft.MicrosoftEdge"
#"Microsoft.Windows.Cortana"
#"Microsoft.WindowsFeedback"
#"Microsoft.XboxGameCallableUI"
#"Microsoft.XboxIdentityProvider"
#"Windows.ContactSupport"
)
$appxprovisionedpackage = Get-AppxProvisionedPackage -Online
foreach ($app in $apps) {
Write-Output "Trying to remove $app"
Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage -AllUsers
($appxprovisionedpackage).Where( {$_.DisplayName -EQ $app}) |
Remove-AppxProvisionedPackage -Online
} Write-Host "Clippy has completed the process and removed all possible apps."
# Prevents Apps from re-installing
$cdm = @(
"ContentDeliveryAllowed"
"FeatureManagementEnabled"
"OemPreInstalledAppsEnabled"
"PreInstalledAppsEnabled"
"PreInstalledAppsEverEnabled"
"SilentInstalledAppsEnabled"
"SubscribedContent-314559Enabled"
"SubscribedContent-338387Enabled"
"SubscribedContent-338388Enabled"
"SubscribedContent-338389Enabled"
"SubscribedContent-338393Enabled"
"SubscribedContentEnabled"
"SystemPaneSuggestionsEnabled"
)
New-FolderForced -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager"
foreach ($key in $cdm) {
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" $key 0
}
New-FolderForced -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" "AutoDownload" 2
# Prevents "Suggested Applications" returning
New-FolderForced -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" "DisableWindowsConsumerFeatures" 1
+31
View File
@@ -0,0 +1,31 @@
# Get all installed Windows apps for all users
$allApps = Get-AppxPackage -AllUsers
# Counter for tracking progress
$totalApps = $allApps.Count
$currentAppIndex = 1
$reinstalledCount = 0
# Loop through each app and reinstall
foreach ($app in $allApps) {
# Display current status
Write-Host "[$currentAppIndex / $totalApps] Reinstalling $($app.Name)..." -ForegroundColor Yellow
# Try to reinstall the app
try {
Add-AppxPackage -Register "$($app.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode -ErrorAction Stop
Write-Host "[$currentAppIndex / $totalApps] $($app.Name) reinstalled successfully." -ForegroundColor Green
$reinstalledCount++
} catch {
Write-Host "[$currentAppIndex / $totalApps] Error occurred while reinstalling $($app.Name): $_" -ForegroundColor Red
}
# Increment the counter
$currentAppIndex++
}
# Display final status
if ($reinstalledCount -eq $totalApps) {
Write-Host "All apps reinstalled successfully." -ForegroundColor Green
Write-Host "Flyby11 has reinstalled everything possible." -ForegroundColor Cyan
}
+18
View File
@@ -0,0 +1,18 @@
# Function to show a message box
function Show-MessageBox {
param (
[string]$message,
[string]$title = "Information"
)
Add-Type -AssemblyName PresentationFramework
[System.Windows.MessageBox]::Show($message, $title)
}
# Stop Windows Explorer
Stop-Process -Name explorer -Force
# Start Windows Explorer
Start-Process explorer
# Show message box
Show-MessageBox -message "Windows Explorer has been restarted successfully." -title "Flyby11"
+60
View File
@@ -0,0 +1,60 @@
Import-Module -DisableNameChecking $PSScriptRoot\..\lib\force-mkdir.psm1
Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1
Write-Output "Kill OneDrive process"
taskkill.exe /F /IM "OneDrive.exe"
taskkill.exe /F /IM "explorer.exe"
Write-Output "Remove OneDrive"
if (Test-Path "$env:systemroot\System32\OneDriveSetup.exe") {
& "$env:systemroot\System32\OneDriveSetup.exe" /uninstall
}
if (Test-Path "$env:systemroot\SysWOW64\OneDriveSetup.exe") {
& "$env:systemroot\SysWOW64\OneDriveSetup.exe" /uninstall
}
Write-Output "Removing OneDrive leftovers"
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive"
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:programdata\Microsoft OneDrive"
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:systemdrive\OneDriveTemp"
# check if directory is empty before removing:
If ((Get-ChildItem "$env:userprofile\OneDrive" -Recurse | Measure-Object).Count -eq 0) {
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:userprofile\OneDrive"
}
Write-Output "Disable OneDrive via Group Policies"
force-mkdir "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive"
Set-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" "DisableFileSyncNGSC" 1
Write-Output "Remove Onedrive from explorer sidebar"
New-PSDrive -PSProvider "Registry" -Root "HKEY_CLASSES_ROOT" -Name "HKCR"
mkdir -Force "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
Set-ItemProperty "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0
mkdir -Force "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
Set-ItemProperty "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0
Remove-PSDrive "HKCR"
# Thank you Matthew Israelsson
Write-Output "Removing run hook for new users"
reg load "hku\Default" "C:\Users\Default\NTUSER.DAT"
reg delete "HKEY_USERS\Default\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /f
reg unload "hku\Default"
Write-Output "Removing startmenu entry"
Remove-Item -Force -ErrorAction SilentlyContinue "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk"
Write-Output "Removing scheduled task"
Get-ScheduledTask -TaskPath '\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
Write-Output "Restarting explorer"
Start-Process "explorer.exe"
Write-Output "Waiting for explorer to complete loading"
Start-Sleep 10
Write-Output "Removing additional OneDrive leftovers"
foreach ($item in (Get-ChildItem "$env:WinDir\WinSxS\*onedrive*")) {
Takeown-Folder $item.FullName
Remove-Item -Recurse -Force $item.FullName
}
Write-Output "Flyby11 can confirm the uninstallation of the OneDrive app."
+12
View File
@@ -0,0 +1,12 @@
{
"PlugID": "Windows Old Remover",
"PlugInfo": "The Windows Old Remover plugin allows users to easily remove the 'Windows.old' folder, which contains files from a previous Windows installation. After upgrading to a new version of Windows, the 'Windows.old' folder may occupy significant disk space. This plugin utilizes the DISM command to safely delete this folder, freeing up valuable storage on your system. Please note that once this folder is deleted, you will no longer be able to revert to the previous Windows version through the Recovery options.\n\n**Error Handling**: If you encounter 'Error 1168' during the removal process, it means the 'Windows.old' folder has already been deleted or is not available for rollback. Ensure you have backups before proceeding!",
"PlugCheck": [],
"PlugCategory": "System (Plugins)",
"PlugDo": [
"cmd.exe /c DISM /Online /Remove-OSUninstall"
],
"PlugUndo": [
"powershell -Command \"Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('No undo is available for this deletion. To restore files, use a backup solution.', 'Info', [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Warning)\""
]
}
+13
View File
@@ -0,0 +1,13 @@
{
"PlugID": "Windows Rollback Timer",
"PlugInfo": "This plugin checks and sets the uninstall window for reverting to a previous Windows version after an upgrade. The time frame can be configured up to 60 days. After a Windows upgrade (e.g., via Windows Update to version 1803), a copy of the previous Windows version is stored in the 'Windows.old' folder. This allows users to return to the prior version through the 'Recovery' option under 'Update & Security' in Windows Settings. By default, this rollback option is available for only 10 days, provided the 'Windows.old' folder hasn’t been deleted. However, this time frame can be extended up to 60 days using this plugin. \n\n**Error Handling**: If 'Error 1168' appears when attempting to set the rollback period, this indicates that the 'Windows.old' folder has been deleted, making a rollback impossible.",
"PlugCheck": [],
"PlugCategory": "System (Plugins)",
"PlugDo": [
"cmd.exe /c DISM /Online /Get-OSUninstallWindow",
"cmd.exe /c DISM /Online /Set-OSUninstallWindow /Value:60"
],
"PlugUndo": [
"powershell -Command \"Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('No undo is available for this rollback time setting. To change it, please use DISM with a new value.', 'Info', [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)\""
]
}
+12
View File
@@ -0,0 +1,12 @@
{
"ChrisTitusApp.ps1": "Chris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates. Dev: https://github.com/ChrisTitusTech/winutil",
"Restart Explorer.ps1": "Restarts the Windows Explorer process to refresh the desktop and taskbar.",
"Create Restore Point.ps1": "This script creates a system restore point to save your current system state.",
"Uninstall OneDrive.ps1": "This script completely removes OneDrive from your Windows system.",
"Resore all built-in apps.ps1": "This will restore all preinstalled inbox apps of Microsoft.",
"Remove default apps.ps1": "This script will remove all preinstalled inbox apps using PowerShell.",
"File Extensions Visibility.json": "This plugin shows or hides hidden file extensions in Windows Explorer.",
"Clear Icon Cache.json": "This plugin clears the icon cache in Windows to resolve issues with icons displaying incorrectly.",
"Windows Rollback Timer.json": "This plugin adjusts the time window available to revert to a previous version of Windows after an upgrade.",
"Windows Old Remover.json": "This plugin will remove the ability to roll back a PC to a previous installation of Windows."
}